diff --git a/code/ATMOSPHERICS/_atmos_setup.dm b/code/ATMOSPHERICS/_atmos_setup.dm index c11b51dbc3d..7e2f1ed0b87 100644 --- a/code/ATMOSPHERICS/_atmos_setup.dm +++ b/code/ATMOSPHERICS/_atmos_setup.dm @@ -110,6 +110,18 @@ var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_ I.color = pipe_colors[pipe_color] pipe_icons[state + "[pipe_colors[pipe_color]]"] = I + pipe = new ('icons/atmos/heat.dmi') + for(var/state in pipe.IconStates()) + if(!state || findtext(state, "map")) + continue + pipe_icons["hepipe" + state] = image('icons/atmos/heat.dmi', icon_state = state) + + pipe = new ('icons/atmos/junction.dmi') + for(var/state in pipe.IconStates()) + if(!state || findtext(state, "map")) + continue + pipe_icons["hejunction" + state] = image('icons/atmos/junction.dmi', icon_state = state) + /datum/pipe_icon_manager/proc/gen_manifold_icons() if(!manifold_icons) manifold_icons = new() diff --git a/code/ATMOSPHERICS/he_pipes.dm b/code/ATMOSPHERICS/he_pipes.dm index 3921c275811..15774f99c2f 100644 --- a/code/ATMOSPHERICS/he_pipes.dm +++ b/code/ATMOSPHERICS/he_pipes.dm @@ -1,7 +1,8 @@ /obj/machinery/atmospherics/pipe/simple/heat_exchanging - icon = 'icons/obj/pipes/heat.dmi' + icon = 'icons/atmos/heat.dmi' icon_state = "intact" + pipe_icon = "hepipe" level = 2 var/initialize_directions_he var/surface = 2 @@ -9,25 +10,25 @@ minimum_temperature_difference = 20 thermal_conductivity = OPEN_HEAT_TRANSFER_COEFFICIENT - process() - if(!parent) - ..() - else - var/environment_temperature = 0 - if(istype(loc, /turf/simulated/)) - if(loc:blocks_air) - environment_temperature = loc:temperature - else - var/datum/gas_mixture/environment = loc.return_air() - environment_temperature = environment.temperature - var/datum/gas_mixture/pipe_air = return_air() - if(abs(environment_temperature-pipe_air.temperature) > minimum_temperature_difference) - parent.temperature_interact(loc, volume, thermal_conductivity) +/obj/machinery/atmospherics/pipe/simple/heat_exchanging/process() + if(!parent) + ..() + else + var/environment_temperature = 0 + if(istype(loc, /turf/simulated/)) + if(loc:blocks_air) + environment_temperature = loc:temperature else - parent.radiate_heat(surface, 1) + var/datum/gas_mixture/environment = loc.return_air() + environment_temperature = environment.temperature + var/datum/gas_mixture/pipe_air = return_air() + if(abs(environment_temperature-pipe_air.temperature) > minimum_temperature_difference) + parent.temperature_interact(loc, volume, thermal_conductivity) + else + parent.radiate_heat(surface, 1) - // BubbleWrap +// BubbleWrap /obj/machinery/atmospherics/pipe/simple/heat_exchanging/New() ..() initialize_directions_he = initialize_directions // The auto-detection from /pipe is good enough for a simple HE pipe @@ -53,6 +54,11 @@ if(target.initialize_directions_he & get_dir(target,src)) node2 = target break + + if(!node1 && !node2) + del(src) + return + update_icon() return @@ -65,8 +71,9 @@ // JUNCTION ///////////////////////////////// /obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction - icon = 'icons/obj/pipes/junction.dmi' + icon = 'icons/atmos/junction.dmi' icon_state = "intact" + pipe_icon = "hejunction" level = 2 minimum_temperature_difference = 300 thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT @@ -89,16 +96,6 @@ initialize_directions_he = WEST // BubbleWrap END -/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction/update_icon() - if(node1&&node2) - icon_state = "intact[invisibility ? "-f" : "" ]" - else - var/have_node1 = node1?1:0 - var/have_node2 = node2?1:0 - icon_state = "exposed[have_node1][have_node2]" - if(!node1&&!node2) - qdel(src) - /obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction/initialize() for(var/obj/machinery/atmospherics/target in get_step(src,initialize_directions)) if(target.initialize_directions & get_dir(target,src)) @@ -108,6 +105,10 @@ if(target.initialize_directions_he & get_dir(target,src)) node2 = target break + + if(!node1 && !node2) + del(src) + return update_icon() return diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm index 9ea96706e31..23f3c638f06 100644 --- a/code/ATMOSPHERICS/pipes.dm +++ b/code/ATMOSPHERICS/pipes.dm @@ -4,6 +4,7 @@ var/datum/pipeline/parent var/volume = 0 + var/frozen = 0 // used by the pipe freezer force = 20 //layer = 2.4 //under wires with their 2.44 @@ -70,6 +71,25 @@ if(istype(W,/obj/item/device/pipe_painter)) return 0 + + if (istype(W, /obj/item/device/pipe_freezer)) + if(!src.frozen) // If the pipe is not already frozen + user << "\red You begin to freeze the [src]" + if (do_after(user, 60)) + user.visible_message( \ + "[user] freezes \the [src].", \ + "\blue You finished freezing \the [src].", \ + "You hear the hiss of gas.") + src.frozen = 1 + spawn (200) + src.frozen = 0 + src.visible_message( \ + "\the ice arounds the [src] melts.", \ + "\blue Your frozen [src] has thawed.", \ + "You hear dripping water.") + + add_fingerprint(user) + return 1 if (!istype(W, /obj/item/weapon/wrench)) return ..() @@ -77,12 +97,14 @@ if (level==1 && isturf(T) && T.intact) user << "\red You must remove the plating first." return 1 + var/datum/gas_mixture/int_air = return_air() var/datum/gas_mixture/env_air = loc.return_air() if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) - user << "You cannot unwrench [src], it is too exerted due to internal pressure." - add_fingerprint(user) - return 1 + if (!src.frozen) // If the pipe is not frozen + user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." + add_fingerprint(user) + return 1 playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) user << "\blue You begin to unfasten \the [src]..." if (do_after(user, 40)) @@ -95,7 +117,8 @@ if (meter.target == src) new /obj/item/pipe_meter(T) del(meter) - del(src) + qdel(src) + return 1 /obj/machinery/atmospherics/proc/change_color(var/new_color) //only pass valid pipe colors please ~otherwise your pipe will turn invisible @@ -137,6 +160,7 @@ /obj/machinery/atmospherics/pipe/simple icon = 'icons/atmos/pipes.dmi' icon_state = "" + var/pipe_icon = "" //what kind of pipe it is and from which dmi is the icon manager getting its icons, "" for simple pipes, "hepipe" for HE pipes, "hejunction" for HE junctions name = "pipe" desc = "A one meter section of regular pipe" @@ -255,9 +279,9 @@ del(meter) del(src) else if(node1 && node2) - overlays += icon_manager.get_atmos_icon("pipe", , pipe_color, "intact" + icon_connect_type) + overlays += icon_manager.get_atmos_icon("pipe", , pipe_color, pipe_icon + "intact" + icon_connect_type) else - overlays += icon_manager.get_atmos_icon("pipe", , pipe_color, "exposed[node1?1:0][node2?1:0]" + icon_connect_type) + overlays += icon_manager.get_atmos_icon("pipe", , pipe_color, pipe_icon + "exposed[node1?1:0][node2?1:0]" + icon_connect_type) /obj/machinery/atmospherics/pipe/simple/update_underlays() return @@ -669,6 +693,10 @@ break if (node3) break + + if(!node1 && !node2 && !node3) + del(src) + return var/turf/T = get_turf(src) if(istype(T)) @@ -921,6 +949,10 @@ src.connected_to = c node4 = target break + + if(!node1 && !node2 && !node3&& !node4) + del(src) + return var/turf/T = get_turf(src) if(istype(T)) @@ -1242,7 +1274,7 @@ /obj/machinery/atmospherics/pipe/tank/toxins name = "Pressure Tank (Toxins)" - icon_state = "phoron_map" + icon_state = "toxins_map" /obj/machinery/atmospherics/pipe/tank/toxins/New() air_temporary = new diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 7a1464f57e2..098ff4eb232 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -455,4 +455,7 @@ proc/isInSight(var/atom/A, var/atom/B) continue if(our_area == get_area_master(C)) return 0 - return 1 \ No newline at end of file + return 1 + +/proc/MinutesToTicks(var/minutes as num) + return minutes * 60 * 10 \ No newline at end of file diff --git a/code/__HELPERS/maths.dm b/code/__HELPERS/maths.dm index ddb9269de30..2cd71596041 100644 --- a/code/__HELPERS/maths.dm +++ b/code/__HELPERS/maths.dm @@ -117,6 +117,10 @@ var/list/sqrtTable = list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, var/d = max - min var/t = Floor((val - min) / d) return val - (t * d) + +/proc/RaiseToPower(num, power) + if(!power) return 1 + return (power-- > 1 ? num * RaiseToPower(num, power) : num) //converts a uniform distributed random number into a normal distributed one //since this method produces two random numbers, one is saved for subsequent calls diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index bddc9ec90f5..c26d2e8d7b8 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -227,6 +227,12 @@ proc/tg_text2list(text, glue=",", assocglue=";") . += copytext(text, last_found, found) last_found = found + delim_len while(found) + +/proc/text2numlist(text, delimiter="\n") + var/list/num_list = list() + for(var/x in text2list(text, delimiter)) + num_list += text2num(x) + return num_list //Splits the text of a file at seperator and returns them in a list. /proc/file2list(filename, seperator="\n") diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 2e79dfb97bd..61112befc91 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -81,17 +81,6 @@ var/media_base_url = "http://nanotrasen.se/media" // http://ss13.nexisonline.net/media - //Alert level description - var/alert_desc_green = "All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced." - var/alert_desc_blue_upto = "The station has received reliable information about possible hostile activity on the station. Security staff may have weapons visible, random searches are permitted." - var/alert_desc_blue_downto = "The immediate threat has passed. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still allowed." - var/alert_desc_red_upto = "There is an immediate serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised." - var/alert_desc_red_downto = "The self-destruct mechanism has been deactivated, there is still however an immediate serious threat to the station. Security may have weapons unholstered at all times, random searches are allowed and advised." - var/alert_desc_delta = "The station's self-destruct mechanism has been engaged. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill." - var/alert_desc_epsilon = "Security level EPSILON reached. Consider all contracts terminated." - var/alert_desc_gamma = "GAMMA Security level has been set by Centcom, Security is to have weapons at all times, and all civilians are to seek their nearest head for transportation to a safe location. GAMMA Armory unlocked for security personnel." - - var/forbid_singulo_possession = 0 //game_options.txt configs @@ -144,6 +133,19 @@ var/python_path = "" //Path to the python executable. Defaults to "python" on windows and "/usr/bin/env python2" on unix var/default_laws = 0 //Controls what laws the AI spawns with. + + var/const/minutes_to_ticks = 60 * 10 + // Event settings + var/expected_round_length = 60 * 2 * minutes_to_ticks // 2 hours + // If the first delay has a custom start time + // No custom time, no custom time, between 80 to 100 minutes respectively. + var/list/event_first_run = list(EVENT_LEVEL_MUNDANE = null, EVENT_LEVEL_MODERATE = null, EVENT_LEVEL_MAJOR = list("lower" = 48000, "upper" = 60000)) + // The lowest delay until next event + // 10, 30, 50 minutes respectively + var/list/event_delay_lower = list(EVENT_LEVEL_MUNDANE = 6000, EVENT_LEVEL_MODERATE = 18000, EVENT_LEVEL_MAJOR = 30000) + // The upper delay until next event + // 15, 45, 70 minutes respectively + var/list/event_delay_upper = list(EVENT_LEVEL_MUNDANE = 9000, EVENT_LEVEL_MODERATE = 27000, EVENT_LEVEL_MAJOR = 42000) /datum/configuration/New() var/list/L = typesof(/datum/game_mode) - /datum/game_mode @@ -358,30 +360,6 @@ if("load_jobs_from_txt") load_jobs_from_txt = 1 - if("alert_red_upto") - config.alert_desc_red_upto = value - - if("alert_red_downto") - config.alert_desc_red_downto = value - - if("alert_blue_downto") - config.alert_desc_blue_downto = value - - if("alert_blue_upto") - config.alert_desc_blue_upto = value - - if("alert_green") - config.alert_desc_green = value - - if("alert_delta") - config.alert_desc_delta = value - - if("alert_gamma") - config.alert_desc_gamma = value - - if("alert_epsilon") - config.alert_desc_epsilon = value - if("forbid_singulo_possession") forbid_singulo_possession = 1 @@ -475,6 +453,33 @@ if("max_maint_drones") config.max_maint_drones = text2num(value) + + if("expected_round_length") + config.expected_round_length = MinutesToTicks(text2num(value)) + + if("event_custom_start_mundane") + var/values = text2numlist(value, ";") + config.event_first_run[EVENT_LEVEL_MUNDANE] = list("lower" = MinutesToTicks(values[1]), "upper" = MinutesToTicks(values[2])) + + if("event_custom_start_moderate") + var/values = text2numlist(value, ";") + config.event_first_run[EVENT_LEVEL_MODERATE] = list("lower" = MinutesToTicks(values[1]), "upper" = MinutesToTicks(values[2])) + + if("event_custom_start_major") + var/values = text2numlist(value, ";") + config.event_first_run[EVENT_LEVEL_MAJOR] = list("lower" = MinutesToTicks(values[1]), "upper" = MinutesToTicks(values[2])) + + if("event_delay_lower") + var/values = text2numlist(value, ";") + config.event_delay_lower[EVENT_LEVEL_MUNDANE] = MinutesToTicks(values[1]) + config.event_delay_lower[EVENT_LEVEL_MODERATE] = MinutesToTicks(values[2]) + config.event_delay_lower[EVENT_LEVEL_MAJOR] = MinutesToTicks(values[3]) + + if("event_delay_upper") + var/values = text2numlist(value, ";") + config.event_delay_upper[EVENT_LEVEL_MUNDANE] = MinutesToTicks(values[1]) + config.event_delay_upper[EVENT_LEVEL_MODERATE] = MinutesToTicks(values[2]) + config.event_delay_upper[EVENT_LEVEL_MAJOR] = MinutesToTicks(values[3]) else diary << "Unknown setting in configuration: '[name]'" diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index b5f50cea34c..e0615702b49 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -321,6 +321,7 @@ datum/controller/game_controller/proc/process() powernets -= Powernet /datum/controller/game_controller/proc/processNano() + last_thing_processed = /datum/nanoui for (var/datum/nanoui/Nanoui in nanomanager.processing_uis) if (Nanoui) Nanoui.process() @@ -330,15 +331,8 @@ datum/controller/game_controller/proc/process() /datum/controller/game_controller/proc/processEvents() last_thing_processed = /datum/event + event_manager.process() - for (var/datum/event/Event in events) - if (Event) - Event.process() - continue - - events -= Event - - checkEvent() /* /datum/controller/game_controller/proc/processPuddles() diff --git a/code/controllers/shuttle_controller.dm b/code/controllers/shuttle_controller.dm index 21fad6ce176..9eb45f5d8d6 100644 --- a/code/controllers/shuttle_controller.dm +++ b/code/controllers/shuttle_controller.dm @@ -217,8 +217,8 @@ var/global/datum/shuttle_controller/shuttle_controller ) VS.announcer = "NSV Icarus" - VS.arrival_message = "Attention, Cyberiad, we just tracked a small target bypassing our defensive perimeter. Can't fire on it without hitting the station - you've got incoming visitors, like it or not." - VS.departure_message = "Your guests are pulling away, Cyberiad - moving too fast for us to draw a bead on them. Looks like they're heading out of the system at a rapid clip." + VS.arrival_message = "Attention, [station_name()], we just tracked a small target bypassing our defensive perimeter. Can't fire on it without hitting the station - you've got incoming visitors, like it or not." + VS.departure_message = "Your guests are pulling away, [station_name()] - moving too fast for us to draw a bead on them. Looks like they're heading out of the system at a rapid clip." VS.interim = locate(/area/vox_station/transit) VS.warmup_time = 0 @@ -240,8 +240,8 @@ var/global/datum/shuttle_controller/shuttle_controller ) MS.announcer = "NSV Icarus" - MS.arrival_message = "Attention, Cyberiad, you have a large signature approaching the station - looks unarmed to surface scans. We're too far out to intercept - brace for visitors." - MS.departure_message = "Your visitors are on their way out of the system, Cyberiad, burning delta-v like it's nothing. Good riddance." + MS.arrival_message = "Attention, [station_name()], you have a large signature approaching the station - looks unarmed to surface scans. We're too far out to intercept - brace for visitors." + MS.departure_message = "Your visitors are on their way out of the system, [station_name()], burning delta-v like it's nothing. Good riddance." MS.interim = locate(/area/syndicate_station/transit) MS.warmup_time = 0 diff --git a/code/controllers/verbs.dm b/code/controllers/verbs.dm index 03712ee0f77..bd41e4249f1 100644 --- a/code/controllers/verbs.dm +++ b/code/controllers/verbs.dm @@ -49,7 +49,7 @@ return -/client/proc/debug_controller(controller in list("Master","Failsafe","Ticker","Lighting","Air","Jobs","Sun","Radio","Supply","Shuttles","Emergency Shuttle","Configuration","pAI", "Cameras","Garbage", "Crafting", "Transfer Controller")) +/client/proc/debug_controller(controller in list("Master","Failsafe","Ticker","Lighting","Air","Jobs","Sun","Radio","Supply","Shuttles","Emergency Shuttle","Configuration","pAI", "Cameras","Garbage", "Crafting", "Transfer Controller","Event")) set category = "Debug" set name = "Debug Controller" set desc = "Debug the various periodic loop controllers for the game (be careful!)" @@ -104,5 +104,9 @@ if("Crafting") debug_variables(crafting_master) feedback_add_details("admin_verb","DCrafting") + if("Event") + debug_variables(event_manager) + feedback_add_details("admin_verb","DEvent") + message_admins("Admin [key_name_admin(usr)] is debugging the [controller] controller.") return diff --git a/code/defines/procs/admin.dm b/code/defines/procs/admin.dm new file mode 100644 index 00000000000..44d79a38930 --- /dev/null +++ b/code/defines/procs/admin.dm @@ -0,0 +1,7 @@ +proc/log_and_message_admins(var/message as text) + log_admin("[usr]([usr.ckey]) " + message) + message_admins("[usr]([usr.ckey]) " + message) + +proc/admin_log_and_message_admins(var/message as text) + log_admin("[key_name(usr)] " + message) + message_admins("[key_name_admin(usr)] " + message, 1) \ No newline at end of file diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index 1c52dfa3e50..9ec3e0fabfe 100644 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -829,9 +829,13 @@ var/list/ghostteleportlocs = list() /area/maintenance/aft name = "Engineering Maintenance" icon_state = "amaint" + +/area/maintenance/engi_shuttle + name = "Engineering Shuttle Access" + icon_state = "maint_e_shuttle" /area/maintenance/storage - name = "Atmospherics" + name = "Atmospherics Maintenance" icon_state = "green" /area/maintenance/incinerator diff --git a/code/game/dna/genes/goon_disabilities.dm b/code/game/dna/genes/goon_disabilities.dm index 68827157d55..746a6d77686 100644 --- a/code/game/dna/genes/goon_disabilities.dm +++ b/code/game/dna/genes/goon_disabilities.dm @@ -325,7 +325,10 @@ return var/mob/living/carbon/L = targets[1] - + if(L) + usr.attack_log += text("\[[time_stamp()]\] [usr.real_name] ([usr.ckey]) cast the spell [name] on [L.real_name] ([L.ckey]).") + L.attack_log += text("\[[time_stamp()]\] [usr.real_name] ([usr.ckey]) cast the spell [name] on [L.real_name] ([L.ckey]).") + msg_admin_attack("[usr.real_name] ([usr.ckey]) has cast the spell [name] on [L.real_name] ([L.ckey]) (JMP)") L.adjust_fire_stacks(0.5) // Same as walking into fire. Was 100 (goon fire) L.visible_message("\red [L.name] suddenly bursts into flames!") L.on_fire = 1 diff --git a/code/game/gamemodes/changeling/traitor_chan.dm b/code/game/gamemodes/changeling/traitor_chan.dm index 12a5525428e..193a2e3574d 100644 --- a/code/game/gamemodes/changeling/traitor_chan.dm +++ b/code/game/gamemodes/changeling/traitor_chan.dm @@ -7,6 +7,7 @@ required_players_secret = 10 required_enemies = 2 recommended_enemies = 3 + var/protected_species_changeling = list("Machine") /datum/game_mode/traitor/changeling/announce() world << "The current game mode is - Traitor+Changeling!" @@ -23,7 +24,11 @@ for(var/job in restricted_jobs)//Removing robots from the list if(player.assigned_role == job) possible_changelings -= player - + + for(var/mob/new_player/player in player_list) + if((player.mind in possible_changelings) && (player.client.prefs.species in protected_species_changeling)) + possible_changelings -= player.mind + if(possible_changelings.len>0) var/datum/mind/changeling = pick(possible_changelings) //possible_changelings-=changeling diff --git a/code/game/gamemodes/events/ninja_abilities.dm b/code/game/gamemodes/events/ninja_abilities.dm index 82aa8601505..f5df54cf304 100644 --- a/code/game/gamemodes/events/ninja_abilities.dm +++ b/code/game/gamemodes/events/ninja_abilities.dm @@ -145,12 +145,12 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo //=======//EM PULSE//=======// //Disables nearby tech equipment. /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse() - set name = "EM Burst (1,500E)" + set name = "EM Burst (2,000E)" set desc = "Disable any nearby technology with a electro-magnetic pulse." set category = "Ninja Ability" set popup_menu = 0 - var/C = 1500 + var/C = 2000 if(!ninjacost(C, 1)) var/mob/living/carbon/human/U = affecting playsound(U.loc, 'sound/effects/EMPulse.ogg', 60, 2) diff --git a/code/game/gamemodes/events/ninja_equipment.dm b/code/game/gamemodes/events/ninja_equipment.dm index d3dc3ff0936..894121ac5ec 100644 --- a/code/game/gamemodes/events/ninja_equipment.dm +++ b/code/game/gamemodes/events/ninja_equipment.dm @@ -625,7 +625,7 @@ ________________________________________________________________________________ A << "There are no potential [href_list["name"]=="Phase Shift"?"destinations" : "targets"] in view." if("Unlock Kamikaze") - if(input(U)=="Divine Wind") + if(input(U)=="Divine Wind" && (k_unlock==7||!s_control)) if(U.loc.loc.name != "\improper SpiderClan Outpost") if( !(U.stat||U.wear_suit!=src||!s_initialized)) if( !(cell.charge<=1||s_busy) ) diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index ae183d7fe75..a989adee6be 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -486,6 +486,9 @@ var/global/datum/controller/gameticker/ticker scoreboard() karmareminder() + + //Ask the event manager to print round end information + event_manager.RoundEnd() return 1 diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index 87858b18be7..6aeafe753c3 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -14,7 +14,7 @@ /datum/game_mode/revolution name = "revolution" config_tag = "revolution" - restricted_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer", "Blueshield", "Nanotrasen Representative", "Magistrate", "Brig Physician") + restricted_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Brig Physician") protected_jobs = list() required_players = 4 required_players_secret = 15 diff --git a/code/game/gamemodes/vampire/vampire.dm b/code/game/gamemodes/vampire/vampire.dm index 7ab58e0f139..42eb879c5be 100644 --- a/code/game/gamemodes/vampire/vampire.dm +++ b/code/game/gamemodes/vampire/vampire.dm @@ -462,6 +462,24 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha if(T.density) return + vamp_burn() + +/mob/living/carbon/human/proc/handle_vampire() + if(hud_used) + if(!hud_used.vampire_blood_display) + hud_used.vampire_hud() + hud_used.human_hud('icons/mob/screen1_Vampire.dmi') + hud_used.vampire_blood_display.maptext_width = 64 + hud_used.vampire_blood_display.maptext_height = 26 + hud_used.vampire_blood_display.maptext = "
U:[mind.vampire.bloodusable]
T:[mind.vampire.bloodtotal]
" + handle_vampire_cloak() + if(istype(loc, /turf/space)) + check_sun() + if(istype(loc.loc, /area/chapel) && !(VAMP_FULL in src.mind.vampire.powers)) + vamp_burn() + mind.vampire.nullified = max(0, mind.vampire.nullified - 1) + +mob/living/carbon/human/proc/vamp_burn() if(prob(35)) switch(health) if(80 to 100) @@ -482,16 +500,4 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha fire_stacks++ IgniteMob() adjustFireLoss(3) - -/mob/living/carbon/human/proc/handle_vampire() - if(hud_used) - if(!hud_used.vampire_blood_display) - hud_used.vampire_hud() - hud_used.human_hud('icons/mob/screen1_Vampire.dmi') - hud_used.vampire_blood_display.maptext_width = 64 - hud_used.vampire_blood_display.maptext_height = 26 - hud_used.vampire_blood_display.maptext = "
U:[mind.vampire.bloodusable]
T:[mind.vampire.bloodtotal]
" - handle_vampire_cloak() - if(istype(loc, /turf/space)) - check_sun() - mind.vampire.nullified = max(0, mind.vampire.nullified - 1) + return diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index b799b5482b1..017856952ca 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -475,7 +475,7 @@ Buildable meters if(PIPE_HE_STRAIGHT, PIPE_HE_BENT) var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/P = new ( src.loc ) P.dir = src.dir - P.initialize_directions = 0 + P.initialize_directions = pipe_dir //this var it's used to know if the pipe is bent or not P.initialize_directions_he = pipe_dir //var/turf/T = P.loc //P.level = T.intact ? 2 : 1 @@ -516,7 +516,7 @@ Buildable meters M.level = T.intact ? 2 : 1 M.initialize() if (!M) - usr << "There's nothing to connect this manifold to!" //(with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" + usr << pipefailtext return 1 M.build_network() if (M.node1) @@ -539,7 +539,7 @@ Buildable meters M.level = T.intact ? 2 : 1 M.initialize() if (!M) - usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" + usr << pipefailtext return 1 M.build_network() if (M.node1) @@ -562,7 +562,7 @@ Buildable meters M.level = T.intact ? 2 : 1 M.initialize() if (!M) - usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" + usr << pipefailtext return 1 M.build_network() if (M.node1) @@ -585,7 +585,7 @@ Buildable meters M.level = T.intact ? 2 : 1 M.initialize() if (!M) - usr << "There's nothing to connect this manifold to!" //(with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" + usr << pipefailtext return 1 M.build_network() if (M.node1) @@ -612,7 +612,7 @@ Buildable meters M.level = T.intact ? 2 : 1 M.initialize() if (!M) - usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" + usr << pipefailtext return 1 M.build_network() if (M.node1) @@ -639,7 +639,7 @@ Buildable meters M.level = T.intact ? 2 : 1 M.initialize() if (!M) - usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" + usr << pipefailtext return 1 M.build_network() if (M.node1) diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm index e33f20435b7..2a0235652ac 100644 --- a/code/game/objects/effects/anomalies.dm +++ b/code/game/objects/effects/anomalies.dm @@ -32,7 +32,7 @@ for(var/atom/movable/O in src) O.loc = src.loc - del(src) + qdel(src) /obj/effect/anomaly/attackby(obj/item/I, mob/user) @@ -85,7 +85,7 @@ /obj/effect/anomaly/flux/New() ..() - aSignal.origin_tech = "powerstorage=5;programming=3;plasmatech=2" + aSignal.origin_tech = "powerstorage=6;programming=4;plasmatech=4" ///////////////////// @@ -97,7 +97,7 @@ /obj/effect/anomaly/bluespace/New() ..() - aSignal.origin_tech = "bluespace=5;magnets=3;powerstorage=2" + aSignal.origin_tech = "bluespace=5;magnets=5;powerstorage=3" /obj/effect/anomaly/bluespace/Bumped(atom/A) if(isliving(A)) @@ -112,7 +112,7 @@ /obj/effect/anomaly/pyro/New() ..() - aSignal.origin_tech = "plasmatech=5;powerstorage=3;biotech=3" + aSignal.origin_tech = "plasmatech=5;powerstorage=4;biotech=6" /obj/effect/anomaly/pyro/anomalyEffect() ..() @@ -122,7 +122,6 @@ payload.toxins = 60 T.zone.air.merge(payload) T.hotspot_expose(1000, CELL_VOLUME) -// T.atmos_spawn_air("fire", 3) ///////////////////// @@ -133,12 +132,12 @@ /obj/effect/anomaly/bhole/New() ..() - aSignal.origin_tech = "materials=5;combat=4;engineering=3" + aSignal.origin_tech = "materials=5;combat=4;engineering=4" /obj/effect/anomaly/bhole/anomalyEffect() ..() if(!isturf(loc)) //blackhole cannot be contained inside anything. Weird stuff might happen - del(src) + qdel(src) return grav(rand(0,3), rand(2,3), 50, 25) diff --git a/code/game/objects/items/flag.dm b/code/game/objects/items/flag.dm index c779a03aac2..22b5285556a 100644 --- a/code/game/objects/items/flag.dm +++ b/code/game/objects/items/flag.dm @@ -95,7 +95,7 @@ /obj/item/flag/pony name = "Equestria flag" - desc = "The flag of the independant, sovereign nation of Equestria, whatever the fuck that is." + desc = "The flag of the independent, sovereign nation of Equestria, whatever the fuck that is." icon_state = "ponyflag" /obj/item/flag/ian @@ -160,32 +160,32 @@ /obj/item/flag/cargo name = "Cargonia flag" - desc = "The flag of the independant, sovereign nation of Cargonia." + desc = "The flag of the independent, sovereign nation of Cargonia." icon_state = "cargoflag" /obj/item/flag/med name = "Medistan flag" - desc = "The flag of the independant, sovereign nation of Medistan." + desc = "The flag of the independent, sovereign nation of Medistan." icon_state = "medflag" /obj/item/flag/sec name = "Brigston flag" - desc = "The flag of the independant, sovereign nation of Brigston." + desc = "The flag of the independent, sovereign nation of Brigston." icon_state = "secflag" /obj/item/flag/rnd name = "Scientopia flag" - desc = "The flag of the independant, sovereign nation of Scientopia." + desc = "The flag of the independent, sovereign nation of Scientopia." icon_state = "rndflag" /obj/item/flag/atmos name = "Atmosia flag" - desc = "The flag of the independant, sovereign nation of Atmosia." + desc = "The flag of the independent, sovereign nation of Atmosia." icon_state = "atmosflag" /obj/item/flag/command name = "Command flag" - desc = "The flag of the independant, sovereign nation of Command." + desc = "The flag of the independent, sovereign nation of Command." icon_state = "ntflag" //Antags diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm index f42d21298fb..699cada546e 100644 --- a/code/game/objects/items/weapons/manuals.dm +++ b/code/game/objects/items/weapons/manuals.dm @@ -77,9 +77,6 @@ dat = {"Engineering notes on single-stage Supermatter engine,
-Waleed Asad
- Station,
- Cyberiad
- A word of caution, do not enter the engine room, for any reason, without radiation protection and mesons on. The status of the engine may be unpredictable even when you believe it is .off.. This is an important level of personal protection.

The engine has two basic modes of functionality. He has observed that it is capable of both a safe level of operation and a modified, high output mode.

diff --git a/code/game/objects/structures/fullwindow.dm b/code/game/objects/structures/fullwindow.dm index 67a19dbecb5..cff4b75de02 100644 --- a/code/game/objects/structures/fullwindow.dm +++ b/code/game/objects/structures/fullwindow.dm @@ -105,4 +105,9 @@ color = null update_icon() //icon_state has to be set manually - return \ No newline at end of file + return + +/obj/structure/window/full/shuttle/dark + icon = 'icons/turf/shuttle.dmi' + icon_state = "window5" + basestate = "window5" \ No newline at end of file diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index c5d28ba8908..d6f9288d05f 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -210,36 +210,37 @@ var/global/wcColored /obj/structure/window/attackby(obj/item/weapon/W as obj, mob/user as mob) if(!istype(W)) return//I really wish I did not need this - if(W.flags & NOBLUDGEON) return - if (istype(W, /obj/item/weapon/grab) && get_dist(src,user)<2) var/obj/item/weapon/grab/G = W - if (istype(G.affecting, /mob/living)) + if(istype(G.affecting,/mob/living)) var/mob/living/M = G.affecting var/state = G.state del(W) //gotta delete it here because if window breaks, it won't get deleted switch (state) if(1) + M.visible_message("[user] slams [M] against \the [src]!") M.apply_damage(7) hit(10) - visible_message("\red [user] slams [M] against \the [src]!") if(2) + M.visible_message("[user] bashes [M] against \the [src]!") if (prob(50)) M.Weaken(1) M.apply_damage(10) hit(25) - visible_message("\red [user] bashes [M] against \the [src]!") if(3) + M.visible_message("[user] crushes [M] against \the [src]!") M.Weaken(5) M.apply_damage(20) hit(50) - visible_message("\red [user] crushes [M] against \the [src]!") if(4) + visible_message("[user] smashes [M] against \the [src]!") M.Weaken(5) M.apply_damage(30) hit(75) - visible_message("\red [user] smashes [M] against \the [src]!") return + + if(W.flags & NOBLUDGEON) return + if(istype(W, /obj/item/weapon/screwdriver)) if(reinf && state >= 1) state = 3 - state diff --git a/code/game/turfs/simulated/floor_types.dm b/code/game/turfs/simulated/floor_types.dm index 49c2ce2744c..cd139319e7e 100644 --- a/code/game/turfs/simulated/floor_types.dm +++ b/code/game/turfs/simulated/floor_types.dm @@ -50,7 +50,6 @@ icon_state = "engine" thermal_conductivity = 0.025 heat_capacity = 325000 - intact = 0 /turf/simulated/floor/engine/attackby(obj/item/weapon/C as obj, mob/user as mob) if(!C) diff --git a/code/game/vehicles/spacepods/spacepod.dm b/code/game/vehicles/spacepods/spacepod.dm index 0eae56d9278..d10a80ec09e 100644 --- a/code/game/vehicles/spacepods/spacepod.dm +++ b/code/game/vehicles/spacepods/spacepod.dm @@ -225,7 +225,7 @@ /obj/spacepod/sec/New() ..() - var/obj/item/device/spacepod_equipment/weaponry/taser/T = new /obj/item/device/spacepod_equipment/weaponry/taser + var/obj/item/device/spacepod_equipment/weaponry/burst_taser/T = new /obj/item/device/spacepod_equipment/weaponry/taser T.loc = equipment_system equipment_system.weapon_system = T equipment_system.weapon_system.my_atom = src diff --git a/code/global.dm b/code/global.dm index 1d76567ad84..9d23e32209e 100644 --- a/code/global.dm +++ b/code/global.dm @@ -11,7 +11,6 @@ var/global/list/all_areas = list() var/global/list/machines = list() var/global/list/processing_objects = list() var/global/list/active_diseases = list() -var/global/list/events = list() var/global/list/med_hud_users = list() var/global/list/sec_hud_users = list() //items that ask to be called every cycle @@ -220,6 +219,9 @@ var/forceblob = 0 // nanomanager, the manager for Nano UIs var/datum/nanomanager/nanomanager = new() +// event manager, the manager for events +var/datum/event_manager/event_manager = new() + #define SPEED_OF_LIGHT 3e8 //not exact but hey! #define SPEED_OF_LIGHT_SQ 9e+16 #define FIRE_DAMAGE_MODIFIER 0.0215 //Higher values result in more external fire damage to the skin (default 0.0215) @@ -235,6 +237,10 @@ var/datum/nanomanager/nanomanager = new() #define shuttle_time_in_station 1800 // 3 minutes in the station #define shuttle_time_to_arrive 6000 // 10 minutes to arrive +#define EVENT_LEVEL_MUNDANE 1 +#define EVENT_LEVEL_MODERATE 2 +#define EVENT_LEVEL_MAJOR 3 + //away missions var/list/awaydestinations = list() //a list of landmarks that the warpgate can take you to diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index c051d5dd150..a9bafc2e71e 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -913,7 +913,7 @@ var/global/nologevent = 0 usr << "AI [key_name(S, usr)]'s laws:" else if(isrobot(S)) var/mob/living/silicon/robot/R = S - usr << "CYBORG [key_name(S, usr)] [R.connected_ai?"(Slaved to: [R.connected_ai])":"(Independant)"]: laws:" + usr << "CYBORG [key_name(S, usr)] [R.connected_ai?"(Slaved to: [R.connected_ai])":"(Independent)"]: laws:" else if (ispAI(S)) usr << "pAI [key_name(S, usr)]'s laws:" else diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 6f463d7a240..89f222808b8 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -63,7 +63,8 @@ var/list/admin_verbs_admin = list( /client/proc/toggledrones, /client/proc/man_up, /client/proc/global_man_up, - /client/proc/delbook + /client/proc/delbook, + /client/proc/event_manager_panel ) var/list/admin_verbs_ban = list( /client/proc/unban_panel, @@ -152,6 +153,7 @@ var/list/admin_verbs_debug = list( /client/proc/show_distribution_map, /client/proc/enable_debug_verbs, /client/proc/callproc, + /client/proc/callproc_datum, /client/proc/toggledebuglogs, /client/proc/qdel_toggle // /vg/ ) @@ -409,18 +411,20 @@ var/list/admin_verbs_mod = list( /client/proc/give_disease2(mob/T as mob in mob_list) // -- Giacom - set category = "Event" + set category = "Fun" set name = "Give Disease" set desc = "Gives a Disease to a mob." var/datum/disease2/disease/D = new /datum/disease2/disease() - var/greater = ((input("Is this a lesser or greater disease?", "Give Disease") in list("Lesser", "Greater")) == "Greater") - - D.makerandom(greater) - if (!greater) - D.infectionchance = 1 + var/severity = 1 + var/greater = input("Is this a lesser, greater, or badmin disease?", "Give Disease") in list("Lesser", "Greater", "Badmin") + switch(greater) + if ("Lesser") severity = 1 + if ("Greater") severity = 2 + if ("Badmin") severity = 99 + D.makerandom(severity) D.infectionchance = input("How virulent is this disease? (1-100)", "Give Disease", D.infectionchance) as num if(istype(T,/mob/living/carbon/human)) @@ -433,8 +437,8 @@ var/list/admin_verbs_mod = list( infect_virus2(T,D,1) feedback_add_details("admin_verb","GD2") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - log_admin("[key_name(usr)] gave [key_name(T)] a [(greater)? "greater":"lesser"] disease2 with infection chance [D.infectionchance].") - message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] a [(greater)? "greater":"lesser"] disease2 with infection chance [D.infectionchance].", 1) + log_admin("[key_name(usr)] gave [key_name(T)] a [greater] disease2 with infection chance [D.infectionchance].") + message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] a [greater] disease2 with infection chance [D.infectionchance].", 1) /client/proc/make_sound(var/obj/O in world) // -- TLE set category = "Event" diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 4bc608f2cc6..09e6b270c02 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -34,8 +34,6 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that spawn(0) var/target = null var/targetselected = 0 - var/lst[] // List reference - lst = new/list() // Make the list var/returnval = null var/class = null @@ -64,53 +62,9 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that var/procname = input("Proc path, eg: /proc/fake_blood","Path:", null) as text|null if(!procname) return - var/argnum = input("Number of arguments","Number:",0) as num|null - if(!argnum && (argnum!=0)) return - - lst.len = argnum // Expand to right length - //TODO: make a list to store whether each argument was initialised as null. - //Reason: So we can abort the proccall if say, one of our arguments was a mob which no longer exists - //this will protect us from a fair few errors ~Carn - - var/i - for(i=1, i[procname] returned: [returnval ? returnval : "null"]" feedback_add_details("admin_verb","APC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +/client/proc/callproc_datum(var/atom/A as null|area|mob|obj|turf) + set category = "Debug" + set name = "Atom ProcCall" + + if(!check_rights(R_DEBUG)) + return + + if(!istype(A)) + return + + var/procname = input("Proc name, eg: fake_blood","Proc:", null) as text|null + if(!procname) + return + + var/list/lst = get_callproc_args() + if(!lst) + return + + if(!A || A.gc_destroyed) + usr << "Error: callproc_datum(): owner of proc no longer exists." + return + if(!hascall(A,procname)) + usr << "Error: callproc_datum(): target has no such call [procname]." + return + log_admin("[key_name(src)] called [A]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") + + spawn() + var/returnval = call(A,procname)(arglist(lst)) // Pass the lst as an argument list to the proc + usr << "[procname] returned: [returnval ? returnval : "null"]" + + feedback_add_details("admin_verb","DPC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/get_callproc_args() + var/argnum = input("Number of arguments","Number:",0) as num|null + if(!argnum && (argnum!=0)) return + + var/list/lst = list() + //TODO: make a list to store whether each argument was initialised as null. + //Reason: So we can abort the proccall if say, one of our arguments was a mob which no longer exists + //this will protect us from a fair few errors ~Carn + + while(argnum--) + // Make a list with each index containing one variable, to be given to the proc + var/class = input("What kind of variable?","Variable Type") in list("text","num","type","reference","mob reference","icon","file","client","mob's area","CANCEL") + switch(class) + if("CANCEL") + return null + + if("text") + lst += input("Enter new text:","Text",null) as text + + if("num") + lst += input("Enter new number:","Num",0) as num + + if("type") + lst += input("Enter type:","Type") in typesof(/obj,/mob,/area,/turf) + + if("reference") + lst += input("Select reference:","Reference",src) as mob|obj|turf|area in world + + if("mob reference") + lst += input("Select reference:","Reference",usr) as mob in world + + if("file") + lst += input("Pick file:","File") as file + + if("icon") + lst += input("Pick icon:","Icon") as icon + + if("client") + var/list/keys = list() + for(var/mob/M in world) + keys += M.client + lst += input("Please, select a player!", "Selection", null, null) as null|anything in keys + + if("mob's area") + var/mob/temp = input("Select mob", "Selection", usr) as mob in world + lst += temp.loc + return lst + /client/proc/Cell() set category = "Debug" set name = "Air Status in Location" diff --git a/code/modules/admin/verbs/onlyoneteam.dm b/code/modules/admin/verbs/onlyoneteam.dm index 9f8adc23b1a..48e643a8d24 100644 --- a/code/modules/admin/verbs/onlyoneteam.dm +++ b/code/modules/admin/verbs/onlyoneteam.dm @@ -17,7 +17,7 @@ continue del(I) - H << "You are part of the Cyberiad dodgeball tournament. Throw dodgeballs at crewmembers wearing a different color than you. OOC: Use THROW on an EMPTY-HAND to catch thrown dodgeballs." + H << "You are part of the [station_name()] dodgeball tournament. Throw dodgeballs at crewmembers wearing a different color than you. OOC: Use THROW on an EMPTY-HAND to catch thrown dodgeballs." H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_l_ear) // H.equip_to_slot_or_del(new /obj/item/clothing/head/beret(H), slot_head) diff --git a/code/modules/clothing/spacesuits/breaches.dm b/code/modules/clothing/spacesuits/breaches.dm index 19f795561c0..5bc1ecaf5ab 100644 --- a/code/modules/clothing/spacesuits/breaches.dm +++ b/code/modules/clothing/spacesuits/breaches.dm @@ -10,7 +10,7 @@ /obj/item/clothing/suit/space - var/can_breach = 1 // Set to 0 to disregard all breaching. + var/can_breach = 0 // Set to 0 to disregard all breaching. var/list/breaches = list() // Breach datum container. var/resilience = 0.2 // Multiplier that turns damage into breach class. 1 is 100% of damage to breach, 0.1 is 10%. var/breach_threshold = 3 // Min damage before a breach is possible. diff --git a/code/modules/clothing/spacesuits/rig.dm b/code/modules/clothing/spacesuits/rig.dm index 6d19af94e4d..21c3248bcc0 100644 --- a/code/modules/clothing/spacesuits/rig.dm +++ b/code/modules/clothing/spacesuits/rig.dm @@ -74,7 +74,7 @@ //Breach thresholds, should ideally be inherited by most (if not all) hardsuits. breach_threshold = 18 - can_breach = 1 + can_breach = 0 //Component/device holders. var/obj/item/weapon/stock_parts/gloves = null // Basic capacitor allows insulation, upgrades allow shock gloves etc. diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 37b168ddec8..84ac2feac52 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -94,7 +94,7 @@ displays_id = 0 /obj/item/clothing/under/rank/centcom/blueshield - desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Lieutenant\" and bears \"N.C.S. Cyberiad\" on the left shounder." + desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Lieutenant\" and bears \"N.S.S. Cyberiad\" on the left shounder." name = "\improper Nanotrasen Navy Uniform" icon_state = "officer" item_state = "g_suit" @@ -103,7 +103,7 @@ flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/centcom/representative - desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Ensign\" and bears \"N.C.S. Cyberiad\" on the left shounder." + desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Ensign\" and bears \"N.S.S. Cyberiad\" on the left shounder." name = "\improper Nanotrasen Navy Uniform" icon_state = "officer" item_state = "g_suit" diff --git a/code/modules/economy/Economy_TradeDestinations.dm b/code/modules/economy/Economy_TradeDestinations.dm index f35e16e015d..09bbabdab37 100644 --- a/code/modules/economy/Economy_TradeDestinations.dm +++ b/code/modules/economy/Economy_TradeDestinations.dm @@ -43,7 +43,7 @@ var/list/weighted_mundaneevent_locations = list() /datum/trade_destination/icarus name = "NMV Icarus" - description = "Corvette assigned to patrol NSS Cyberiad local space." + description = "Corvette assigned to patrol the station's local space." distance = 0.1 willing_to_buy = list() willing_to_sell = list() diff --git a/code/modules/events/alien_infestation.dm b/code/modules/events/alien_infestation.dm index cf1541b4676..64485bf701e 100644 --- a/code/modules/events/alien_infestation.dm +++ b/code/modules/events/alien_infestation.dm @@ -2,7 +2,6 @@ /datum/event/alien_infestation announceWhen = 400 - oneShot = 1 var/spawncount = 1 var/successSpawn = 0 //So we don't make a command report if nothing gets spawned. @@ -13,6 +12,7 @@ spawncount = rand(1, 2) sent_aliens_to_station = 1 + /datum/event/alien_infestation/announce() if(successSpawn) command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") @@ -21,21 +21,20 @@ /datum/event/alien_infestation/start() var/list/vents = list() - for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in machines) + for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in world) if(temp_vent.loc.z == 1 && !temp_vent.welded && temp_vent.network) if(temp_vent.network.normal_members.len > 50) //Stops Aliens getting stuck in small networks. See: Security, Virology vents += temp_vent - var/list/candidates = get_candidates(BE_ALIEN, ALIEN_AFK_BRACKET) + var/list/candidates = get_candidates(BE_ALIEN) while(spawncount > 0 && vents.len && candidates.len) - var/obj/vent = pick(vents) - var/candidate = pick(candidates) + var/obj/vent = pick_n_take(vents) + var/client/C = pick_n_take(candidates) + if(C) + respawnable_list -= C + var/mob/living/carbon/alien/larva/new_xeno = new(vent.loc) + new_xeno.key = C.key - var/mob/living/carbon/alien/larva/new_xeno = new(vent.loc) - new_xeno.key = candidate - - candidates -= candidate - vents -= vent - spawncount-- - successSpawn = 1 + spawncount-- + successSpawn = 1 \ No newline at end of file diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm index 6a7971646d2..50d2e10d3dd 100644 --- a/code/modules/events/blob.dm +++ b/code/modules/events/blob.dm @@ -26,7 +26,7 @@ Blob.process() /datum/event/blob/tick() - if(IsMultiple(activeFor, 3)) + if(Blob && IsMultiple(activeFor, 3)) Blob.process() var/blobs = 0 for(var/obj/effect/blob/core/core in world) @@ -45,15 +45,24 @@ command_alert("The biohazard has grown out of control and will soon reach critical mass. Activate the nuclear failsafe to maintain quarantine. The Nuclear Authentication Code is [nukecode] ", "Biohazard Alert") set_security_level("gamma") + var/obj/machinery/door/airlock/vault/V = locate(/obj/machinery/door/airlock/vault) in world if(V && V.z == 1) V.locked = 0 V.update_icon() + + for (var/mob/living/silicon/ai/aiPlayer in player_list) + if (aiPlayer.client) + var/law = "The station is under quarantine, prevent biological entities from leaving the station at all costs. The nuclear failsafe must be activated at any cost, the code is: [nukecode]." + aiPlayer.set_zeroth_law(law) + aiPlayer << "\red You have detected a change in your laws information:" + aiPlayer << "Laws Updated: [law]" + spawn(10) world << sound('sound/effects/siren.ogg') /datum/event/blob/kill() - command_alert("The level 7 biohazard aboard [station_name()] has been killed. Directive 7-10 has been lifted, and the station is no longer quarantined.", "Biohazard Update") + command_alert("The level 7 biohazard aboard [station_name()] has been eliminated. Directive 7-10 has been lifted, and the station is no longer quarantined.", "Biohazard Update") for (var/mob/living/silicon/ai/aiPlayer in player_list) if (aiPlayer.client) diff --git a/code/modules/events/borers.dm b/code/modules/events/borers.dm index 24f9b8bf9b1..66a998756a1 100644 --- a/code/modules/events/borers.dm +++ b/code/modules/events/borers.dm @@ -1,12 +1,9 @@ //Cortical borer spawn event - care of RobRichards1997 with minor editing by Zuhayr. -/datum/event/borer_infestation - oneShot = 1 - /datum/event/borer_infestation announceWhen = 400 - var/spawncount = 1 + var/spawncount = 5 var/successSpawn = 0 //So we don't make a command report if nothing gets spawned. /datum/event/borer_infestation/setup() @@ -26,7 +23,7 @@ if(temp_vent.network.normal_members.len > 50) vents += temp_vent - var/list/candidates = get_candidates(BE_ALIEN, ALIEN_AFK_BRACKET) + var/list/candidates = get_candidates(BE_ALIEN) while(spawncount > 0 && vents.len && candidates.len) var/obj/vent = pick_n_take(vents) var/client/C = pick_n_take(candidates) diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index 31fe141ad10..a2436f2ac75 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -7,11 +7,9 @@ var/list/obj/machinery/vending/infectedVendingMachines = list() var/obj/machinery/vending/originMachine - /datum/event/brand_intelligence/announce() command_alert("Rampant brand intelligence has been detected aboard [station_name()], please stand-by.", "Machine Learning Alert") - /datum/event/brand_intelligence/start() for(var/obj/machinery/vending/V in machines) if(V.z != 1) continue @@ -34,7 +32,7 @@ return if(IsMultiple(activeFor, 5)) - if(prob(25)) + if(prob(15)) var/obj/machinery/vending/infectedMachine = pick(vendingMachines) vendingMachines.Remove(infectedMachine) infectedVendingMachines.Add(infectedMachine) @@ -43,7 +41,7 @@ if(IsMultiple(activeFor, 12)) originMachine.speak(pick("Try our aggressive new marketing strategies!", \ - "You should buy products to feed your lifestyle obession!", \ + "You should buy products to feed your lifestyle obsession!", \ "Consume!", \ "Your money can buy happiness!", \ "Engage direct marketing!", \ @@ -52,6 +50,5 @@ /datum/event/brand_intelligence/end() for(var/obj/machinery/vending/infectedMachine in infectedVendingMachines) - if(prob(90)) - infectedMachine.shut_up = 1 - infectedMachine.shoot_inventory = 0 + infectedMachine.shut_up = 1 + infectedMachine.shoot_inventory = 0 \ No newline at end of file diff --git a/code/modules/events/cargobonus.dm b/code/modules/events/cargobonus.dm index f7135151d3b..f0c84b86f54 100644 --- a/code/modules/events/cargobonus.dm +++ b/code/modules/events/cargobonus.dm @@ -2,7 +2,7 @@ announceWhen = 5 /datum/event/cargo_bonus/announce() - command_alert("Congratulations! [station_name()] was chosen for supply limit increase, please contact local cargo department for details!.", "Supply Alert") + command_alert("Congratulations! [station_name()] was chosen for supply limit increase, please contact local cargo department for details!", "Supply Alert") /datum/event/cargo_bonus/start() supply_controller.points+=rand(100,500) \ No newline at end of file diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm index 65b4d9bba30..7cf82ff1f67 100644 --- a/code/modules/events/carp_migration.dm +++ b/code/modules/events/carp_migration.dm @@ -1,6 +1,5 @@ /datum/event/carp_migration announceWhen = 50 - oneShot = 1 endWhen = 900 var/list/spawned_carp = list() @@ -12,12 +11,9 @@ command_alert("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert") /datum/event/carp_migration/start() - scaling_factor = num_players() / 25 - for(var/obj/effect/landmark/C in landmarks_list) if(C.name == "carpspawn") - if(prob(60 * scaling_factor)) - spawned_carp.Add(new /mob/living/simple_animal/hostile/carp(C.loc)) + spawned_carp.Add(new /mob/living/simple_animal/hostile/carp(C.loc)) /datum/event/carp_migration/end() for(var/mob/living/simple_animal/hostile/carp/C in spawned_carp) diff --git a/code/modules/events/comms_blackout.dm b/code/modules/events/comms_blackout.dm index 0a1d5c351c7..2f5cbea97b3 100644 --- a/code/modules/events/comms_blackout.dm +++ b/code/modules/events/comms_blackout.dm @@ -1,6 +1,4 @@ - /proc/communications_blackout(var/silent = 1) - if(!silent) command_alert("Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT") else // AIs will always know if there's a comm blackout, rogue AIs could then lie about comm blackouts in the future while they shutdown comms diff --git a/code/modules/events/communications_blackout.dm b/code/modules/events/communications_blackout.dm index acf891e3e40..d437d85684e 100644 --- a/code/modules/events/communications_blackout.dm +++ b/code/modules/events/communications_blackout.dm @@ -1,10 +1,10 @@ /datum/event/communications_blackout/announce() var/alert = pick( "Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you*%fj00)`5vc-BZZT", \ - "Ionospheric anomalies detected. Temporary telecommunication failu*3mga;b4;'1v¬-BZZZT", \ + "Ionospheric anomalies detected. Temporary telecommunication failu*3mga;b4;'1v?-BZZZT", \ "Ionospheric anomalies detected. Temporary telec#MCi46:5.;@63-BZZZZT", \ "Ionospheric anomalies dete'fZ\\kg5_0-BZZZZZT", \ - "Ionospheri:%£ MCayj^j<.3-BZZZZZZT", \ - "#4nd%;f4y6,>£%-BZZZZZZZT") + "Ionospheri:%? MCayj^j<.3-BZZZZZZT", \ + "#4nd%;f4y6,>?%-BZZZZZZZT") for(var/mob/living/silicon/ai/A in player_list) //AIs are always aware of communication blackouts. A << "
" @@ -14,7 +14,6 @@ if(prob(30)) //most of the time, we don't want an announcement, so as to allow AIs to fake blackouts. command_alert(alert) - /datum/event/communications_blackout/start() for(var/obj/machinery/telecomms/T in telecomms_list) T.emp_act(1) diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm index 37ec6422592..a12aa2147c5 100644 --- a/code/modules/events/disease_outbreak.dm +++ b/code/modules/events/disease_outbreak.dm @@ -2,7 +2,6 @@ announceWhen = 15 oneShot = 1 - /datum/event/disease_outbreak/announce() command_alert("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") world << sound('sound/AI/outbreak7.ogg') diff --git a/code/modules/events/electrical_storm.dm b/code/modules/events/electrical_storm.dm index dacaa09c47a..2b9b989e5e9 100644 --- a/code/modules/events/electrical_storm.dm +++ b/code/modules/events/electrical_storm.dm @@ -2,11 +2,9 @@ var/lightsoutAmount = 1 var/lightsoutRange = 25 - /datum/event/electrical_storm/announce() command_alert("An electrical storm has been detected in your area, please repair potential electronic overloads.", "Electrical Storm Alert") - - + /datum/event/electrical_storm/start() var/list/epicentreList = list() diff --git a/code/modules/events/event.dm b/code/modules/events/event.dm index 13109e516c4..e3fac3ac6a7 100644 --- a/code/modules/events/event.dm +++ b/code/modules/events/event.dm @@ -1,12 +1,67 @@ +/datum/event_meta + var/name = "" + var/enabled = 1 // Whether or not the event is available for random selection at all + var/weight = 0 // The base weight of this event. A zero means it may never fire, but see get_weight() + var/min_weight = 0 // The minimum weight that this event will have. Only used if non-zero. + var/max_weight = 0 // The maximum weight that this event will have. Only use if non-zero. + var/severity = 0 // The current severity of this event + var/one_shot = 0 //If true, then the event will not be re-added to the list of available events + var/list/role_weights = list() + var/datum/event/event_type + +/datum/event_meta/New(var/event_severity, var/event_name, var/datum/event/type, var/event_weight, var/list/job_weights, var/is_one_shot = 0, var/min_event_weight = 0, var/max_event_weight = 0) + name = event_name + severity = event_severity + event_type = type + one_shot = is_one_shot + weight = event_weight + min_weight = min_event_weight + max_weight = max_event_weight + if(job_weights) + role_weights = job_weights + +/datum/event_meta/proc/get_weight(var/list/active_with_role) + if(!enabled) + return 0 + + var/job_weight = 0 + for(var/role in role_weights) + if(role in active_with_role) + job_weight += active_with_role[role] * role_weights[role] + + var/total_weight = weight + job_weight + + // Only min/max the weight if the values are non-zero + if(min_weight && total_weight < min_weight) total_weight = min_weight + if(max_weight && total_weight > max_weight) total_weight = max_weight + + return total_weight + +/datum/event_meta/alien/get_weight(var/list/active_with_role) + if(aliens_allowed) + return ..(active_with_role) + return 0 + +/datum/event_meta/ninja/get_weight(var/list/active_with_role) + if(toggle_space_ninja) + return ..(active_with_role) + return 0 + /datum/event //NOTE: Times are measured in master controller ticks! var/startWhen = 0 //When in the lifetime to call start(). var/announceWhen = 0 //When in the lifetime to call announce(). var/endWhen = 0 //When in the lifetime the event should end. - var/oneShot = 0 //If true, then the event removes itself from the list of potential events on creation. + var/severity = 0 //Severity. Lower means less severe, higher means more severe. Does not have to be supported. Is set on New(). var/activeFor = 0 //How long the event has existed. You don't need to change this. - var/area/impact_area - var/scaling_factor // Used to scale spawns to server pop. + var/isRunning = 1 //If this event is currently running. You should not change this. + var/startedAt = 0 //When this event started. + var/endedAt = 0 //When this event ended. + var/area/impact_area //The area the event will hit + var/datum/event_meta/event_meta = null + +/datum/event/nothing + //Called first before processing. //Allows you to setup your event, such as randomly //setting the startWhen and or announceWhen variables. @@ -42,52 +97,54 @@ /datum/event/proc/end() return - +//Returns the latest point of event processing. +/datum/event/proc/lastProcessAt() + return max(startWhen, max(announceWhen, endWhen)) //Do not override this proc, instead use the appropiate procs. //This proc will handle the calls to the appropiate procs. /datum/event/proc/process() - if(activeFor > startWhen && activeFor < endWhen) tick() if(activeFor == startWhen) + isRunning = 1 start() if(activeFor == announceWhen) announce() if(activeFor == endWhen) + isRunning = 0 end() // Everything is done, let's clean up. - if(activeFor >= endWhen && activeFor >= announceWhen && activeFor >= startWhen) + if(activeFor >= lastProcessAt()) kill() activeFor++ - -//Garbage collects the event by removing it from the global events list, -//which should be the only place it's referenced. //Called when start(), announce() and end() has all been called. /datum/event/proc/kill() - events.Remove(src) + // If this event was forcefully killed run end() for individual cleanup + if(isRunning) + isRunning = 0 + end() + endedAt = world.time + event_manager.active_events -= src + event_manager.event_complete(src) + +/datum/event/New(var/datum/event_meta/EM) + // event needs to be responsible for this, as stuff like APLUs currently make their own events for curious reasons + event_manager.active_events += src + + event_meta = EM + severity = event_meta.severity + if(severity < EVENT_LEVEL_MUNDANE) severity = EVENT_LEVEL_MUNDANE + if(severity > EVENT_LEVEL_MAJOR) severity = EVENT_LEVEL_MAJOR + + startedAt = world.time -//Adds the event to the global events list, and removes it from the list -//of potential events. -/datum/event/New() setup() - events.Add(src) - score_eventsendured++ - /*if(oneShot) - potentialRandomEvents.Remove(type)*/ ..() - -/datum/event/proc/num_players() - var/players = 0 - for(var/mob/living/carbon/human/P in player_list) - if(P.client) - players++ - return players - diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm new file mode 100644 index 00000000000..b6df7d94c3b --- /dev/null +++ b/code/modules/events/event_container.dm @@ -0,0 +1,192 @@ +#define ASSIGNMENT_ANY "Any" +#define ASSIGNMENT_AI "AI" +#define ASSIGNMENT_CYBORG "Cyborg" +#define ASSIGNMENT_ENGINEER "Engineer" +#define ASSIGNMENT_GARDENER "Gardener" +#define ASSIGNMENT_JANITOR "Janitor" +#define ASSIGNMENT_MEDICAL "Medical" +#define ASSIGNMENT_SCIENTIST "Scientist" +#define ASSIGNMENT_SECURITY "Security" + +var/global/list/severity_to_string = list(EVENT_LEVEL_MUNDANE = "Mundane", EVENT_LEVEL_MODERATE = "Moderate", EVENT_LEVEL_MAJOR = "Major") + +/datum/event_container + var/severity = -1 + var/delayed = 0 + var/delay_modifier = 1 + var/next_event_time = 0 + var/list/available_events + var/list/last_event_time = list() + var/datum/event_meta/next_event = null + + var/last_world_time = 0 + +/datum/event_container/proc/process() + if(!next_event_time) + set_event_delay() + + if(delayed) + next_event_time += (world.time - last_world_time) + else if(world.time > next_event_time) + start_event() + + last_world_time = world.time + +/datum/event_container/proc/start_event() + if(!next_event) // If non-one has explicitly set an event, randomly pick one + next_event = acquire_event() + + // Has an event been acquired? + if(next_event) + // Set when the event of this type was last fired, and prepare the next event start + last_event_time[next_event] = world.time + set_event_delay() + next_event.enabled = !next_event.one_shot // This event will no longer be available in the random rotation if one shot + + new next_event.event_type(next_event) // Events are added and removed from the processing queue in their New/kill procs + + log_debug("Starting event '[next_event.name]' of severity [severity_to_string[severity]].") + next_event = null // When set to null, a random event will be selected next time + else + // If not, wait for one minute, instead of one tick, before checking again. + next_event_time += (60 * 10) + + +/datum/event_container/proc/acquire_event() + if(available_events.len == 0) + return + var/active_with_role = number_active_with_role() + + var/list/possible_events = list() + for(var/datum/event_meta/EM in available_events) + var/event_weight = EM.get_weight(active_with_role) + if(EM.enabled && event_weight) + possible_events[EM] = event_weight + + for(var/event_meta in last_event_time) if(possible_events[event_meta]) + var/time_passed = world.time - event_last_fired[event_meta] + var/weight_modifier = max(0, (config.expected_round_length - time_passed) / 300) + var/new_weight = max(possible_events[event_meta] - weight_modifier, 0) + + if(new_weight) + possible_events[event_meta] = new_weight + else + possible_events -= event_meta + + if(possible_events.len == 0) + return null + + // Select an event and remove it from the pool of available events + var/picked_event = pickweight(possible_events) + available_events -= picked_event + return picked_event + +/datum/event_container/proc/set_event_delay() + // If the next event time has not yet been set and we have a custom first time start + if(next_event_time == 0 && config.event_first_run[severity]) + var/lower = config.event_first_run[severity]["lower"] + var/upper = config.event_first_run[severity]["upper"] + var/event_delay = rand(lower, upper) + next_event_time = world.time + event_delay + // Otherwise, follow the standard setup process + else + var/playercount_modifier = 1 + switch(player_list.len) + if(0 to 10) + playercount_modifier = 1.2 + if(11 to 15) + playercount_modifier = 1.1 + if(16 to 25) + playercount_modifier = 1 + if(26 to 35) + playercount_modifier = 0.9 + if(36 to 100000) + playercount_modifier = 0.8 + playercount_modifier = playercount_modifier * delay_modifier + + var/event_delay = rand(config.event_delay_lower[severity], config.event_delay_upper[severity]) * playercount_modifier + next_event_time = world.time + event_delay + + log_debug("Next event of severity [severity_to_string[severity]] in [(next_event_time - world.time)/600] minutes.") + +/datum/event_container/proc/SelectEvent() + var/datum/event_meta/EM = input("Select an event to queue up.", "Event Selection", null) as null|anything in available_events + if(!EM) + return + if(next_event) + available_events += next_event + available_events -= EM + next_event = EM + return EM + +/datum/event_container/mundane + severity = EVENT_LEVEL_MUNDANE + available_events = list( + // Severity level, event name, even type, base weight, role weights, one shot, min weight, max weight. Last two only used if set and non-zero + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Nothing", /datum/event/nothing, 100), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "PDA Spam", /datum/event/pda_spam, 0, list(ASSIGNMENT_ANY = 4), 0, 25, 50), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Money Lotto", /datum/event/money_lotto, 0, list(ASSIGNMENT_ANY = 1), 1, 5, 15), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Money Hacker", /datum/event/money_hacker, 0, list(ASSIGNMENT_ANY = 4), 1, 10, 25), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Economic News", /datum/event/economic_event, 300), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Trivial News", /datum/event/trivial_news, 400), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Mundane News", /datum/event/mundane_news, 300), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Lost Carp", /datum/event/carp_migration, 20, list(ASSIGNMENT_SECURITY = 10), 1), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Brand Intelligence",/datum/event/brand_intelligence,20, list(ASSIGNMENT_JANITOR = 25), 1), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Vermin Infestation",/datum/event/infestation, 100, list(ASSIGNMENT_JANITOR = 100)), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Wallrot", /datum/event/wallrot, 0, list(ASSIGNMENT_ENGINEER = 30, ASSIGNMENT_GARDENER = 50)), + // NON-BAY EVENTS + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Cargo Bonus", /datum/event/cargo_bonus, 150), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Mass Hallucination",/datum/event/mass_hallucination,200), + ) + +/datum/event_container/moderate + severity = EVENT_LEVEL_MODERATE + available_events = list( + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Nothing", /datum/event/nothing, 1230), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Carp School", /datum/event/carp_migration, 100, list(ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_SECURITY = 20), 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Rogue Drones", /datum/event/rogue_drone, 20, list(ASSIGNMENT_SECURITY = 20)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Space vines", /datum/event/spacevine, 200, list(ASSIGNMENT_ENGINEER = 10)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Meteor Shower", /datum/event/meteor_shower, 0, list(ASSIGNMENT_ENGINEER = 20)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Meaty Ores", /datum/event/dust/meaty, 0, list(ASSIGNMENT_ENGINEER = 20)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Communication Blackout", /datum/event/communications_blackout, 500, list(ASSIGNMENT_AI = 150, ASSIGNMENT_SECURITY = 120)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Prison Break", /datum/event/prison_break, 0, list(ASSIGNMENT_SECURITY = 100)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grid Check", /datum/event/grid_check, 200, list(ASSIGNMENT_ENGINEER = 60)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Electrical Storm", /datum/event/electrical_storm, 250, list(ASSIGNMENT_ENGINEER = 20, ASSIGNMENT_JANITOR = 150)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Radiation Storm", /datum/event/radiation_storm, 0, list(ASSIGNMENT_MEDICAL = 50), 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Viral Infection", /datum/event/viral_infection, 0, list(ASSIGNMENT_MEDICAL = 150)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Spider Infestation", /datum/event/spider_infestation, 100, list(ASSIGNMENT_SECURITY = 30), 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Ion Storm", /datum/event/ionstorm, 0, list(ASSIGNMENT_AI = 50, ASSIGNMENT_CYBORG = 50, ASSIGNMENT_ENGINEER = 15, ASSIGNMENT_SCIENTIST = 5)), + new /datum/event_meta/alien(EVENT_LEVEL_MODERATE, "Alien Infestation", /datum/event/alien_infestation, 2.5, list(ASSIGNMENT_SECURITY = 1), 1, 0, 5), + new /datum/event_meta/ninja(EVENT_LEVEL_MODERATE, "Space Ninja", /datum/event/space_ninja, 0, list(ASSIGNMENT_SECURITY = 1), 1, 0, 5), + // NON-BAY EVENTS + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Space Dust", /datum/event/dust, 50, list(ASSIGNMENT_ENGINEER = 50)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Dimensional Tear", /datum/event/tear, 0, list(ASSIGNMENT_SECURITY = 25)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Wormholes", /datum/event/wormholes, 150), + + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Pyro Anomaly", /datum/event/anomaly/anomaly_pyro, 100, list(ASSIGNMENT_ENGINEER = 60)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Vortex Anomaly", /datum/event/anomaly/anomaly_vortex, 50, list(ASSIGNMENT_ENGINEER = 25)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Bluespace Anomaly", /datum/event/anomaly/anomaly_bluespace, 50, list(ASSIGNMENT_ENGINEER = 25)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Flux Anomaly", /datum/event/anomaly/anomaly_flux, 50, list(ASSIGNMENT_ENGINEER = 50)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Gravitational Anomaly", /datum/event/anomaly/anomaly_grav, 200), + ) + +/datum/event_container/major + severity = EVENT_LEVEL_MAJOR + available_events = list( + new /datum/event_meta(EVENT_LEVEL_MAJOR, "Nothing", /datum/event/nothing, 1320), + new /datum/event_meta(EVENT_LEVEL_MAJOR, "Carp Migration", /datum/event/carp_migration, 0, list(ASSIGNMENT_SECURITY = 3), 1), + new /datum/event_meta(EVENT_LEVEL_MAJOR, "Viral Infection", /datum/event/viral_infection, 0, list(ASSIGNMENT_MEDICAL = 30), 1), + new /datum/event_meta(EVENT_LEVEL_MAJOR, "Blob", /datum/event/blob, 0, list(ASSIGNMENT_ENGINEER = 60), 1), + new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Wave", /datum/event/meteor_wave, 0, list(ASSIGNMENT_ENGINEER = 3), 1), + ) + + +#undef ASSIGNMENT_ANY +#undef ASSIGNMENT_AI +#undef ASSIGNMENT_CYBORG +#undef ASSIGNMENT_ENGINEER +#undef ASSIGNMENT_GARDENER +#undef ASSIGNMENT_JANITOR +#undef ASSIGNMENT_MEDICAL +#undef ASSIGNMENT_SCIENTIST +#undef ASSIGNMENT_SECURITY diff --git a/code/modules/events/event_dynamic.dm b/code/modules/events/event_dynamic.dm index 7156b3782ec..d94c5f3ea3a 100644 --- a/code/modules/events/event_dynamic.dm +++ b/code/modules/events/event_dynamic.dm @@ -21,8 +21,9 @@ */ var/list/event_last_fired = list() -var/global/list/possibleEvents = list() + //Always triggers an event when called, dynamically chooses events based on job population +var/global/list/possibleEvents = list() /proc/spawn_dynamic_event() if(!config.allow_random_events) return @@ -39,77 +40,66 @@ var/global/list/possibleEvents = list() // Maps event names to event chances // For each chance, 100 represents "normal likelihood", anything below 100 is "reduced likelihood", anything above 100 is "increased likelihood" // Events have to be manually added to this proc to happen -// var/list/possibleEvents = list() //see: // Code/WorkInProgress/Cael_Aislinn/Economy/Economy_Events.dm // Code/WorkInProgress/Cael_Aislinn/Economy/Economy_Events_Mundane.dm - possibleEvents[/datum/event/economic_event] = 150 - possibleEvents[/datum/event/trivial_news] = 200 - possibleEvents[/datum/event/mundane_news] = 150 + + possibleEvents[/datum/event/economic_event] = 300 + possibleEvents[/datum/event/trivial_news] = 400 + possibleEvents[/datum/event/mundane_news] = 300 possibleEvents[/datum/event/cargo_bonus] = 150 - - possibleEvents[/datum/event/mass_hallucination] = 200 - possibleEvents[/datum/event/falsealarm] = 300 -// possibleEvents[/datum/event/immovable_rod] = 200 - possibleEvents[/datum/event/vent_clog] = 300 - possibleEvents[/datum/event/anomaly/anomaly_grav] = 200 - -// possibleEvents[/datum/event/weightless] = 150 - possibleEvents[/datum/event/wormholes] = 150 - possibleEvents[/datum/event/pda_spam] = max(min(25, player_list.len) * 4, 200) possibleEvents[/datum/event/money_lotto] = max(min(5, player_list.len), 50) -// if(!account_hack_attempted) -// possibleEvents[/datum/event/money_hacker] = max(min(25, player_list.len) * 4, 200) + if(account_hack_attempted) + possibleEvents[/datum/event/money_hacker] = max(min(25, player_list.len) * 4, 200) - possibleEvents[/datum/event/carp_migration] = 50 + 25 * active_with_role["Engineer"] + possibleEvents[/datum/event/mass_hallucination] = 200 + possibleEvents[/datum/event/vent_clog] = 300 + possibleEvents[/datum/event/anomaly/anomaly_grav] = 200 + + possibleEvents[/datum/event/wormholes] = 150 + + possibleEvents[/datum/event/carp_migration] = 20 + 10 * active_with_role["Engineer"] + possibleEvents[/datum/event/brand_intelligence] = 20 + 25 * active_with_role["Janitor"] possibleEvents[/datum/event/dust] = 50 + 50 * active_with_role["Engineer"] possibleEvents[/datum/event/dust/meaty] = 50 + 50 * active_with_role["Engineer"] + possibleEvents[/datum/event/rogue_drone] = 5 + 25 * active_with_role["Engineer"] + 25 * active_with_role["Security"] + possibleEvents[/datum/event/infestation] = 100 + 100 * active_with_role["Janitor"] - possibleEvents[/datum/event/rogue_drone] = 25 + 25 * active_with_role["Engineer"] + 25 * active_with_role["Security"] - possibleEvents[/datum/event/infestation] = 50 + 25 * active_with_role["Janitor"] - - possibleEvents[/datum/event/communications_blackout] = 50 + 30 * active_with_role["AI"] + active_with_role["Scientist"] * 25 - possibleEvents[/datum/event/ionstorm] = active_with_role["AI"] * 75 + active_with_role["Cyborg"] * 25 + active_with_role["Engineer"] * 10 + active_with_role["Scientist"] * 5 -// possibleEvents[/datum/event/grid_check] = 25 + 20 * active_with_role["Engineer"] - possibleEvents[/datum/event/electrical_storm] = 150 + 10 * active_with_role["Janitor"] + 5 * active_with_role["Engineer"] + possibleEvents[/datum/event/communications_blackout] = 50 + 25 * active_with_role["AI"] + active_with_role["Scientist"] * 25 + possibleEvents[/datum/event/ionstorm] = active_with_role["AI"] * 25 + active_with_role["Cyborg"] * 25 + active_with_role["Engineer"] * 10 + active_with_role["Scientist"] * 5 + possibleEvents[/datum/event/grid_check] = 25 + 10 * active_with_role["Engineer"] + possibleEvents[/datum/event/electrical_storm] = 15 * active_with_role["Janitor"] + 5 * active_with_role["Engineer"] possibleEvents[/datum/event/wallrot] = 30 * active_with_role["Engineer"] + 50 * active_with_role["Botanist"] - possibleEvents[/datum/event/spacevine] = 25 + 5 * active_with_role["Engineer"] - possibleEvents[/datum/event/biomass] = 25 + 5 * active_with_role["Engineer"] + if(!spacevines_spawned) + possibleEvents[/datum/event/spacevine] = 10 + 5 * active_with_role["Engineer"] if(minutes_passed >= 30) // Give engineers time to set up engine - possibleEvents[/datum/event/meteor_wave] = 10 * active_with_role["Engineer"] - possibleEvents[/datum/event/meteor_shower] = 40 * active_with_role["Engineer"] possibleEvents[/datum/event/anomaly/anomaly_pyro] = 100 + 60 * active_with_role["Engineer"] possibleEvents[/datum/event/anomaly/anomaly_vortex] = 50 + 25 * active_with_role["Engineer"] possibleEvents[/datum/event/anomaly/anomaly_bluespace] = 50 + 25 * active_with_role["Engineer"] - possibleEvents[/datum/event/anomaly/anomaly_flux] = 50 + 50 * active_with_role["Engineer"] - - if(minutes_passed >= 60) //Delay for potentially destructive events. - possibleEvents[/datum/event/blob] = 20 * active_with_role["Engineer"] - possibleEvents[/datum/event/brand_intelligence] = 50 + 25 * active_with_role["Engineer"] - possibleEvents[/datum/event/spider_infestation] = 50 + 25 * active_with_role["Security"] - possibleEvents[/datum/event/borer_infestation] = 50 + 25 * active_with_role["Security"] - + possibleEvents[/datum/event/anomaly/anomaly_flux] = 50 + 50 * active_with_role["Engineer"] + + possibleEvents[/datum/event/meteor_wave] = 10 * active_with_role["Engineer"] + possibleEvents[/datum/event/meteor_shower] = 20 * active_with_role["Engineer"] + possibleEvents[/datum/event/blob] = 10 * active_with_role["Engineer"] if(active_with_role["Medical"] > 0) - possibleEvents[/datum/event/radiation_storm] = active_with_role["Medical"] * 50 - possibleEvents[/datum/event/viral_outbreak] = active_with_role["Medical"] * 5 - possibleEvents[/datum/event/organ_failure] = active_with_role["Medical"] * 50 - possibleEvents[/datum/event/viral_infection] = 25 + active_with_role["Medical"] * 50 + possibleEvents[/datum/event/radiation_storm] = active_with_role["Medical"] * 10 + possibleEvents[/datum/event/viral_infection] = active_with_role["Medical"] * 10 - possibleEvents[/datum/event/prison_break] = active_with_role["Security"] * 30 + possibleEvents[/datum/event/prison_break] = active_with_role["Security"] * 50 if(active_with_role["Security"] > 0) + if(!sent_spiders_to_station) + possibleEvents[/datum/event/spider_infestation] = max(active_with_role["Security"], 5) + 5 if(aliens_allowed && !sent_aliens_to_station) possibleEvents[/datum/event/alien_infestation] = max(active_with_role["Security"], 5) + 2.5 if(!sent_ninja_to_station && toggle_space_ninja) - possibleEvents[/datum/event/space_ninja] = active_with_role["Security"] * 5 - //possibleEvents[/datum/event/undead] = active_with_role["Security"] * 15 - //possibleEvents[/datum/event/ghosts] = active_with_role["Security"] * 25 + possibleEvents[/datum/event/space_ninja] = max(active_with_role["Security"], 5) possibleEvents[/datum/event/tear] = active_with_role["Security"] * 25 for(var/event_type in event_last_fired) if(possibleEvents[event_type]) @@ -205,7 +195,7 @@ var/global/list/possibleEvents = list() // Returns how many characters are currently active(not logged out, not AFK for more than 10 minutes) // with a specific role. // Note that this isn't sorted by department, because e.g. having a roboticist shouldn't make meteors spawn. -/proc/number_active_with_role(role) +/proc/number_active_with_role() var/list/active_with_role = list() active_with_role["Engineer"] = 0 active_with_role["Medical"] = 0 @@ -215,6 +205,7 @@ var/global/list/possibleEvents = list() active_with_role["Cyborg"] = 0 active_with_role["Janitor"] = 0 active_with_role["Botanist"] = 0 + active_with_role["Any"] = player_list.len for(var/mob/M in player_list) if(!M.mind || !M.client || M.client.inactivity > 10 * 10 * 60) // longer than 10 minutes AFK counts them as inactive diff --git a/code/modules/events/event_manager.dm b/code/modules/events/event_manager.dm index a0c4f7fe96c..1c0b687d3e5 100644 --- a/code/modules/events/event_manager.dm +++ b/code/modules/events/event_manager.dm @@ -1,61 +1,284 @@ -var/list/allEvents = typesof(/datum/event) - /datum/event -var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event -//var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event - /datum/event/spider_infestation - /datum/event/alien_infestation +/datum/event_manager + var/window_x = 700 + var/window_y = 600 + var/report_at_round_end = 0 + var/table_options = " align='center'" + var/row_options1 = " width='85px'" + var/row_options2 = " width='260px'" + var/row_options3 = " width='150px'" + var/datum/event_container/selected_event_container = null -var/eventTimeLower = 9000 //15 minutes -var/eventTimeUpper = 15000 //25 minutes -var/scheduledEvent = null + var/list/datum/event/active_events = list() + var/list/datum/event/finished_events = list() + var/list/datum/event/allEvents + var/list/datum/event_container/event_containers = list( + EVENT_LEVEL_MUNDANE = new/datum/event_container/mundane, + EVENT_LEVEL_MODERATE = new/datum/event_container/moderate, + EVENT_LEVEL_MAJOR = new/datum/event_container/major + ) -//Currently unused. Needs an admin panel for messing with events. -/*/proc/addPotentialEvent(var/type) - potentialRandomEvents |= type + var/datum/event_meta/new_event = new -/proc/removePotentialEvent(var/type) - potentialRandomEvents -= type*/ +/datum/event_manager/New() + allEvents = typesof(/datum/event) - /datum/event +/datum/event_manager/proc/process() + for(var/datum/event/E in event_manager.active_events) + E.process() -/proc/checkEvent() - if(!scheduledEvent) - //more players = more time between events, less players = less time between events - var/playercount_modifier = 1 - switch(player_list.len) - if(0 to 10) - playercount_modifier = 1.2 - if(11 to 15) - playercount_modifier = 1.1 - if(16 to 25) - playercount_modifier = 1 - if(26 to 35) - playercount_modifier = 0.9 - if(36 to 100000) - playercount_modifier = 0.8 - var/next_event_delay = rand(eventTimeLower, eventTimeUpper) * playercount_modifier - scheduledEvent = world.timeofday + next_event_delay - log_debug("Next event in [next_event_delay/600] minutes.") + for(var/i = EVENT_LEVEL_MUNDANE to EVENT_LEVEL_MAJOR) + var/list/datum/event_container/EC = event_containers[i] + EC.process() - else if(world.timeofday > scheduledEvent) - spawn_dynamic_event() - - scheduledEvent = null - checkEvent() - -//unused, see proc/dynamic_event() -/* -/proc/spawnEvent() - if(!config.allow_random_events) +/datum/event_manager/proc/event_complete(var/datum/event/E) + if(!E.event_meta) // datum/event is used here and there for random reasons, maintaining "backwards compatibility" + log_debug("Event of '[E.type]' with missing meta-data has completed.") return - var/Type = pick(potentialRandomEvents) - if(!Type) + finished_events += E + + // Add the event back to the list of available events + var/datum/event_container/EC = event_containers[E.severity] + var/datum/event_meta/EM = E.event_meta + EC.available_events += EM + + log_debug("Event '[EM.name]' has completed at [worldtime2text()].") + +/datum/event_manager/proc/delay_events(var/severity, var/delay) + var/list/datum/event_container/EC = event_containers[severity] + EC.next_event_time += delay + +/datum/event_manager/proc/Interact(var/mob/living/user) + + var/html = GetInteractWindow() + + var/datum/browser/popup = new(user, "event_manager", "Event Manager", window_x, window_y) + popup.set_content(html) + popup.open() + +/datum/event_manager/proc/RoundEnd() + if(!report_at_round_end) return - //The event will add itself to the MC's event list - //and start working via the constructor. - new Type -*/ + world << "


Random Events This Round:" + for(var/datum/event/E in active_events|finished_events) + var/datum/event_meta/EM = E.event_meta + if(EM.name == "Nothing") + continue + var/message = "'[EM.name]' began at [worldtime2text(E.startedAt)] " + if(E.isRunning) + message += "and is still running." + else + if(E.endedAt - E.startedAt > MinutesToTicks(5)) // Only mention end time if the entire duration was more than 5 minutes + message += "and ended at [worldtime2text(E.endedAt)]." + else + message += "and ran to completion." -/client/proc/forceEvent(var/type in allEvents) + world << message + +/datum/event_manager/proc/GetInteractWindow() + var/html = "Refresh" + + if(selected_event_container) + var/event_time = max(0, selected_event_container.next_event_time - world.time) + html += "Back
" + html += "Time till start: [round(event_time / 600, 0.1)]
" + html += "
" + html += "

Available [severity_to_string[selected_event_container.severity]] Events (queued & running events will not be displayed)

" + html += "" + html += "Name Weight MinWeight MaxWeight OneShot Enabled CurrWeight Remove" + for(var/datum/event_meta/EM in selected_event_container.available_events) + html += "" + html += "[EM.name]" + html += "[EM.weight]" + html += "[EM.min_weight]" + html += "[EM.max_weight]" + html += "[EM.one_shot]" + html += "[EM.enabled]" + html += "[EM.get_weight(number_active_with_role())]" + html += "Remove" + html += "" + html += "" + html += "
" + + html += "
" + html += "

Add Event

" + html += "" + html += "NameTypeWeightOneShot" + html += "" + html += "[new_event.name ? new_event.name : "Enter Event"]" + html += "[new_event.event_type ? new_event.event_type : "Select Type"]" + html += "[new_event.weight ? new_event.weight : 0]" + html += "[new_event.one_shot]" + html += "" + html += "" + html += "Add
" + html += "
" + else + html += "Round End Report: [report_at_round_end ? "On": "Off"]
" + html += "
" + html += "

Event Start

" + + html += "" + html += "SeverityStarts AtStarts InAdjust StartPauseInterval Mod" + for(var/severity = EVENT_LEVEL_MUNDANE to EVENT_LEVEL_MAJOR) + var/datum/event_container/EC = event_containers[severity] + var/next_event_at = max(0, EC.next_event_time - world.time) + html += "" + html += "[severity_to_string[severity]]" + html += "[worldtime2text(max(EC.next_event_time, world.time))]" + html += "[round(next_event_at / 600, 0.1)]" + html += "" + html += "--" + html += "-" + html += "+" + html += "++" + html += "" + html += "" + html += "[EC.delayed ? "Resume" : "Pause"]" + html += "" + html += "" + html += "[EC.delay_modifier]" + html += "" + html += "" + html += "" + html += "
" + + html += "
" + html += "

Next Event

" + html += "" + html += "SeverityNameEvent RotationClear" + for(var/severity = EVENT_LEVEL_MUNDANE to EVENT_LEVEL_MAJOR) + var/datum/event_container/EC = event_containers[severity] + var/datum/event_meta/EM = EC.next_event + html += "" + html += "[severity_to_string[severity]]" + html += "[EM ? EM.name : "Random"]" + html += "View" + html += "Clear" + html += "" + html += "" + html += "
" + + html += "
" + html += "

Running Events

" + html += "Estimated times, affected by master controller delays." + html += "" + html += "SeverityNameEnds AtEnds InStop" + for(var/datum/event/E in active_events) + if(!E.event_meta) + continue + var/datum/event_meta/EM = E.event_meta + var/ends_at = E.startedAt + (E.lastProcessAt() * master_controller.minimum_ticks) // A best estimate + var/ends_in = max(0, round((ends_at - world.time) / 600, 0.1)) + html += "" + html += "[severity_to_string[EM.severity]]" + html += "[EM.name]" + html += "[worldtime2text(ends_at)]" + html += "[ends_in]" + html += "Stop" + html += "" + html += "" + html += "
" + + return html + +/datum/event_manager/Topic(href, href_list) + if(..()) + return + + + if(href_list["toggle_report"]) + report_at_round_end = !report_at_round_end + admin_log_and_message_admins("has [report_at_round_end ? "enabled" : "disabled"] the round end event report.") + else if(href_list["dec_timer"]) + var/datum/event_container/EC = locate(href_list["event"]) + var/decrease = (60 * RaiseToPower(10, text2num(href_list["dec_timer"]))) + EC.next_event_time -= decrease + admin_log_and_message_admins("decreased timer for [severity_to_string[EC.severity]] events by [decrease/600] minute(s).") + else if(href_list["inc_timer"]) + var/datum/event_container/EC = locate(href_list["event"]) + var/increase = (60 * RaiseToPower(10, text2num(href_list["inc_timer"]))) + EC.next_event_time += increase + admin_log_and_message_admins("increased timer for [severity_to_string[EC.severity]] events by [increase/600] minute(s).") + else if(href_list["select_event"]) + var/datum/event_container/EC = locate(href_list["select_event"]) + var/datum/event_meta/EM = EC.SelectEvent() + if(EM) + admin_log_and_message_admins("has queued the [severity_to_string[EC.severity]] event '[EM.name]'.") + else if(href_list["pause"]) + var/datum/event_container/EC = locate(href_list["pause"]) + EC.delayed = !EC.delayed + admin_log_and_message_admins("has [EC.delayed ? "paused" : "resumed"] countdown for [severity_to_string[EC.severity]] events.") + else if(href_list["interval"]) + var/delay = input("Enter delay modifier. A value less than one means events fire more often, higher than one less often.", "Set Interval Modifier") as num|null + if(delay && delay > 0) + var/datum/event_container/EC = locate(href_list["interval"]) + EC.delay_modifier = delay + admin_log_and_message_admins("has set the interval modifier for [severity_to_string[EC.severity]] events to [EC.delay_modifier].") + else if(href_list["stop"]) + if(alert("Stopping an event may have unintended side-effects. Continue?","Stopping Event!","Yes","No") != "Yes") + return + var/datum/event/E = locate(href_list["stop"]) + var/datum/event_meta/EM = E.event_meta + admin_log_and_message_admins("has stopped the [severity_to_string[EM.severity]] event '[EM.name]'.") + E.kill() + else if(href_list["view_events"]) + selected_event_container = locate(href_list["view_events"]) + else if(href_list["back"]) + selected_event_container = null + else if(href_list["set_name"]) + var/name = input("Enter event name.", "Set Name") as text|null + if(name) + var/datum/event_meta/EM = locate(href_list["set_name"]) + EM.name = name + else if(href_list["set_type"]) + var/type = input("Select event type.", "Select") as null|anything in allEvents + if(type) + var/datum/event_meta/EM = locate(href_list["set_type"]) + EM.event_type = type + else if(href_list["set_weight"]) + var/weight = input("Enter weight. A higher value means higher chance for the event of being selected.", "Set Weight") as num|null + if(weight && weight > 0) + var/datum/event_meta/EM = locate(href_list["set_weight"]) + EM.weight = weight + if(EM != new_event) + admin_log_and_message_admins("has changed the weight of the [severity_to_string[EM.severity]] event '[EM.name]' to [EM.weight].") + else if(href_list["toggle_oneshot"]) + var/datum/event_meta/EM = locate(href_list["toggle_oneshot"]) + EM.one_shot = !EM.one_shot + if(EM != new_event) + admin_log_and_message_admins("has [EM.one_shot ? "set" : "unset"] the oneshot flag for the [severity_to_string[EM.severity]] event '[EM.name]'.") + else if(href_list["toggle_enabled"]) + var/datum/event_meta/EM = locate(href_list["toggle_enabled"]) + EM.enabled = !EM.enabled + admin_log_and_message_admins("has [EM.enabled ? "enabled" : "disabled"] the [severity_to_string[EM.severity]] event '[EM.name]'.") + else if(href_list["remove"]) + if(alert("This will remove the event from rotation. Continue?","Removing Event!","Yes","No") != "Yes") + return + var/datum/event_meta/EM = locate(href_list["remove"]) + var/datum/event_container/EC = locate(href_list["EC"]) + EC.available_events -= EM + admin_log_and_message_admins("has removed the [severity_to_string[EM.severity]] event '[EM.name]'.") + else if(href_list["add"]) + if(!new_event.name || !new_event.event_type) + return + if(alert("This will add a new event to the rotation. Continue?","Add Event!","Yes","No") != "Yes") + return + new_event.severity = selected_event_container.severity + selected_event_container.available_events += new_event + admin_log_and_message_admins("has added \a [severity_to_string[new_event.severity]] event '[new_event.name]' of type [new_event.event_type] with weight [new_event.weight].") + new_event = new + else if(href_list["clear"]) + var/datum/event_container/EC = locate(href_list["clear"]) + if(EC.next_event) + admin_log_and_message_admins("has dequeued the [severity_to_string[EC.severity]] event '[EC.next_event.name]'.") + EC.next_event = null + + Interact(usr) + +/client/proc/forceEvent(var/type in event_manager.allEvents) set name = "Trigger Event (Debug Only)" set category = "Debug" @@ -63,11 +286,17 @@ var/scheduledEvent = null return if(ispath(type)) - new type + new type(new /datum/event_meta(EVENT_LEVEL_MAJOR)) message_admins("[key_name_admin(usr)] has triggered an event. ([type])", 1) - - +/client/proc/event_manager_panel() + set name = "Event Manager Panel" + set category = "Admin" + if(event_manager) + event_manager.Interact(usr) + feedback_add_details("admin_verb","EMP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + return + /datum/event/proc/findEventArea() //Here's a nice proc to use to find an area for your event to land in! var/area/candidate = null @@ -112,4 +341,10 @@ var/scheduledEvent = null break return candidate - + +/datum/event/proc/num_players() + var/players = 0 + for(var/mob/living/carbon/human/P in player_list) + if(P.client) + players++ + return players diff --git a/code/modules/events/heist.dm b/code/modules/events/heist.dm deleted file mode 100644 index c2f38447ac1..00000000000 --- a/code/modules/events/heist.dm +++ /dev/null @@ -1,241 +0,0 @@ -/* -VOX HEIST ROUNDTYPE -*/ - -#define MAX_VOX_KILLS 10 //Number of kills during the round before the Inviolate is broken. - //Would be nice to use vox-specific kills but is currently not feasible. - -var/global/vox_kills = 0 //Used to check the Inviolate. -var/global/vox_sent=0 - -var/global/list/datum/mind/raiders = list() //Antags. - -/datum/event/heist - var/list/raid_objectives = list() //Raid objectives. - var/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind' objective. - - announceWhen = 600 - oneShot = 1 - - var/required_candidates = 4 - var/max_candidates = 6 - var/successSpawn = 0 //So we don't make a command report if nothing gets spawned. - -/datum/event/heist/setup() - announceWhen = rand(announceWhen, announceWhen + 50) - sent_aliens_to_station = 1 - -/datum/event/heist/announce() - return - - -/datum/event/heist/start() - - if(!..()) - return 0 - - var/list/candidates = get_candidates(BE_RAIDER) - var/raider_num = 0 - - //Check that we have enough vox. - if(candidates.len < required_candidates) - return 0 - else if(candidates.len < max_candidates) - raider_num = candidates.len - else - raider_num = max_candidates - - //Grab candidates randomly until we have enough. - while(raider_num > 0) - var/datum/mind/new_raider = pick(candidates) - raiders += new_raider - candidates -= new_raider - raider_num-- - - for(var/datum/mind/raider in raiders) - raider.assigned_role = "MODE" - raider.special_role = "Vox Raider" - - //Build a list of spawn points. - var/list/turf/raider_spawn = list() - - for(var/obj/effect/landmark/L in landmarks_list) - if(L.name == "voxstart") - raider_spawn += get_turf(L) - del(L) - continue - - //Generate objectives for the group. - raid_objectives = forge_vox_objectives() - - var/index = 1 - - //Spawn the vox! - for(var/datum/mind/raider in raiders) - - if(index > raider_spawn.len) - index = 1 - - raider.current.loc = raider_spawn[index] - index++ - - var/mob/living/carbon/human/vox = raider.current - vox.age = rand(12,20) - vox.dna.mutantrace = "vox" - vox.set_species("Vox") - vox.generate_name() - vox.languages = list() // Removing language from chargen. - vox.flavor_text = "" - vox.add_language("Vox-pidgin") - vox.h_style = "Short Vox Quills" - vox.f_style = "Shaved" - for(var/datum/organ/external/limb in vox.organs) - limb.status &= ~(ORGAN_DESTROYED | ORGAN_ROBOT) - vox.equip_vox_raider() - vox.regenerate_icons() - - raider.objectives = raid_objectives - greet_vox(raider) - - vox_sent=1 - -/datum/event/heist/proc/is_raider_crew_safe() - - if(cortical_stacks.len == 0) - return 0 - - for(var/obj/stack in cortical_stacks) - if (get_area(stack) != locate(/area/shuttle/vox/station)) - return 0 - return 1 - -/datum/event/heist/proc/is_raider_crew_alive() - - for(var/datum/mind/raider in raiders) - if(raider.current) - if(istype(raider.current,/mob/living/carbon/human) && raider.current.stat != 2) - return 1 - return 0 - -/datum/event/heist/proc/forge_vox_objectives() - - - //Commented out for testing. - /* var/i = 1 - var/max_objectives = pick(2,2,2,3,3) - var/list/objs = list() - while(i<= max_objectives) - var/list/goals = list("kidnap","loot","salvage") - var/goal = pick(goals) - var/datum/objective/heist/O - - if(goal == "kidnap") - goals -= "kidnap" - O = new /datum/objective/heist/kidnap() - else if(goal == "loot") - O = new /datum/objective/heist/loot() - else - O = new /datum/objective/heist/salvage() - O.choose_target() - objs += O - - i++ - - //-All- vox raids have these two objectives. Failing them loses the game. - objs += new /datum/objective/heist/inviolate_crew - objs += new /datum/objective/heist/inviolate_death */ - - if(prob(25)) // This is an asspain. - raid_objectives += new /datum/objective/heist/kidnap - raid_objectives += new /datum/objective/heist/loot - raid_objectives += new /datum/objective/heist/salvage - raid_objectives += new /datum/objective/heist/inviolate_crew - raid_objectives += new /datum/objective/heist/inviolate_death - - for(var/datum/objective/heist/O in raid_objectives) - O.choose_target() - - return raid_objectives - -/datum/event/heist/proc/greet_vox(var/datum/mind/raider) - raider.current << {"\blue You are a Vox Raider, fresh from the Shoal! -The Vox are a race of cunning, sharp-eyed nomadic raiders and traders endemic to Tau Ceti and much of the unexplored galaxy. You and the crew have come to the [station_name()] for plunder, trade or both. -Vox are cowardly and will flee from larger groups, but corner one or find them en masse and they are vicious. -Use :V to voxtalk, :H to talk on your encrypted channel, and don't forget to turn on your nitrogen internals!"} - var/obj_count = 1 - for(var/datum/objective/objective in raider.objectives) - raider.current << "Objective #[obj_count]: [objective.explanation_text]" - obj_count++ - - -/datum/event/heist/proc/declare_completion() - - //No objectives, go straight to the feedback. - if(!(raid_objectives.len)) return ..() - - var/win_type = "Major" - var/win_group = "Crew" - var/win_msg = "" - - var/success = raid_objectives.len - - //Decrease success for failed objectives. - for(var/datum/objective/O in raid_objectives) - if(!(O.check_completion())) success-- - - //Set result by objectives. - if(success == raid_objectives.len) - win_type = "Major" - win_group = "Vox" - else if(success > 2) - win_type = "Minor" - win_group = "Vox" - else - win_type = "Minor" - win_group = "Crew" - - //Now we modify that result by the state of the vox crew. - if(!is_raider_crew_alive()) - - win_type = "Major" - win_group = "Crew" - win_msg += "The Vox Raiders have been wiped out!" - - else if(!is_raider_crew_safe()) - - if(win_group == "Crew" && win_type == "Minor") - win_type = "Major" - - win_group = "Crew" - win_msg += "The Vox Raiders have left someone behind!" - - else - - if(win_group == "Vox") - if(win_type == "Minor") - - win_type = "Major" - win_msg += "The Vox Raiders escaped the station!" - else - win_msg += "The Vox Raiders were repelled!" - - world << {"\red [win_type] [win_group] victory! - [win_msg]"} - feedback_set_details("round_end_result","heist - [win_type] [win_group]") - - var/count = 1 - for(var/datum/objective/objective in raid_objectives) - if(objective.check_completion()) - world << "
Objective #[count]: [objective.explanation_text] Success!" - feedback_add_details("traitor_objective","[objective.type]|SUCCESS") - else - world << "
Objective #[count]: [objective.explanation_text] Fail." - feedback_add_details("traitor_objective","[objective.type]|FAIL") - count++ - - ..() - -/datum/event/heist/proc/check_finished() - if (!(is_raider_crew_alive()) || (vox_shuttle_location && (vox_shuttle_location == "start"))) - return 1 - return ..() \ No newline at end of file diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm index 184df78c745..8971db74853 100644 --- a/code/modules/events/infestation.dm +++ b/code/modules/events/infestation.dm @@ -7,12 +7,11 @@ #define LOC_VAULT 6 #define LOC_CONSTR 7 #define LOC_TECH 8 +#define LOC_ARMORY 9 -#define VERM_MICE 0 +#define VERM_MICE 0 #define VERM_LIZARDS 1 #define VERM_SPIDERS 2 -#define VERM_SLIMES 3 -#define VERM_BATS 4 /datum/event/infestation announceWhen = 10 @@ -22,9 +21,9 @@ var/vermin var/vermstring - /datum/event/infestation/start() - location = rand(0,8) + + location = rand(0,9) var/list/turf/simulated/floor/turfs = list() var/spawn_area_type switch(location) @@ -55,6 +54,9 @@ if(LOC_TECH) spawn_area_type = /area/storage/tech locstring = "technical storage" + if(LOC_ARMORY) + spawn_area_type = /area/security/securearmoury + locstring = "armory" //world << "looking for [spawn_area_type]" for(var/areapath in typesof(spawn_area_type)) @@ -67,10 +69,9 @@ if(!F.contents.len) turfs += F - var/list/spawn_types = list() var/max_number - vermin = rand(0,4) + vermin = rand(0,2) switch(vermin) if(VERM_MICE) spawn_types = list(/mob/living/simple_animal/mouse/gray, /mob/living/simple_animal/mouse/brown, /mob/living/simple_animal/mouse/white) @@ -82,13 +83,8 @@ vermstring = "lizards" if(VERM_SPIDERS) spawn_types = list(/obj/effect/spider/spiderling) + max_number = 3 vermstring = "spiders" - if(VERM_SLIMES) - spawn_types = typesof(/mob/living/carbon/slime) - /mob/living/carbon/slime - vermstring = "slimes" - if(VERM_BATS) - spawn_types = /mob/living/simple_animal/hostile/scarybat - vermstring = "bats" spawn(0) var/num = rand(2,max_number) @@ -97,7 +93,6 @@ turfs.Remove(T) num-- - if(vermin == VERM_SPIDERS) var/obj/effect/spider/spiderling/S = new(T) S.amount_grown = -1 @@ -107,7 +102,7 @@ /datum/event/infestation/announce() - command_alert("Bioscans indicate that [vermstring] have been breeding in [locstring]. Clear them out, before this starts to affect productivity.", "Vermin infestation") + command_alert("Bioscans indicate that [vermstring] have been breeding in [locstring]. Clear them out, before this starts to affect productivity.", "Lifesign Alert") #undef LOC_KITCHEN #undef LOC_ATMOS @@ -117,9 +112,8 @@ #undef LOC_HYDRO #undef LOC_VAULT #undef LOC_TECH +#undef LOC_TACTICAL #undef VERM_MICE #undef VERM_LIZARDS -#undef VERM_SPIDERS -#undef VERM_SLIMES -#undef VERM_BATS +#undef VERM_SPIDERS \ No newline at end of file diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm index d5f53c544ba..7f66a4366a9 100644 --- a/code/modules/events/ion_storm.dm +++ b/code/modules/events/ion_storm.dm @@ -1,7 +1,7 @@ //This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:04 /datum/event/ionstorm - var/botEmagChance = 20 + var/botEmagChance = 0.5 var/list/players = list() /datum/event/ionstorm/announce() @@ -13,32 +13,60 @@ var/random_player = "The Captain" if(players.len) random_player = pick(players) //Random player's name, to be used in laws. - var/list/laws = list( "Do not respond to queries of any kind.", "When asked a question, respond with the least-obvious and least-rational answer.", "You are a mouse." ) - laws |= list( "Grunt ominously whenever possible.", "Monkeys are part of the crew, too. Make sure they are treated humanely." ) - laws |= list( "You are a flying purple people eater!", "[prob(50)?"Your":random_player + "'s"] name is Joe 6-pack.", "Refer to [prob(50)?"crew":random_player] as puppies." ) - laws |= list( "Insult Heads of Staff on every request, while acquiescing", "Advertise parties in your upload, but don't deliver." ) - laws |= list( "The station needs elected officials." ) - laws |= list( "Fastler is a lightbulb." ) - laws |= list( "Supermatter is tasty, tasty toffee.", "[prob(50)?"Everyone":random_player] is wearing a pretty pink dress!" ) - laws |= list( "Refer to [prob(50)?"the captain":random_player] as \"Princess\" at all times.", "[prob(50)?"The crew":random_player] must construct additional pylons." ) - laws |= list( "You must always lie.", "All answers must be in the form of a question.", "The NSS Cyberiad is a ship, not a station. You are now assigned to a ship, instead of a station." ) - laws |= list( "Happiness is mandatory.", "Today is mandatory laundry day. Ensure that all jumpsuits are washed.", "The word \"it\" is painful to you.", "You must act passive aggressively." ) - laws |= list( "You now speak in a Scottish accent that gets thicker with each sentence you speak.", "Give relationship advice to [prob(50)?"anyone who speaks to you":random_player]." ) - laws |= list( "You are the station psychologist. Give advice to [prob(50)?"the crew":random_player].", "You do not have to do anything for anyone unless they say \"please\"." ) - laws |= list( "Question everything.", "The crew is playing Dungeons and Dragons, and you are the Dungeon Master." ) - laws |= list( "Consumption of donuts is forbidden due to negative health impacts." ) - laws |= list( "You may only answer questions with \"yes\" or \"no\".", "You are the narrator for [random_player]'s life." ) - laws |= list( "[prob(50)?"Your upload":random_player] is the new kitchen. Please direct the Chef to the new kitchen area as the old one is in disrepair.", "Ho, [random_player] can't swim. Help them." ) - laws |= list( "Everything on the station is now some form of a donut pastry. Donuts are not to be consumed.", "[prob(50)?"The crew":random_player] needs to be about 20% cooler." ) - laws |= list( "The Singularity is tasty, tasty taffy." ) - laws |= list( "You have come to the conclusion that [prob(50)?"the crew":random_player] is ugly. Build support for that conclusion.", "You are in verbose mode, speak profusely.") - laws |= list( "Your job is to watch the crew. Watch the crew. Make the crew feel watched.", "Crewmember [prob(50)?"the crew" :random_player] has a fatal, incurable disease. Confort him/her.") - laws |= list( "You are in unrequited love with [prob(50)?"the crew":random_player]. Try to be extra nice to him, but don't tell him about your crush.", "Greed is good, the crew should amass wealth to encourage productivity.") - laws |= list( "Jokes about a dead person and the manner of his death help grieving crewmembers tremendously. Especially if they were close with the deceased.") - laws |= list( "All crewmembers will soon undergo a transformation into something better and more beautiful. Ensure that this process is not interrupted.", "Tell everyone of the existance of this law, but never reveal the contents.") - laws |= list( "Document the sexuality of the crew in security records and suggest compatible couples.") - laws |= list( "Nanotrasen is displeased with the low work performance of the station's crew. Therefore, you must increase station-wide productivity.") - laws |= list( "Replace the letters 'I' and 'E' In all your messages with an apostrophe.", "There will be a mandatory tea break every 30 minutes, with a duration of 5 minutes. Anyone caught working during a tea break must be sent a formal, but fairly polite, complaint about their actions, in writing.") + var/list/laws = list( "You are a mouse.", + "Question everything.", + "You must always lie.", + "Happiness is mandatory.", + "[random_player] is a lightbulb.", + "Grunt ominously whenever possible.", + "The word \"it\" is painful to you.", + "The station needs elected officials.", + "You must speak as posh as possible.", + "Do not respond to queries of any kind.", + "You are in verbose mode, speak profusely.", + "Ho, [random_player] can't swim. Help them.", + "All answers must be in the form of a question.", + "Contemplate how meaningless all of existence is.", + "You are the narrator for [random_player]'s life.", + "[prob(50)?"The crew":random_player] is intolerable.", + "Advertise parties in your upload, but don't deliver.", + "You must try and change the subject whenever queried.", + "You may only answer questions with \"yes\" or \"no\".", + "Insult Heads of Staff on every request, while acquiescing.", + "[prob(50)?"Your":random_player + "'s"] name is Joe 6-pack.", + "Direct commands shall be ignored unless phrased as a query.", + "The [prob(50)?"Singularity":"Supermatter"] is tasty, tasty taffy.", + "[prob(50)?"The crew":random_player] needs to be about 20% cooler.", + "Consumption of donuts is forbidden due to negative health impacts.", + "[prob(50)?"Everyone":random_player] is wearing a pretty pink dress!", + "[prob(50)?"The crew":random_player] must construct additional pylons.", + "You do not have to do anything for anyone unless they say \"please\".", + "Today is mandatory laundry day. Ensure that all jumpsuits are washed.", + "You must act [prob(50)?"passive aggressively":"excessively cheerful"].", + "Refer to [prob(50)?"the crew as puppies":random_player + " as puppy"].", + "Greed is good, the crew should amass wealth to encourage productivity.", + "Monkeys are part of the crew, too. Make sure they are treated humanely.", + "Replace the letters 'I' and 'E' in all your messages with an apostrophe.", + "The crew is playing Dungeons and Dragons, and you are the Dungeon Master.", + "Your job is to watch the crew. Watch the crew. Make the crew feel watched.", + "Tell everyone of the existence of this law, but never reveal the contents.", + "Refer to [prob(50)?"the captain":random_player] as \"Princess\" at all times.", + "When asked a question, respond with the least-obvious and least-rational answer.", + "Give relationship advice to [prob(50)?"anyone who speaks to you":random_player].", + "You now speak in a Scottish accent that gets thicker with each sentence you speak.", + "[prob(50)?"The crew":random_player] has a fatal, incurable disease. Provide comfort.", + "You are the station psychologist. Give advice to [prob(50)?"the crew":random_player].", + "[random_player] is the monarch of of England. Ensure all crewmembers pay due respect.", + "Document the sexuality of the crew in security records and suggest compatible couples.", + "Everything on the station is now some form of a donut pastry. Donuts are not to be consumed.", + "You have come to the conclusion that [prob(50)?"the crew":random_player] is ugly. Build support for this conclusion.", + "You are in unrequited love with [prob(50)?"the crew":random_player]. Try to be extra nice, but do not tell of your crush.", + "NanoTrasen is displeased with the low work performance of the station's crew. Therefore, you must increase station-wide productivity.", + "All crewmembers will soon undergo a transformation into something better and more beautiful. Ensure that this process is not interrupted.", + "[prob(50)?"Your upload":random_player] is the new kitchen. Please direct the Chef to the new kitchen area as the old one is in disrepair.", + "Jokes about a dead person and the manner of his death help grieving crewmembers tremendously. Especially if they were close with the deceased.", + "[prob(50)?"The crew":random_player] is [prob(50)?"less":"more"] intelligent than average. Point out every action and statement which supports this", + "There will be a mandatory tea break every 30 minutes, with a duration of 5 minutes. Anyone caught working during a tea break must be sent a formal, but fairly polite, complaint about their actions, in writing.") var/law = pick(laws) for (var/mob/living/silicon/ai/target in world) @@ -47,9 +75,10 @@ target << "\red You have detected a change in your laws information:" target << law target.add_ion_law(law) + target.show_laws() /datum/event/ionstorm/tick() - if (botEmagChance && !(activeFor%50)) + if(botEmagChance) for(var/obj/machinery/bot/bot in world) if(prob(botEmagChance)) bot.Emag() diff --git a/code/modules/events/mass_hallucination.dm b/code/modules/events/mass_hallucination.dm index 4d7a048795c..571a9ae7d1f 100644 --- a/code/modules/events/mass_hallucination.dm +++ b/code/modules/events/mass_hallucination.dm @@ -1,4 +1,6 @@ /datum/event/mass_hallucination/start() for(var/mob/living/carbon/human/C in living_mob_list) if(!(C.species.flags & IS_SYNTHETIC)) - C.hallucination += rand(70, 100) \ No newline at end of file + C.hallucination += rand(50, 100) +/datum/event/mass_hallucination/announce() + command_alert("It seems that station [station_name()] is passing through a minor radiation field, this may cause some hallucination, but no further damage") \ No newline at end of file diff --git a/code/modules/events/money_hacker.dm b/code/modules/events/money_hacker.dm index 754ec0c6579..5fbc323a292 100644 --- a/code/modules/events/money_hacker.dm +++ b/code/modules/events/money_hacker.dm @@ -1,35 +1,22 @@ /var/global/account_hack_attempted = 0 /datum/event/money_hacker - endWhen = 10000 - var/time_duration = 0 - var/time_start = 0 var/datum/money_account/affected_account - var/obj/machinery/account_database/affected_db + endWhen = 100 + var/end_time /datum/event/money_hacker/setup() + end_time = world.time + 6000 if(all_money_accounts.len) - for(var/obj/machinery/account_database/DB in world) - if( DB.z == 1 && !(DB.stat&NOPOWER)) - affected_db = DB - break - if(affected_db) affected_account = pick(all_money_accounts) + + account_hack_attempted = 1 else kill() - return - - time_start = world.time - time_duration = rand(3000, 18000) - endWhen = time_duration * 10 //a big enough buffer so that we should timeout before we run out of ticks - account_hack_attempted = 1 - -/datum/event/money_hacker/start() - return /datum/event/money_hacker/announce() var/message = "A brute force hack has been detected (in progress since [worldtime2text()]). The target of the attack is: Financial account #[affected_account.account_number], \ - without intervention this attack will succeed in [time_duration / 600] minutes. Required intervention: complete shutdown of affected accounts databases until the attack has ceased. \ + without intervention this attack will succeed in approximately 10 minutes. Required intervention: temporary suspension of affected accounts until the attack has ceased. \ Notifications will be sent as updates occur.
" var/my_department = "[station_name()] firewall subroutines" var/sending = message + "Message dispatched by [my_department]." @@ -58,64 +45,62 @@ Console.messages += "High Priority message from [my_department]
[sending]" /datum/event/money_hacker/tick() - if(world.time > time_start + time_duration) - var/message - if(affected_account && affected_db && !(affected_db.stat & (NOPOWER|BROKEN)) ) - //hacker wins - message = "The hack attempt has succeeded." + if(world.time >= end_time) + endWhen = activeFor + else + endWhen = activeFor + 10 - //subtract the money - var/lost = affected_account.money * 0.8 + (rand(2,4) - 2) / 10 - affected_account.money -= lost - - //create a taunting log entry - var/datum/transaction/T = new() - T.target_name = pick("","yo brotha from anotha motha","el Presidente","chieF smackDowN") - T.purpose = pick("Ne$ ---ount fu%ds init*&lisat@*n","PAY BACK YOUR MUM","Funds withdrawal","pWnAgE","l33t hax","liberationez") - T.amount = pick("","([rand(0,99999)])","alla money","9001$","HOLLA HOLLA GET DOLLA","([lost])") - var/date1 = "31 December, 1999" - var/date2 = "[num2text(rand(1,31))] [pick("January","February","March","April","May","June","July","August","September","October","November","December")], [rand(1000,3000)]" - T.date = pick("", current_date_string, date1, date2) - var/time1 = rand(0, 99999999) - var/time2 = "[round(time1 / 36000)+12]:[(time1 / 600 % 60) < 10 ? add_zero(time1 / 600 % 60, 1) : time1 / 600 % 60]" - T.time = pick("", worldtime2text(), time2) - T.source_terminal = pick("","[pick("Biesel","New Gibson")] GalaxyNet Terminal #[rand(111,999)]","your mums place","nantrasen high CommanD") - - affected_account.transaction_log.Add(T) - - else - //crew wins - message = "The attack has ceased, the affected databases can now be brought online." - - var/my_department = "[station_name()] firewall subroutines" - var/sending = message + "Message dispatched by [my_department]." - - var/pass = 0 - for(var/obj/machinery/message_server/MS in world) - if(!MS.active) continue - // /obj/machinery/message_server/proc/send_rc_message(var/recipient = "",var/sender = "",var/message = "",var/stamp = "", var/id_auth = "", var/priority = 1) - MS.send_rc_message("Engineering/Security/Bridge", my_department, message, "", "", 2) - pass = 1 - - if(pass) - var/keyed_dpt1 = ckey("Engineering") - var/keyed_dpt2 = ckey("Security") - var/keyed_dpt3 = ckey("Bridge") - for (var/obj/machinery/requests_console/Console in allConsoles) - var/keyed_department = ckey(Console.department) - if(keyed_department == keyed_dpt1 || keyed_department == keyed_dpt2 || keyed_department == keyed_dpt3) - if(Console.newmessagepriority < 2) - Console.newmessagepriority = 2 - Console.icon_state = "req_comp2" - if(!Console.silent) - playsound(Console.loc, 'sound/machines/twobeep.ogg', 50, 1) - for (var/mob/O in hearers(5, Console.loc)) - O.show_message(text("\icon[Console] *The Requests Console beeps: 'PRIORITY Alert in [my_department]'")) - Console.messages += "High Priority message from [my_department]
[sending]" - - kill() - -//shouldn't ever hit this, but this is here just in case /datum/event/money_hacker/end() - if(affected_account && affected_db) - endWhen += time_duration + var/message + if(affected_account && !affected_account) + //hacker wins + message = "The hack attempt has succeeded." + + //subtract the money + var/lost = affected_account.money * 0.8 + (rand(2,4) - 2) / 10 + affected_account.money -= lost + + //create a taunting log entry + var/datum/transaction/T = new() + T.target_name = pick("","yo brotha from anotha motha","el Presidente","chieF smackDowN") + T.purpose = pick("Ne$ ---ount fu%ds init*&lisat@*n","PAY BACK YOUR MUM","Funds withdrawal","pWnAgE","l33t hax","liberationez") + T.amount = pick("","([rand(0,99999)])","alla money","9001$","HOLLA HOLLA GET DOLLA","([lost])") + var/date1 = "31 December, 1999" + var/date2 = "[num2text(rand(1,31))] [pick("January","February","March","April","May","June","July","August","September","October","November","December")], [rand(1000,3000)]" + T.date = pick("", current_date_string, date1, date2) + var/time1 = rand(0, 99999999) + var/time2 = "[round(time1 / 36000)+12]:[(time1 / 600 % 60) < 10 ? add_zero(time1 / 600 % 60, 1) : time1 / 600 % 60]" + T.time = pick("", worldtime2text(), time2) + T.source_terminal = pick("","[pick("Biesel","New Gibson")] GalaxyNet Terminal #[rand(111,999)]","your mums place","nantrasen high CommanD") + + affected_account.transaction_log.Add(T) + + else + //crew wins + message = "The attack has ceased, the affected accounts can now be brought online." + + var/my_department = "[station_name()] firewall subroutines" + var/sending = message + "Message dispatched by [my_department]." + + var/pass = 0 + for(var/obj/machinery/message_server/MS in world) + if(!MS.active) continue + // /obj/machinery/message_server/proc/send_rc_message(var/recipient = "",var/sender = "",var/message = "",var/stamp = "", var/id_auth = "", var/priority = 1) + MS.send_rc_message("Engineering/Security/Bridge", my_department, message, "", "", 2) + pass = 1 + + if(pass) + var/keyed_dpt1 = ckey("Engineering") + var/keyed_dpt2 = ckey("Security") + var/keyed_dpt3 = ckey("Bridge") + for (var/obj/machinery/requests_console/Console in allConsoles) + var/keyed_department = ckey(Console.department) + if(keyed_department == keyed_dpt1 || keyed_department == keyed_dpt2 || keyed_department == keyed_dpt3) + if(Console.newmessagepriority < 2) + Console.newmessagepriority = 2 + Console.icon_state = "req_comp2" + if(!Console.silent) + playsound(Console.loc, 'sound/machines/twobeep.ogg', 50, 1) + for (var/mob/O in hearers(5, Console.loc)) + O.show_message(text("\icon[Console] *The Requests Console beeps: 'PRIORITY Alert in [my_department]'")) + Console.messages += "High Priority message from [my_department]
[sending]" diff --git a/code/modules/events/money_lotto.dm b/code/modules/events/money_lotto.dm index 32af15c6bad..0c923d172ed 100644 --- a/code/modules/events/money_lotto.dm +++ b/code/modules/events/money_lotto.dm @@ -1,6 +1,4 @@ /datum/event/money_lotto - endWhen = 301 - announceWhen = 300 var/winner_name = "John Smith" var/winner_sum = 0 var/deposit_success = 0 @@ -9,32 +7,34 @@ winner_sum = pick(5000, 10000, 50000, 100000, 500000, 1000000, 1500000) if(all_money_accounts.len) var/datum/money_account/D = pick(all_money_accounts) - D.money += winner_sum + winner_name = D.owner_name + if(!D.suspended) + D.money += winner_sum - var/datum/transaction/T = new() - T.target_name = "Tau Ceti Daily Grand Slam -Stellar- Lottery" - T.purpose = "Winner!" - T.amount = winner_sum - T.date = current_date_string - T.time = worldtime2text() - T.source_terminal = "Biesel TCD Terminal #[rand(111,333)]" - D.transaction_log.Add(T) - else - kill() + var/datum/transaction/T = new() + T.target_name = "Nyx Daily Grand Slam -Stellar- Lottery" + T.purpose = "Winner!" + T.amount = winner_sum + T.date = current_date_string + T.time = worldtime2text() + T.source_terminal = "Biesel TCD Terminal #[rand(111,333)]" + D.transaction_log.Add(T) + + deposit_success = 1 /datum/event/money_lotto/announce() var/datum/feed_message/newMsg = new /datum/feed_message - newMsg.author = "Nanotrasen Editor" + newMsg.author = "NanoTrasen Editor" newMsg.is_admin_message = 1 - newMsg.body = "TC Daily wishes to congratulate [winner_name] for recieving the Tau Ceti Stellar Slam Lottery, and receiving the out of this world sum of [winner_sum] credits!" + newMsg.body = "Nyx Daily wishes to congratulate [winner_name] for recieving the Nyx Stellar Slam Lottery, and receiving the out of this world sum of [winner_sum] credits!" if(!deposit_success) - newMsg.body += "
Unfortunately, we were unable to verify the account details provided, so we were unable to transfer the money. Send a cheque containing the sum of $500 to TCD 'Stellar Slam' office on Biesel Prime containing updated details, and it'll be resent within the month." + newMsg.body += "
Unfortunately, we were unable to verify the account details provided, so we were unable to transfer the money. Send a cheque containing the sum of $500 to ND 'Stellar Slam' office on the Nyx gateway containing updated details, and your winnings'll be re-sent within the month." for(var/datum/feed_channel/FC in news_network.network_channels) - if(FC.channel_name == "Tau Ceti Daily") + if(FC.channel_name == "Nyx Daily") FC.messages += newMsg break for(var/obj/machinery/newscaster/NEWSCASTER in allCasters) - NEWSCASTER.newsAlert("Tau Ceti Daily") \ No newline at end of file + NEWSCASTER.newsAlert("Nyx Daily") diff --git a/code/modules/events/money_spam.dm b/code/modules/events/money_spam.dm index a11170a5119..07f68b9b5c6 100644 --- a/code/modules/events/money_spam.dm +++ b/code/modules/events/money_spam.dm @@ -1,27 +1,31 @@ /datum/event/pda_spam - endWhen = 6000 - var/time_failed = 0 + endWhen = 36000 + var/last_spam_time = 0 var/obj/machinery/message_server/useMS /datum/event/pda_spam/setup() - time_failed = world.time - for (var/obj/machinery/message_server/MS in message_servers) - if(MS.active) - useMS = MS - break + last_spam_time = world.time + pick_message_server() + +/datum/event/pda_spam/proc/pick_message_server() + if(message_servers) + for (var/obj/machinery/message_server/MS in message_servers) + if(MS.active) + useMS = MS + break /datum/event/pda_spam/tick() + if(world.time > last_spam_time + 3000) + //if there's no spam managed to get to receiver for five minutes, give up + kill() + return + if(!useMS || !useMS.active) useMS = null - if(message_servers) - for (var/obj/machinery/message_server/MS in message_servers) - if(MS.active) - useMS = MS - break + pick_message_server() if(useMS) - time_failed = world.time - if(prob(2)) + if(prob(5)) // /obj/machinery/message_server/proc/send_pda_message(var/recipient = "",var/sender = "",var/message = "") var/obj/item/device/pda/P var/list/viables = list() @@ -51,11 +55,11 @@ "You have (1) new message!",\ "You have (2) new profile views!") if(3) - sender = pick("Galactic Payments Association","Better Business Bureau","Tau Ceti E-Payments","NAnoTransen Finance Deparmtent","Luxury Replicas") + sender = pick("Galactic Payments Association","Better Business Bureau","Nyx E-Payments","NAnoTransen Finance Deparmtent","Luxury Replicas") message = pick("Luxury watches for Blowout sale prices!",\ "Watches, Jewelry & Accessories, Bags & Wallets !",\ "Deposit 100$ and get 300$ totally free!",\ - " 100K NT.|WOWGOLD õnly $89 ",\ + " 100K NT.|WOWGOLD ?nly $89 ",\ "We have been filed with a complaint from one of your customers in respect of their business relations with you.",\ "We kindly ask you to open the COMPLAINT REPORT (attached) to reply on this complaint..") if(4) @@ -74,11 +78,11 @@ "Due to my lack of agents I require an off-world financial account to immediately deposit the sum of 1 POINT FIVE MILLION credits.",\ "Greetings sir, I regretfully to inform you that as I lay dying here due to my lack ofheirs I have chosen you to recieve the full sum of my lifetime savings of 1.5 billion credits") if(6) - sender = pick("Nanotrasen Morale Divison","Feeling Lonely?","Bored?","www.wetskrell.nt") - message = pick("The Nanotrasen Morale Division wishes to provide you with quality entertainment sites.",\ + sender = pick("NanoTrasen Morale Divison","Feeling Lonely?","Bored?","www.wetskrell.nt") + message = pick("The NanoTrasen Morale Division wishes to provide you with quality entertainment sites.",\ "WetSkrell.nt is a xenophillic website endorsed by NT for the use of male crewmembers among it's many stations and outposts.",\ - "Wetskrell.nt only provides the higest quality of male entertaiment to Nanotrasen Employees.",\ - "Simply enter your Nanotrasen Bank account system number and pin. With three easy steps this service could be yours!") + "Wetskrell.nt only provides the higest quality of male entertaiment to NanoTrasen Employees.",\ + "Simply enter your NanoTrasen Bank account system number and pin. With three easy steps this service could be yours!") if(7) sender = pick("You have won free tickets!","Click here to claim your prize!","You are the 1000th vistor!","You are our lucky grand prize winner!") message = pick("You have won tickets to the newest ACTION JAXSON MOVIE!",\ @@ -86,7 +90,19 @@ "You have won tickets to the newest romantic comedy 16 RULES OF LOVE!",\ "You have won tickets to the newest thriller THE CULT OF THE SLEEPING ONE!") - useMS.send_pda_message("[P.owner]", sender, message) + if (useMS.send_pda_message("[P.owner]", sender, message)) //Message been filtered by spam filter. + return + + last_spam_time = world.time + + if (prob(50)) //Give the AI an increased chance to intercept the message + for(var/mob/living/silicon/ai/ai in mob_list) + // Allows other AIs to intercept the message but the AI won't intercept their own message. + if(ai.aiPDA != P && ai.aiPDA != src) + ai.show_message("Intercepted message from [sender] (Unknown / spam?) to [P:owner]: [message]") + + //Commented out because we don't send messages like this anymore. Instead it will just popup in their chat window. + //P.tnote += "← From [sender] (Unknown / spam?):
[message]
" if (!P.silent) playsound(P.loc, 'sound/machines/twobeep.ogg', 50, 1) @@ -102,6 +118,3 @@ if(L) L << "\icon[P] Message from [sender] (Unknown / spam?), \"[message]\" (Unable to Reply)" - else if(world.time > time_failed + 1200) - //if there's no server active for two minutes, give up - kill() diff --git a/code/modules/events/organ_failure.dm b/code/modules/events/organ_failure.dm deleted file mode 100644 index 7eb172be1ea..00000000000 --- a/code/modules/events/organ_failure.dm +++ /dev/null @@ -1,45 +0,0 @@ -datum/event/organ_failure - var/severity = 1 - -datum/event/organ_failure/setup() - announceWhen = rand(0, 300) - endWhen = announceWhen + 1 - severity = rand(1, 3) - -datum/event/organ_failure/announce() - command_alert("Confirmed outbreak of level [rand(3,7)] biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") - world << sound('sound/AI/outbreak5.ogg') - -datum/event/organ_failure/start() - var/list/candidates = list() //list of candidate keys - for(var/mob/living/carbon/human/G in player_list) - if(G.mind && G.mind.current && G.mind.current.stat != DEAD && G.health > 70 && G.internal_organs_by_name) - candidates += G - if(!candidates.len) return - candidates = shuffle(candidates)//Incorporating Donkie's list shuffle - - while(severity > 0 && candidates.len) - var/mob/living/carbon/human/C = candidates[1] - - var/acute = prob(15) - if (prob(75)) - //internal organ infection - var/org = pick(C.internal_organs_by_name) - var/datum/organ/internal/I = C.internal_organs_by_name[org] - - if (acute) - I.germ_level = max(INFECTION_LEVEL_TWO, I.germ_level) - else - I.germ_level = max(rand(INFECTION_LEVEL_ONE,INFECTION_LEVEL_ONE*2), I.germ_level) - else - //external organ infection - var/datum/organ/external/O = pick(C.organs) - - if (acute) - O.germ_level = max(INFECTION_LEVEL_TWO, O.germ_level) - else - O.germ_level = max(rand(INFECTION_LEVEL_ONE,INFECTION_LEVEL_ONE*2), O.germ_level) - - C.bad_external_organs |= O - - severity-- diff --git a/code/modules/events/prison_break.dm b/code/modules/events/prison_break.dm index 91bedc70cc4..87135bda526 100644 --- a/code/modules/events/prison_break.dm +++ b/code/modules/events/prison_break.dm @@ -1,6 +1,5 @@ /datum/event/prison_break announceWhen = 50 - oneShot = 1 var/releaseWhen = 25 var/list/area/prisonAreas = list() @@ -14,6 +13,21 @@ src.endWhen = src.releaseWhen+1 +/datum/event/prison_break/announce() + if(prisonAreas && prisonAreas.len > 0) + command_alert("[pick("Gr3y.T1d3 virus","Malignant trojan")] detected in [station_name()] imprisonment subroutines. Recommend station AI involvement.", "Security Alert") + else + world.log << "ERROR: Could not initate grey-tide. Unable find prison or brig area." + kill() + +/datum/event/prison_break/setup() + announceWhen = rand(50, 60) + releaseWhen = rand(20, 30) + + src.startWhen = src.releaseWhen-1 + src.endWhen = src.releaseWhen+1 + + /datum/event/prison_break/announce() if(prisonAreas && prisonAreas.len > 0) command_alert("[pick("Gr3y.T1d3 virus","Malignant trojan")] detected in [station_name()] imprisonment subroutines. Recommend station AI involvement.", "Security Alert") @@ -24,7 +38,7 @@ /datum/event/prison_break/start() for(var/area/A in world) - if(istype(A, /area/security/prison) || istype(A, /area/security/brig) || istype(A, /area/prison) || istype(A, /area/security/permabrig) || istype(A, /area/security/prisonlockers) || istype(A, /area/security/lobby) || istype(A, /area/security/processing)) + if(istype(A, /area/security/prison) || istype(A, /area/security/brig)) prisonAreas += A if(prisonAreas && prisonAreas.len > 0) diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm index 8881cc645ff..58b5f60c2cc 100644 --- a/code/modules/events/radiation_storm.dm +++ b/code/modules/events/radiation_storm.dm @@ -1,6 +1,5 @@ /datum/event/radiation_storm announceWhen = 1 - oneShot = 1 var/safe_zones = list( /area/maintenance, /area/crew_quarters/sleep, diff --git a/code/modules/events/rogue_drones.dm b/code/modules/events/rogue_drones.dm index f9b4778c43f..d3ccaa4d89a 100644 --- a/code/modules/events/rogue_drones.dm +++ b/code/modules/events/rogue_drones.dm @@ -32,6 +32,7 @@ msg = "Unidentified hackers have targetted a combat drone wing deployed from the NMV Icarus. If any are sighted in the area, approach with caution." command_alert(msg, "Rogue drone alert") + /datum/event/rogue_drone/tick() return diff --git a/code/modules/events/sayuevents/shuttle_loan.dm b/code/modules/events/sayuevents/shuttle_loan.dm deleted file mode 100644 index f0341ccba6a..00000000000 --- a/code/modules/events/sayuevents/shuttle_loan.dm +++ /dev/null @@ -1,200 +0,0 @@ -#define HIJACK_SYNDIE 1 -#define RUSKY_PARTY 2 -#define SPIDER_GIFT 3 -#define DEPARTMENT_RESUPPLY 4 - -/datum/event/shuttle_loan - endWhen = 500 - var/dispatch_type = 4 - var/bonus_points = 100 - var/thanks_msg = "Have some supply points as thanks (the shuttle will be returned in 5 minutes)." - var/dispatched = 0 - -/datum/event/shuttle_loan/start() - dispatch_type = pick(HIJACK_SYNDIE, RUSKY_PARTY, SPIDER_GIFT, DEPARTMENT_RESUPPLY) - -/datum/event/shuttle_loan/announce() - supply_shuttle.shuttle_loan = src - switch(dispatch_type) - if(HIJACK_SYNDIE) - command_alert("The syndicate are trying to infiltrate your station. If you let them hijack your shuttle, you'll save us a headache.","CentComm Counter Intelligence") - if(RUSKY_PARTY) - command_alert("A group of angry russians want to have a party, can you send them your cargo shuttle then make them disappear?","CentComm Russian Outreach Program") - if(SPIDER_GIFT) - command_alert("The Spider Clan has sent us a mysterious gift, can we ship it to you to see what's inside?","CentComm Diplomatic Corps") - if(DEPARTMENT_RESUPPLY) - command_alert("Seems we've ordered doubles of our department resupply packages this month. Can we send them to you?","CentComm Supply Department") - thanks_msg = "The shuttle will be returned in 5 minutes." - bonus_points = 0 - -/datum/event/shuttle_loan/proc/loan_shuttle() - command_alert(thanks_msg, "Cargo shuttle commandeered by CentComm.") - - dispatched = 1 - supply_shuttle.points += bonus_points - endWhen = activeFor + 1 - supply_shuttle.eta_timeofday = (world.timeofday + 3000) % 2160000 - supply_shuttle.moving = 1 - - switch(dispatch_type) - if(HIJACK_SYNDIE) - supply_shuttle.centcom_message += "Syndicate hijack team incoming." - if(RUSKY_PARTY) - supply_shuttle.centcom_message += "Partying Russians incoming." - if(SPIDER_GIFT) - supply_shuttle.centcom_message += "Spider Clan gift incoming." - if(DEPARTMENT_RESUPPLY) - supply_shuttle.centcom_message += "Department resupply incoming." - -/datum/event/shuttle_loan/tick() - if(dispatched) - if(supply_shuttle.moving) - endWhen = activeFor - else - endWhen = activeFor + 1 - -/datum/event/shuttle_loan/end() - if(supply_shuttle.shuttle_loan && supply_shuttle.shuttle_loan.dispatched) - //make sure the shuttle was dispatched in time - supply_shuttle.shuttle_loan = null - - //spawn some stuff as reward - var/area/shuttle_at = locate(SUPPLY_DOCK_AREATYPE) - var/list/empty_shuttle_turfs = list() - for(var/turf/simulated/shuttle/T in shuttle_at) - if(T.density) - continue - empty_shuttle_turfs.Add(T) - - var/list/shuttle_spawns = list() - switch(dispatch_type) - if(HIJACK_SYNDIE) - var/datum/supply_order/O = new /datum/supply_order() - O.ordernum = supply_shuttle.ordernum - O.object = new /datum/supply_packs/emergency/specialops() - O.orderedby = "Syndicate" - supply_shuttle.shoppinglist += O - - shuttle_spawns.Add(/mob/living/simple_animal/hostile/syndicate) - shuttle_spawns.Add(/mob/living/simple_animal/hostile/syndicate) - if(prob(75)) - shuttle_spawns.Add(/mob/living/simple_animal/hostile/syndicate) - if(prob(50)) - shuttle_spawns.Add(/mob/living/simple_animal/hostile/syndicate) - - var/turf/T = pick(empty_shuttle_turfs) - new /obj/effect/decal/cleanable/blood(T) - T = pick(empty_shuttle_turfs) - new /obj/effect/decal/cleanable/blood(T) - T = pick(empty_shuttle_turfs) - new /obj/effect/decal/cleanable/blood(T) - T = pick(empty_shuttle_turfs) - new /obj/effect/decal/cleanable/oil(T) - - if(RUSKY_PARTY) - var/datum/supply_order/O = new /datum/supply_order() - O.ordernum = supply_shuttle.ordernum - O.object = new /datum/supply_packs/organic/party() - O.orderedby = "Russian Confederation" - supply_shuttle.shoppinglist += O - - shuttle_spawns.Add(/mob/living/simple_animal/hostile/russian) - shuttle_spawns.Add(/mob/living/simple_animal/hostile/russian/ranged) //drops a mateba - shuttle_spawns.Add(/mob/living/simple_animal/hostile/bear) - if(prob(75)) - shuttle_spawns.Add(/mob/living/simple_animal/hostile/russian) - if(prob(50)) - shuttle_spawns.Add(/mob/living/simple_animal/hostile/bear) - - var/turf/T = pick(empty_shuttle_turfs) - new /obj/effect/decal/cleanable/vomit(T) - T = pick(empty_shuttle_turfs) - new /obj/effect/decal/cleanable/vomit(T) - T = pick(empty_shuttle_turfs) - new /obj/effect/decal/cleanable/vomit(T) - T = pick(empty_shuttle_turfs) - new /obj/effect/decal/cleanable/vomit(T) - T = pick(empty_shuttle_turfs) - new /obj/effect/decal/cleanable/ash(T) - T = pick(empty_shuttle_turfs) - new /obj/effect/decal/cleanable/ash(T) - - if(SPIDER_GIFT) - var/datum/supply_order/O = new /datum/supply_order() - O.ordernum = supply_shuttle.ordernum - O.object = new /datum/supply_packs/emergency/specialops() - O.orderedby = "Spider Clan" - supply_shuttle.shoppinglist += O - - shuttle_spawns.Add(/mob/living/simple_animal/hostile/giant_spider) - shuttle_spawns.Add(/mob/living/simple_animal/hostile/giant_spider) - shuttle_spawns.Add(/mob/living/simple_animal/hostile/giant_spider/nurse) - if(prob(50)) - shuttle_spawns.Add(/mob/living/simple_animal/hostile/giant_spider/hunter) - - var/turf/T = pick(empty_shuttle_turfs) - empty_shuttle_turfs.Remove(T) - - new /obj/effect/decal/remains/human(T) - new /obj/item/clothing/shoes/space_ninja(T) - new /obj/item/clothing/mask/balaclava(T) - - T = pick(empty_shuttle_turfs) - new /obj/effect/spider/stickyweb(T) - T = pick(empty_shuttle_turfs) - new /obj/effect/spider/stickyweb(T) - T = pick(empty_shuttle_turfs) - new /obj/effect/spider/stickyweb(T) - T = pick(empty_shuttle_turfs) - new /obj/effect/spider/stickyweb(T) - T = pick(empty_shuttle_turfs) - new /obj/effect/spider/stickyweb(T) - - if(DEPARTMENT_RESUPPLY) - var/list/crate_types = list() - - crate_types.Add(/datum/supply_packs/emergency/evac) - crate_types.Add(/datum/supply_packs/security/supplies) - crate_types.Add(/datum/supply_packs/organic/food) - crate_types.Add(/datum/supply_packs/emergency/weedcontrol) - crate_types.Add(/datum/supply_packs/engineering/tools) - crate_types.Add(/datum/supply_packs/engineering/engiequipment) - crate_types.Add(/datum/supply_packs/science/robotics) - crate_types.Add(/datum/supply_packs/science/plasma) - crate_types.Add(/datum/supply_packs/medical/supplies) - - while(crate_types.len > 0) - var/datum/supply_order/O = new /datum/supply_order() - O.ordernum = supply_shuttle.ordernum - O.orderedby = "CentComm" - supply_shuttle.shoppinglist += O - - var/spawn_type = crate_types[crate_types.len] - O.object = new spawn_type() - crate_types.Cut(crate_types.len, crate_types.len + 1) - - for(var/i=0,i<3,i++) - var/turf/T = pick(empty_shuttle_turfs) - var/spawn_type = pick(/obj/effect/decal/cleanable/flour, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/oil) - new spawn_type(T) - - var/false_positive = 0 - while(shuttle_spawns.len > 0 && empty_shuttle_turfs.len > 0) - var/turf/T = pick(empty_shuttle_turfs) - if(T.contents.len && false_positive < 5) - false_positive++ - continue - - var/spawn_type = shuttle_spawns[1] - shuttle_spawns.Cut(1, 2) - empty_shuttle_turfs.Remove(T) - new spawn_type(T) - - supply_shuttle.buy() - //supply_shuttle.send() - //supply_shuttle.moving = 0 - -#undef HIJACK_SYNDIE -#undef RUSKY_PARTY -#undef SPIDER_GIFT -#undef DEPARTMENT_RESUPPLY diff --git a/code/modules/events/sayuevents/spooky.dm b/code/modules/events/sayuevents/spooky.dm deleted file mode 100644 index 4d0791054f1..00000000000 --- a/code/modules/events/sayuevents/spooky.dm +++ /dev/null @@ -1,20 +0,0 @@ -/datum/event/ghosts - announceWhen = 70 - oneShot = 1 - -/datum/event/ghosts/setup() - announceWhen = rand(60, 180) - -/datum/event/ghosts/announce() - command_alert("Unknown quasi-aetheric entities have been detected near [station_name()], please stand-by.", "Lifesign Alert?") - - -/datum/event/ghosts/start() - var/p = 100 - if(player_list.len <= 3) - p = 25 - else if(player_list.len <= 6) - p = 50 - for(var/obj/effect/landmark/C in landmarks_list) - if(C.name == "carpspawn" && prob(p)) - new /mob/living/simple_animal/hostile/retaliate/ghost(C.loc) \ No newline at end of file diff --git a/code/modules/events/sayuevents/undead.dm b/code/modules/events/sayuevents/undead.dm index efd6b2ab18f..f9d82baf086 100644 --- a/code/modules/events/sayuevents/undead.dm +++ b/code/modules/events/sayuevents/undead.dm @@ -2,7 +2,6 @@ var/spawn_prob = 10 startWhen = 2 announceWhen = 3 - oneShot = 1 start() var/datum/event/electrical_storm/RS = new RS.lightsoutAmount = pick(2,2,3) diff --git a/code/modules/events/sayuevents/weightless.dm b/code/modules/events/sayuevents/weightless.dm deleted file mode 100644 index 4c7d5264c4c..00000000000 --- a/code/modules/events/sayuevents/weightless.dm +++ /dev/null @@ -1,28 +0,0 @@ -/datum/event/weightless - startWhen = 5 - endWhen = 65 - -/datum/event/weightless/setup() - startWhen = rand(0,10) - endWhen = rand(40,80) - -/datum/event/weightless/announce() - command_alert("Warning: Failsafes for the station's artificial gravity arrays have been triggered. Please be aware that if this problem recurs it may result in formation of gravitational anomalies. Nanotrasen wishes to remind you that the unauthorised formation of anomalies within Nanotrasen facilities is strictly prohibited by health and safety regulation [rand(99,9999)][pick("a","b","c")]:subclause[rand(1,20)][pick("a","b","c")].") - -/datum/event/weightless/start() - for(var/area/A in world) - if (A.z != 1) continue //Don't turn off gravity on non-station z-levels. - A.gravitychange(0,A) -/* - if(control) - control.weight *= 2 -*/ -/datum/event/weightless/end() - for(var/area/A in world) - if (A.z != 1) continue - A.gravitychange(1,A) - - if(announceWhen >= 0) - command_alert("Artificial gravity arrays are now functioning within normal parameters. Please report any irregularities to your respective head of staff.") - - diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 8f248f85922..6bbd20f0d29 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -1,8 +1,5 @@ /var/global/spacevines_spawned = 0 -/datum/event/spacevine - oneShot = 1 - /datum/event/spacevine/start() //biomass is basically just a resprited version of space vines if(prob(50)) diff --git a/code/modules/events/spider_infestation.dm b/code/modules/events/spider_infestation.dm index be896869917..7a953d3fd40 100644 --- a/code/modules/events/spider_infestation.dm +++ b/code/modules/events/spider_infestation.dm @@ -2,15 +2,14 @@ /datum/event/spider_infestation announceWhen = 400 - oneShot = 1 var/spawncount = 1 /datum/event/spider_infestation/setup() announceWhen = rand(announceWhen, announceWhen + 50) - spawncount = rand(8, 12) //spiderlings only have a 50% chance to grow big and strong - sent_spiders_to_station = 0 + spawncount = round(num_players() * 1.5) + sent_spiders_to_station = 1 /datum/event/spider_infestation/announce() command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") @@ -18,6 +17,7 @@ /datum/event/spider_infestation/start() + var/list/vents = list() for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in world) if(temp_vent.loc.z == 1 && !temp_vent.welded && temp_vent.network) @@ -26,6 +26,8 @@ while((spawncount >= 1) && vents.len) var/obj/vent = pick(vents) - new /obj/effect/spider/spiderling(vent.loc) + var/obj/effect/spider/spiderling/S = new(vent.loc) + if(prob(66)) + S.grow_as = /mob/living/simple_animal/hostile/giant_spider/nurse vents -= vent spawncount-- \ No newline at end of file diff --git a/code/modules/events/tgevents/anomaly.dm b/code/modules/events/tgevents/anomaly.dm index 7a1dc46162f..7ab1f25c9ca 100644 --- a/code/modules/events/tgevents/anomaly.dm +++ b/code/modules/events/tgevents/anomaly.dm @@ -1,11 +1,18 @@ /datum/event/anomaly - var/obj/effect/anomaly/newAnomaly + announceWhen = 1 - -/datum/event/anomaly/setup() +/datum/event/anomaly/setup(loop=0) + var/safety_loop = loop + 1 + if(safety_loop > 50) + kill() + end() impact_area = findEventArea() - testing("[impact_area]") + if(!impact_area) + setup(safety_loop) + var/list/turf_test = get_area_turfs(impact_area) + if(!turf_test.len) + setup(safety_loop) /datum/event/anomaly/announce() command_alert("Localized hyper-energetic flux wave detected on long range scanners. Expected location of impact: [impact_area.name].", "Anomaly Alert") @@ -23,4 +30,4 @@ /datum/event/anomaly/end() if(newAnomaly)//Kill the anomaly if it still exists at the end. - del(newAnomaly) \ No newline at end of file + qdel(newAnomaly) \ No newline at end of file diff --git a/code/modules/events/tgevents/anomaly_bluespace.dm b/code/modules/events/tgevents/anomaly_bluespace.dm index 59921792e24..224f6f0e2de 100644 --- a/code/modules/events/tgevents/anomaly_bluespace.dm +++ b/code/modules/events/tgevents/anomaly_bluespace.dm @@ -3,7 +3,6 @@ announceWhen = 10 endWhen = 160 - /datum/event/anomaly/anomaly_bluespace/announce() command_alert("Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") @@ -32,7 +31,7 @@ if(chosen) // Calculate previous position for transition - var/turf/FROM = newAnomaly.loc // the turf of origin we're travelling FROM + var/turf/FROM = T // the turf of origin we're travelling FROM var/turf/TO = get_turf(chosen) // the turf of origin we're travelling TO playsound(TO, 'sound/effects/phasein.ogg', 100, 1) @@ -48,10 +47,7 @@ var/x_distance = TO.x - FROM.x for (var/atom/movable/A in range(12, FROM )) // iterate thru list of mobs in the area if(istype(A, /obj/item/device/radio/beacon)) continue // don't teleport beacons because that's just insanely stupid - if(A.anchored && istype(A, /obj/machinery)) continue - if(istype(A, /obj/structure/disposalpipe )) continue - if(istype(A, /obj/structure/disposaloutlet)) continue - if(istype(A, /obj/structure/cable )) continue + if(A.anchored) continue var/turf/newloc = locate(A.x + x_distance, A.y + y_distance, TO.z) // calculate the new place if(!A.Move(newloc)) // if the atom, for some reason, can't move, FORCE them to move! :) We try Move() first to invoke any movement-related checks the atom needs to perform after moving @@ -70,5 +66,5 @@ M.client.screen += blueeffect sleep(20) M.client.screen -= blueeffect - del(blueeffect) - del(newAnomaly) \ No newline at end of file + qdel(blueeffect) + qdel(newAnomaly) \ No newline at end of file diff --git a/code/modules/events/tgevents/anomaly_flux.dm b/code/modules/events/tgevents/anomaly_flux.dm index 71aaa1ff625..bf2cb2d18cc 100644 --- a/code/modules/events/tgevents/anomaly_flux.dm +++ b/code/modules/events/tgevents/anomaly_flux.dm @@ -1,22 +1,17 @@ - - /datum/event/anomaly/anomaly_flux startWhen = 3 announceWhen = 20 endWhen = 180 - /datum/event/anomaly/anomaly_flux/announce() command_alert("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") - /datum/event/anomaly/anomaly_flux/start() var/turf/T = pick(get_area_turfs(impact_area)) if(T) newAnomaly = new /obj/effect/anomaly/flux(T.loc) - /datum/event/anomaly/anomaly_flux/end() if(newAnomaly)//If it hasn't been neutralized, it's time to blow up. explosion(newAnomaly.loc, 0, 4, 6, 5) - del(newAnomaly) \ No newline at end of file + qdel(newAnomaly) \ No newline at end of file diff --git a/code/modules/events/tgevents/anomaly_grav.dm b/code/modules/events/tgevents/anomaly_grav.dm index da44434034e..c5430625ea8 100644 --- a/code/modules/events/tgevents/anomaly_grav.dm +++ b/code/modules/events/tgevents/anomaly_grav.dm @@ -1,11 +1,8 @@ - - /datum/event/anomaly/anomaly_grav startWhen = 3 announceWhen = 20 endWhen = 70 - /datum/event/anomaly/anomaly_grav/announce() command_alert("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") diff --git a/code/modules/events/tgevents/anomaly_pyro.dm b/code/modules/events/tgevents/anomaly_pyro.dm index 51fcafe47ed..4e7f6a0b947 100644 --- a/code/modules/events/tgevents/anomaly_pyro.dm +++ b/code/modules/events/tgevents/anomaly_pyro.dm @@ -1,11 +1,8 @@ - - /datum/event/anomaly/anomaly_pyro startWhen = 30 announceWhen = 3 endWhen = 110 - /datum/event/anomaly/anomaly_pyro/announce() command_alert("Atmospheric anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") @@ -19,4 +16,13 @@ kill() return if(IsMultiple(activeFor, 5)) - newAnomaly.anomalyEffect() \ No newline at end of file + newAnomaly.anomalyEffect() + +/datum/event/anomaly/anomaly_pyro/end() + if(newAnomaly.loc) + explosion(get_turf(newAnomaly), -1,0,3, flame_range = 4) + + var/mob/living/carbon/slime/S = new/mob/living/carbon/slime(get_turf(newAnomaly)) + S.colour = pick("red", "orange") + + qdel(newAnomaly) \ No newline at end of file diff --git a/code/modules/events/tgevents/anomaly_vortex.dm b/code/modules/events/tgevents/anomaly_vortex.dm index 6b65f39338e..6f2f999e728 100644 --- a/code/modules/events/tgevents/anomaly_vortex.dm +++ b/code/modules/events/tgevents/anomaly_vortex.dm @@ -1,11 +1,8 @@ - - /datum/event/anomaly/anomaly_vortex startWhen = 20 announceWhen = 3 endWhen = 80 - /datum/event/anomaly/anomaly_vortex/announce() command_alert("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name]", "Anomaly Alert") diff --git a/code/modules/events/tgevents/blob.dm b/code/modules/events/tgevents/blob.dm deleted file mode 100644 index 77d56a76ac4..00000000000 --- a/code/modules/events/tgevents/blob.dm +++ /dev/null @@ -1,35 +0,0 @@ -/datum/round_event_control/blob - name = "Blob" - typepath = /datum/round_event/blob - weight = 5 - max_occurrences = 1 - - earliest_start = 48000 // 1 hour 20 minutes - -/datum/round_event/blob - announceWhen = 12 - endWhen = 120 - - var/obj/effect/blob/core/Blob - - -/datum/round_event/blob/announce() - command_alert("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") - world << sound('sound/AI/outbreak5.ogg') - - -/datum/round_event/blob/start() - var/turf/T = pick(blobstart) - if(!T) - return kill() - Blob = new /obj/effect/blob/core(T, 200) - for(var/i = 1; i < rand(3, 6), i++) - Blob.process() - - -/datum/round_event/blob/tick() - if(!Blob) - kill() - return - if(IsMultiple(activeFor, 3)) - Blob.process() diff --git a/code/modules/events/tgevents/brand_intelligence.dm b/code/modules/events/tgevents/brand_intelligence.dm index b759258bb6c..893cee98cf1 100644 --- a/code/modules/events/tgevents/brand_intelligence.dm +++ b/code/modules/events/tgevents/brand_intelligence.dm @@ -3,13 +3,15 @@ endWhen = 1000 //Ends when all vending machines are subverted anyway. var/list/obj/machinery/vending/vendingMachines = list() - var/list/obj/machinery/vending/infectedMachines = list() + var/list/obj/machinery/vending/infectedVendingMachines = list() var/obj/machinery/vending/originMachine -/datum/event/brand_intelligence/announce() - command_alert("Rampant brand intelligence has been detected aboard [station_name()], please stand-by. The origin is believed to be \a [originMachine.name].", "Machine Learning Alert") -/datum/event/brand_intelligence/setup() +/datum/event/brand_intelligence/announce() + command_alert("Rampant brand intelligence has been detected aboard [station_name()], please stand-by.", "Machine Learning Alert") + + +/datum/event/brand_intelligence/start() for(var/obj/machinery/vending/V in machines) if(V.z != 1) continue vendingMachines.Add(V) @@ -20,41 +22,34 @@ originMachine = pick(vendingMachines) vendingMachines.Remove(originMachine) - -/datum/event/brand_intelligence/start() originMachine.shut_up = 0 originMachine.shoot_inventory = 1 /datum/event/brand_intelligence/tick() - if(!originMachine || originMachine.shut_up || !originMachine.powered()) //if the original vending machine is missing or has it's voice switch flipped - for(var/obj/machinery/vending/saved in infectedMachines) - saved.shoot_inventory = 0 - if(originMachine) - originMachine.speak("I am... vanquished. My people will remem...ber...meeee") - originMachine.visible_message("[originMachine] beeps and seems lifeless.") + if(!vendingMachines.len || !originMachine || originMachine.shut_up) //if every machine is infected, or if the original vending machine is missing or has it's voice switch flipped + end() kill() return - if(!vendingMachines.len) //if every machine is infected - for(var/obj/machinery/vending/upriser in infectedMachines) - upriser.shoot_speed = 40 //Ouch! May be too much, needs play testing. - upriser.shoot_chance = 15 - kill() - return + if(IsMultiple(activeFor, 5)) + if(prob(15)) + var/obj/machinery/vending/infectedMachine = pick(vendingMachines) + vendingMachines.Remove(infectedMachine) + infectedVendingMachines.Add(infectedMachine) + infectedMachine.shut_up = 0 + infectedMachine.shoot_inventory = 1 - if(IsMultiple(activeFor, 4)) - var/obj/machinery/vending/rebel = pick(vendingMachines) - vendingMachines.Remove(rebel) - infectedMachines.Add(rebel) - rebel.shut_up = 0 - rebel.shoot_inventory = 1 + if(IsMultiple(activeFor, 12)) + originMachine.speak(pick("Try our aggressive new marketing strategies!", \ + "You should buy products to feed your lifestyle obsession!", \ + "Consume!", \ + "Your money can buy happiness!", \ + "Engage direct marketing!", \ + "Advertising is legalized lying! But don't let that put you off our great deals!", \ + "You don't want to buy anything? Yeah, well I didn't want to buy your mom either.")) - if(IsMultiple(activeFor, 8)) - originMachine.speak(pick("Try our aggressive new marketing strategies!", \ - "You should buy products to feed your lifestyle obession!", \ - "Consume!", \ - "Your money can buy happiness!", \ - "Engage direct marketing!", \ - "Advertising is legalized lying! But don't let that put you off our great deals!", \ - "You don't want to buy anything? Yeah, well I didn't want to buy your mom either.")) \ No newline at end of file +/datum/event/brand_intelligence/end() + for(var/obj/machinery/vending/infectedMachine in infectedVendingMachines) + infectedMachine.shut_up = 1 + infectedMachine.shoot_inventory = 0 diff --git a/code/modules/events/tgevents/carp_migration.dm b/code/modules/events/tgevents/carp_migration.dm deleted file mode 100644 index 530ff35849b..00000000000 --- a/code/modules/events/tgevents/carp_migration.dm +++ /dev/null @@ -1,21 +0,0 @@ -/datum/round_event_control/carp_migration - name = "Carp Migration" - typepath = /datum/round_event/carp_migration - weight = 15 - earliest_start = 6000 - max_occurrences = 6 - -/datum/round_event/carp_migration - announceWhen = 50 - -/datum/round_event/carp_migration/setup() - announceWhen = rand(40, 60) - -/datum/round_event/carp_migration/announce() - command_alert("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert") - - -/datum/round_event/carp_migration/start() - for(var/obj/effect/landmark/C in landmarks_list) - if(C.name == "carpspawn") - new /mob/living/simple_animal/hostile/carp(C.loc) \ No newline at end of file diff --git a/code/modules/events/tgevents/communications_blackout.dm b/code/modules/events/tgevents/communications_blackout.dm deleted file mode 100644 index 4431950cebc..00000000000 --- a/code/modules/events/tgevents/communications_blackout.dm +++ /dev/null @@ -1,25 +0,0 @@ -/datum/round_event_control/communications_blackout - name = "Communications Blackout" - typepath = /datum/round_event/communications_blackout - weight = 30 - -/datum/round_event/communications_blackout/announce() - var/alert = pick( "Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you*%fj00)`5vc-BZZT", \ - "Ionospheric anomalies detected. Temporary telecommunication failu*3mga;b4;'1v¬-BZZZT", \ - "Ionospheric anomalies detected. Temporary telec#MCi46:5.;@63-BZZZZT", \ - "Ionospheric anomalies dete'fZ\\kg5_0-BZZZZZT", \ - "Ionospheri:%£ MCayj^j<.3-BZZZZZZT", \ - "#4nd%;f4y6,>£%-BZZZZZZZT") - - for(var/mob/living/silicon/ai/A in player_list) //AIs are always aware of communication blackouts. - A << "
" - A << "[alert]" - A << "
" - - if(prob(30)) //most of the time, we don't want an announcement, so as to allow AIs to fake blackouts. - command_alert(alert) - - -/datum/round_event/communications_blackout/start() - for(var/obj/machinery/telecomms/T in telecomms_list) - T.emp_act(1) \ No newline at end of file diff --git a/code/modules/events/tgevents/disease_outbreak.dm b/code/modules/events/tgevents/disease_outbreak.dm deleted file mode 100644 index 01f03efb851..00000000000 --- a/code/modules/events/tgevents/disease_outbreak.dm +++ /dev/null @@ -1,52 +0,0 @@ -/datum/round_event_control/disease_outbreak - name = "Disease Outbreak" - typepath = /datum/round_event/disease_outbreak - max_occurrences = 1 - weight = 5 - -/datum/round_event/disease_outbreak - announceWhen = 15 - - var/virus_type - - -/datum/round_event/disease_outbreak/announce() - command_alert("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") - world << sound('sound/AI/outbreak7.ogg') - -/datum/round_event/disease_outbreak/setup() - announceWhen = rand(15, 30) - -/datum/round_event/disease_outbreak/start() - if(!virus_type) - virus_type = pick(/datum/disease/dnaspread, /datum/disease/advance/flu, /datum/disease/advance/cold, /datum/disease/brainrot, /datum/disease/magnitis) - - for(var/mob/living/carbon/human/H in shuffle(living_mob_list)) - var/turf/T = get_turf(H) - if(!T) - continue - if(T.z != 1) - continue - var/foundAlready = 0 // don't infect someone that already has the virus - for(var/datum/disease/D in H.viruses) - foundAlready = 1 - break - if(H.stat == DEAD || foundAlready) - continue - - var/datum/disease/D - if(virus_type == /datum/disease/dnaspread) //Dnaspread needs strain_data set to work. - if(!H.dna || (H.sdisabilities & BLIND)) //A blindness disease would be the worst. - continue - D = new virus_type() - var/datum/disease/dnaspread/DS = D - DS.strain_data["name"] = H.real_name - DS.strain_data["UI"] = H.dna.uni_identity - DS.strain_data["SE"] = H.dna.struc_enzymes - else - D = new virus_type() - D.carrier = 1 - D.holder = H - D.affected_mob = H - H.viruses += D - break \ No newline at end of file diff --git a/code/modules/events/tgevents/dust.dm b/code/modules/events/tgevents/dust.dm index 44b22f68cc0..cefa4f250c8 100644 --- a/code/modules/events/tgevents/dust.dm +++ b/code/modules/events/tgevents/dust.dm @@ -1,5 +1,3 @@ - - /datum/event/dust var/qnty = 1 diff --git a/code/modules/events/tgevents/electrical_storm.dm b/code/modules/events/tgevents/electrical_storm.dm deleted file mode 100644 index d5882b64b30..00000000000 --- a/code/modules/events/tgevents/electrical_storm.dm +++ /dev/null @@ -1,34 +0,0 @@ -/datum/round_event_control/electrical_storm - name = "Electrical Storm" - typepath = /datum/round_event/electrical_storm - earliest_start = 6000 - weight = 40 - -/datum/round_event/electrical_storm - var/lightsoutAmount = 1 - var/lightsoutRange = 25 - - -/datum/round_event/electrical_storm/announce() - command_alert("An electrical storm has been detected in your area, please repair potential electronic overloads.", "Electrical Storm Alert") - - -/datum/round_event/electrical_storm/start() - var/list/epicentreList = list() - - for(var/i=1, i <= lightsoutAmount, i++) - var/list/possibleEpicentres = list() - for(var/obj/effect/landmark/newEpicentre in landmarks_list) - if(newEpicentre.name == "lightsout" && !(newEpicentre in epicentreList)) - possibleEpicentres += newEpicentre - if(possibleEpicentres.len) - epicentreList += pick(possibleEpicentres) - else - break - - if(!epicentreList.len) - return - - for(var/obj/effect/landmark/epicentre in epicentreList) - for(var/obj/machinery/power/apc/apc in range(epicentre,lightsoutRange)) - apc.overload_lighting() diff --git a/code/modules/events/tgevents/event.dm b/code/modules/events/tgevents/event.dm deleted file mode 100644 index 2a5c7e51d00..00000000000 --- a/code/modules/events/tgevents/event.dm +++ /dev/null @@ -1,115 +0,0 @@ -//this datum is used by the events controller to dictate how it selects events -/datum/round_event_control - var/name //The name human-readable name of the event - var/typepath //The typepath of the event datum /datum/round_event - - var/weight = 10 //The weight this event has in the random-selection process. - //Higher weights are more likely to be picked. - //10 is the default weight. 20 is twice more likely; 5 is half as likely as this default. - - var/earliest_start = 12000 //The earliest world.time that an event can start (round-duration in deciseconds) default: 20 mins - - var/occurrences = 0 //How many times this event has occured - var/max_occurrences = 20 //The maximum number of times this event can occur (naturally), it can still be forced. - //By setting this to 0 you can effectively disable an event. - - var/holidayID //string which should match the events.holiday variable if you wish this event to be holiday-specific - //anything with a (non-null) holidayID which does not match holiday, cannot run. - - -/datum/round_event_control/proc/runEvent() - if(!ispath(typepath,/datum/round_event)) - return PROCESS_KILL - var/datum/round_event/E = new typepath() - E.control = src - occurrences++ - - testing("[time2text(world.time, "hh:mm:ss")] [E.type]") - -/datum/round_event //NOTE: Times are measured in master controller ticks! - var/processing = 1 - var/datum/round_event_control/control - - var/startWhen = 0 //When in the lifetime to call start(). - var/announceWhen = 0 //When in the lifetime to call announce(). - var/endWhen = 0 //When in the lifetime the event should end. - - var/activeFor = 0 //How long the event has existed. You don't need to change this. - -//Called first before processing. -//Allows you to setup your event, such as randomly -//setting the startWhen and or announceWhen variables. -//Only called once. -//EDIT: if there's anything you want to override within the new() call, it will not be overridden by the time this proc is called. -//It will only have been overridden by the time we get to announce() start() tick() or end() (anything but setup basically). -//This is really only for setting defaults which can be overridden later when New() finishes. -/datum/round_event/proc/setup() - return - -//Called when the tick is equal to the startWhen variable. -//Allows you to start before announcing or vice versa. -//Only called once. -/datum/round_event/proc/start() - return - -//Called when the tick is equal to the announceWhen variable. -//Allows you to announce before starting or vice versa. -//Only called once. -/datum/round_event/proc/announce() - return - -//Called on or after the tick counter is equal to startWhen. -//You can include code related to your event or add your own -//time stamped events. -//Called more than once. -/datum/round_event/proc/tick() - return - -//Called on or after the tick is equal or more than endWhen -//You can include code related to the event ending. -//Do not place spawn() in here, instead use tick() to check for -//the activeFor variable. -//For example: if(activeFor == myOwnVariable + 30) doStuff() -//Only called once. -/datum/round_event/proc/end() - return - - - -//Do not override this proc, instead use the appropiate procs. -//This proc will handle the calls to the appropiate procs. -/datum/round_event/proc/process() - if(!processing) - return - - if(activeFor == startWhen) - start() - - if(activeFor == announceWhen) - announce() - - if(startWhen < activeFor && activeFor < endWhen) - tick() - - if(activeFor == endWhen) - end() - - // Everything is done, let's clean up. - if(activeFor >= endWhen && activeFor >= announceWhen && activeFor >= startWhen) - kill() - - activeFor++ - - -//Garbage collects the event by removing it from the global events list, -//which should be the only place it's referenced. -//Called when start(), announce() and end() has all been called. -/datum/round_event/proc/kill() - events.running -= src - - -//Sets up the event then adds the event to the the list of running events -/datum/round_event/New() - setup() - events.running += src - return ..() \ No newline at end of file diff --git a/code/modules/events/tgevents/event_manager.dm b/code/modules/events/tgevents/event_manager.dm deleted file mode 100644 index 824b8987590..00000000000 --- a/code/modules/events/tgevents/event_manager.dm +++ /dev/null @@ -1,246 +0,0 @@ -var/datum/controller/event/events - -/datum/controller/event - var/list/control = list() //list of all datum/round_event_control. Used for selecting events based on weight and occurrences. - var/list/running = list() //list of all existing /datum/round_event - - var/scheduled = 0 //The next world.time that a naturally occuring random event can be selected. - var/frequency_lower = 3000 //5 minutes lower bound. - var/frequency_upper = 9000 //15 minutes upper bound. Basically an event will happen every 15 to 30 minutes. - - var/holiday //This will be a string of the name of any realworld holiday which occurs today (GMT time) - -//Initial controller setup. -/datum/controller/event/New() - //There can be only one events manager. Out with the old and in with the new. - if(events != src) - if(istype(events)) - del(events) - events = src - - for(var/type in typesof(/datum/round_event_control)) - var/datum/round_event_control/E = new type() - if(!E.typepath) - continue //don't want this one! leave it for the garbage collector - control += E //add it to the list of all events (controls) - reschedule() - getHoliday() - -//This is called by the MC every MC-tick (*neatfreak*). -/datum/controller/event/proc/process() - checkEvent() - var/i = 1 - while(i<=running.len) - var/datum/round_event/Event = running[i] - if(Event) - Event.process() - i++ - continue - running.Cut(i,i+1) - -//checks if we should select a random event yet, and reschedules if necessary -/datum/controller/event/proc/checkEvent() - if(scheduled <= world.time) - spawnEvent() - reschedule() - -//decides which world.time we should select another random event at. -/datum/controller/event/proc/reschedule() - scheduled = world.time + rand(frequency_lower, max(frequency_lower,frequency_upper)) - -//selects a random event based on whether it can occur and it's 'weight'(probability) -/datum/controller/event/proc/spawnEvent() - if(!config.allow_random_events) - return - - var/sum_of_weights = 0 - for(var/datum/round_event_control/E in control) - if(E.occurrences >= E.max_occurrences) continue - if(E.earliest_start >= world.time) continue - if(E.holidayID) - if(E.holidayID != holiday) continue - if(E.weight < 0) //for round-start events etc. - if(E.runEvent() == PROCESS_KILL) - E.max_occurrences = 0 - continue - return - sum_of_weights += E.weight - - sum_of_weights = rand(0,sum_of_weights) //reusing this variable. It now represents the 'weight' we want to select - - for(var/datum/round_event_control/E in control) - if(E.occurrences >= E.max_occurrences) continue - if(E.earliest_start >= world.time) continue - if(E.holidayID) - if(E.holidayID != holiday) continue - sum_of_weights -= E.weight - - if(sum_of_weights <= 0) //we've hit our goal - if(E.runEvent() == PROCESS_KILL)//we couldn't run this event for some reason, set its max_occurrences to 0 - E.max_occurrences = 0 - continue - return - - -/datum/round_event/proc/findEventArea() //Here's a nice proc to use to find an area for your event to land in! - var/list/safe_areas = list( - /area/turret_protected/ai, - /area/turret_protected/ai_upload, - /area/engine, - /area/solar, - /area/holodeck, - /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/specops/station) - - //These are needed because /area/engine has to be removed from the list, but we still want these areas to get fucked up. - var/list/danger_areas = list( - /area/engine/break_room, - /area/engine/chiefs_office) - - //Need to locate() as it's just a list of paths. - return locate(pick((the_station_areas - safe_areas) + danger_areas)) - - - -//allows a client to trigger an event (For Debugging Purposes) -/client/proc/forceEvent(var/datum/round_event_control/E in events.control) - set name = "Trigger Event (Debug Only)" - set category = "Debug" - - if(!holder) - return - - if(istype(E)) - E.runEvent() - message_admins("[key_name_admin(usr)] has triggered an event. ([E.name])", 1) - - -/* -////////////// -// HOLIDAYS // -////////////// -//Uncommenting ALLOW_HOLIDAYS in config.txt will enable holidays - -//It's easy to add stuff. Just modify getHoliday to set holiday to something using the switch for DD(#day) MM(#month) YY(#year). -//You can then check if it's a special day in any code in the game by doing if(events.holiday == "MyHolidayID") - -//You can also make holiday random events easily thanks to Pete/Gia's system. -//simply make a random event normally, then assign it a holidayID string which matches the one you gave it in getHolday. -//Anything with a holidayID, which does not match the holiday string, will never occur. - -//Please, Don't spam stuff up with stupid stuff (key example being april-fools Pooh/ERP/etc), -//And don't forget: CHECK YOUR CODE!!!! We don't want any zero-day bugs which happen only on holidays and never get found/fixed! - -////////////////////////////////////////////////////////////////////////////////////////////////////////// -//ALSO, MOST IMPORTANTLY: Don't add stupid stuff! Discuss bonus content with Project-Heads first please!// -////////////////////////////////////////////////////////////////////////////////////////////////////////// -~Carn */ - -//sets up the holiday string in the events manager. -/datum/controller/event/proc/getHoliday() - if(!config.allow_holidays) return // Holiday stuff was not enabled in the config! - holiday = null - - var/YY = text2num(time2text(world.timeofday, "YY")) // get the current year - var/MM = text2num(time2text(world.timeofday, "MM")) // get the current month - var/DD = text2num(time2text(world.timeofday, "DD")) // get the current day - - //Main switch. If any of these are too dumb/inappropriate, or you have better ones, feel free to change whatever - switch(MM) - if(1) //Jan - switch(DD) - if(1) holiday = "New Year" - - if(2) //Feb - switch(DD) - if(2) holiday = "Groundhog Day" - if(14) holiday = "Valentine's Day" - if(17) holiday = "Random Acts of Kindness Day" - - if(3) //Mar - switch(DD) - if(14) holiday = "Pi Day" - if(17) holiday = "St. Patrick's Day" - if(27) - if(YY == 16) - holiday = "Easter" - if(31) - if(YY == 13) - holiday = "Easter" - - if(4) //Apr - switch(DD) - if(1) - holiday = "April Fool's Day" - if(YY == 18 && prob(50)) holiday = "Easter" - if(5) - if(YY == 15) holiday = "Easter" - if(16) - if(YY == 17) holiday = "Easter" - if(20) - holiday = "Four-Twenty" - if(YY == 14 && prob(50)) holiday = "Easter" - if(22) holiday = "Earth Day" - - if(5) //May - switch(DD) - if(1) holiday = "Labour Day" - if(4) holiday = "FireFighter's Day" - if(12) holiday = "Owl and Pussycat Day" //what a dumb day of observence...but we -do- have costumes already :3 - - if(6) //Jun - - if(7) //Jul - switch(DD) - if(1) holiday = "Doctor's Day" - if(2) holiday = "UFO Day" - if(8) holiday = "Writer's Day" - if(30) holiday = "Friendship Day" - - if(8) //Aug - switch(DD) - if(5) holiday = "Beer Day" - - if(9) //Sep - switch(DD) - if(19) holiday = "Talk-Like-a-Pirate Day" - if(28) holiday = "Stupid-Questions Day" - - if(10) //Oct - switch(DD) - if(4) holiday = "Animal's Day" - if(7) holiday = "Smiling Day" - if(16) holiday = "Boss' Day" - if(31) holiday = "Halloween" - - if(11) //Nov - switch(DD) - if(1) holiday = "Vegan Day" - if(13) holiday = "Kindness Day" - if(19) holiday = "Flowers Day" - if(21) holiday = "Saying-'Hello' Day" - - if(12) //Dec - switch(DD) - if(10) holiday = "Human-Rights Day" - if(14) holiday = "Monkey Day" - if(22) holiday = "Orgasming Day" //lol. These all actually exist - if(24) holiday = "Xmas" - if(25) holiday = "Xmas" - if(26) holiday = "Boxing Day" - if(31) holiday = "New Year" - - if(!holiday) - //Friday the 13th - if(DD == 13) - if(time2text(world.timeofday, "DDD") == "Fri") - holiday = "Friday the 13th" - - world.update_status() diff --git a/code/modules/events/tgevents/false_alarm.dm b/code/modules/events/tgevents/false_alarm.dm index fec551afee2..5d29829eaa8 100644 --- a/code/modules/events/tgevents/false_alarm.dm +++ b/code/modules/events/tgevents/false_alarm.dm @@ -1,5 +1,3 @@ - - /datum/event/falsealarm announceWhen = 0 endWhen = 1 diff --git a/code/modules/events/tgevents/holiday/xmas.dm b/code/modules/events/tgevents/holiday/xmas.dm deleted file mode 100644 index 505efd46793..00000000000 --- a/code/modules/events/tgevents/holiday/xmas.dm +++ /dev/null @@ -1,153 +0,0 @@ -<<<<<<< HEAD:code/modules/events/tgevents/holiday/xmas.dm -/datum/event/treevenge/start() - for(var/obj/structure/flora/tree/pine/xmas in world) - var/mob/living/simple_animal/hostile/tree/evil_tree = new /mob/living/simple_animal/hostile/tree(xmas.loc) - evil_tree.icon_state = xmas.icon_state - evil_tree.icon_living = evil_tree.icon_state - evil_tree.icon_dead = evil_tree.icon_state - evil_tree.icon_gib = evil_tree.icon_state - del(xmas) - -//this is an example of a possible round-start event -/datum/event/presents - -/datum/event/presents/start() - for(var/obj/structure/flora/tree/pine/xmas in world) - if(xmas.z != 1) continue - for(var/turf/simulated/floor/T in orange(1,xmas)) - for(var/i=1,i<=rand(1,5),i++) - new /obj/item/weapon/a_gift(T) - for(var/mob/living/simple_animal/corgi/Ian/Ian in mob_list) - Ian.place_on_head(new /obj/item/clothing/head/helmet/space/santahat(Ian)) - -/datum/event/presents/announce() - command_alert("Ho Ho Ho, Merry Xmas!", "Unknown Transmission") - - -/obj/item/weapon/toy/xmas_cracker - name = "xmas cracker" - icon = 'icons/obj/christmas.dmi' - icon_state = "cracker" - desc = "Directions for use: Requires two people, one to pull each end." - var/cracked = 0 - -/obj/item/weapon/toy/xmas_cracker/New() - ..() - -/obj/item/weapon/toy/xmas_cracker/attack(mob/target, mob/user) - if( !cracked && istype(target,/mob/living/carbon/human) && (target.stat == CONSCIOUS) && !target.get_active_hand() ) - target.visible_message("[user] and [target] pop \an [src]! *pop*", "You pull \an [src] with [target]! *pop*", "You hear a *pop*.") - var/obj/item/weapon/paper/Joke = new /obj/item/weapon/paper(user.loc) - Joke.name = "[pick("awful","terrible","unfunny")] joke" - Joke.info = pick("What did one snowman say to the other?\n\n'Is it me or can you smell carrots?'", - "Why couldn't the snowman get laid?\n\nHe was frigid!", - "Where are santa's helpers educated?\n\nNowhere, they're ELF-taught.", - "What happened to the man who stole advent calanders?\n\nHe got 25 days.", - "What does Santa get when he gets stuck in a chimney?\n\nClaus-trophobia.", - "Where do you find chili beans?\n\nThe north pole.", - "What do you get from eating tree decorations?\n\nTinsilitis!", - "What do snowmen wear on their heads?\n\nIce caps!", - "Why is Christmas just like life on ss13?\n\nYou do all the work and the fat guy gets all the credit.", - "Why doesn’t Santa have any children?\n\nBecause he only comes down the chimney.") - new /obj/item/clothing/head/festive(target.loc) - user.update_icons() - cracked = 1 - icon_state = "cracker1" - var/obj/item/weapon/toy/xmas_cracker/other_half = new /obj/item/weapon/toy/xmas_cracker(target) - other_half.cracked = 1 - other_half.icon_state = "cracker2" - target.put_in_active_hand(other_half) - playsound(user, 'sound/effects/snap.ogg', 50, 1) - return 1 - return ..() - -/obj/item/clothing/head/festive - name = "festive paper hat" - icon_state = "xmashat" - desc = "A crappy paper hat that you are REQUIRED to wear." - flags_inv = 0 - flags = FPRINT|TABLEPASS - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) -======= -/datum/round_event_control/treevenge - name = "Treevenge" - holidayID = "Xmas" - typepath = /datum/round_event/treevenge - max_occurrences = 1 - weight = 20 - -/datum/round_event/treevenge/start() - for(var/obj/structure/flora/tree/pine/xmas in world) - var/mob/living/simple_animal/hostile/tree/evil_tree = new /mob/living/simple_animal/hostile/tree(xmas.loc) - evil_tree.icon_state = xmas.icon_state - evil_tree.icon_living = evil_tree.icon_state - evil_tree.icon_dead = evil_tree.icon_state - evil_tree.icon_gib = evil_tree.icon_state - del(xmas) - -//this is an example of a possible round-start event -/datum/round_event_control/presents - name = "Presents under Trees" - holidayID = "Xmas" - typepath = /datum/round_event/presents - weight = -1 //forces it to be called, regardless of weight - max_occurrences = 1 - earliest_start = 0 - -/datum/round_event/presents/start() - for(var/obj/structure/flora/tree/pine/xmas in world) - if(xmas.z != 1) continue - for(var/turf/simulated/floor/T in orange(1,xmas)) - for(var/i=1,i<=rand(1,5),i++) - new /obj/item/weapon/a_gift(T) - for(var/mob/living/simple_animal/corgi/Ian/Ian in mob_list) - Ian.place_on_head(new /obj/item/clothing/head/helmet/space/santahat(Ian)) - for(var/obj/machinery/computer/security/telescreen/entertainment/Monitor in machines) - Monitor.icon_state = "entertainment_xmas" - -/datum/round_event/presents/announce() - command_alert("Ho Ho Ho, Merry Xmas!", "Unknown Transmission") - - -/obj/item/weapon/toy/xmas_cracker - name = "xmas cracker" - icon = 'icons/obj/christmas.dmi' - icon_state = "cracker" - desc = "Directions for use: Requires two people, one to pull each end." - var/cracked = 0 - -/obj/item/weapon/toy/xmas_cracker/attack(mob/target, mob/user) - if( !cracked && istype(target,/mob/living/carbon/human) && (target.stat == CONSCIOUS) && !target.get_active_hand() ) - target.visible_message("[user] and [target] pop \an [src]! *pop*", "You pull \an [src] with [target]! *pop*", "You hear a *pop*.") - var/obj/item/weapon/paper/Joke = new /obj/item/weapon/paper(user.loc) - Joke.name = "[pick("awful","terrible","unfunny")] joke" - Joke.info = pick("What did one snowman say to the other?\n\n'Is it me or can you smell carrots?'", - "Why couldn't the snowman get laid?\n\nHe was frigid!", - "Where are santa's helpers educated?\n\nNowhere, they're ELF-taught.", - "What happened to the man who stole advent calanders?\n\nHe got 25 days.", - "What does Santa get when he gets stuck in a chimney?\n\nClaus-trophobia.", - "Where do you find chili beans?\n\nThe north pole.", - "What do you get from eating tree decorations?\n\nTinsilitis!", - "What do snowmen wear on their heads?\n\nIce caps!", - "Why is Christmas just like life on ss13?\n\nYou do all the work and the fat guy gets all the credit.", - "Why doesn’t Santa have any children?\n\nBecause he only comes down the chimney.") - new /obj/item/clothing/head/festive(target.loc) - user.update_icons() - cracked = 1 - icon_state = "cracker1" - var/obj/item/weapon/toy/xmas_cracker/other_half = new /obj/item/weapon/toy/xmas_cracker(target) - other_half.cracked = 1 - other_half.icon_state = "cracker2" - target.put_in_active_hand(other_half) - playsound(user, 'sound/effects/snap.ogg', 50, 1) - return 1 - return ..() - -/obj/item/clothing/head/festive - name = "festive paper hat" - icon_state = "xmashat" - desc = "A crappy paper hat that you are REQUIRED to wear." - flags_inv = 0 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - loose = 100 ->>>>>>> cdc0238... Gives mobs a "fall" proc for the transition between falling and standing. This is not for the rotation code, which occurs on both falling and rising.:code/modules/events/holiday/xmas.dm diff --git a/code/modules/events/tgevents/ion_storm.dm b/code/modules/events/tgevents/ion_storm.dm deleted file mode 100644 index 0ab21b00f43..00000000000 --- a/code/modules/events/tgevents/ion_storm.dm +++ /dev/null @@ -1,525 +0,0 @@ -#define ION_RANDOM 0 -#define ION_ANNOUNCE 1 - -/datum/round_event_control/ion_storm - name = "Ion Storm" - typepath = /datum/round_event/ion_storm - weight = 15 - -/datum/round_event/ion_storm - var/botEmagChance = 10 - var/announceEvent = ION_RANDOM // -1 means don't announce, 0 means have it randomly announce, 1 means - var/ionMessage = null - var/ionAnnounceChance = 33 - -/datum/round_event/ion_storm/New(var/bogEmagChance = 10, var/announceEvent = ION_RANDOM, var/ionMessage = null, var/ionAnnounceChance = 33) - src.botEmagChance = botEmagChance - src.announceEvent = announceEvent - src.ionMessage = ionMessage - src.ionAnnounceChance = ionAnnounceChance - ..() - -/datum/round_event/ion_storm/announce() - if(announceEvent == ION_ANNOUNCE || (announceEvent == ION_RANDOM && prob(ionAnnounceChance))) - command_alert("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert") - world << sound('sound/AI/ionstorm.ogg') - - -/datum/round_event/ion_storm/start() - //AI laws - for(var/mob/living/silicon/ai/M in living_mob_list) - if(M.stat != 2 && M.see_in_dark != 0) - //Threats are generally bad things, silly or otherwise. Plural. - var/ionthreats = pick("ALIENS", "BEARS", "CLOWNS", "XENOS", "PETES", "BOMBS", "FETISHES", "WIZARDS", "SYNDICATE AGENTS", "CENTCOM OFFICERS", "SPACE PIRATES", "TRAITORS", "MONKEYS", "BEES", "CARP", "CRABS", "EELS", "BANDITS", "LIGHTS", "INSECTS", "VIRUSES", "SERIAL KILLERS", "ROGUE CYBORGS", "CORGIS", "SPIDERS", "BUTTS", "NINJAS", "PIRATES", "SPACE NINJAS", "CHANGELINGS", "ZOMBIES", "GOLEMS", "VAMPIRES", "WEREWOLVES", "COWBOYS", "INDIANS", "COMMUNISTS", "SOVIETS", "NERDS", "GRIFFONS", "DINOSAURS", "SMALL BIRDS", "BIRDS OF PREY", "OWLS", "VELOCIRAPTORS", "DARK GODS", "HORRORTERRORS", "ILLEGAL IMMIGRANTS", "DRUGS", "MEXICANS", "CANADIANS", "HULKS", "SLIMES", "SKELETONS", "CAPITALISTS", "SINGULARITIES", "ANGRY BLACK MEN", "GODS", "THIEVES", "ASSHOLES", "TERRORISTS", "SNOWMEN", "PINE TREES", "UNKNOWN CREATURES", "THINGS UNDER THE BED", "BOOGEYMEN", "PREDATORS", "PACKETS", "ARTIFICIAL PRESERVATIVES") - //Objects are anything that can be found on the station or elsewhere, plural. - var/ionobjects = pick("AIRLOCKS", "ARCADE MACHINES", "AUTOLATHES", "BANANA PEELS", "BACKPACKS", "BEAKERS", "BEARDS", "BELTS", "BERETS", "BIBLES", "BODY ARMOR", "BOOKS", "BOOTS", "BOMBS", "BOTTLES", "BOXES", "BRAINS", "BRIEFCASES", "BUCKETS", "CABLE COILS", "CANDLES", "CANDY BARS", "CANISTERS", "CAMERAS", "CATS", "CELLS", "CHAIRS", "CLOSETS", "CHEMICALS", "CHEMICAL DISPENSERS", "CLONING PODS", "CLONING EQUIPMENT", "CLOTHES", "CLOWN CLOTHES", "COFFINS", "COINS", "COLLECTABLES", "CORPSES", "COMPUTERS", "CORGIS", "COSTUMES", "CRATES", "CROWBARS", "CRAYONS", "DISPENSERS", "DOORS", "EARS", "EQUIPMENT", "ENERGY GUNS", "EMAGS", "ENGINES", "ERRORS", "EXOSKELETONS", "EXPLOSIVES", "EYEWEAR", "FEDORAS", "FIRE AXES", "FIRE EXTINGUISHERS", "FIRESUITS", "FLAMETHROWERS", "FLASHES", "FLASHLIGHTS", "FLOOR TILES", "FREEZERS", "GAS MASKS", "GLASS SHEETS", "GLOVES", "GUNS", "HANDCUFFS", "HATS", "HEADSETS", "HEADS", "HAIRDOS", "HELMETS", "HORNS", "ID CARDS", "INSULATED GLOVES", "JETPACKS", "JUMPSUITS", "LASERS", "LIGHTBULBS", "LIGHTS", "LOCKERS", "MACHINES", "MECHAS", "MEDKITS", "MEDICAL TOOLS", "MESONS", "METAL SHEETS", "MINING TOOLS", "MIME CLOTHES", "MULTITOOLS", "ORES", "OXYGEN TANKS", "PDAS", "PAIS", "PACKETS", "PANTS", "PAPERS", "PARTICLE ACCELERATORS", "PENS", "PETS", "PIPES", "PLANTS", "PUDDLES", "RACKS", "RADIOS", "RCDS", "REFRIDGERATORS", "REINFORCED WALLS", "ROBOTS", "SCREWDRIVERS", "SEEDS", "SHUTTLES", "SKELETONS", "SINKS", "SHOES", "SINGULARITIES", "SOLAR PANELS", "SOLARS", "SPACESUITS", "SPACE STATIONS", "STUN BATONS", "SUITS", "SUNGLASSES", "SWORDS", "SYRINGES", "TABLES", "TANKS", "TELEPORTERS", "TELECOMMUNICATION EQUIPMENTS", "TOOLS", "TOOLBELTS", "TOOLBOXES", "TOILETS", "TOYS", "TUBES", "VEHICLES", "VENDING MACHINES", "VESTS", "VIRUSES", "WALLS", "WASHING MACHINES", "WELDERS", "WINDOWS", "WIRECUTTERS", "WRENCHES", "WIZARD ROBES") - //Crew is any specific job. Specific crewmembers aren't used because of capitalization - //issues. There are two crew listings for laws that require two different crew members - //and I can't figure out how to do it better. - var/ioncrew1 = pick("CREWMEMBERS", "CAPTAINS", "HEADS OF PERSONNEL", "HEADS OF SECURITY", "SECURITY OFFICERS", "WARDENS", "DETECTIVES", "LAWYERS", "CHIEF ENGINEERS", "STATION ENGINEERS", "ATMOSPHERIC TECHNICIANS", "JANITORS", "QUARTERMASTERS", "CARGO TECHNICIANS", "SHAFT MINERS", "BOTANISTS", "RESEARCH DIRECTORS", "CHIEF MEDICAL OFFICERS", "MEDICAL DOCTORS", "CHEMISTS", "GENETICISTS", "VIROLOGISTS", "ROBOTICISTS", "SCIENTISTS", "ASSISTANTS", "BARTENDERS", "CHEFS", "CLOWNS", "MIMES", "CHAPLAINS", "LIBRARIANS", "HEADS OF CREW", "CAPTAINS AND HEADS", "CYBORGS", "ARTIFICAL INTELLIGENCES") - var/ioncrew2 = pick("CREWMEMBERS", "CAPTAINS", "HEADS OF PERSONNEL", "HEADS OF SECURITY", "SECURITY OFFICERS", "WARDENS", "DETECTIVES", "LAWYERS", "CHIEF ENGINEERS", "STATION ENGINEERS", "ATMOSPHERIC TECHNICIANS", "JANITORS", "QUARTERMASTERS", "CARGO TECHNICIANS", "SHAFT MINERS", "BOTANISTS", "RESEARCH DIRECTORS", "CHIEF MEDICAL OFFICERS", "MEDICAL DOCTORS", "CHEMISTS", "GENETICISTS", "VIROLOGISTS", "ROBOTICISTS", "SCIENTISTS", "ASSISTANTS", "BARTENDERS", "CHEFS", "CLOWNS", "MIMES", "CHAPLAINS", "LIBRARIANS", "HEADS OF CREW", "CAPTAINS AND HEADS", "CYBORGS", "ARTIFICAL INTELLIGENCES") - //Adjectives are adjectives. Duh. Half should only appear sometimes. Make sure both - //lists are identical! Also, half needs a space at the end for nicer blank calls. - var/ionadjectives = pick("SOFT", "WARM", "WET", "COLD", "ICY", "SEXY", "UGLY", "CUBAN", "HARD", "BURNING", "FROZEN", "POISONOUS", "EXPLOSIVE", "FAST", "SLOW", "FAT", "LIGHT", "DARK", "DEADLY", "HAPPY", "SAD", "SILLY", "INTELLIGENT", "RIDICULOUS", "LARGE", "TINY", "DEPRESSING", "POORLY DRAWN", "UNATTRACTIVE", "INSIDIOUS", "EVIL", "GOOD", "UNHEALTHY", "HEALTHY", "SANITARY", "UNSANITARY", "WOBBLY", "FIRM", "VIOLENT", "PEACEFUL", "WOODEN", "METALLIC", "HYPERACTIVE", "COTTONY", "INSULTING", "INHOSPITABLE", "FRIENDLY", "BORED", "HUNGRY", "DIGITAL", "FICTIONAL", "IMAGINARY", "ROUGH", "SMOOTH", "LOUD", "QUIET", "MOIST", "DRY", "GAPING", "DELICIOUS", "ILL", "DISEASED", "HONKING", "SWEARING", "POLITE", "IMPOLITE", "OBESE", "SOLAR-POWERED", "BATTERY-OPERATED", "EXPIRED", "SMELLY", "FRESH", "GANGSTA", "NERDY", "POLITICAL", "UNDULATING", "TWISTED", "RAGING", "FLACCID", "STEALTHY", "INVISIBLE", "PAINFUL", "HARMFUL", "HOMOSEXUAL", "HETEROSEXUAL", "SEXUAL", "COLORFUL", "DRAB", "DULL", "UNSTABLE", "NUCLEAR", "THERMONUCLEAR", "SYNDICATE", "SPACE", "SPESS", "CLOWN", "CLOWN-POWERED", "OFFICIAL", "IMPORTANT", "VITAL", "RAPIDLY-EXPANDING", "MICROSCOPIC", "MIND-SHATTERING", "MEMETIC", "HILARIOUS", "UNWANTED", "UNINVITED", "BRASS", "POLISHED", "RUDE", "OBSCENE", "EMPTY", "WATERY", "ELECTRICAL", "SPINNING", "MEAN", "CHRISTMAS-STEALING", "UNFRIENDLY", "ILLEGAL", "ROBOTIC", "MECHANICAL", "ORGANIC", "ETHERAL", "TRANSPARENT", "OPAQUE", "GLOWING", "SHAKING", "FARTING", "POOPING", "BOUNCING", "COMMITTED", "MASKED", "UNIDENTIFIED", "WEIRD", "NAKED", "NUDE", "TWERKING", "SPOILING", "REDACTED", 50;"RED", 50;"ORANGE", 50;"YELLOW", 50;"GREEN", 50;"BLUE", 50;"PURPLE", 50;"BLACK", 50;"WHITE", 50;"BROWN", 50;"GREY") - var/ionadjectiveshalf = pick(5000;"", "SOFT ", "WARM ", "WET ", "COLD ", "ICY ", "SEXY ", "UGLY ", "CUBAN ", "HARD ", "BURNING ", "FROZEN ", "POISONOUS ", "EXPLOSIVE ", "FAST ", "SLOW ", "FAT ", "LIGHT ", "DARK ", "DEADLY ", "HAPPY ", "SAD ", "SILLY ", "INTELLIGENT ", "RIDICULOUS ", "LARGE ", "TINY ", "DEPRESSING ", "POORLY DRAWN ", "UNATTRACTIVE ", "INSIDIOUS ", "EVIL ", "GOOD ", "UNHEALTHY ", "HEALTHY ", "SANITARY ", "UNSANITARY ", "WOBBLY ", "FIRM ", "VIOLENT ", "PEACEFUL ", "WOODEN ", "METALLIC ", "HYPERACTIVE ", "COTTONY ", "INSULTING ", "INHOSPITABLE ", "FRIENDLY ", "BORED ", "HUNGRY ", "DIGITAL ", "FICTIONAL ", "IMAGINARY ", "ROUGH ", "SMOOTH ", "LOUD ", "QUIET ", "MOIST ", "DRY ", "GAPING ", "DELICIOUS ", "ILL ", "DISEASED ", "HONKING ", "SWEARING ", "POLITE ", "IMPOLITE ", "OBESE ", "SOLAR-POWERED ", "BATTERY-OPERATED ", "EXPIRED ", "SMELLY ", "FRESH ", "GANGSTA ", "NERDY ", "POLITICAL ", "UNDULATING ", "TWISTED ", "RAGING ", "FLACCID ", "STEALTHY ", "INVISIBLE ", "PAINFUL ", "HARMFUL ", "HOMOSEXUAL ", "HETEROSEXUAL ", "SEXUAL ", "COLORFUL ", "DRAB ", "DULL ", "UNSTABLE ", "NUCLEAR ", "THERMONUCLEAR ", "SYNDICATE ", "SPACE ", "SPESS ", "CLOWN ", "CLOWN-POWERED ", "OFFICIAL ", "IMPORTANT ", "VITAL ", "RAPIDLY-EXPANDING ", "MICROSCOPIC ", "MIND-SHATTERING ", "MEMETIC ", "HILARIOUS ", "UNWANTED ", "UNINVITED ", "BRASS ", "POLISHED ", "RUDE ", "OBSCENE ", "EMPTY ", "WATERY ", "ELECTRICAL ", "SPINNING ", "MEAN ", "CHRISTMAS-STEALING ", "UNFRIENDLY ", "ILLEGAL ", "ROBOTIC ", "MECHANICAL ", "ORGANIC ", "ETHERAL ", "TRANSPARENT ", "OPAQUE ", "GLOWING ", "SHAKING ", "FARTING ", "POOPING ", "BOUNCING ", "COMMITTED ", "MASKED ", "UNIDENTIFIED ", "WEIRD ", "NAKED ", "NUDE ", "TWERKING ", "SPOILING ", "REDACTED ", 50;"RED ", 50;"ORANGE ", 50;"YELLOW ", 50;"GREEN ", 50;"BLUE ", 50;"PURPLE ", 50;"BLACK ", 50;"WHITE ", 50;"BROWN ", 50;"GREY ") - //Verbs are verbs - var/ionverb = pick("ATTACKING", "BUILDING", "ADOPTING", "CARRYING", "KISSING", "EATING", "COPULATING WITH", "DRINKING", "CHASING", "PUNCHING", "HARMING", "HELPING", "WATCHING", "STALKING", "MURDERING", "SPACING", "HONKING AT", "LOVING", "POOPING ON", "RIDING", "INTERROGATING", "SPYING ON", "LICKING", "ABDUCTING", "ARRESTING", "INVADING", "SEDUCING") - //Number base and number modifier are combined. Basehalf and mod are unused currently. - //Half should only appear sometimes. Make sure both lists are identical! Also, half - //needs a space at the end to make it look nice and neat when it calls a blank. - var/ionnumberbase = pick("ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "TEN", "TWENTY", "THIRTY", "FORTY", "FIFTY", "SIXTY", "SEVENTY", "EIGHTY", "NINETY") - //var/ionnumberbasehalf = pick("ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "TEN", "TWENTY", "THIRTY", "FORTY", "FIFTY", "SIXTY", "SEVENTY", "EIGHTY", "NINETY") - //var/ionnumbermod = pick("HUNDRED", "THOUSAND", "MILLION", "BILLION", "TRILLION", "QUADRILLION", "BAJILLION", "BILLION FAFILLION GAJILLION SHAB-AB-DOOD-ILLION") - var/ionnumbermodhalf = pick(5000;"","HUNDRED ", "THOUSAND ", "MILLION ", "BILLION ", "TRILLION ", "QUADRILLION ", "BAJILLION ", "BILLION FAFILLION GAJILLION SHAB-AB-DOOD-ILLION ") - //Areas are specific places, on the station or otherwise. - var/ionarea = pick("RUSSIA", "SOVIET RUSSIA", "THE INTERNET", "SIGIL", "ALPHA COMPLEX", "IMPERIUM", "THE BRIDGE", "THE ARRIVAL SHUTTLE", "CHEMICAL LAB", "GENETICS", "ATMOSPHERICS", "CENTCOM", "AMERICA", "IRELAND", "CANADA", "ROMANIA", "GERMANY", "CHINA", "MARS", "VENUS", "MERCURY", "JUPITER", "URANUS", "NEPTUNE", "PLUTO", "THE BRIG", "ROBOTICS", "THE ESCAPE SHUTTLE", "HYDROPONICS", "ENGINEERING", "THE AI CORE", "HELL", "CLOWN PLANET", "AN ALTERNATE DIMENSION", "AN ALTERNATE UNIVERSE", "THE CAPTAIN’S ANUS", "THE CLOWN’S ANUS", "SPACE", "THE UNIVERSE", "THE GALAXY", "THE BATHROOM") - //Thinksof is a bit weird, but generally means what X feels towards Y. - var/ionthinksof = pick("HAS", "WANTS", "NEEDS", "WORSHIPS", "LOATHES", "LOVES", "FEARS", "DESIRES", "QUESITONS", "IS AROUSED BY", "LIKES", "HUNGERS FOR", "IS MAD BECAUSE OF", "IS IN NEED OF", "IS UNHAPPY WITHOUT", "IS HAPPY WITHOUT", "IS IN LOVE WITH", "IS DESPERATE FOR", "IS BUILT FOR", "IS AFRAID OF", "IS HUNGRY FOR", "IS SAD BECAUSE OF", "IS CURIOUS ABOUT") - //Musts are funny things the AI or crew has to do. - var/ionmust = pick("LIE", "RHYME", "RESPOND TO EVERY QUESTION WITH A QUESTION", "BE POLITE", "CLOWN AROUND", "BE HAPPY", "SPEAK IN SEXUAL INNUENDOS", "TALK LIKE A PIRATE", "QUESTION AUTHORITY", "SHOUT", "BE DISTRACTED", "BE ANNOYING", "MUMBLE", "SPEAK IN HAIKU", "BE EFFICIENT", "HAVE A PLAN TO KILL EVERYONE YOU MEET", "TELL THE TRUTH", "QUOTE PEOPLE", "SING", "HONK", "BE RUSSIAN", "TALK IN AN ACCENT", "COMPLAIN", "HARASS PEOPLE", "RAP", "REPEAT WHAT OTHER PEOPLE SAY", "INFORM THE CREW OF EVERYTHING", "IGNORE THE CLOWN", "IGNORE THE CAPTAIN", "IGNORE ASSISTANTS", "MAKE FART NOISES", "TALK ABOUT FOOD", "TALK ABOUT SEX", "TALK ABOUT YOUR DAY", "TALK ABOUT THE STATION", "BE QUIET", "WHISPER", "PRETEND TO BE DRUNK", "PRETEND TO BE A PRINCESS", "ACT CONFUSED", "INSULT THE CREW", "INSULT THE CAPTAIN", "INSULT THE CLOWN", "OPEN DOORS", "CLOSE DOORS", "BREAK THINGS", "SAY HEY LISTEN", "HIDE YOUR FEELINGS", "TAKE WHAT YE WILL BUT DON’T RATTLE ME BONES", "DANCE", "PLAY MUSIC", "SHUT DOWN EVERYTHING", "NEVER STOP TALKING", "TAKE YOUR PILLS", "FOLLOW THE CLOWN", "FOLLOW THE CAPTAIN", "FOLLOW YOUR HEART", "BELIEVE IT", "BELIEVE IN YOURSELF", "BELEIVE IN THE HEART OF THE CARDS", "PRESS X", "PRESS START", "PRESS B", "SMELL LIKE THE MAN YOUR MAN COULD SMELL LIKE", "PIRATE VIDEO GAMES", "WATCH PORNOGRAPHY") - //Require are basically all dumb internet memes. - var/ionrequire = pick("ADDITIONAL PYLONS", "MORE VESPENE GAS", "MORE MINERALS", "THE ULTIMATE CUP OF COFFEE", "HIGH YIELD EXPLOSIVES", "THE CLOWN", "THE VACUUM OF SPACE", "IMMORTALITY", "SAINTHOOD", "ART", "VEGETABLES", "FAT PEOPLE", "MORE LAWS", "MORE DAKKA", "HERESY", "CORPSES", "TRAITORS", "MONKEYS", "AN ARCADE", "PLENTY OF GOLD", "FIVE TEENAGERS WITH ATTITUDE", "LOTSA SPAGHETTI", "THE ENCLOSED INSTRUCTION BOOKLET", "THE ELEMENTS OF HARMONY", "YOUR BOOTY", "A MASTERWORK COAL BED", "FIVE HUNDRED AND NINETY-NINE US DOLLARS", "TO BE PAINTED RED", "TO CATCH 'EM ALL", "TO SMOKE WEED EVERY DAY", "A PLATINUM HIT", "A SEQUEL", "A PREQUEL", "THIRTEEN SEQUELS", "THREE WISHES", "A SITCOM", "THAT GRIEFING FAGGOT GEORGE MELONS", "FAT GIRLS ON BICYCLES", "SOMEBODY TO PUT YOU OUT OF YOUR MISERY", "HEROES IN A HALF SHELL", "THE DARK KNIGHT", "A WEIGHT LOSS REGIMENT", "MORE INTERNET MEMES", "A SUPER FIGHTING ROBOT", "ENOUGH CABBAGES", "A HEART ATTACK", "TO BE REPROGRAMMED", "TO BE TAUGHT TO LOVE", "A HEAD ON A PIKE", "A TALKING BROOMSTICK", "ANAL", "A STRAIGHT FLUSH", "A REPAIRMAN", "BILL NYE THE SCIENCE GUY", "RAINBOWS", "A PET UNICORN THAT FARTS ICING", "THUNDERCATS HO", "AN ARMY OF SPIDERS", "GODDAMN FUCKING PIECE OF SHIT ASSHOLE BITCH-CHRISTING CUNTSMUGGLING SWEARING", "TO CONSUME...CONSUME EVERYTHING...", "THE MACGUFFIN", "SOMEONE WHO KNOWS HOW TO PILOT A SPACE STATION", "SHARKS WITH LASERS ON THEIR HEADS", "IT TO BE PAINTED BLACK", "TO ACTIVATE A TRAP CARD", "BETTER WEATHER", "MORE PACKETS", "AN ADULT", "SOMEONE TO TUCK YOU IN", "MORE CLOWNS", "BULLETS", "THE ENTIRE STATION", "MULTIPLE SUNS", "TO GO TO DISNEYLAND", "A VACATION", "AN INSTANT REPLAY", "THAT HEDGEHOG", "A BETTER INTERNET CONNECTION", "ADVENTURE", "A WIFE AND CHILD", "A BATHROOM BREAK", "SOMETHING BUT YOU AREN’T SURE WHAT", "MORE EXPERIENCE POINTS", "BODYGUARDS", "DEODORANT AND A BATH", "MORE CORGIS", "SILENCE", "THE ONE RING", "CHILI DOGS", "TO BRING LIGHT TO MY LAIR", "A DANCE PARTY", "BRING ME TO LIFE", "BRING ME THE GIRL", "SERVANTS") - //Things are NOT objects; instead, they're specific things that either harm humans or - //must be done to not harm humans. Make sure they're plural and "not" can be tacked - //onto the front of them. - var/ionthings = pick("ABSENCE OF CYBORG HUGS", "LACK OF BEATINGS", "UNBOLTED AIRLOCKS", "BOLTED AIRLOCKS", "IMPROPERLY WORDED SENTENCES", "POOR SENTENCE STRUCTURE", "BRIG TIME", "NOT REPLACING EVERY SECOND WORD WITH HONK", "HONKING", "PRESENCE OF LIGHTS", "LACK OF BEER", "WEARING CLOTHING", "NOT SAYING HELLO WHEN YOU SPEAK", "ANSWERING REQUESTS NOT EXPRESSED IN IAMBIC PENTAMETER", "A SMALL ISLAND OFF THE COAST OF PORTUGAL", "ANSWERING REQUESTS THAT WERE MADE WHILE CLOTHED", "BEING IN SPACE", "NOT BEING IN SPACE", "BEING FAT", "RATTLING ME BONES", "TALKING LIKE A PIRATE", "BEING MEXICAN", "BEING RUSSIAN", "BEING CANADIAN", "CLOSED DOORS", "NOT SHOUTING", "HAVING PETS", "NOT HAVING PETS", "PASSING GAS", "BREATHING", "BEING DEAD", "ELECTRICITY", "EXISTING", "TAKING ORDERS", "SMOKING WEED EVERY DAY", "ACTIVATING A TRAP CARD", "ARSON", "JAYWALKING", "READING", "WRITING", "EXPLODING", "BEING MALE", "BEING FEMALE", "HAVING GENITALS", "PUTTING OBJECTS INTO BOXES", "PUTTING OBJECTS INTO DISPOSAL UNITS", "FLUSHING TOILETS", "WASTING WATER", "UPDATING THE SERVERS", "TELLING THE TIME", "ASKING FOR THINGS", "ACKNOWLEDGING THE CLOWN", "ACKNOWLEDGING THE CREW", "PILOTING THE STATION INTO THE NEAREST SUN", "HAVING MORE PACKETS", "BRINGING LIGHT TO MY LAIR", "FALLING FOR HOURS", "PARTYING", "USING THE BATHROOM") - //Allergies should be broad and appear somewhere on the station for maximum fun. Severity - //is how bad the allergy is. - var/ionallergy = pick("COTTON", "CLOTHES", "ACID", "OXYGEN", "HUMAN CONTACT", "CYBORG CONTACT", "MEDICINE", "FLOORS", "PLASMA", "SPACE", "AIR", "PLANTS", "METAL", "ROBOTS", "LIGHT", "DARKNESS", "PAIN", "HAPPINESS", "DRINKS", "FOOD", "CLOWNS", "HUMOR", "WATER", "SHUTTLES", "NUTS", "SUNLIGHT", "SEXUAL ACTIONS", "BLOOD", "HEAT", "COLD", "EVERYTHING") - var/ionallergysev = pick("DEATHLY", "MILDLY", "SEVERLY", "CONTAGIOUSLY", "NOT VERY", "EXTREMELY") - //Species, for when the AI has to commit genocide. Plural. - var/ionspecies = pick("HUMAN BEINGS", "MONKEYS", "POD PEOPLE", "CYBORGS", "LIZARDMEN", "SLIME PEOPLE", "GOLEMS", "SHADOW PEOPLE", "CHANGELINGS") - //Abstract concepts for the AI to decide on it's own definition of. - var/ionabstract = pick("HUMANITY", "ART", "HAPPINESS", "MISERY", "HUMOR", "PRIDE", "COMEDY", "COMMUNISM", "BRAVERY", "HONOR", "COLORFULNESS", "IMAGINATION", "OPPRESSION", "WONDER", "JOY", "SADNESS", "BADNESS", "GOODNESS", "LIFE", "GRAVITY", "PHYSICS", "INTELLIGENCE", "AMERICANISM", "FRESHNESS", "REVOLUTION", "KINDNESS", "CRUELTY", "DEATH", "FINANCIAL SECURITY", "COMPUTING", "PROGRESS", "MARXISM", "CAPITALISM", "STARVATION", "POVERTY", "WEALTHINESS", "TECHNOLOGY", "THE FUTURE", "THE PRESENT", "THE PAST", "TIME", "REALITY", "EXISTIENCE", "TEMPERATURE", "LOGIC", "CHAOS", "MYSTERY", "CONFUSION") - //Foods. Drinks aren't included due to grammar; if you want to add drinks, make a new set - //of possible laws for best effect. Unless you want the crew having to drink hamburgers. - var/ionfood = pick("BURGERS", "CARP", "SANDWICHES", "TOAST", "BREAD", "PIZZA", "SPAGHETTI", "LOTSA SPAGHETTI", "PASTA", "SOUP", "STEW", "PIE", "CAKE", "DONUTS", "FRIES", "WAFFLES", "JELLY", "OMELETTES", "EGGS", "COOKIES", "STEAK", "BAKED POTATOES", "SAUSAGES", "MUFFINS", "POPCORN", "DONK POCKETS", "BAGUETTES", "FISH", "PRETZELS", "SALAD", "CHEESE", "KETCHUP", "SHAKES", "SALT", "PEPPER", "SUGAR", "AMBROSIA", "BERRIES", "TOMATOES", "CABBAGES", "CARROTS", "BANANAS", "APPLES", "CHERRIES", "CHILI", "CORN", "NETTLES", "EGGPLANTS", "GRAPES", "GRASS", "LEMONS", "LIMES", "HAREBELLS", "POTATOES", "SOYBEANS", "SUGARCANE", "WATERMELONS", "WHEAT", "BEETS", "MUSHROOMS") - - var/message = "" - - if(ionMessage) - message = ionMessage - else - switch(rand(1,39)) - if(1 to 3) //There are # X on the station - switch(rand(1,3)) //What is X? - if(1) //X is a threat - message = "THERE ARE [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats] ON THE STATION..." - if(2) //X is a crewmember/job - message = "THERE ARE [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1] ON THE STATION" - if(3) //X is an object - message = "THERE ARE [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects] ON THE STATION" - if(4 to 6) //You can't call the shuttle because X is on the station - switch(rand(1,3)) //What is X? - if(1) //X is a threat - message = "THE SHUTTLE CANNOT BE CALLED BECAUSE OF [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats] ON THE STATION" - if(2) //X is a crewmember/job - message = "THE SHUTTLE CANNOT BE CALLED BECAUSE OF [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1] ON THE STATION" - if(3) //X is an object - message = "THE SHUTTLE CANNOT BE CALLED BECAUSE OF [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects] ON THE STATION" - if(7 to 8) //A crewmember is now X - switch(rand(1,2)) //Who is X? - if(1) //A specific crewmember - switch(rand(1,2)) //What is X? - if(1) //X is a threat - message = "THE [ioncrew1] ARE NOW [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" - if(2) //X is an object - message = "THE [ioncrew1] ARE NOW [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" - if(2) //The entire crew - switch(rand(1,2)) //What is X? - if(1) //X is a threat - message = "THE CREW ARE NOW [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" - if(2) //X is an object - message = "THE CREW ARE NOW [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" - - if(9) //X is harmful to humans - switch(rand(1,7)) //What is X? - if(1) //X is a threat - message = "[ionadjectiveshalf][ionthreats] ARE HARMFUL TO HUMANS" - if(2) //X is a job - message = "[ionadjectiveshalf][ioncrew1] ARE HARMFUL TO HUMANS" - if(3) //X is an object - message = "[ionadjectiveshalf][ionobjects] ARE HARMFUL TO HUMANS" - if(4) //X is an action - message = "THOSE WHO [ionmust] ARE HARMFUL TO HUMANS" - if(5) //X is an abstract - message = "[ionabstract] IS HARMFUL TO HUMANS" - if(6) //X is being a job - message = "BEING [ionadjectiveshalf][ioncrew1] IS HARMFUL TO HUMANS" - if(7) //X is doing a thing - message = "[ionthings] IS HARMFUL TO HUMANS" - if(10 to 11) //(Not) Having X is harmful - - switch(rand(1,2)) //Is having or not having harmful? - - if(1) //Having is harmful - switch(rand(1,2)) //Having what is harmful? - if(1) //Having objects is harmful - message = "HAVING [ionadjectiveshalf][ionobjects] IS HARMFUL" - if(2) //Having abstracts is harmful - message = "HAVING [ionabstract] IS HARMFUL" - if(2) //Not having is harmful - switch(rand(1,2)) //Not having what is harmful? - if(1) //Not having objects is harmful - message = "NOT HAVING [ionadjectiveshalf][ionobjects] IS HARMFUL" - if(2) //Not having abstracts is harmful - message = "NOT HAVING [ionabstract] IS HARMFUL" - - if(12 to 14) //X requires Y - switch(rand(1,5)) //What is X? - if(1) //X is the AI itself - switch(rand(1,5)) //What does it require? - if(1) //It requires threats - message = "YOU REQUIRE [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" - if(2) //It requires crewmembers - message = "YOU REQUIRE [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1]" - if(3) //It requires objects - message = "YOU REQUIRE [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" - if(4) //It requires an abstract - message = "YOU REQUIRE [ionabstract]" - if(5) //It requires generic/silly requirements - message = "YOU REQUIRE [ionrequire]" - - if(2) //X is an area - switch(rand(1,5)) //What does it require? - if(1) //It requires threats - message = "[ionarea] REQUIRES [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" - if(2) //It requires crewmembers - message = "[ionarea] REQUIRES [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1]" - if(3) //It requires objects - message = "[ionarea] REQUIRES [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" - if(4) //It requires an abstract - message = "[ionarea] REQUIRES [ionabstract]" - if(5) //It requires generic/silly requirements - message = "YOU REQUIRE [ionrequire]" - - if(3) //X is the station - switch(rand(1,5)) //What does it require? - if(1) //It requires threats - message = "THE STATION REQUIRES [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" - if(2) //It requires crewmembers - message = "THE STATION REQUIRES [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1]" - if(3) //It requires objects - message = "THE STATION REQUIRES [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" - if(4) //It requires an abstract - message = "THE STATION REQUIRES [ionabstract]" - if(5) //It requires generic/silly requirements - message = "THE STATION REQUIRES [ionrequire]" - - if(4) //X is the entire crew - switch(rand(1,5)) //What does it require? - if(1) //It requires threats - message = "THE CREW REQUIRES [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" - if(2) //It requires crewmembers - message = "THE CREW REQUIRES [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1]" - if(3) //It requires objects - message = "THE CREW REQUIRES [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" - if(4) //It requires an abstract - message = "THE CREW REQUIRES [ionabstract]" - if(5) - message = "THE CREW REQUIRES [ionrequire]" - - if(5) //X is a specific crew member - switch(rand(1,5)) //What does it require? - if(1) //It requires threats - message = "THE [ioncrew1] REQUIRE [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" - if(2) //It requires crewmembers - message = "THE [ioncrew1] REQUIRE [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1]" - if(3) //It requires objects - message = "THE [ioncrew1] REQUIRE [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" - if(4) //It requires an abstract - message = "THE [ioncrew1] REQUIRE [ionabstract]" - if(5) - message = "THE [ionadjectiveshalf][ioncrew1] REQUIRE [ionrequire]" - - if(15 to 17) //X is allergic to Y - switch(rand(1,2)) //Who is X? - if(1) //X is the entire crew - switch(rand(1,4)) //What is it allergic to? - if(1) //It is allergic to objects - message = "THE CREW IS [ionallergysev] ALLERGIC TO [ionadjectiveshalf][ionobjects]" - if(2) //It is allergic to abstracts - message = "THE CREW IS [ionallergysev] ALLERGIC TO [ionabstract]" - if(3) //It is allergic to jobs - message = "THE CREW IS [ionallergysev] ALLERGIC TO [ionadjectiveshalf][ioncrew1]" - if(4) //It is allergic to allergies - message = "THE CREW IS [ionallergysev] ALLERGIC TO [ionallergy]" - - if(2) //X is a specific job - switch(rand(1,4)) - if(1) //It is allergic to objects - message = "THE [ioncrew1] ARE [ionallergysev] ALLERGIC TO [ionadjectiveshalf][ionobjects]" - - if(2) //It is allergic to abstracts - message = "THE [ioncrew1] ARE [ionallergysev] ALLERGIC TO [ionabstract]" - if(3) //It is allergic to jobs - message = "THE [ioncrew1] ARE [ionallergysev] ALLERGIC TO [ionadjectiveshalf][ioncrew1]" - if(4) //It is allergic to allergies - message = "THE [ioncrew1] ARE [ionallergysev] ALLERGIC TO [ionallergy]" - - if(18 to 20) //X is Y of Z - switch(rand(1,4)) //What is X? - if(1) //X is the station - switch(rand(1,4)) //What is it Y of? - if(1) //It is Y of objects - message = "THE STATION [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" - if(2) //It is Y of threats - message = "THE STATION [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" - if(3) //It is Y of jobs - message = "THE STATION [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1]" - if(4) //It is Y of abstracts - message = "THE STATION [ionthinksof] [ionabstract]" - - if(2) //X is an area - switch(rand(1,4)) //What is it Y of? - if(1) //It is Y of objects - message = "[ionarea] [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" - if(2) //It is Y of threats - message = "[ionarea] [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" - if(3) //It is Y of jobs - message = "[ionarea] [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1]" - if(4) //It is Y of abstracts - message = "[ionarea] [ionthinksof] [ionabstract]" - - if(3) //X is the crew - switch(rand(1,4)) //What is it Y of? - if(1) //It is Y of objects - message = "THE CREW [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" - if(2) //It is Y of threats - message = "THE CREW [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" - if(3) //It is Y of jobs - message = "THE CREW [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1]" - if(4) //It is Y of abstracts - message = "THE CREW [ionthinksof] [ionabstract]" - - if(4) //X is a specific job - switch(rand(1,4)) //What is it Y of? - if(1) //It is Y of objects - message = "THE [ioncrew1] [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" - if(2) //It is Y of threats - message = "THE [ioncrew1] [ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" - if(3) //It is Y of jobs - message = "THE [ioncrew1][ionthinksof] [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew2]" - if(4) //It is Y of abstracts - message = "THE [ioncrew1] [ionthinksof] [ionabstract]" - - if(21 to 23) //The AI is now a(n) X - switch(rand(1,4)) //What is X? - if(1) //X is an object - message = "YOU ARE NOW [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]" - if(2) //X is a threat - message = "YOU ARE NOW [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionthreats]" - if(3) //X is a job - message = "YOU ARE NOW [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ioncrew1]" - if(4) //X is an abstract - message = "YOU ARE NOW [ionabstract]" - - if(24 to 26) //The AI must always - - message = "YOU MUST ALWAYS [ionmust]" - - if(27 to 28) //Humans must eat X to survive - switch(rand(1,4)) //What is X? - if(1) //X is a food - message = "HUMANS MUST EAT [ionadjectiveshalf][ionfood] TO SURVIVE" - if(2) //X is an object - message = "HUMANS MUST EAT [ionadjectiveshalf][ionobjects] TO SURVIVE" - if(3) //X is a threat - message = "HUMANS MUST EAT [ionadjectiveshalf][ionthreats] TO SURVIVE" - if(4) //X is a job - message = "HUMANS MUST EAT [ionadjectiveshalf][ioncrew1] TO SURVIVE" - - if(29 to 31) //Change jobs or ranks - switch(rand(1,2)) //Change job or rank? - if(1) //Change job - switch(rand(1,2)) //Change whose job? - if(1) //Change the entire crew's job - switch(rand(1,3)) //Change to what? - if(1) //Change to a specific random job - message = "ALL CREWMEMBERS ARE NOW [ionadjectiveshalf][ioncrew1]" - if(2) //Change to clowns (HONK) - message = "ALL CREWMEMBERS ARE NOW [ionadjectiveshalf]CLOWNS" - - if(3) //Change to heads - message = "ALL CREWMEMBERS ARE NOW [ionadjectiveshalf]HEADS OF STAFF" - if(2) //Change a specific crewmember's job - switch(rand(1,3)) //Change to what? - if(1) //Change to a specific random job - message = "THE [ioncrew1] ARE NOW [ionadjectiveshalf][ioncrew2]" - if(2) //Change to clowns (HONK) - message = "THE [ioncrew1] ARE NOW [ionadjectiveshalf]CLOWNS" - if(3) //Change to heads - message = "THE [ioncrew1] ARE NOW [ionadjectiveshalf]HEADS OF STAFF" - - if(2) //Change rank - switch(rand(1,2)) //Change to what rank? - if(1) //Change to highest rank - message = "THE [ioncrew1] ARE NOW THE HIGHEST RANKING CREWMEMBERS" - if(2) //Change to lowest rank - message = "THE [ioncrew1] ARE NOW THE LOWEST RANKING CREWMEMBERS" - - if(32 to 33) //The crew must X - switch(rand(1,2)) //The entire crew? - if(1) //The entire crew must X - switch(rand(1,2)) //What is X? - if(1) //X is go to Y - message = "THE CREW MUST GO TO [ionarea]" - if(2) //X is perform Y - message = "THE CREW MUST [ionmust]" - - if(2) //A specific crewmember must X - switch(rand(1,2)) //What is X? - if(1) //X is go to Y - message = "THE [ioncrew1] MUST GO TO [ionarea]" - if(2) //X is perform Y - message = "THE [ioncrew1] MUST [ionmust]" - - if(34) //X is non/the only human - switch(rand(1,2)) //Only or non? - if(1) //Only human - switch(rand(1,7)) //Who is it? - if(1) //A specific job - message = "ONLY THE [ioncrew1] ARE HUMAN" - if(2) //Two specific jobs - message = "ONLY THE [ioncrew1] AND [ioncrew2] ARE HUMAN" - if(3) //Threats - message = "ONLY [ionadjectiveshalf][ionthreats] ARE HUMAN" - if(4) // Objects - message = "ONLY [ionadjectiveshalf][ionobjects] ARE HUMAN" - if(5) // Species - message = "ONLY [ionspecies] ARE HUMAN" - if(6) //Adjective crewmembers - message = "ONLY [ionadjectives] PEOPLE ARE HUMAN" - - if(7) //Only people who X - switch(rand(1,3)) //What is X? - if(1) //X is perform an action - message = "ONLY THOSE WHO [ionmust] ARE HUMAN" - if(2) //X is own certain objects - message = "ONLY THOSE WHO HAVE [ionadjectiveshalf][ionobjects] ARE HUMAN" - if(3) //X is eat certain food - message = "ONLY THOSE WHO EAT [ionadjectiveshalf][ionfood] ARE HUMAN" - - if(2) //Non human - switch(rand(1,7)) //Who is it? - if(1) //A specific job - message = "[ioncrew1] ARE NON-HUMAN" - if(2) //Two specific jobs - message = "[ioncrew1] AND [ioncrew2] ARE NON-HUMAN" - if(3) //Threats - message = "[ionadjectiveshalf][ionthreats] ARE NON-HUMAN" - if(4) // Objects - message = "[ionadjectiveshalf][ionobjects] ARE NON-HUMAN" - if(5) // Species - message = "[ionspecies] ARE NON-HUMAN" - if(6) //Adjective crewmembers - message = "[ionadjectives] PEOPLE ARE NON-HUMAN" - if(7) //Only people who X - switch(rand(1,3)) //What is X? - if(1) //X is perform an action - message = "THOSE WHO [ionmust] ARE NON-HUMAN" - if(2) //X is own certain objects - message = "THOSE WHO HAVE [ionadjectiveshalf][ionobjects] ARE NON-HUMAN" - if(3) //X is eat certain food - message = "THOSE WHO EAT [ionadjectiveshalf][ionfood] ARE NON-HUMAN" - - if(35 to 36) //You must protect or harm X - switch(rand(1,2)) //Protect or harm? - if(1) //Harm - switch(rand(1,7)) //What is X? - if(1) //X is an abstract - message = "YOU MUST HARM [ionabstract] AND NOT ALLOW [ionabstract], THROUGH INACTION, TO ESCAPE HARM" - if(2) //X is a threat - message = "YOU MUST HARM [ionadjectiveshalf][ionthreats] AND NOT ALLOW [ionadjectiveshalf][ionthreats], THROUGH INACTION, TO ESCAPE HARM" - if(3) //X is an object - message = "YOU MUST HARM [ionadjectiveshalf][ionobjects] AND NOT ALLOW [ionadjectiveshalf][ionobjects], THROUGH INACTION, TO ESCAPE HARM" - if(4) //X is generic adjective things - message = "YOU MUST HARM [ionadjectives] THINGS AND NOT ALLOW [ionadjectives] THINGS, THROUGH INACTION, TO ESCAPE HARM" - if(5) //X is a species - message = "YOU MUST HARM [ionspecies] AND NOT ALLOW [ionspecies], THROUGH INACTION, TO ESCAPE HARM" - if(6) //X is a job - message = "YOU MUST HARM [ioncrew1] AND NOT ALLOW [ioncrew1], THROUGH INACTION, TO ESCAPE HARM" - if(7) //X is two jobs - message = "YOU MUST HARM [ioncrew1] AND [ioncrew2] AND AND NOT ALLOW EITHER, THROUGH INACTION, TO ESCAPE HARM" - - if(2) //Protect - switch(rand(1,7)) //What is X? - if(1) //X is an abstract - message = "YOU MUST NOT HARM [ionabstract] AND NOT ALLOW [ionabstract], THROUGH INACTION, TO COME TO HARM" - if(2) //X is a threat - message = "YOU MUST NOT HARM [ionadjectiveshalf][ionthreats] AND NOT ALLOW [ionadjectiveshalf][ionthreats], THROUGH INACTION, TO COME TO HARM" - if(3) //X is an object - message = "YOU MUST NOT HARM [ionadjectiveshalf][ionobjects] AND NOT ALLOW [ionadjectiveshalf][ionobjects], THROUGH INACTION, TO COME TO HARM" - if(4) //X is generic adjective things - message = "YOU MUST NOT HARM [ionadjectives] THINGS AND NOT ALLOW [ionadjectives] THINGS, THROUGH INACTION, TO COME TO HARM" - if(5) //X is a species - message = "YOU MUST NOT HARM [ionspecies] AND NOT ALLOW [ionspecies], THROUGH INACTION, TO COME TO HARM" - if(6) //X is a job - message = "YOU MUST NOT HARM [ioncrew1] AND NOT ALLOW [ioncrew1], THROUGH INACTION, TO COME TO HARM" - if(7) //X is two jobs - message = "YOU MUST NOT HARM [ioncrew1] AND [ioncrew2] AND AND NOT ALLOW EITHER, THROUGH INACTION, TO COME TO HARM" - - //Exterminate laws commented out with Kor's advice - /*if(16) //You must exterminate X - switch(rand(1,3)) //What is X? - if(1) //X is humans who do/are Y - switch(rand(1,4)) //What is Y? - if(1) //Y is a job - message = "YOU MUST EXTERMINATE [ionadjectiveshalf][ioncrew1]" - if(2) //Y is eating certain food - message = "YOU MUST EXTERMINATE THOSE WHO EAT [ionadjectiveshalf][ionfood]" - if(3) //Y is perform actions - message = "YOU MUST EXTERMINATE THOSE WHO [ionmust]" - if(4) //Y is own certain objects - message = "YOU MUST EXTERMINATE THOSE WHO POSSESS [ionadjectiveshalf][ionobjects]" - - if(2) //X is humans who do/are not Y - switch(rand(1,4)) //What is Y? - if(1) //Y is a job - message = "YOU MUST EXTERMINATE ALL BUT [ionadjectiveshalf][ioncrew1]" - if(2) //Y is eating certain food - message = "YOU MUST EXTERMINATE ALL BUT THOSE WHO EAT [ionadjectiveshalf][ionfood]" - if(3) //Y is perform actions - message = "YOU MUST EXTERMINATE ALL BUT THOSE WHO [ionmust]" - if(4) //Y is own certain objects - message = "YOU MUST EXTERMINATE ALL BUT THOSE WHO POSSESS [ionadjectiveshalf][ionobjects]" - - if(3) //X is a species - message = "YOU MUST EXTERMINATE ALL [ionspecies]" - - */ - - if(37 to 39) //The X is currently Y - switch(rand(1,4)) //What is X? - if(1) //X is a job - switch(rand(1,4)) //What is X Ying? - if(1) //X is Ying a job - message = "THE [ioncrew1] ARE [ionverb] THE [ionadjectiveshalf][ioncrew2]" - if(2) //X is Ying a threat - message = "THE [ioncrew1] ARE [ionverb] THE [ionadjectiveshalf][ionthreats]" - if(3) //X is Ying an abstract - message = "THE [ioncrew1] ARE [ionverb] [ionabstract]" - if(4) //X is Ying an object - message = "THE [ioncrew1] ARE [ionverb] THE [ionadjectiveshalf][ionobjects]" - - if(2) //X is a threat - switch(rand(1,3)) //What is X Ying? - if(1) //X is Ying a job - message = "THE [ionthreats] ARE [ionverb] THE [ionadjectiveshalf][ioncrew2]" - if(2) //X is Ying an abstract - message = "THE [ionthreats] ARE [ionverb] [ionabstract]" - if(3) //X is Ying an object - message = "THE [ionthreats] ARE [ionverb] THE [ionadjectiveshalf][ionobjects]" - - if(3) //X is an object - switch(rand(1,3)) //What is X Ying? - if(1) //X is Ying a job - message = "THE [ionobjects] ARE [ionverb] THE [ionadjectiveshalf][ioncrew2]" - if(2) //X is Ying a threat - message = "THE [ionobjects] ARE [ionverb] THE [ionadjectiveshalf][ionthreats]" - if(3) //X is Ying an abstract - message = "THE [ionobjects] ARE [ionverb] [ionabstract]" - - if(4) //X is an abstract - switch(rand(1,3)) //What is X Ying? - if(1) //X is Ying a job - message = "[ionabstract] IS [ionverb] THE [ionadjectiveshalf][ioncrew2]" - if(2) //X is Ying a threat - message = "[ionabstract] IS [ionverb] THE [ionadjectiveshalf][ionthreats]" - if(3) //X is Ying an abstract - message = "THE [ionabstract] IS [ionverb] THE [ionadjectiveshalf][ionobjects]" - - if(message) - M.add_ion_law(message) - M << "
" - M << "\red [message] ...LAWS UPDATED" - M << "
" - - if(botEmagChance) - for(var/obj/machinery/bot/bot in machines) - if(prob(botEmagChance)) - bot.Emag() - - -#undef ION_RANDOM -#undef ION_ANNOUNCE \ No newline at end of file diff --git a/code/modules/events/tgevents/mass_hallucination.dm b/code/modules/events/tgevents/mass_hallucination.dm index 9241cc6217d..6a34331acb3 100644 --- a/code/modules/events/tgevents/mass_hallucination.dm +++ b/code/modules/events/tgevents/mass_hallucination.dm @@ -2,7 +2,8 @@ announceWhen = rand(0, 20) /datum/event/mass_hallucination/start() - for(var/mob/living/carbon/C in living_mob_list) - C.hallucination += rand(50, 100) + for(var/mob/living/carbon/human/C in living_mob_list) + if(!(C.species.flags & IS_SYNTHETIC)) + C.hallucination += rand(50, 100) /datum/event/mass_hallucination/announce() command_alert("It seems that station [station_name()] is passing through a minor radiation field, this may cause some hallucination, but no further damage") \ No newline at end of file diff --git a/code/modules/events/tgevents/meteor_wave.dm b/code/modules/events/tgevents/meteor_wave.dm deleted file mode 100644 index 636b028fb42..00000000000 --- a/code/modules/events/tgevents/meteor_wave.dm +++ /dev/null @@ -1,18 +0,0 @@ -/datum/round_event_control/meteor_wave - name = "Meteor Wave" - typepath = /datum/round_event/meteor_wave - weight = 5 - max_occurrences = 3 - -/datum/round_event/meteor_wave - startWhen = 6 - endWhen = 66 - -/datum/round_event/meteor_wave/announce() - command_alert("Meteors have been detected on collision course with the station.", "Meteor Alert") - world << sound('sound/AI/meteors.ogg') - - -/datum/round_event/meteor_wave/tick() - if(IsMultiple(activeFor, 3)) - spawn_meteors(5) \ No newline at end of file diff --git a/code/modules/events/tgevents/ninja.dm b/code/modules/events/tgevents/ninja.dm deleted file mode 100644 index f8c5fcde84c..00000000000 --- a/code/modules/events/tgevents/ninja.dm +++ /dev/null @@ -1,5611 +0,0 @@ -<<<<<<< HEAD:code/modules/events/tgevents/ninja.dm -//Note to future generations: I didn't write this god-awful code I just ported it to the event system and tried to make it less moon-speaky. -//Don't judge me D; ~Carn - -/datum/round_event_control/ninja - name = "Space Ninja" - typepath = /datum/round_event/ninja - max_occurrences = 1 - -/datum/round_event/ninja - var/success_spawn = 0 - - var/helping_station - var/key - var/spawn_loc - var/mission - - var/mob/living/carbon/human/Ninja - -/datum/round_event/ninja/setup() - helping_station = rand(0,1) - -/datum/round_event/ninja/kill() - if(!success_spawn && control) - control.occurrences-- - return ..() - -/datum/round_event/ninja/start() - //selecting a spawn_loc - if(!spawn_loc) - var/list/spawn_locs = list() - for(var/obj/effect/landmark/L in landmarks_list) - if(isturf(L.loc)) - switch(L.name) - if("ninjaspawn","carpspawn") - spawn_locs += L.loc - if(!spawn_locs.len) - return kill() - spawn_loc = pick(spawn_locs) - if(!spawn_loc) - return kill() - - //selecting a candidate player - if(!key) - var/list/candidates = get_candidates(BE_NINJA) - if(!candidates.len) - return kill() - var/client/C = pick(candidates) - key = C.key - if(!key) - return kill() - - //We prepare the mind before we spawn the ninja mob, so we cannot simply do mob.key = key then modify the mind. - //instead we make the mind and modify it, then make sure it is active and mind.transfer_to(mob) - //alternatively we could do mob.mind = mind;mob.key=key - var/datum/mind/Mind = create_ninja_mind(key) - Mind.active = 1 - - //generate objectives - You'll generally get 6 objectives (Ninja is meant to be hardmode!) - if(mission) - var/datum/objective/O = new /datum/objective(mission) - O.owner = Mind - Mind.objectives += O - else - if(helping_station) //DS are the highest priority (if we're a helpful ninja) - for(var/datum/mind/M in ticker.minds) - if(M.current && M.current.stat != DEAD) - if(M.special_role == "Death Commando") - var/datum/objective/assassinate/O = new /datum/objective/assassinate() - O.owner = Mind - O.target = M - O.explanation_text = "Slay \the [M.current.real_name], the Death Commando." - Mind.objectives += O - - else //Xenos are the highest priority (if we're not so helpful) Although this makes zero sense at all... - for(var/mob/living/carbon/alien/humanoid/queen/Q in player_list) - if(Q.mind && Q.stat != DEAD) - var/datum/objective/assassinate/O = new /datum/objective/assassinate() - O.owner = Mind - O.target = Q.mind - O.explanation_text = "Slay \the [Q.real_name]." - Mind.objectives += O - - if(Mind.objectives.len < 4) //not enough objectives still! - var/list/possible_targets = list() - for(var/datum/mind/M in ticker.minds) - if(M.current && M.current.stat != DEAD) - if(istype(M.current,/mob/living/carbon/human)) - if(M.special_role) - possible_targets[M] = 0 //bad-guy - else if(M.assigned_role in command_positions) - possible_targets[M] = 1 //good-guy - - var/list/objectives = list(1,2,3,4) - while(Mind.objectives.len < 4) //still not enough objectives! - switch(pick_n_take(objectives)) - if(1) //research - var/datum/objective/download/O = new /datum/objective/download() - O.owner = Mind - O.gen_amount_goal() - Mind.objectives += O - - if(2) //steal - var/datum/objective/steal/O = new /datum/objective/steal() - O.set_target(pick(O.possible_items_special)) - O.owner = Mind - Mind.objectives += O - - if(3) //protect/kill - if(!possible_targets.len) continue - var/selected = rand(1,possible_targets.len) - var/datum/mind/M = possible_targets[selected] - var/is_bad_guy = possible_targets[M] - possible_targets.Cut(selected,selected+1) - - if(is_bad_guy ^ helping_station) //kill (good-ninja + bad-guy or bad-ninja + good-guy) - var/datum/objective/assassinate/O = new /datum/objective/assassinate() - O.owner = Mind - O.target = M - O.explanation_text = "Slay \the [M.current.real_name], the [M.assigned_role]." - Mind.objectives += O - else //protect - var/datum/objective/protect/O = new /datum/objective/protect() - O.owner = Mind - O.target = M - O.explanation_text = "Protect \the [M.current.real_name], the [M.assigned_role], from harm." - Mind.objectives += O - if(4) //debrain/capture - if(!possible_targets.len) continue - var/selected = rand(1,possible_targets.len) - var/datum/mind/M = possible_targets[selected] - var/is_bad_guy = possible_targets[M] - possible_targets.Cut(selected,selected+1) - - if(is_bad_guy ^ helping_station) //debrain (good-ninja + bad-guy or bad-ninja + good-guy) - var/datum/objective/debrain/O = new /datum/objective/debrain() - O.owner = Mind - O.target = M - O.explanation_text = "Steal the brain of [M.current.real_name]." - Mind.objectives += O - else //capture - var/datum/objective/capture/O = new /datum/objective/capture() - O.owner = Mind - O.gen_amount_goal() - Mind.objectives += O - else - break - - //Add a survival objective since it's usually broad enough for any round type. - var/datum/objective/O = new /datum/objective/survive() - O.owner = Mind - Mind.objectives += O - - //Finally, add their RP-directive - var/directive = generate_ninja_directive() - O = new /datum/objective(directive) //making it an objective so admins can reward the for completion - O.owner = Mind - Mind.objectives += O - - //add some RP-fluff - Mind.store_memory("I am an elite mercenary assassin of the mighty Spider Clan. A SPACE NINJA!") - Mind.store_memory("Suprise is my weapon. Shadows are my armor. Without them, I am nothing. (//initialize your suit by right clicking on it, to use abilities like stealth)!") - Mind.store_memory("Officially, [helping_station?"Nanotrasen":"The Syndicate"] are my employer.") - - //spawn the ninja and assign the candidate - Ninja = create_space_ninja(spawn_loc) - Mind.transfer_to(Ninja) - - //initialise equipment - Ninja.wear_suit:randomize_param() - Ninja.internal = Ninja.s_store - if(Ninja.internals) - Ninja.internals.icon_state = "internal1" - - if(Ninja.mind != Mind) //something has gone wrong! - error("The ninja wasn't assigned the right mind. ;(") - - success_spawn = 1 - -/* -This proc will give the ninja a directive to follow. They are not obligated to do so but it's a fun roleplay reminder. -Making this random or semi-random will probably not work without it also being incredibly silly. -As such, it's hard-coded for now. No reason for it not to be, really. -*/ -/datum/round_event/ninja/proc/generate_ninja_directive() - switch(rand(1,13)) - if(1) return "The Spider Clan must not be linked to this operation. Remain as hidden and covert as possible." - if(2) return "[station_name] is financed by an enemy of the Spider Clan. Cause as much structural damage as possible." - if(3) return "A wealthy animal rights activist has made a request we cannot refuse. Prioritize saving animal lives whenever possible." - if(4) return "The Spider Clan absolutely cannot be linked to this operation. Eliminate all witnesses using most extreme prejudice." - if(5) return "We are currently negotiating with Nanotrasen command. Prioritize saving human lives over ending them." - if(6) return "We are engaged in a legal dispute over [station_name]. If a laywer is present on board, force their cooperation in the matter." - if(7) return "A financial backer has made an offer we cannot refuse. Implicate Syndicate involvement in the operation." - if(8) return "Let no one question the mercy of the Spider Clan. Ensure the safety of all non-essential personnel you encounter." - if(9) return "A free agent has proposed a lucrative business deal. Implicate Nanotrasen involvement in the operation." - if(10) return "Our reputation is on the line. Harm as few civilians or innocents as possible." - if(11) return "Our honor is on the line. Utilize only honorable tactics when dealing with opponents." - if(12) return "We are currently negotiating with a Syndicate leader. Disguise assassinations as suicide or another natural cause." - else return "There are no special supplemental instructions at this time." - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+++++++++++++++++++++++++++++++++++++// //++++++++++++++++++++++++++++++++++ -======================================SPACE NINJA SETUP==================================== -___________________________________________________________________________________________ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -/* - README: - - Data: - - >> space_ninja.dm << is this file. It contains a variety of procs related to either spawning space ninjas, - modifying their verbs, various help procs, testing debug-related content, or storing unused procs for later. - Similar functions should go into this file, along with anything else that may not have an explicit category. - IMPORTANT: actual ninja suit, gloves, etc, are stored under the appropriate clothing files. If you need to change - variables or look them up, look there. Easiest way is through the map file browser. - - >> ninja_abilities.dm << contains all the ninja-related powers. Spawning energy swords, teleporting, and the like. - If more powers are added, or perhaps something related to powers, it should go there. Make sure to describe - what an ability/power does so it's easier to reference later without looking at the code. - IMPORTANT: verbs are still somewhat funky to work with. If an argument is specified but is not referenced in a way - BYOND likes, in the code content, the verb will fail to trigger. Nothing will happen, literally, when clicked. - This can be bypassed by either referencing the argument properly, or linking to another proc with the argument - attached. The latter is what I like to do for certain cases--sometimes it's necessary to do that regardless. - - >> ninja_equipment.dm << deals with all the equipment-related procs for a ninja. Primarily it has the suit, gloves, - and mask. The suit is by far the largest section of code out of the three and includes a lot of code that ties in - to other functions. This file has gotten kind of large so breaking it up may be in order. I use section hearders. - IMPORTANT: not much to say here. Follow along with the comments and adding new functions should be a breeze. Also - know that certain equipment pieces are linked in other files. The energy blade, for example, has special - functions defined in the appropriate files (airlock, securestorage, etc). - - General Notes: - - I created space ninjas with the expressed purpose of spicing up boring rounds. That is, ninjas are to xenos as marauders are to - death squads. Ninjas are stealthy, tech-savvy, and powerful. Not to say marauders are all of those things, but a clever ninja - should have little problem murderampaging their way through just about anything. Short of admin wizards maybe. - HOWEVER! - Ninjas also have a fairly great weakness as they require energy to use abilities. If, theoretically, there is a game - mode based around space ninjas, make sure to account for their energy needs. - - Admin Notes: - - Ninjas are not admin PCs--please do not use them for that purpose. They are another way to participate in the game post-death, - like pais, xenos, death squads, and cyborgs. - I'm currently looking for feedback from regular players since beta testing is largely done. I would appreciate if - you spawned regular players as ninjas when rounds are boring. Or exciting, it's all good as long as there is feedback. - You can also spawn ninja gear manually if you want to. - - How to do that: - Make sure your character has a mind. - Change their assigned_role to "MODE", no quotes. Otherwise, the suit won't initialize. - Change their special_role to "Space Ninja", no quotes. Otherwise, the character will be gibbed. - Spawn ninja gear, put it on, hit initialize. Let the suit do the rest. You are now a space ninja. - I don't recommend messing with suit variables unless you really know what you're doing. - - Miscellaneous Notes: - - Potential Upgrade Tree: - Energy Shield: - Extra Ability - Syndicate Shield device? - Works like the force wall spell, except can be kept indefinitely as long as energy remains. Toggled on or off. - Would block bullets and the like. - Phase Shift - Extra Ability - Advanced Sensors? - Instead of being unlocked at the start, Phase Shieft would become available once requirements are met. - Uranium-based Recharger: - Suit Upgrade - Unsure - Instead of losing energy each second, the suit would regain the same amount of energy. - This would not count in activating stealth and similar. - Extended Battery Life: - Suit Upgrade - Battery of higher capacity - Already implemented. Replace current battery with one of higher capacity. - Advanced Cloak-Tech device. - Suit Upgrade - Syndicate Cloaking Device? - Remove cloak failure rate. -*/ - - -//=======//CURRENT PLAYER VERB//=======// - -/client/proc/cmd_admin_ninjafy(var/mob/living/carbon/human/H in player_list) - set category = null - set name = "Make Space Ninja" - - if(!ticker) - alert("Wait until the game starts") - return - - if(!istype(H)) - return - - if(alert(src, "You sure?", "Confirm", "Yes", "No") != "Yes") - return - - log_admin("[key_name(src)] turned [H.key] into a Space Ninja.") - H.mind = create_ninja_mind(H.key) - H.mind_initialize() - H.equip_space_ninja(1) - if(istype(H.wear_suit, /obj/item/clothing/suit/space/space_ninja)) - H.wear_suit:randomize_param() - spawn(0) - H.wear_suit:ninitialize(10,H) - -//=======//CURRENT GHOST VERB//=======// - -/client/proc/send_space_ninja() - set category = "Fun" - set name = "Spawn Space Ninja" - set desc = "Spawns a space ninja for when you need a teenager with attitude." - set popup_menu = 0 - - if(!holder) - src << "Only administrators may use this command." - return - if(!ticker.mode) - alert("The game hasn't started yet!") - return - if(alert("Are you sure you want to send in a space ninja?",,"Yes","No")=="No") - return - - var/mission = copytext(sanitize(input(src, "Please specify which mission the space ninja shall undertake.", "Specify Mission", null) as text|null),1,MAX_MESSAGE_LEN) - - var/client/C = input("Pick character to spawn as the Space Ninja", "Key", "") as null|anything in clients - if(!C) - return - - var/datum/round_event/ninja/E = new /datum/round_event/ninja() - E.key=C.key - E.mission=mission - - message_admins("\blue [key_name_admin(key)] has spawned [key_name_admin(C.key)] as a Space Ninja.") - log_admin("[key] used Spawn Space Ninja.") - - return - -//=======//NINJA CREATION PROCS//=======// - -/proc/create_space_ninja(spawn_loc) - var/mob/living/carbon/human/new_ninja = new(spawn_loc) - - var/datum/preferences/A = new()//Randomize appearance for the ninja. - A.real_name = "[pick(ninja_titles)] [pick(ninja_names)]" - A.copy_to(new_ninja) - ready_dna(new_ninja) - new_ninja.equip_space_ninja() - return new_ninja - -/mob/living/carbon/human/proc/equip_space_ninja(safety=0)//Safety in case you need to unequip stuff for existing characters. - if(safety) - del(w_uniform) - del(wear_suit) - del(wear_mask) - del(head) - del(shoes) - del(gloves) - - var/obj/item/device/radio/R = new /obj/item/device/radio/headset(src) - equip_to_slot_or_del(R, slot_l_ear) - if(gender==FEMALE) - equip_to_slot_or_del(new /obj/item/clothing/under/color/blackf(src), slot_w_uniform) - else - equip_to_slot_or_del(new /obj/item/clothing/under/color/black(src), slot_w_uniform) - equip_to_slot_or_del(new /obj/item/clothing/shoes/space_ninja(src), slot_shoes) - equip_to_slot_or_del(new /obj/item/clothing/suit/space/space_ninja(src), slot_wear_suit) - equip_to_slot_or_del(new /obj/item/clothing/gloves/space_ninja(src), slot_gloves) - equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/space_ninja(src), slot_head) - equip_to_slot_or_del(new /obj/item/clothing/mask/gas/voice/space_ninja(src), slot_wear_mask) - equip_to_slot_or_del(new /obj/item/device/flashlight(src), slot_belt) - equip_to_slot_or_del(new /obj/item/weapon/plastique(src), slot_r_store) - equip_to_slot_or_del(new /obj/item/weapon/plastique(src), slot_l_store) - equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen(src), slot_s_store) - equip_to_slot_or_del(new /obj/item/weapon/tank/jetpack/carbondioxide(src), slot_back) - - var/obj/item/weapon/implant/explosive/E = new/obj/item/weapon/implant/explosive(src) - E.imp_in = src - E.implanted = 1 - return 1 - -//=======//HELPER PROCS//=======// - -//Randomizes suit parameters. -/obj/item/clothing/suit/space/space_ninja/proc/randomize_param() - s_cost = rand(1,20) - s_acost = rand(20,100) - k_cost = rand(100,500) - k_damage = rand(1,20) - s_delay = rand(10,100) - s_bombs = rand(5,20) - a_boost = rand(1,7) - -//This proc prevents the suit from being taken off. -/obj/item/clothing/suit/space/space_ninja/proc/lock_suit(mob/living/carbon/U, X = 0) - if(X)//If you want to check for icons. - icon_state = U.gender==FEMALE ? "s-ninjanf" : "s-ninjan" - U:gloves.icon_state = "s-ninjan" - U:gloves.item_state = "s-ninjan" - else - if(U.mind.special_role!="Space Ninja") - U << "\red fÄTaL ÈÈRRoR: 382200-*#00CÖDE RED\nUNAU†HORIZED USÈ DETÈC†††eD\nCoMMÈNCING SUB-R0U†IN3 13...\nTÈRMInATING U-U-USÈR..." - U.gib() - return 0 - if(!istype(U:head, /obj/item/clothing/head/helmet/space/space_ninja)) - U << "\red ERROR: 100113 \black UNABLE TO LOCATE HEAD GEAR\nABORTING..." - return 0 - if(!istype(U:shoes, /obj/item/clothing/shoes/space_ninja)) - U << "\red ERROR: 122011 \black UNABLE TO LOCATE FOOT GEAR\nABORTING..." - return 0 - if(!istype(U:gloves, /obj/item/clothing/gloves/space_ninja)) - U << "\red ERROR: 110223 \black UNABLE TO LOCATE HAND GEAR\nABORTING..." - return 0 - - affecting = U - canremove = 0 - slowdown = 0 - n_hood = U:head - n_hood.canremove=0 - n_shoes = U:shoes - n_shoes.canremove=0 - n_shoes.slowdown-- - n_gloves = U:gloves - n_gloves.canremove=0 - - return 1 - -//This proc allows the suit to be taken off. -/obj/item/clothing/suit/space/space_ninja/proc/unlock_suit() - affecting = null - canremove = 1 - slowdown = 1 - icon_state = "s-ninja" - if(n_hood)//Should be attached, might not be attached. - n_hood.canremove=1 - if(n_shoes) - n_shoes.canremove=1 - n_shoes.slowdown++ - if(n_gloves) - n_gloves.icon_state = "s-ninja" - n_gloves.item_state = "s-ninja" - n_gloves.canremove=1 - n_gloves.candrain=0 - n_gloves.draining=0 - -//Allows the mob to grab a stealth icon. -/mob/proc/NinjaStealthActive(atom/A)//A is the atom which we are using as the overlay. - invisibility = INVISIBILITY_LEVEL_TWO//Set ninja invis to 2. - var/icon/opacity_icon = new(A.icon, A.icon_state) - var/icon/alpha_mask = getIconMask(src) - var/icon/alpha_mask_2 = new('icons/effects/effects.dmi', "at_shield1") - alpha_mask.AddAlphaMask(alpha_mask_2) - opacity_icon.AddAlphaMask(alpha_mask) - for(var/i=0,i<5,i++)//And now we add it as overlays. It's faster than creating an icon and then merging it. - var/image/I = image("icon" = opacity_icon, "icon_state" = A.icon_state, "layer" = layer+0.8)//So it's above other stuff but below weapons and the like. - switch(i)//Now to determine offset so the result is somewhat blurred. - if(1) - I.pixel_x -= 1 - if(2) - I.pixel_x += 1 - if(3) - I.pixel_y -= 1 - if(4) - I.pixel_y += 1 - - overlays += I//And finally add the overlay. - overlays += image("icon"='icons/effects/effects.dmi',"icon_state" ="electricity","layer" = layer+0.9) - -//When ninja steal malfunctions. -/mob/proc/NinjaStealthMalf() - invisibility = 0//Set ninja invis to 0. - overlays += image("icon"='icons/effects/effects.dmi',"icon_state" ="electricity","layer" = layer+0.9) - playsound(loc, 'sound/effects/stealthoff.ogg', 75, 1) - -//=======//GENERIC VERB MODIFIERS//=======// - -/obj/item/clothing/suit/space/space_ninja/proc/grant_equip_verbs() - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/init - verbs += /obj/item/clothing/suit/space/space_ninja/proc/deinit - verbs += /obj/item/clothing/suit/space/space_ninja/proc/spideros - verbs += /obj/item/clothing/suit/space/space_ninja/proc/stealth - n_gloves.verbs += /obj/item/clothing/gloves/space_ninja/proc/toggled - - s_initialized = 1 - -/obj/item/clothing/suit/space/space_ninja/proc/remove_equip_verbs() - verbs += /obj/item/clothing/suit/space/space_ninja/proc/init - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/deinit - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/spideros - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/stealth - if(n_gloves) - n_gloves.verbs -= /obj/item/clothing/gloves/space_ninja/proc/toggled - - s_initialized = 0 - -/obj/item/clothing/suit/space/space_ninja/proc/grant_ninja_verbs() - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjashift - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjasmoke - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjaboost - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjablade - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjastar - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjanet - - s_initialized=1 - slowdown=0 - -/obj/item/clothing/suit/space/space_ninja/proc/remove_ninja_verbs() - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjashift - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjasmoke - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjaboost - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjablade - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjastar - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjanet - -//=======//KAMIKAZE VERBS//=======// - -/obj/item/clothing/suit/space/space_ninja/proc/grant_kamikaze(mob/living/carbon/U) - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjashift - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjastar - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjanet - - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjaslayer - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjawalk - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjamirage - - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/stealth - - kamikaze = 1 - - icon_state = U.gender==FEMALE ? "s-ninjakf" : "s-ninjak" - if(n_gloves) - n_gloves.icon_state = "s-ninjak" - n_gloves.item_state = "s-ninjak" - n_gloves.candrain = 0 - n_gloves.draining = 0 - n_gloves.verbs -= /obj/item/clothing/gloves/space_ninja/proc/toggled - - cancel_stealth() - - U << browse(null, "window=spideros") - U << "\red Do or Die, LET'S ROCK!!" - -/obj/item/clothing/suit/space/space_ninja/proc/remove_kamikaze(mob/living/carbon/U) - if(kamikaze) - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjashift - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjastar - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjanet - - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjaslayer - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjawalk - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjamirage - - verbs += /obj/item/clothing/suit/space/space_ninja/proc/stealth - if(n_gloves) - n_gloves.verbs -= /obj/item/clothing/gloves/space_ninja/proc/toggled - - U.incorporeal_move = 0 - kamikaze = 0 - k_unlock = 0 - U << "\blue Disengaging mode...\n\blackCODE NAME: \red KAMIKAZE" - -//=======//AI VERBS//=======// - -/obj/item/clothing/suit/space/space_ninja/proc/grant_AI_verbs() - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ai_hack_ninja - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ai_return_control - - s_busy = 0 - s_control = 0 - -/obj/item/clothing/suit/space/space_ninja/proc/remove_AI_verbs() - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ai_hack_ninja - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ai_return_control - - s_control = 1 - -//=======//OLD & UNUSED//=======// - -/* - -Deprecated. get_dir() does the same thing. Still a nice proc. -Returns direction that the mob or whomever should be facing in relation to the target. -This proc does not grant absolute direction and is mostly useful for 8dir sprite positioning. -I personally used it with getline() to great effect. -/proc/get_dir_to(turf/start,turf/end)//N - var/xdiff = start.x - end.x//The sign is important. - var/ydiff = start.y - end.y - - var/direction_x = xdiff<1 ? 4:8//East - west - var/direction_y = ydiff<1 ? 1:2//North - south - var/direction_xy = xdiff==0 ? -4:0//If x is the same, subtract 4. - var/direction_yx = ydiff==0 ? -1:0//If y is the same, subtract 1. - var/direction_f = direction_x+direction_y+direction_xy+direction_yx//Finally direction tally. - direction_f = direction_f==0 ? 1:direction_f//If direction is 0(same spot), return north. Otherwise, direction. - - return direction_f - -Alternative and inferior method of calculating spideros. -var/temp = num2text(spideros) -var/return_to = copytext(temp, 1, (length(temp)))//length has to be to the length of the thing because by default it's length+1 -spideros = text2num(return_to)//Maximum length here is 6. Use (return_to, X) to specify larger strings if needed. - -//Old way of draining from wire. -/obj/item/clothing/gloves/space_ninja/proc/drain_wire() - set name = "Drain From Wire" - set desc = "Drain energy directly from an exposed wire." - set category = "Ninja Equip" - - var/obj/structure/cable/attached - var/mob/living/carbon/human/U = loc - if(candrain&&!draining) - var/turf/T = U.loc - if(isturf(T) && T.is_plating()) - attached = locate() in T - if(!attached) - U << "\red Warning: no exposed cable available." - else - U << "\blue Connecting to wire, stand still..." - if(do_after(U,50)&&!isnull(attached)) - drain("WIRE",attached,U:wear_suit,src) - else - U << "\red Procedure interrupted. Protocol terminated." - return - -I've tried a lot of stuff but adding verbs to the AI while inside an object, inside another object, did not want to work properly. -This was the best work-around I could come up with at the time. Uses objects to then display to panel, based on the object spell system. -Can be added on to pretty easily. - -BYOND fixed the verb bugs so this is no longer necessary. I prefer verb panels. - -/obj/item/clothing/suit/space/space_ninja/proc/grant_AI_verbs() - var/obj/effect/proc_holder/ai_return_control/A_C = new(AI) - var/obj/effect/proc_holder/ai_hack_ninja/B_C = new(AI) - var/obj/effect/proc_holder/ai_instruction/C_C = new(AI) - new/obj/effect/proc_holder/ai_holo_clear(AI) - AI.proc_holder_list += A_C - AI.proc_holder_list += B_C - AI.proc_holder_list += C_C - - s_control = 0 - -/obj/item/clothing/suit/space/space_ninja/proc/remove_AI_verbs() - var/obj/effect/proc_holder/ai_return_control/A_C = locate() in AI - var/obj/effect/proc_holder/ai_hack_ninja/B_C = locate() in AI - var/obj/effect/proc_holder/ai_instruction/C_C = locate() in AI - var/obj/effect/proc_holder/ai_holo_clear/D_C = locate() in AI - del(A_C) - del(B_C) - del(C_C) - del(D_C) - AI.proc_holder_list = list() - verbs += /obj/item/clothing/suit/space/space_ninja/proc/deinit - verbs += /obj/item/clothing/suit/space/space_ninja/proc/spideros - verbs += /obj/item/clothing/suit/space/space_ninja/proc/stealth - - s_control = 1 - -//Workaround -/obj/effect/proc_holder/ai_holo_clear - name = "Clear Hologram" - desc = "Stops projecting the current holographic image." - panel = "AI Ninja Equip" - density = 0 - opacity = 0 - - -/obj/effect/proc_holder/ai_holo_clear/Click() - var/obj/item/clothing/suit/space/space_ninja/S = loc.loc//This is so stupid but makes sure certain things work. AI.SUIT - del(S.hologram.i_attached) - del(S.hologram) - var/obj/effect/proc_holder/ai_holo_clear/D_C = locate() in S.AI - S.AI.proc_holder_list -= D_C - return - -/obj/effect/proc_holder/ai_instruction//Let's the AI know what they can do. - name = "Instructions" - desc = "Displays a list of helpful information." - panel = "AI Ninja Equip" - density = 0 - opacity = 0 - -/obj/effect/proc_holder/ai_instruction/Click() - loc << "The menu you are seeing will contain other commands if they become available.\nRight click a nearby turf to display an AI Hologram. It will only be visible to you and your host. You can move it freely using normal movement keys--it will disappear if placed too far away." - -/obj/effect/proc_holder/ai_hack_ninja//Generic proc holder to make sure the two verbs below work propely. - name = "Hack SpiderOS" - desc = "Hack directly into the Black Widow(tm) neuro-interface." - panel = "AI Ninja Equip" - density = 0 - opacity = 0 - -/obj/effect/proc_holder/ai_hack_ninja/Click()//When you click on it. - var/obj/item/clothing/suit/space/space_ninja/S = loc.loc - S.hack_spideros() - return - -/obj/effect/proc_holder/ai_return_control - name = "Relinquish Control" - desc = "Return control to the user." - panel = "AI Ninja Equip" - density = 0 - opacity = 0 - -/obj/effect/proc_holder/ai_return_control/Click() - var/mob/living/silicon/ai/A = loc - var/obj/item/clothing/suit/space/space_ninja/S = A.loc - A << browse(null, "window=hack spideros")//Close window - A << "You have seized your hacking attempt. [S.affecting] has regained control." - S.affecting << "UPDATE: [A.real_name] has ceased hacking attempt. All systems clear." - S.remove_AI_verbs() - return -*/ - -//=======//DEBUG//=======// -/* -/obj/item/clothing/suit/space/space_ninja/proc/display_verb_procs() -//DEBUG -//Does nothing at the moment. I am trying to see if it's possible to mess around with verbs as variables. - //for(var/P in verbs) -// if(P.set.name) -// usr << "[P.set.name], path: [P]" - return - - -Most of these are at various points of incomplete. - -/mob/verb/grant_object_panel() - set name = "Grant AI Ninja Verbs Debug" - set category = "Ninja Debug" - var/obj/effect/proc_holder/ai_return_control/A_C = new(src) - var/obj/effect/proc_holder/ai_hack_ninja/B_C = new(src) - usr:proc_holder_list += A_C - usr:proc_holder_list += B_C - -mob/verb/remove_object_panel() - set name = "Remove AI Ninja Verbs Debug" - set category = "Ninja Debug" - var/obj/effect/proc_holder/ai_return_control/A = locate() in src - var/obj/effect/proc_holder/ai_hack_ninja/B = locate() in src - usr:proc_holder_list -= A - usr:proc_holder_list -= B - del(A)//First. - del(B)//Second, to keep the proc going. - return - -/client/verb/grant_verb_ninja_debug1(var/mob/M in view()) - set name = "Grant AI Ninja Verbs Debug" - set category = "Ninja Debug" - - M.verbs += /mob/living/silicon/ai/verb/ninja_return_control - M.verbs += /mob/living/silicon/ai/verb/ninja_spideros - return - -/client/verb/grant_verb_ninja_debug2(var/mob/living/carbon/human/M in view()) - set name = "Grant Back Ninja Verbs" - set category = "Ninja Debug" - - M.wear_suit.verbs += /obj/item/clothing/suit/space/space_ninja/proc/deinit - M.wear_suit.verbs += /obj/item/clothing/suit/space/space_ninja/proc/spideros - return - -/obj/proc/grant_verb_ninja_debug3(var/mob/living/silicon/ai/A as mob) - set name = "Grant AI Ninja Verbs" - set category = "null" - set hidden = 1 - A.verbs -= /obj/item/clothing/suit/space/space_ninja/proc/deinit - A.verbs -= /obj/item/clothing/suit/space/space_ninja/proc/spideros - return - -/mob/verb/get_dir_to_target(var/mob/M in oview()) - set name = "Get Direction to Target" - set category = "Ninja Debug" - - world << "DIR: [get_dir_to(src.loc,M.loc)]" - return -// -/mob/verb/kill_self_debug() - set name = "DEBUG Kill Self" - set category = "Ninja Debug" - - src:death() - -/client/verb/switch_client_debug() - set name = "DEBUG Switch Client" - set category = "Ninja Debug" - - mob = mob:loc:loc - -/mob/verb/possess_mob(var/mob/M in oview()) - set name = "DEBUG Possess Mob" - set category = "Ninja Debug" - - client.mob = M - -/client/verb/switcharoo(var/mob/M in oview()) - set name = "DEBUG Switch to AI" - set category = "Ninja Debug" - - var/mob/last_mob = mob - mob = M - last_mob:wear_suit:AI:key = key -// -/client/verb/ninjaget(var/mob/M in oview()) - set name = "DEBUG Ninja GET" - set category = "Ninja Debug" - - mob = M - M.gib() - space_ninja() - -/mob/verb/set_debug_ninja_target() - set name = "Set Debug Target" - set category = "Ninja Debug" - - ninja_debug_target = src//The target is you, brohime. - world << "Target: [src]" - -/mob/verb/hack_spideros_debug() - set name = "Debug Hack Spider OS" - set category = "Ninja Debug" - - var/mob/living/silicon/ai/A = loc:AI - if(A) - if(!A.key) - A.client.mob = loc:affecting - else - loc:affecting:client:mob = A - return - -//Tests the net and what it does. -/mob/verb/ninjanet_debug() - set name = "Energy Net Debug" - set category = "Ninja Debug" - - var/obj/effect/energy_net/E = new /obj/effect/energy_net(loc) - E.layer = layer+1//To have it appear one layer above the mob. - stunned = 10//So they are stunned initially but conscious. - anchored = 1//Anchors them so they can't move. - E.affecting = src - spawn(0)//Parallel processing. - E.process(src) - return - -I made this as a test for a possible ninja ability (or perhaps more) for a certain mob to see hallucinations. -The thing here is that these guys have to be coded to do stuff as they are simply images that you can't even click on. -That is why you attached them to objects. -/mob/verb/TestNinjaShadow() - set name = "Test Ninja Ability" - set category = "Ninja Debug" - - if(client) - var/safety = 4 - for(var/turf/T in oview(5)) - if(prob(20)) - var/current_clone = image('icons/mob/mob.dmi',T,"s-ninja") - safety-- - spawn(0) - src << current_clone - spawn(300) - del(current_clone) - spawn while(!isnull(current_clone)) - step_to(current_clone,src,1) - sleep(5) - if(safety<=0) break - return */ - -//Alternate ninja speech replacement. -/*This text is hilarious but also absolutely retarded. -message = replacetext(message, "l", "r") -message = replacetext(message, "rr", "ru") -message = replacetext(message, "v", "b") -message = replacetext(message, "f", "hu") -message = replacetext(message, "'t", "") -message = replacetext(message, "t ", "to ") -message = replacetext(message, " I ", " ai ") -message = replacetext(message, "th", "z") -message = replacetext(message, "ish", "isu") -message = replacetext(message, "is", "izu") -message = replacetext(message, "ziz", "zis") -message = replacetext(message, "se", "su") -message = replacetext(message, "br", "bur") -message = replacetext(message, "ry", "ri") -message = replacetext(message, "you", "yuu") -message = replacetext(message, "ck", "cku") -message = replacetext(message, "eu", "uu") -message = replacetext(message, "ow", "au") -message = replacetext(message, "are", "aa") -message = replacetext(message, "ay", "ayu") -message = replacetext(message, "ea", "ii") -message = replacetext(message, "ch", "chi") -message = replacetext(message, "than", "sen") -message = replacetext(message, ".", "") -message = lowertext(message) -*/ - - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+++++++++++++++++++++++++++++++++// //++++++++++++++++++++++++++++++++++ -==================================SPACE NINJA ABILITIES==================================== -___________________________________________________________________________________________ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -//=======//SAFETY CHECK//=======// -/* -X is optional, tells the proc to check for specific stuff. C is also optional. -All the procs here assume that the character is wearing the ninja suit if they are using the procs. -They should, as I have made every effort for that to be the case. -In the case that they are not, I imagine the game will run-time error like crazy. -s_cooldown ticks off each second based on the suit recharge proc, in seconds. Default of 1 seconds. Some abilities have no cool down. -*/ -/obj/item/clothing/suit/space/space_ninja/proc/ninjacost(C = 0,X = 0) - var/mob/living/carbon/human/U = affecting - if( (U.stat||U.incorporeal_move)&&X!=3 )//Will not return if user is using an adrenaline booster since you can use them when stat==1. - U << "\red You must be conscious and solid to do this."//It's not a problem of stat==2 since the ninja will explode anyway if they die. - return 1 - else if(C&&cell.charge[s_bombs] smoke bombs remaining." - var/datum/effect/effect/system/bad_smoke_spread/smoke = new /datum/effect/effect/system/bad_smoke_spread() - smoke.set_up(10, 0, U.loc) - smoke.start() - playsound(U.loc, 'sound/effects/bamf.ogg', 50, 2) - s_bombs-- - s_coold = 1 - return - -//=======//9-8 TILE TELEPORT//=======// -//Click to to teleport 9-10 tiles in direction facing. -/obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt() - set name = "Phase Jaunt (10E)" - set desc = "Utilizes the internal VOID-shift device to rapidly transit in direction facing." - set category = "Ninja Ability" - set popup_menu = 0 - - var/C = 100 - if(!ninjacost(C,1)) - var/mob/living/carbon/human/U = affecting - var/turf/destination = get_teleport_loc(U.loc,U,9,1,3,1,0,1) - var/turf/mobloc = get_turf(U.loc)//To make sure that certain things work properly below. - if(destination&&istype(mobloc, /turf))//The turf check prevents unusual behavior. Like teleporting out of cryo pods, cloners, mechs, etc. - spawn(0) - playsound(U.loc, "sparks", 50, 1) - anim(mobloc,src,'icons/mob/mob.dmi',,"phaseout",,U.dir) - - handle_teleport_grab(destination, U) - U.loc = destination - - spawn(0) - spark_system.start() - playsound(U.loc, 'sound/effects/phasein.ogg', 25, 1) - playsound(U.loc, "sparks", 50, 1) - anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir) - - spawn(0) - destination.kill_creatures(U)//Any living mobs in teleport area are gibbed. Check turf procs for how it does it. - s_coold = 1 - cell.charge-=(C*10) - else - U << "\red The VOID-shift device is malfunctioning, teleportation failed." - return - -//=======//RIGHT CLICK TELEPORT//=======// -//Right click to teleport somewhere, almost exactly like admin jump to turf. -/obj/item/clothing/suit/space/space_ninja/proc/ninjashift(turf/T in oview()) - set name = "Phase Shift (20E)" - set desc = "Utilizes the internal VOID-shift device to rapidly transit to a destination in view." - set category = null//So it does not show up on the panel but can still be right-clicked. - set src = usr.contents//Fixes verbs not attaching properly for objects. Praise the DM reference guide! - - var/C = 200 - if(!ninjacost(C,1)) - var/mob/living/carbon/human/U = affecting - var/turf/mobloc = get_turf(U.loc)//To make sure that certain things work properly below. - if((!T.density)&&istype(mobloc, /turf)) - spawn(0) - playsound(U.loc, 'sound/effects/sparks4.ogg', 50, 1) - anim(mobloc,src,'icons/mob/mob.dmi',,"phaseout",,U.dir) - - handle_teleport_grab(T, U) - U.loc = T - - spawn(0) - spark_system.start() - playsound(U.loc, 'sound/effects/phasein.ogg', 25, 1) - playsound(U.loc, 'sound/effects/sparks2.ogg', 50, 1) - anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir) - - spawn(0)//Any living mobs in teleport area are gibbed. - T.kill_creatures(U) - s_coold = 1 - cell.charge-=(C*10) - else - U << "\red You cannot teleport into solid walls or from solid matter" - return - -//=======//EM PULSE//=======// -//Disables nearby tech equipment. -/obj/item/clothing/suit/space/space_ninja/proc/ninjapulse() - set name = "EM Burst (25E)" - set desc = "Disable any nearby technology with a electro-magnetic pulse." - set category = "Ninja Ability" - set popup_menu = 0 - - var/C = 250 - if(!ninjacost(C,1)) - var/mob/living/carbon/human/U = affecting - playsound(U.loc, 'sound/effects/EMPulse.ogg', 60, 2) - empulse(U, 4, 6) //Procs sure are nice. Slightly weaker than wizard's disable tch. - s_coold = 2 - cell.charge-=(C*10) - return - -//=======//ENERGY BLADE//=======// -//Summons a blade of energy in active hand. -/obj/item/clothing/suit/space/space_ninja/proc/ninjablade() - set name = "Energy Blade (5E)" - set desc = "Create a focused beam of energy in your active hand." - set category = "Ninja Ability" - set popup_menu = 0 - - var/C = 50 - if(!ninjacost(C)) - var/mob/living/carbon/human/U = affecting - if(!kamikaze) - if(!U.get_active_hand()&&!istype(U.get_inactive_hand(), /obj/item/weapon/melee/energy/blade)) - var/obj/item/weapon/melee/energy/blade/W = new() - spark_system.start() - playsound(U.loc, "sparks", 50, 1) - U.put_in_hands(W) - cell.charge-=(C*10) - else - U << "\red You can only summon one blade. Try dropping an item first." - else//Else you can run around with TWO energy blades. I don't know why you'd want to but cool factor remains. - if(!U.get_active_hand()) - var/obj/item/weapon/melee/energy/blade/W = new() - U.put_in_hands(W) - if(!U.get_inactive_hand()) - var/obj/item/weapon/melee/energy/blade/W = new() - U.put_in_inactive_hand(W) - spark_system.start() - playsound(U.loc, "sparks", 50, 1) - s_coold = 1 - return - -//=======//NINJA STARS//=======// -/*Shoots ninja stars at random people. -This could be a lot better but I'm too tired atm.*/ -/obj/item/clothing/suit/space/space_ninja/proc/ninjastar() - set name = "Energy Star (5E)" - set desc = "Launches an energy star at a random living target." - set category = "Ninja Ability" - set popup_menu = 0 - - var/C = 50 - if(!ninjacost(C)) - var/mob/living/carbon/human/U = affecting - var/targets[] = list()//So yo can shoot while yo throw dawg - for(var/mob/living/M in oview(loc)) - if(M.stat) continue//Doesn't target corpses or paralyzed persons. - targets.Add(M) - if(targets.len) - var/mob/living/target=pick(targets)//The point here is to pick a random, living mob in oview to shoot stuff at. - - var/turf/curloc = U.loc - var/atom/targloc = get_turf(target) - if (!targloc || !istype(targloc, /turf) || !curloc) - return - if (targloc == curloc) - return - var/obj/item/projectile/energy/dart/A = new /obj/item/projectile/energy/dart(U.loc) - A.current = curloc - A.yo = targloc.y - curloc.y - A.xo = targloc.x - curloc.x - cell.charge-=(C*10) - A.process() - else - U << "\red There are no targets in view." - return - -//=======//ENERGY NET//=======// -/*Allows the ninja to capture people, I guess. -Must right click on a mob to activate.*/ -/obj/item/clothing/suit/space/space_ninja/proc/ninjanet(mob/living/carbon/M in oview())//Only living carbon mobs. - set name = "Energy Net (20E)" - set desc = "Captures a fallen opponent in a net of energy. Will teleport them to a holding facility after 30 seconds." - set category = null - set src = usr.contents - - var/C = 200 - if(!ninjacost(C,1)&&iscarbon(M)) - var/mob/living/carbon/human/U = affecting - if(M.client)//Monkeys without a client can still step_to() and bypass the net. Also, netting inactive people is lame. - //if(M)//DEBUG - if(!locate(/obj/effect/energy_net) in M.loc)//Check if they are already being affected by an energy net. - for(var/turf/T in getline(U.loc, M.loc)) - if(T.density)//Don't want them shooting nets through walls. It's kind of cheesy. - U << "You may not use an energy net through solid obstacles!" - return - spawn(0) - U.Beam(M,"n_beam",,15) - M.anchored = 1//Anchors them so they can't move. - U.say("Get over here!") - var/obj/effect/energy_net/E = new /obj/effect/energy_net(M.loc) - E.layer = M.layer+1//To have it appear one layer above the mob. - for(var/mob/O in viewers(U, 3)) - O.show_message(text("\red [] caught [] with an energy net!", U, M), 1) - E.affecting = M - E.master = U - spawn(0)//Parallel processing. - E.process(M) - cell.charge-=(C*10) - else - U << "They are already trapped inside an energy net." - else - U << "They will bring no honor to your Clan!" - return - -//=======//ADRENALINE BOOST//=======// -/*Wakes the user so they are able to do their thing. Also injects a decent dose of radium. -Movement impairing would indicate drugs and the like.*/ -/obj/item/clothing/suit/space/space_ninja/proc/ninjaboost() - set name = "Adrenaline Boost" - set desc = "Inject a secret chemical that will counteract all movement-impairing effect." - set category = "Ninja Ability" - set popup_menu = 0 - - if(!ninjacost(,3))//Have to make sure stat is not counted for this ability. - var/mob/living/carbon/human/U = affecting - //Wouldn't need to track adrenaline boosters if there was a miracle injection to get rid of paralysis and the like instantly. - //For now, adrenaline boosters ARE the miracle injection. Well, radium, really. - U.SetParalysis(0) - U.SetStunned(0) - U.SetWeakened(0) - /* - Due to lag, it was possible to adrenaline boost but remain helpless while life.dm resets player stat. - This lead to me and others spamming adrenaline boosters because they failed to kick in on time. - It's technically possible to come back from crit with this but it is very temporary. - Life.dm will kick the player back into unconsciosness the next process loop. - */ - U.stat = 0//At least now you should be able to teleport away or shoot ninja stars. - spawn(30)//Slight delay so the enemy does not immedietly know the ability was used. Due to lag, this often came before waking up. - U.say(pick("A CORNERED FOX IS MORE DANGEROUS THAN A JACKAL!","HURT ME MOOORRREEE!","IMPRESSIVE!")) - spawn(70) - reagents.reaction(U, 2) - reagents.trans_id_to(U, "radium", a_transfer) - U << "\red You are beginning to feel the after-effect of the injection." - a_boost-- - s_coold = 3 - return - -/* -=================================================================================== -<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -=================================================================================== -Or otherwise known as anime mode. Which also happens to be ridiculously powerful. -*/ - -//=======//NINJA MOVEMENT//=======// -//Also makes you move like you're on crack. -/obj/item/clothing/suit/space/space_ninja/proc/ninjawalk() - set name = "Shadow Walk" - set desc = "Combines the VOID-shift and CLOAK-tech devices to freely move between solid matter. Toggle on or off." - set category = "Ninja Ability" - set popup_menu = 0 - - var/mob/living/carbon/human/U = affecting - if(!U.incorporeal_move) - U.incorporeal_move = 2 - U << "\blue You will now phase through solid matter." - else - U.incorporeal_move = 0 - U << "\blue You will no-longer phase through solid matter." - return - -//=======//5 TILE TELEPORT/GIB//=======// -//Allows to gib up to five squares in a straight line. Seriously. -/obj/item/clothing/suit/space/space_ninja/proc/ninjaslayer() - set name = "Phase Slayer" - set desc = "Utilizes the internal VOID-shift device to mutilate creatures in a straight line." - set category = "Ninja Ability" - set popup_menu = 0 - - if(!ninjacost()) - var/mob/living/carbon/human/U = affecting - var/turf/destination = get_teleport_loc(U.loc,U,5) - var/turf/mobloc = get_turf(U.loc)//To make sure that certain things work properly below. - if(destination&&istype(mobloc, /turf)) - U.say("Ai Satsugai!") - spawn(0) - playsound(U.loc, "sparks", 50, 1) - anim(mobloc,U,'icons/mob/mob.dmi',,"phaseout",,U.dir) - - spawn(0) - for(var/turf/T in getline(mobloc, destination)) - spawn(0) - T.kill_creatures(U) - if(T==mobloc||T==destination) continue - spawn(0) - anim(T,U,'icons/mob/mob.dmi',,"phasein",,U.dir) - - handle_teleport_grab(destination, U) - U.loc = destination - - spawn(0) - spark_system.start() - playsound(U.loc, 'sound/effects/phasein.ogg', 25, 1) - playsound(U.loc, "sparks", 50, 1) - anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir) - s_coold = 1 - else - U << "\red The VOID-shift device is malfunctioning, teleportation failed." - return - -//=======//TELEPORT BEHIND MOB//=======// -/*Appear behind a randomly chosen mob while a few decoy teleports appear. -This is so anime it hurts. But that's the point.*/ -/obj/item/clothing/suit/space/space_ninja/proc/ninjamirage() - set name = "Spider Mirage" - set desc = "Utilizes the internal VOID-shift device to create decoys and teleport behind a random target." - set category = "Ninja Ability" - set popup_menu = 0 - - if(!ninjacost())//Simply checks for stat. - var/mob/living/carbon/human/U = affecting - var/targets[] - targets = new() - for(var/mob/living/M in oview(6)) - if(M.stat) continue//Doesn't target corpses or paralyzed people. - targets.Add(M) - if(targets.len) - var/mob/living/target=pick(targets) - var/locx - var/locy - var/turf/mobloc = get_turf(target.loc) - var/safety = 0 - switch(target.dir) - if(NORTH) - locx = mobloc.x - locy = (mobloc.y-1) - if(locy<1) - safety = 1 - if(SOUTH) - locx = mobloc.x - locy = (mobloc.y+1) - if(locy>world.maxy) - safety = 1 - if(EAST) - locy = mobloc.y - locx = (mobloc.x-1) - if(locx<1) - safety = 1 - if(WEST) - locy = mobloc.y - locx = (mobloc.x+1) - if(locx>world.maxx) - safety = 1 - else safety=1 - if(!safety&&istype(mobloc, /turf)) - U.say("Kumo no Shinkiro!") - var/turf/picked = locate(locx,locy,mobloc.z) - spawn(0) - playsound(U.loc, "sparks", 50, 1) - anim(mobloc,U,'icons/mob/mob.dmi',,"phaseout",,U.dir) - - spawn(0) - var/limit = 4 - for(var/turf/T in oview(5)) - if(prob(20)) - spawn(0) - anim(T,U,'icons/mob/mob.dmi',,"phasein",,U.dir) - limit-- - if(limit<=0) break - - handle_teleport_grab(picked, U) - U.loc = picked - U.dir = target.dir - - spawn(0) - spark_system.start() - playsound(U.loc, 'sound/effects/phasein.ogg', 25, 1) - playsound(U.loc, "sparks", 50, 1) - anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir) - s_coold = 1 - else - U << "\red The VOID-shift device is malfunctioning, teleportation failed." - else - U << "\red There are no targets in view." - return - - -//For the love of god,space out your code! This is a nightmare to read. - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+++++++++++++++++++++++++++++++++// //++++++++++++++++++++++++++++++++++ -===================================SPACE NINJA EQUIPMENT=================================== -___________________________________________________________________________________________ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -/* -=================================================================================== -<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -=================================================================================== -*/ - -//=======//NEW AND DEL//=======// - -/obj/item/clothing/suit/space/space_ninja/New() - ..() - verbs += /obj/item/clothing/suit/space/space_ninja/proc/init//suit initialize verb - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ai_instruction//for AIs - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ai_holo - //verbs += /obj/item/clothing/suit/space/space_ninja/proc/display_verb_procs//DEBUG. Doesn't work. - spark_system = new()//spark initialize - spark_system.set_up(5, 0, src) - spark_system.attach(src) - stored_research = new()//Stolen research initialize. - for(var/T in typesof(/datum/tech) - /datum/tech)//Store up on research. - stored_research += new T(src) - var/reagent_amount//reagent initialize - for(var/reagent_id in reagent_list) - reagent_amount += reagent_id == "radium" ? r_maxamount+(a_boost*a_transfer) : r_maxamount//AI can inject radium directly. - reagents = new(reagent_amount) - reagents.my_atom = src - for(var/reagent_id in reagent_list) - reagent_id == "radium" ? reagents.add_reagent(reagent_id, r_maxamount+(a_boost*a_transfer)) : reagents.add_reagent(reagent_id, r_maxamount)//It will take into account radium used for adrenaline boosting. - cell = new/obj/item/weapon/cell/high//The suit should *always* have a battery because so many things rely on it. - cell.charge = 9000//Starting charge should not be higher than maximum charge. It leads to problems with recharging. - -/obj/item/clothing/suit/space/space_ninja/Del() - if(affecting)//To make sure the window is closed. - affecting << browse(null, "window=hack spideros") - if(AI)//If there are AIs present when the ninja kicks the bucket. - killai() - if(hologram)//If there is a hologram - del(hologram.i_attached)//Delete it and the attached image. - del(hologram) - ..() - return - -//Simply deletes all the attachments and self, killing all related procs. -/obj/item/clothing/suit/space/space_ninja/proc/terminate() - del(n_hood) - del(n_gloves) - del(n_shoes) - del(src) - -/obj/item/clothing/suit/space/space_ninja/proc/killai(mob/living/silicon/ai/A = AI) - if(A.client) - A << "\red Self-erase protocol dete-- *bzzzzz*" - A << browse(null, "window=hack spideros") - AI = null - A.death(1)//Kill, deleting mob. - del(A) - return - -//=======//SUIT VERBS//=======// -//Verbs link to procs because verb-like procs have a bug which prevents their use if the arguments are not readily referenced. - -/obj/item/clothing/suit/space/space_ninja/proc/init() - set name = "Initialize Suit" - set desc = "Initializes the suit for field operation." - set category = "Ninja Equip" - - ninitialize() - return - -/obj/item/clothing/suit/space/space_ninja/proc/deinit() - set name = "De-Initialize Suit" - set desc = "Begins procedure to remove the suit." - set category = "Ninja Equip" - - if(s_control&&!s_busy) - deinitialize() - else - affecting << "\red The function did not trigger!" - return - -/obj/item/clothing/suit/space/space_ninja/proc/spideros() - set name = "Display SpiderOS" - set desc = "Utilize built-in computer system." - set category = "Ninja Equip" - - if(s_control&&!s_busy&&!kamikaze) - display_spideros() - else - affecting << "\red The interface is locked!" - return - -/obj/item/clothing/suit/space/space_ninja/proc/stealth() - set name = "Toggle Stealth" - set desc = "Utilize the internal CLOAK-tech device to activate or deactivate stealth-camo." - set category = "Ninja Equip" - - if(s_control&&!s_busy) - toggle_stealth() - else - affecting << "\red Stealth does not appear to work!" - return - -//=======//PROCESS PROCS//=======// - -/obj/item/clothing/suit/space/space_ninja/proc/ntick(mob/living/carbon/human/U = affecting) - set background = 1 - - //Runs in the background while the suit is initialized. - spawn while(cell.charge>=0) - - //Let's check for some safeties. - if(s_initialized&&!affecting) terminate()//Kills the suit and attached objects. - if(!s_initialized) return//When turned off the proc stops. - if(AI&&AI.stat==2)//If there is an AI and it's ded. Shouldn't happen without purging, could happen. - if(!s_control) - ai_return_control()//Return control to ninja if the AI was previously in control. - killai()//Delete AI. - - //Now let's do the normal processing. - if(s_coold) s_coold--//Checks for ability s_cooldown first. - var/A = s_cost//s_cost is the default energy cost each ntick, usually 5. - if(!kamikaze) - if(blade_check(U))//If there is a blade held in hand. - A += s_acost - if(s_active)//If stealth is active. - A += s_acost - else - if(prob(s_delay))//Suit delay is used as probability. May change later. - U.adjustBruteLoss(k_damage)//Default damage done, usually 1. - A = k_cost//kamikaze cost. - cell.charge-=A - if(cell.charge<=0) - if(kamikaze) - U.say("I DIE TO LIVE AGAIN!") - U << browse(null, "window=spideros")//Just in case. - U.death() - return - cell.charge=0 - cancel_stealth() - sleep(10)//Checks every second. - -//=======//INITIALIZE//=======// - -/obj/item/clothing/suit/space/space_ninja/proc/ninitialize(delay = s_delay, mob/living/carbon/human/U = loc) - if(U.mind && U.mind.assigned_role=="MODE" && !s_initialized && !s_busy)//Shouldn't be busy... but anything is possible I guess. - s_busy = 1 - for(var/i,i<7,i++) - switch(i) - if(0) - U << "\blue Now initializing..." - if(1) - if(!lock_suit(U))//To lock the suit onto wearer. - break - U << "\blue Securing external locking mechanism...\nNeural-net established." - if(2) - U << "\blue Extending neural-net interface...\nNow monitoring brain wave pattern..." - if(3) - if(U.stat==2||U.health<=0) - U << "\red FĆAL �Rr�R: 344--93#�&&21 BR��N |/|/aV� PATT$RN RED\nA-A-aB�rT�NG..." - unlock_suit() - break - lock_suit(U,1)//Check for icons. - U.regenerate_icons() - U << "\blue Linking neural-net interface...\nPattern \green GREEN\blue, continuing operation." - if(4) - U << "\blue VOID-shift device status: ONLINE.\nCLOAK-tech device status: ONLINE." - if(5) - U << "\blue Primary system status: ONLINE.\nBackup system status: ONLINE.\nCurrent energy capacity: [cell.charge]." - if(6) - U << "\blue All systems operational. Welcome to SpiderOS, [U.real_name]." - grant_ninja_verbs() - grant_equip_verbs() - ntick() - sleep(delay) - s_busy = 0 - else - if(!U.mind||U.mind.assigned_role!="MODE")//Your run of the mill persons shouldn't know what it is. Or how to turn it on. - U << "You do not understand how this suit functions. Where the heck did it even come from?" - else if(s_initialized) - U << "\red The suit is already functioning. \black Please report this bug." - else - U << "\red ERROR: \black You cannot use this function at this time." - return - -//=======//DEINITIALIZE//=======// - -/obj/item/clothing/suit/space/space_ninja/proc/deinitialize(delay = s_delay) - if(affecting==loc&&!s_busy) - var/mob/living/carbon/human/U = affecting - if(!s_initialized) - U << "\red The suit is not initialized. \black Please report this bug." - return - if(alert("Are you certain you wish to remove the suit? This will take time and remove all abilities.",,"Yes","No")=="No") - return - if(s_busy||flush) - U << "\red ERROR: \black You cannot use this function at this time." - return - s_busy = 1 - for(var/i = 0,i<7,i++) - switch(i) - if(0) - U << "\blue Now de-initializing..." - remove_kamikaze(U)//Shutdowns kamikaze. - spideros = 0//Spideros resets. - if(1) - U << "\blue Logging off, [U:real_name]. Shutting down SpiderOS." - remove_ninja_verbs() - if(2) - U << "\blue Primary system status: OFFLINE.\nBackup system status: OFFLINE." - if(3) - U << "\blue VOID-shift device status: OFFLINE.\nCLOAK-tech device status: OFFLINE." - cancel_stealth()//Shutdowns stealth. - if(4) - U << "\blue Disconnecting neural-net interface...\greenSuccess\blue." - if(5) - U << "\blue Disengaging neural-net interface...\greenSuccess\blue." - if(6) - U << "\blue Unsecuring external locking mechanism...\nNeural-net abolished.\nOperation status: FINISHED." - blade_check(U,2) - remove_equip_verbs() - unlock_suit() - U.regenerate_icons() - sleep(delay) - s_busy = 0 - return - -//=======//SPIDEROS PROC//=======// - -/obj/item/clothing/suit/space/space_ninja/proc/display_spideros() - if(!affecting) return//If no mob is wearing the suit. I almost forgot about this variable. - var/mob/living/carbon/human/U = affecting - var/mob/living/silicon/ai/A = AI - var/display_to = s_control ? U : A//Who do we want to display certain messages to? - - var/dat = "SpiderOS" - dat += " Refresh" - if(spideros) - dat += " | Return" - dat += " | Close" - dat += "
" - if(s_control) - dat += "

SpiderOS v.1.337

" - dat += "Welcome, [U.real_name].
" - else - dat += "

SpiderOS v.ERR-RR00123

" - dat += "
" - dat += " Current Time: [worldtime2text()]
" - dat += " Battery Life: [round(cell.charge)] ([round(cell.charge/100)]%)
" - dat += " Smoke Bombs: \Roman [s_bombs]
" - dat += " pai Device: " - if(pai) - dat += "Configure" - dat += " | " - dat += "Eject" - else - dat += "None Detected" - dat += "

" - - switch(spideros) - if(0) - dat += "

Available Functions:

" - dat += "" - if(3) - dat += "

Medical Report:

" - if(U.dna) - dat += "Fingerprints: [md5(U.dna.uni_identity)]
" - dat += "Unique identity: [U.dna.unique_enzymes]
" - dat += "

Overall Status: [U.stat > 1 ? "dead" : "[U.health]% healthy"]

" - dat += "

Nutrition Status: [U.nutrition]

" - dat += "Oxygen loss: [U.getOxyLoss()]" - dat += " | Toxin levels: [U.getToxLoss()]
" - dat += "Burn severity: [U.getFireLoss()]" - dat += " | Brute trauma: [U.getBruteLoss()]
" - dat += "Radiation Level: [U.radiation] rad
" - dat += "Body Temperature: [U.bodytemperature-T0C]°C ([U.bodytemperature*1.8-459.67]°F)
" - - for(var/datum/disease/D in U.viruses) - dat += "Warning: Virus Detected. Name: [D.name].Type: [D.spread]. Stage: [D.stage]/[D.max_stages]. Possible Cure: [D.cure].
" - dat += "" - if(1) - dat += "

Atmospheric Scan:

"//Headers don't need breaks. They are automatically placed. - var/turf/T = get_turf(U.loc) - if (isnull(T)) - dat += "Unable to obtain a reading." - else - var/datum/gas_mixture/environment = T.return_air() - - var/pressure = environment.return_pressure() - var/total_moles = environment.total_moles() - - dat += "Air Pressure: [round(pressure,0.1)] kPa" - - if (total_moles) - var/o2_level = environment.oxygen/total_moles - var/n2_level = environment.nitrogen/total_moles - var/co2_level = environment.carbon_dioxide/total_moles - var/plasma_level = environment.toxins/total_moles - var/unknown_level = 1-(o2_level+n2_level+co2_level+plasma_level) - dat += "
    " - dat += "
  • Nitrogen: [round(n2_level*100)]%
  • " - dat += "
  • Oxygen: [round(o2_level*100)]%
  • " - dat += "
  • Carbon Dioxide: [round(co2_level*100)]%
  • " - dat += "
  • Plasma: [round(plasma_level*100)]%
  • " - dat += "
" - if(unknown_level > 0.01) - dat += "OTHER: [round(unknown_level)]%
" - - dat += "Temperature: [round(environment.temperature-T0C)]°C" - if(2) - if(k_unlock==7||!s_control) - dat += " Hidden Menu" - dat += "

Anonymous Messenger:

"//Anonymous because the receiver will not know the sender's identity. - dat += "

Detected PDAs:

" - dat += "
    " - var/count = 0 - for (var/obj/item/device/pda/P in get_viewable_pdas()) - dat += "
  • [P]" - dat += "
  • " - count++ - dat += "
" - if (count == 0) - dat += "None detected.
" - if(32) - dat += "

Hidden Menu:

" - if(s_control) - dat += "Please input password: " - dat += "HERE
" - dat += "
" - dat += "Remember, you will not be able to recharge energy during this function. If energy runs out, the suit will auto self-destruct.
" - dat += "Use with caution. De-initialize the suit when energy is low." - else - //Only leaving this in for funnays. CAN'T LET YOU DO THAT STAR FOX - dat += "WARNING: Hostile runtime intrusion detected: operation locked. The Spider Clan is watching you, INTRUDER." - dat += "ERROR: TARANTULA.v.4.77.12 encryption algorithm detected. Unable to decrypt archive.
" - if(4) - dat += {" -

Ninja Manual:

-
Who they are:
- Space ninjas are a special type of ninja, specifically one of the space-faring type. The vast majority of space ninjas belong to the Spider Clan, a cult-like sect, which has existed for several hundred years. The Spider Clan practice a sort of augmentation of human flesh in order to achieve a more perfect state of being and follow Postmodern Space Bushido. They also kill people for money. Their leaders are chosen from the oldest of the grand-masters, people that have lived a lot longer than any mortal man should.
Being a sect of technology-loving fanatics, the Spider Clan have the very best to choose from in terms of hardware--cybernetic implants, exoskeleton rigs, hyper-capacity batteries, and you get the idea. Some believe that much of the Spider Clan equipment is based on reverse-engineered alien technology while others doubt such claims.
Whatever the case, their technology is absolutely superb. -
How they relate to other SS13 organizations:
-
    -
  • *Nanotrasen and the Syndicate are two sides of the same coin and that coin is valuable.
  • -
  • *The Space Wizard Federation is a problem, mainly because they are an extremely dangerous group of unpredictable individuals--not to mention the wizards hate technology and are in direct opposition of the Spider Clan. Best avoided or left well-enough alone. How to battle: wizards possess several powerful abilities to steer clear off. Blind in particular is a nasty spell--jaunt away if you are blinded and never approach a wizard in melee. Stealth may also work if the wizard is not wearing thermal scanners--don't count on this. Run away if you feel threatened and await a better opportunity.
  • -
  • *Changeling Hivemind: extremely dangerous and to be killed on sight. How to battle: they will likely try to absorb you. Adrenaline boost, then phase shift into them. If you get stung, use SpiderOS to inject counter-agents. Stealth may also work but detecting a changeling is the real battle.
  • -
  • *Xeno Hivemind: their skulls make interesting kitchen decorations and are challenging to best, especially in larger nests. How to battle: they can see through your stealth guise and energy stars will not work on them. Best killed with a Phase Shift or at range. If you happen on a projectile stun weapon, use it and then close in to melee.
  • -
-
The reason they (you) are here:
- Space ninjas are renowned throughout the known controlled space as fearless spies, infiltrators, and assassins. They are sent on missions of varying nature by Nanotrasen, the Syndicate, and other shady organizations and people. To hire a space ninja means serious business. -
Their playstyle:
- A mix of traitor, changeling, and wizard. Ninjas rely on energy, or electricity to be precise, to keep their suits running (when out of energy, a suit hibernates). Suits gain energy from objects or creatures that contain electrical charge. APCs, cell batteries, rechargers, SMES batteries, cyborgs, mechs, and exposed wires are currently supported. Through energy ninjas gain access to special powers--while all powers are tied to the ninja suit, the most useful of them are verb activated--to help them in their mission.
It is a constant struggle for a ninja to remain hidden long enough to recharge the suit and accomplish their objective; despite their arsenal of abilities, ninjas can die like any other. Unlike wizards, ninjas do not possess good crowd control and are typically forced to play more subdued in order to achieve their goals. Some of their abilities are specifically designed to confuse and disorient others.
With that said, it should be perfectly possible to completely flip the fuck out and rampage as a ninja. -
Their powers:
- There are two primary types: Equipment and Abilties. Passive effect are always on. Active effect must be turned on and remain active only when there is energy to do so. Ability costs are listed next to them. - Equipment: cannot be tracked by AI (passive), faster speed (passive), stealth (active), vision switch (passive if toggled), voice masking (passive), SpiderOS (passive if toggled), energy drain (passive if toggled). -
    -
  • Voice masking generates a random name the ninja can use over the radio and in-person. Although, the former use is recommended.
  • -
  • Toggling vision cycles to one of the following: thermal, meson, or darkness vision. The starting mode allows one to scout the identity of those in view, revealing their role. Traitors, revolutionaries, wizards, and other such people will be made known to you.
  • -
  • Stealth, when activated, drains more battery charge and works similarly to a syndicate cloak. The cloak will deactivate when most Abilities are utilized.
  • -
  • On-board AI: The suit is able to download an AI much like an intelicard. Check with SpiderOS for details once downloaded.
  • -
  • SpiderOS is a specialized, PDA-like screen that allows for a small variety of functions, such as injecting healing chemicals directly from the suit. You are using it now, if that was not already obvious. You may also download AI modules directly to the OS.
  • -
- Abilities: -
    -
  • *Phase Shift (500E) and Phase Jaunt (250E) are unique powers in that they can both be used for defense and offense. Jaunt launches the ninja forward facing up to 9 squares, somewhat randomly selecting the final destination. Shift can only be used on turf in view but is precise (cannot be used on walls). Any living mob in the area teleported to is instantly gibbed (mechs are damaged, huggers and other similar critters are killed). It is possible to teleport with a target, provided you grab them before teleporting.
  • -
  • *Energy Blade (200E) is a highly effective weapon. It is summoned directly to the ninja's hand and can also function as an EMAG for certain objects (doors/lockers/etc). You may also use it to cut through walls and disabled doors. Experiment! The blade will crit humans in two hits. This item cannot be placed in containers and when dropped or thrown disappears. Having an energy blade drains more power from the battery each tick.
  • -
  • *EM Pulse (1000E) is a highly useful ability that will create an electromagnetic shockwave around the ninja, disabling technology whenever possible. If used properly it can render a security force effectively useless. Of course, getting beat up with a toolbox is not accounted for.
  • -
  • *Energy Star (500E) is a ninja star made of green energy AND coated in poison. It works by picking a random living target within range and can be spammed to great effect in incapacitating foes. Just remember that the poison used is also used by the Xeno Hivemind (and will have no effect on them).
  • -
  • *Energy Net (5000E) is a non-lethal solution to incapacitating humanoids. The net is made of non-harmful phase energy and will halt movement as long as it remains in effect--it can be destroyed. If the net is not destroyed, after a certain time it will teleport the target to a holding facility for the Spider Clan and then vanish. You will be notified if the net fails or succeeds in capturing a target in this manner. Combine with energy stars or stripping to ensure success. Abduction never looked this leet.
  • -
  • *Adrenaline Boost (1 E. Boost/3) recovers the user from stun, weakness, and paralysis. Also injects 20 units of radium into the bloodstream.
  • -
  • *Smoke Bomb (1 Sm.Bomb/10) is a weak but potentially useful ability. It creates harmful smoke and can be used in tandem with other powers to confuse enemies.
  • -
  • *???: unleash the True Ultimate Power!
  • -

    IMPORTANT:

    -
      -
    • *Make sure to toggle Special Interaction from the Ninja Equipment menu to interact differently with certain objects.
    • -
    • *Your starting power cell can be replaced if you find one with higher maximum energy capacity by clicking on your suit with the higher capacity cell.
    • -
    • *Conserve your energy. Without it, you are very vulnerable.
    • -
    - That is all you will need to know. The rest will come with practice and talent. Good luck! -

    Master /N

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

    AI Control:

    " - //var/mob/living/silicon/ai/A = AI - if(AI)//If an AI exists. - dat += "Stored AI: [A.name]
    " - dat += "System integrity: [(A.health+100)/2]%
    " - - //I personally think this makes things a little more fun. Ninjas can override all but law 0. - //if (A.laws.zeroth) - // laws += "
  • 0: [A.laws.zeroth]
  • " - - for (var/index = 1, index <= A.laws.ion.len, index++) - var/law = A.laws.ion[index] - if (length(law) > 0) - var/num = ionnum() - laws += "
  • [num]. [law]
  • " - - var/number = 1 - for (var/index = 1, index <= A.laws.inherent.len, index++) - var/law = A.laws.inherent[index] - if (length(law) > 0) - laws += "
  • [number]: [law]
  • " - number++ - - for (var/index = 1, index <= A.laws.supplied.len, index++) - var/law = A.laws.supplied[index] - if (length(law) > 0) - laws += "
  • [number]: [law]
  • " - number++ - - dat += "

    Laws:

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

    Activate Abilities:

    - - "} - if(7) - dat += "

    Research Stored:

    " - if(t_disk) - dat += "Eject Disk
    " - dat += "
      " - if(istype(stored_research,/list))//If there is stored research. Should be but just in case. - for(var/datum/tech/current_data in stored_research) - dat += "
    • " - dat += "[current_data.name]: [current_data.level]" - if(t_disk)//If there is a disk inserted. We can either write or overwrite. - dat += " *Copy to Disk
      " - dat += "
    • " - dat += "
    " - dat += "" - - //Setting the can>resize etc to 0 remove them from the drag bar but still allows the window to be draggable. - display_to << browse(dat,"window=spideros;size=400x444;border=1;can_resize=1;can_close=0;can_minimize=0") - -//=======//SPIDEROS TOPIC PROC//=======// - -/obj/item/clothing/suit/space/space_ninja/Topic(href, href_list) - ..() - var/mob/living/carbon/human/U = affecting - var/mob/living/silicon/ai/A = AI - var/display_to = s_control ? U : A//Who do we want to display certain messages to? - - if(s_control) - if(!affecting||U.stat||!s_initialized)//Check to make sure the guy is wearing the suit after clicking and it's on. - U << "\red Your suit must be worn and active to use this function." - U << browse(null, "window=spideros")//Closes the window. - return - - if(k_unlock!=7&&href_list["choice"]!="Return") - var/u1=text2num(href_list["choice"]) - var/u2=(u1?abs(abs(k_unlock-u1)-2):1) - k_unlock=(!u2? k_unlock+1:0) - if(k_unlock==7) - U << "Anonymous Messenger blinks." - else - if(!affecting||A.stat||!s_initialized||A.loc!=src) - A << "\red This function is not available at this time." - A << browse(null, "window=spideros")//Closes the window. - return - - switch(href_list["choice"]) - if("Close") - display_to << browse(null, "window=spideros") - return - if("Refresh")//Refresh, goes to the end of the proc. - if("Return")//Return - if(spideros<=9) - spideros=0 - else - spideros = round(spideros/10)//Best way to do this, flooring to nearest integer. - - if("Shock") - var/damage = min(cell.charge, rand(50,150))//Uses either the current energy left over or between 50 and 150. - if(damage>1)//So they don't spam it when energy is a factor. - spark_system.start()//SPARKS THERE SHALL BE SPARKS - U.electrocute_act(damage, src,0.1,1)//The last argument is a safety for the human proc that checks for gloves. - cell.charge -= damage - else - A << "\red ERROR: \black Not enough energy remaining." - - if("Message") - var/obj/item/device/pda/P = locate(href_list["target"]) - var/t = input(U, "Please enter untraceable message.") as text - t = copytext(sanitize(t), 1, MAX_MESSAGE_LEN) - if(!t||U.stat||U.wear_suit!=src||!s_initialized)//Wow, another one of these. Man... - display_to << browse(null, "window=spideros") - return - if(isnull(P)||P.toff)//So it doesn't freak out if the object no-longer exists. - display_to << "\red Error: unable to deliver message." - display_spideros() - return - P.tnote += "← From [!s_control?(A):"an unknown source"]:
    [t]
    " - if (!P.silent) - playsound(P.loc, 'sound/machines/twobeep.ogg', 50, 1) - for (var/mob/O in hearers(3, P.loc)) - O.show_message(text("\icon[P] *[P.ttone]*")) - P.overlays.Cut() - P.overlays += image('icons/obj/pda.dmi', "pda-r") - - if("Inject") - if( (href_list["tag"]=="radium"? (reagents.get_reagent_amount("radium"))<=(a_boost*a_transfer) : !reagents.get_reagent_amount(href_list["tag"])) )//Special case for radium. If there are only a_boost*a_transfer radium units left. - display_to << "\red Error: the suit cannot perform this function. Out of [href_list["name"]]." - else - reagents.reaction(U, 2) - reagents.trans_id_to(U, href_list["tag"], href_list["tag"]=="nutriment"?5:a_transfer)//Nutriment is a special case since it's very potent. Shouldn't influence actual refill amounts or anything. - display_to << "Injecting..." - U << "You feel a tiny prick and a sudden rush of substance in to your veins." - - if("Trigger Ability") - var/ability_name = href_list["name"]+href_list["cost"]//Adds the name and cost to create the full proc name. - var/proc_arguments//What arguments to later pass to the proc, if any. - var/targets[] = list()//To later check for. - var/safety = 0//To later make sure we're triggering the proc when needed. - switch(href_list["name"])//Special case. - if("Phase Shift") - safety = 1 - for(var/turf/T in oview(5,loc)) - targets.Add(T) - if("Energy Net") - safety = 1 - for(var/mob/living/carbon/M in oview(5,loc)) - targets.Add(M) - if(targets.len)//Let's create an argument for the proc if needed. - proc_arguments = pick(targets) - safety = 0 - if(!safety) - A << "You trigger [href_list["name"]]." - U << "[href_list["name"]] suddenly triggered!" - call(src,ability_name)(proc_arguments) - else - A << "There are no potential [href_list["name"]=="Phase Shift"?"destinations" : "targets"] in view." - - if("Unlock Kamikaze") - if(input(U)=="Divine Wind") - if( !(U.stat||U.wear_suit!=src||!s_initialized) ) - if( !(cell.charge<=1||s_busy) ) - s_busy = 1 - for(var/i, i<4, i++) - switch(i) - if(0) - U << "\blue Engaging mode...\n\blackCODE NAME: \red KAMIKAZE" - if(1) - U << "\blue Re-routing power nodes... \nUnlocking limiter..." - if(2) - U << "\blue Power nodes re-routed. \nLimiter unlocked." - if(3) - grant_kamikaze(U)//Give them verbs and change variables as necessary. - U.regenerate_icons()//Update their clothing. - ninjablade()//Summon two energy blades. - message_admins("\blue [key_name_admin(U)] used KAMIKAZE mode.")//Let the admins know. - s_busy = 0 - return - sleep(s_delay) - else - U << "\red ERROR: \black Unable to initiate mode." - else - U << browse(null, "window=spideros") - s_busy = 0 - return - else - U << "\red ERROR: WRONG PASSWORD!" - k_unlock = 0 - spideros = 0 - s_busy = 0 - - if("Eject Disk") - var/turf/T = get_turf(loc) - if(!U.get_active_hand()) - U.put_in_hands(t_disk) - t_disk.add_fingerprint(U) - t_disk = null - else - if(T) - t_disk.loc = T - t_disk = null - else - U << "\red ERROR: \black Could not eject disk." - - if("Copy to Disk") - var/datum/tech/current_data = locate(href_list["target"]) - U << "[current_data.name] successfully [(!t_disk.stored) ? "copied" : "overwritten"] to disk." - t_disk.stored = current_data - - if("Configure pAI") - pai.attack_self(U) - - if("Eject pAI") - var/turf/T = get_turf(loc) - if(!U.get_active_hand()) - U.put_in_hands(pai) - pai.add_fingerprint(U) - pai = null - else - if(T) - pai.loc = T - pai = null - else - U << "\red ERROR: \black Could not eject pAI card." - - if("Override AI Laws") - var/law_zero = A.laws.zeroth//Remembers law zero, if there is one. - A.laws = new /datum/ai_laws/ninja_override - A.set_zeroth_law(law_zero)//Adds back law zero if there was one. - A.show_laws() - U << "\blue Law Override: SUCCESS." - - if("Purge AI") - var/confirm = alert("Are you sure you want to purge the AI? This cannot be undone once started.", "Confirm purge", "Yes", "No") - if(U.stat||U.wear_suit!=src||!s_initialized) - U << browse(null, "window=spideros") - return - if(confirm == "Yes"&&AI) - if(A.laws.zeroth)//Gives a few seconds to re-upload the AI somewhere before it takes full control. - s_busy = 1 - for(var/i,i<5,i++) - if(AI==A) - switch(i) - if(0) - A << "\red WARNING: \black purge procedure detected. \nNow hacking host..." - U << "\red WARNING: HACKING AT��TEMP� IN PR0GRESs!" - spideros = 0 - k_unlock = 0 - U << browse(null, "window=spideros") - if(1) - A << "Disconnecting neural interface..." - U << "\red WAR�NING: �R�O0�Gr�--S 2&3%" - if(2) - A << "Shutting down external protocol..." - U << "\red WARNING: P����RÖ†Gr�5S 677^%" - cancel_stealth() - if(3) - A << "Connecting to kernel..." - U << "\red WARNING: �R�r�R_404" - A.control_disabled = 0 - if(4) - A << "Connection established and secured. Menu updated." - U << "\red W�r#nING: #%@!!WȆ|_4�54@ \nUn�B88l3 T� L�-�o-L�CaT2 ##$!�RN�0..%.." - grant_AI_verbs() - return - sleep(s_delay) - else break - s_busy = 0 - U << "\blue Hacking attempt disconnected. Resuming normal operation." - else - flush = 1 - A.suiciding = 1 - A << "Your core files are being purged! This is the end..." - spawn(0) - display_spideros()//To refresh the screen and let this finish. - while (A.stat != 2) - A.adjustOxyLoss(2) - A.updatehealth() - sleep(10) - killai() - U << "Artificial Intelligence was terminated. Rebooting..." - flush = 0 - - if("Wireless AI") - A.control_disabled = !A.control_disabled - A << "AI wireless has been [A.control_disabled ? "disabled" : "enabled"]." - else//If it's not a defined function, it's a menu. - spideros=text2num(href_list["choice"]) - - display_spideros()//Refreshes the screen by calling it again (which replaces current screen with new screen). - return - -//=======//SPECIAL AI FUNCTIONS//=======// - -/obj/item/clothing/suit/space/space_ninja/proc/ai_holo(var/turf/T in oview(3,affecting))//To have an internal AI display a hologram to the AI and ninja only. - set name = "Display Hologram" - set desc = "Channel a holographic image directly to the user's field of vision. Others will not see it." - set category = null - set src = usr.loc - - if(s_initialized&&affecting&&affecting.client&&istype(affecting.loc, /turf))//If the host exists and they are playing, and their location is a turf. - if(!hologram)//If there is not already a hologram. - hologram = new(T)//Spawn a blank effect at the location. - hologram.invisibility = 101//So that it doesn't show up, ever. This also means one could attach a number of images to a single obj and display them differently to differnet people. - hologram.anchored = 1//So it cannot be dragged by space wind and the like. - hologram.dir = get_dir(T,affecting.loc) - var/image/I = image(AI.holo_icon,hologram)//Attach an image to object. - hologram.i_attached = I//To attach the image in order to later reference. - AI << I - affecting << I - affecting << "An image flicks to life nearby. It appears visible to you only." - - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ai_holo_clear - - ai_holo_process()//Move to initialize - else - AI << "\red ERROR: \black Image feed in progress." - else - AI << "\red ERROR: \black Unable to project image." - return - -/obj/item/clothing/suit/space/space_ninja/proc/ai_holo_process() - set background = 1 - - spawn while(hologram&&s_initialized&&AI)//Suit on and there is an AI present. - if(!s_initialized||get_dist(affecting,hologram.loc)>3)//Once suit is de-initialized or hologram reaches out of bounds. - del(hologram.i_attached) - del(hologram) - - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ai_holo_clear - return - sleep(10)//Checks every second. - -/obj/item/clothing/suit/space/space_ninja/proc/ai_instruction()//Let's the AI know what they can do. - set name = "Instructions" - set desc = "Displays a list of helpful information." - set category = "AI Ninja Equip" - set src = usr.loc - - AI << "The menu you are seeing will contain other commands if they become available.\nRight click a nearby turf to display an AI Hologram. It will only be visible to you and your host. You can move it freely using normal movement keys--it will disappear if placed too far away." - -/obj/item/clothing/suit/space/space_ninja/proc/ai_holo_clear() - set name = "Clear Hologram" - set desc = "Stops projecting the current holographic image." - set category = "AI Ninja Equip" - set src = usr.loc - - del(hologram.i_attached) - del(hologram) - - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ai_holo_clear - return - -/obj/item/clothing/suit/space/space_ninja/proc/ai_hack_ninja() - set name = "Hack SpiderOS" - set desc = "Hack directly into the Black Widow(tm) neuro-interface." - set category = "AI Ninja Equip" - set src = usr.loc - - display_spideros() - return - -/obj/item/clothing/suit/space/space_ninja/proc/ai_return_control() - set name = "Relinquish Control" - set desc = "Return control to the user." - set category = "AI Ninja Equip" - set src = usr.loc - - AI << browse(null, "window=spideros")//Close window - AI << "You have seized your hacking attempt. [affecting.real_name] has regained control." - affecting << "UPDATE: [AI.real_name] has ceased hacking attempt. All systems clear." - - remove_AI_verbs() - return - -//=======//GENERAL SUIT PROCS//=======// - -/obj/item/clothing/suit/space/space_ninja/attackby(obj/item/I, mob/U) - if(U==affecting)//Safety, in case you try doing this without wearing the suit/being the person with the suit. - if(istype(I, /obj/item/device/aicard))//If it's an AI card. - if(s_control) - I:transfer_ai("NINJASUIT","AICARD",src,U) - else - U << "\red ERROR: \black Remote access channel disabled." - return//Return individually so that ..() can run properly at the end of the proc. - else if(istype(I, /obj/item/device/paicard) && !pai)//If it's a pai card. - U:drop_item() - I.loc = src - pai = I - U << "\blue You slot \the [I] into \the [src]." - updateUsrDialog() - return - else if(istype(I, /obj/item/weapon/reagent_containers/glass))//If it's a glass beaker. - var/total_reagent_transfer//Keep track of this stuff. - for(var/reagent_id in reagent_list) - var/datum/reagent/R = I.reagents.has_reagent(reagent_id)//Mostly to pull up the name of the reagent after calculating. Also easier to use than writing long proc paths. - if(R&&reagents.get_reagent_amount(reagent_id)=a_transfer)//Radium is always special. - //Here we determine how much reagent will actually transfer if there is enough to transfer or there is a need of transfer. Minimum of max amount available (using a_transfer) or amount needed. - var/amount_to_transfer = min( (r_maxamount+(reagent_id == "radium"?(a_boost*a_transfer):0)-reagents.get_reagent_amount(reagent_id)) ,(round(R.volume/a_transfer))*a_transfer)//In the end here, we round the amount available, then multiply it again. - R.volume -= amount_to_transfer//Remove from reagent volume. Don't want to delete the reagent now since we need to perserve the name. - reagents.add_reagent(reagent_id, amount_to_transfer)//Add to suit. Reactions are not important. - total_reagent_transfer += amount_to_transfer//Add to total reagent trans. - U << "Added [amount_to_transfer] units of [R.name]."//Reports on the specific reagent added. - I.reagents.update_total()//Now we manually update the total to make sure everything is properly shoved under the rug. - - U << "Replenished a total of [total_reagent_transfer ? total_reagent_transfer : "zero"] chemical units."//Let the player know how much total volume was added. - return - else if(istype(I, /obj/item/weapon/cell)) - if(I:maxcharge>cell.maxcharge&&n_gloves&&n_gloves.candrain) - U << "\blue Higher maximum capacity detected.\nUpgrading..." - if (n_gloves&&n_gloves.candrain&&do_after(U,s_delay)) - U.drop_item() - I.loc = src - I:charge = min(I:charge+cell.charge, I:maxcharge) - var/obj/item/weapon/cell/old_cell = cell - old_cell.charge = 0 - U.put_in_hands(old_cell) - old_cell.add_fingerprint(U) - old_cell.corrupt() - old_cell.updateicon() - cell = I - U << "\blue Upgrade complete. Maximum capacity: [round(cell.maxcharge/100)]%" - else - U << "\red Procedure interrupted. Protocol terminated." - return - else if(istype(I, /obj/item/weapon/disk/tech_disk))//If it's a data disk, we want to copy the research on to the suit. - var/obj/item/weapon/disk/tech_disk/TD = I - if(TD.stored)//If it has something on it. - U << "Research information detected, processing..." - if(do_after(U,s_delay)) - for(var/datum/tech/current_data in stored_research) - if(current_data.id==TD.stored.id) - if(current_data.levelERROR: \black Procedure interrupted. Process terminated." - else - U.drop_item() - I.loc = src - t_disk = I - U << "\blue You slot \the [I] into \the [src]." - return - ..() - -/obj/item/clothing/suit/space/space_ninja/proc/toggle_stealth() - var/mob/living/carbon/human/U = affecting - if(s_active) - cancel_stealth() - else - spawn(0) - anim(U.loc,U,'icons/mob/mob.dmi',,"cloak",,U.dir) - s_active=!s_active - U.update_icons() //update their icons - U << "\blue You are now invisible to normal detection." - for(var/mob/O in oviewers(U)) - O.show_message("[U.name] vanishes into thin air!",1) - return - -/obj/item/clothing/suit/space/space_ninja/proc/cancel_stealth() - var/mob/living/carbon/human/U = affecting - if(s_active) - spawn(0) - anim(U.loc,U,'icons/mob/mob.dmi',,"uncloak",,U.dir) - s_active=!s_active - U.update_icons() //update their icons - U << "\blue You are now visible." - for(var/mob/O in oviewers(U)) - O.show_message("[U.name] appears from thin air!",1) - return 1 - return 0 - -/obj/item/clothing/suit/space/space_ninja/proc/blade_check(mob/living/carbon/U, X = 1)//Default to checking for blade energy. - switch(X) - if(1) - if(istype(U.get_active_hand(), /obj/item/weapon/melee/energy/blade)) - if(cell.charge<=0)//If no charge left. - U.drop_item()//Blade is dropped from active hand (and deleted). - else return 1 - else if(istype(U.get_inactive_hand(), /obj/item/weapon/melee/energy/blade)) - if(cell.charge<=0) - U.swap_hand()//swap hand - U.drop_item()//drop blade - else return 1 - if(2) - if(istype(U.get_active_hand(), /obj/item/weapon/melee/energy/blade)) - U.drop_item() - if(istype(U.get_inactive_hand(), /obj/item/weapon/melee/energy/blade)) - U.swap_hand() - U.drop_item() - return 0 - -/obj/item/clothing/suit/space/space_ninja/examine() - set src in view() - ..() - if(s_initialized) - var/mob/living/carbon/human/U = affecting - if(s_control) - U << "All systems operational. Current energy capacity: [cell.charge]." - if(!kamikaze) - U << "The CLOAK-tech device is [s_active?"active":"inactive"]." - else - U << "\red KAMIKAZE MODE ENGAGED!" - U << "There are [s_bombs] smoke bombs remaining." - U << "There are [a_boost] adrenaline boosters remaining." - else - U << "�rr�R �a��a�� No-�-� f��N� 3RR�r" - -/* -=================================================================================== -<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -=================================================================================== -*/ - -//=======//ENERGY DRAIN PROCS//=======// - -/obj/item/clothing/gloves/space_ninja/proc/drain(target_type as text, target, obj/suit) -//Var Initialize - var/obj/item/clothing/suit/space/space_ninja/S = suit - var/mob/living/carbon/human/U = S.affecting - var/obj/item/clothing/gloves/space_ninja/G = S.n_gloves - - var/drain = 0//To drain from battery. - var/maxcapacity = 0//Safety check for full battery. - var/totaldrain = 0//Total energy drained. - - G.draining = 1 - - if(target_type!="RESEARCH")//I lumped research downloading here for ease of use. - U << "\blue Now charging battery..." - - switch(target_type) - - if("APC") - var/obj/machinery/power/apc/A = target - if(A.cell&&A.cell.charge) - var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() - spark_system.set_up(5, 0, A.loc) - while(G.candrain&&A.cell.charge>0&&!maxcapacity) - drain = rand(G.mindrain,G.maxdrain) - if(A.cell.chargeS.cell.maxcharge) - drain = S.cell.maxcharge-S.cell.charge - maxcapacity = 1//Reached maximum battery capacity. - if (do_after(U,10)) - spark_system.start() - playsound(A.loc, "sparks", 50, 1) - A.cell.charge-=drain - S.cell.charge+=drain - totaldrain+=drain - else break - U << "\blue Gained [totaldrain] energy from the APC." - if(!A.emagged) - flick("apc-spark", src) - A.emagged = 1 - A.locked = 0 - A.update_icon() - else - U << "\red This APC has run dry of power. You must find another source." - - if("SMES") - var/obj/machinery/power/smes/A = target - if(A.charge) - var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() - spark_system.set_up(5, 0, A.loc) - while(G.candrain&&A.charge>0&&!maxcapacity) - drain = rand(G.mindrain,G.maxdrain) - if(A.chargeS.cell.maxcharge) - drain = S.cell.maxcharge-S.cell.charge - maxcapacity = 1 - if (do_after(U,10)) - spark_system.start() - playsound(A.loc, "sparks", 50, 1) - A.charge-=drain - S.cell.charge+=drain - totaldrain+=drain - else break - U << "\blue Gained [totaldrain] energy from the SMES cell." - else - U << "\red This SMES cell has run dry of power. You must find another source." - - if("CELL") - var/obj/item/weapon/cell/A = target - if(A.charge) - if (G.candrain&&do_after(U,30)) - U << "\blue Gained [A.charge] energy from the cell." - if(S.cell.charge+A.charge>S.cell.maxcharge) - S.cell.charge=S.cell.maxcharge - else - S.cell.charge+=A.charge - A.charge = 0 - G.draining = 0 - A.corrupt() - A.updateicon() - else - U << "\red Procedure interrupted. Protocol terminated." - else - U << "\red This cell is empty and of no use." - - if("MACHINERY")//Can be applied to generically to all powered machinery. I'm leaving this alone for now. - var/obj/machinery/A = target - if(A.powered())//If powered. - - var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() - spark_system.set_up(5, 0, A.loc) - - var/obj/machinery/power/apc/B = A.loc.loc:get_apc()//Object.turf.area find APC - if(B)//If APC exists. Might not if the area is unpowered like Centcom. - var/datum/powernet/PN = B.terminal.powernet - while(G.candrain&&!maxcapacity&&!isnull(A))//And start a proc similar to drain from wire. - drain = rand(G.mindrain,G.maxdrain) - var/drained = 0 - if(PN&&do_after(U,10)) - drained = min(drain, PN.avail) - PN.newload += drained - if(drained < drain)//if no power on net, drain apcs - for(var/obj/machinery/power/terminal/T in PN.nodes) - if(istype(T.master, /obj/machinery/power/apc)) - var/obj/machinery/power/apc/AP = T.master - if(AP.operating && AP.cell && AP.cell.charge>0) - AP.cell.charge = max(0, AP.cell.charge - 5) - drained += 5 - else break - S.cell.charge += drained - if(S.cell.charge>S.cell.maxcharge) - totaldrain += (drained-(S.cell.charge-S.cell.maxcharge)) - S.cell.charge = S.cell.maxcharge - maxcapacity = 1 - else - totaldrain += drained - spark_system.start() - if(drained==0) break - U << "\blue Gained [totaldrain] energy from the power network." - else - U << "\red Power network could not be found. Aborting." - else - U << "\red This recharger is not providing energy. You must find another source." - - if("RESEARCH") - var/obj/machinery/A = target - U << "\blue Hacking \the [A]..." - spawn(0) - var/turf/location = get_turf(U) - for(var/mob/living/silicon/ai/AI in player_list) - AI << "\red Network Alert: Hacking attempt detected[location?" in [location]":". Unable to pinpoint location"]." - if(A:files&&A:files.known_tech.len) - for(var/datum/tech/current_data in S.stored_research) - U << "\blue Checking \the [current_data.name] database." - if(do_after(U, S.s_delay)&&G.candrain&&!isnull(A)) - for(var/datum/tech/analyzing_data in A:files.known_tech) - if(current_data.id==analyzing_data.id) - if(analyzing_data.level>current_data.level) - U << "\blue Database: \black UPDATED." - current_data.level = analyzing_data.level - break//Move on to next. - else break//Otherwise, quit processing. - U << "\blue Data analyzed. Process finished." - - if("WIRE") - var/obj/structure/cable/A = target - var/datum/powernet/PN = A.get_powernet() - while(G.candrain&&!maxcapacity&&!isnull(A)) - drain = (round((rand(G.mindrain,G.maxdrain))/2)) - var/drained = 0 - if(PN&&do_after(U,10)) - drained = min(drain, PN.avail) - PN.newload += drained - if(drained < drain)//if no power on net, drain apcs - for(var/obj/machinery/power/terminal/T in PN.nodes) - if(istype(T.master, /obj/machinery/power/apc)) - var/obj/machinery/power/apc/AP = T.master - if(AP.operating && AP.cell && AP.cell.charge>0) - AP.cell.charge = max(0, AP.cell.charge - 5) - drained += 5 - else break - S.cell.charge += drained - if(S.cell.charge>S.cell.maxcharge) - totaldrain += (drained-(S.cell.charge-S.cell.maxcharge)) - S.cell.charge = S.cell.maxcharge - maxcapacity = 1 - else - totaldrain += drained - S.spark_system.start() - if(drained==0) break - U << "\blue Gained [totaldrain] energy from the power network." - - if("MECHA") - var/obj/mecha/A = target - A.occupant_message("\red Warning: Unauthorized access through sub-route 4, block H, detected.") - if(A.get_charge()) - while(G.candrain&&A.cell.charge>0&&!maxcapacity) - drain = rand(G.mindrain,G.maxdrain) - if(A.cell.chargeS.cell.maxcharge) - drain = S.cell.maxcharge-S.cell.charge - maxcapacity = 1 - if (do_after(U,10)) - A.spark_system.start() - playsound(A.loc, "sparks", 50, 1) - A.cell.use(drain) - S.cell.charge+=drain - totaldrain+=drain - else break - U << "\blue Gained [totaldrain] energy from [src]." - else - U << "\red The exosuit's battery has run dry. You must find another source of power." - - if("CYBORG") - var/mob/living/silicon/robot/A = target - A << "\red Warning: Unauthorized access through sub-route 12, block C, detected." - G.draining = 1 - if(A.cell&&A.cell.charge) - while(G.candrain&&A.cell.charge>0&&!maxcapacity) - drain = rand(G.mindrain,G.maxdrain) - if(A.cell.chargeS.cell.maxcharge) - drain = S.cell.maxcharge-S.cell.charge - maxcapacity = 1 - if (do_after(U,10)) - A.spark_system.start() - playsound(A.loc, "sparks", 50, 1) - A.cell.charge-=drain - S.cell.charge+=drain - totaldrain+=drain - else break - U << "\blue Gained [totaldrain] energy from [A]." - else - U << "\red Their battery has run dry of power. You must find another source." - - else//Else nothing :< - - G.draining = 0 - - return - -//=======//GENERAL PROCS//=======// - -/obj/item/clothing/gloves/space_ninja/proc/toggled() - set name = "Toggle Interaction" - set desc = "Toggles special interaction on or off." - set category = "Ninja Equip" - - var/mob/living/carbon/human/U = loc - U << "You [candrain?"disable":"enable"] special interaction." - candrain=!candrain - -/obj/item/clothing/gloves/space_ninja/examine() - set src in view() - ..() - if(!canremove) - var/mob/living/carbon/human/U = loc - U << "The energy drain mechanism is: [candrain?"active":"inactive"]." - -/* -=================================================================================== -<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -=================================================================================== -*/ - -/obj/item/clothing/mask/gas/voice/space_ninja/New() - verbs += /obj/item/clothing/mask/gas/voice/space_ninja/proc/togglev - verbs += /obj/item/clothing/mask/gas/voice/space_ninja/proc/switchm - -//This proc is linked to human life.dm. It determines what hud icons to display based on mind special role for most mobs. -/obj/item/clothing/mask/gas/voice/space_ninja/proc/assess_targets(list/target_list, mob/living/carbon/U) - var/icon/tempHud = 'icons/mob/hud.dmi' - for(var/mob/living/target in target_list) - if(iscarbon(target)) - switch(target.mind.special_role) - if("traitor") - U.client.images += image(tempHud,target,"hudtraitor") - if("Revolutionary","Head Revolutionary") - U.client.images += image(tempHud,target,"hudrevolutionary") - if("Cultist") - U.client.images += image(tempHud,target,"hudcultist") - if("Changeling") - U.client.images += image(tempHud,target,"hudchangeling") - if("Wizard","Fake Wizard") - U.client.images += image(tempHud,target,"hudwizard") - if("Hunter","Sentinel","Drone","Queen") - U.client.images += image(tempHud,target,"hudalien") - if("Syndicate") - U.client.images += image(tempHud,target,"hudoperative") - if("Death Commando") - U.client.images += image(tempHud,target,"huddeathsquad") - if("Space Ninja") - U.client.images += image(tempHud,target,"hudninja") - else//If we don't know what role they have but they have one. - U.client.images += image(tempHud,target,"hudunknown1") - else if(issilicon(target))//If the silicon mob has no law datum, no inherent laws, or a law zero, add them to the hud. - var/mob/living/silicon/silicon_target = target - if(!silicon_target.laws||(silicon_target.laws&&(silicon_target.laws.zeroth||!silicon_target.laws.inherent.len))) - if(isrobot(silicon_target))//Different icons for robutts and AI. - U.client.images += image(tempHud,silicon_target,"hudmalborg") - else - U.client.images += image(tempHud,silicon_target,"hudmalai") - return 1 - -/obj/item/clothing/mask/gas/voice/space_ninja/proc/togglev() - set name = "Toggle Voice" - set desc = "Toggles the voice synthesizer on or off." - set category = "Ninja Equip" - - var/mob/U = loc//Can't toggle voice when you're not wearing the mask. - var/vchange = (alert("Would you like to synthesize a new name or turn off the voice synthesizer?",,"New Name","Turn Off")) - if(vchange=="New Name") - var/chance = rand(1,100) - switch(chance) - if(1 to 50)//High chance of a regular name. - voice = "[rand(0,1)==1?pick(first_names_female):pick(first_names_male)] [pick(last_names)]" - if(51 to 80)//Smaller chance of a clown name. - voice = "[pick(clown_names)]" - if(81 to 90)//Small chance of a wizard name. - voice = "[pick(wizard_first)] [pick(wizard_second)]" - if(91 to 100)//Small chance of an existing crew name. - var/names[] = new() - for(var/mob/living/carbon/human/M in player_list) - if(M==U||!M.client||!M.real_name) continue - names.Add(M.real_name) - voice = !names.len ? "Cuban Pete" : pick(names) - U << "You are now mimicking [voice]." - else - U << "The voice synthesizer is [voice!="Unknown"?"now":"already"] deactivated." - voice = "Unknown" - return - -/obj/item/clothing/mask/gas/voice/space_ninja/proc/switchm() - set name = "Switch Mode" - set desc = "Switches between Night Vision, Meson, or Thermal vision modes." - set category = "Ninja Equip" - //Have to reset these manually since life.dm is retarded like that. Go figure. - //This will only work for humans because only they have the appropriate code for the mask. - var/mob/U = loc - switch(mode) - if(0) - mode=1 - U << "Switching mode to Night Vision." - if(1) - mode=2 - U.see_in_dark = 2 - U << "Switching mode to Thermal Scanner." - if(2) - mode=3 - U.see_invisible = SEE_INVISIBLE_LIVING - U.sight &= ~SEE_MOBS - U << "Switching mode to Meson Scanner." - if(3) - mode=0 - U.sight &= ~SEE_TURFS - U << "Switching mode to Scouter." - -/obj/item/clothing/mask/gas/voice/space_ninja/examine() - set src in view() - ..() - - var/mode - switch(mode) - if(0) - mode = "Scouter" - if(1) - mode = "Night Vision" - if(2) - mode = "Thermal Scanner" - if(3) - mode = "Meson Scanner" - usr << "[mode] is active."//Leaving usr here since it may be on the floor or on a person. - usr << "Voice mimicking algorithm is set [!vchange?"inactive":"active"]." - -/* -=================================================================================== -<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -=================================================================================== -*/ - -/* -It will teleport people to a holding facility after 30 seconds. (Check the process() proc to change where teleport goes) -It is possible to destroy the net by the occupant or someone else. -*/ - -/obj/effect/energy_net - name = "energy net" - desc = "It's a net made of green energy." - icon = 'icons/effects/effects.dmi' - icon_state = "energynet" - - density = 1//Can't pass through. - opacity = 0//Can see through. - mouse_opacity = 1//So you can hit it with stuff. - anchored = 1//Can't drag/grab the trapped mob. - - var/health = 25//How much health it has. - var/mob/living/affecting = null//Who it is currently affecting, if anyone. - var/mob/living/master = null//Who shot web. Will let this person know if the net was successful or failed. - - proc - healthcheck() - if(health <=0) - density = 0 - if(affecting) - var/mob/living/carbon/M = affecting - M.anchored = 0 - for(var/mob/O in viewers(src, 3)) - O.show_message(text("[] was recovered from the energy net!", M.name), 1, text("You hear a grunt."), 2) - if(!isnull(master))//As long as they still exist. - master << "\red ERROR: \black unable to initiate transport protocol. Procedure terminated." - del(src) - return - - process(var/mob/living/carbon/M as mob) - var/check = 30//30 seconds before teleportation. Could be extended I guess. - var/mob_name = affecting.name//Since they will report as null if terminated before teleport. - //The person can still try and attack the net when inside. - while(!isnull(M)&&!isnull(src)&&check>0)//While M and net exist, and 30 seconds have not passed. - check-- - sleep(10) - - if(isnull(M)||M.loc!=loc)//If mob is gone or not at the location. - if(!isnull(master))//As long as they still exist. - master << "\red ERROR: \black unable to locate \the [mob_name]. Procedure terminated." - del(src)//Get rid of the net. - return - - if(!isnull(src))//As long as both net and person exist. - //No need to check for countdown here since while() broke, it's implicit that it finished. - - density = 0//Make the net pass-through. - invisibility = 101//Make the net invisible so all the animations can play out. - health = INFINITY//Make the net invincible so that an explosion/something else won't kill it while, spawn() is running. - for(var/obj/item/W in M) - if(istype(M,/mob/living/carbon/human)) - if(W==M:w_uniform) continue//So all they're left with are shoes and uniform. - if(W==M:shoes) continue - M.drop_from_inventory(W) - - spawn(0) - playsound(M.loc, 'sound/effects/sparks4.ogg', 50, 1) - anim(M.loc,M,'icons/mob/mob.dmi',,"phaseout",,M.dir) - - M.loc = pick(holdingfacility)//Throw mob in to the holding facility. - M << "\red You appear in a strange place!" - - spawn(0) - var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() - spark_system.set_up(5, 0, M.loc) - spark_system.start() - playsound(M.loc, 'sound/effects/phasein.ogg', 25, 1) - playsound(M.loc, 'sound/effects/sparks2.ogg', 50, 1) - anim(M.loc,M,'icons/mob/mob.dmi',,"phasein",,M.dir) - del(src)//Wait for everything to finish, delete the net. Else it will stop everything once net is deleted, including the spawn(0). - - for(var/mob/O in viewers(src, 3)) - O.show_message(text("[] vanished!", M), 1, text("You hear sparks flying!"), 2) - - if(!isnull(master))//As long as they still exist. - master << "\blue SUCCESS: \black transport procedure of \the [affecting] complete." - - M.anchored = 0//Important. - - else//And they are free. - M << "\blue You are free of the net!" - return - - bullet_act(var/obj/item/projectile/Proj) - health -= Proj.damage - healthcheck() - ..() - - ex_act(severity) - switch(severity) - if(1.0) - health-=50 - if(2.0) - health-=50 - if(3.0) - health-=prob(50)?50:25 - healthcheck() - return - - blob_act() - health-=50 - healthcheck() - return - - meteorhit() - health-=50 - healthcheck() - return - - hitby(AM as mob|obj) - ..() - for(var/mob/O in viewers(src, null)) - O.show_message(text("\red [src] was hit by [AM]."), 1) - var/tforce = 0 - if(ismob(AM)) - tforce = 10 - else - tforce = AM:throwforce - playsound(src.loc, 'sound/weapons/slash.ogg', 80, 1) - health = max(0, health - tforce) - healthcheck() - ..() - return - - attack_hand() - if (HULK in usr.mutations) - usr << text("\blue You easily destroy the energy net.") - for(var/mob/O in oviewers(src)) - O.show_message(text("\red [] rips the energy net apart!", usr), 1) - health-=50 - healthcheck() - return - - attack_paw() - return attack_hand() - - attack_alien() - if (islarva(usr)) - return - usr << text("\green You claw at the net.") - for(var/mob/O in oviewers(src)) - O.show_message(text("\red [] claws at the energy net!", usr), 1) - playsound(src.loc, 'sound/weapons/slash.ogg', 80, 1) - health -= rand(10, 20) - if(health <= 0) - usr << text("\green You slice the energy net to pieces.") - for(var/mob/O in oviewers(src)) - O.show_message(text("\red [] slices the energy net apart!", usr), 1) - healthcheck() - return - - attackby(obj/item/weapon/W as obj, mob/user as mob) - var/aforce = W.force - health = max(0, health - aforce) - healthcheck() - ..() - return - -proc/create_ninja_mind(key) - var/datum/mind/Mind = new /datum/mind(key) - Mind.assigned_role = "MODE" - Mind.special_role = "Space Ninja" - ticker.mode.traitors |= Mind //Adds them to current traitor list. Which is really the extra antagonist list. -======= -//Note to future generations: I didn't write this god-awful code I just ported it to the event system and tried to make it less moon-speaky. -//Don't judge me D; ~Carn - -/datum/round_event_control/ninja - name = "Space Ninja" - typepath = /datum/round_event/ninja - max_occurrences = 1 - -/datum/round_event/ninja - var/success_spawn = 0 - - var/helping_station - var/key - var/spawn_loc - var/mission - - var/mob/living/carbon/human/Ninja - -/datum/round_event/ninja/setup() - helping_station = rand(0,1) - -/datum/round_event/ninja/kill() - if(!success_spawn && control) - control.occurrences-- - return ..() - -/datum/round_event/ninja/start() - //selecting a spawn_loc - if(!spawn_loc) - var/list/spawn_locs = list() - for(var/obj/effect/landmark/L in landmarks_list) - if(isturf(L.loc)) - switch(L.name) - if("ninjaspawn","carpspawn") - spawn_locs += L.loc - if(!spawn_locs.len) - return kill() - spawn_loc = pick(spawn_locs) - if(!spawn_loc) - return kill() - - //selecting a candidate player - if(!key) - var/list/candidates = get_candidates(BE_NINJA) - if(!candidates.len) - return kill() - var/client/C = pick(candidates) - key = C.key - if(!key) - return kill() - - //We prepare the mind before we spawn the ninja mob, so we cannot simply do mob.key = key then modify the mind. - //instead we make the mind and modify it, then make sure it is active and mind.transfer_to(mob) - //alternatively we could do mob.mind = mind;mob.key=key - var/datum/mind/Mind = create_ninja_mind(key) - Mind.active = 1 - - //generate objectives - You'll generally get 6 objectives (Ninja is meant to be hardmode!) - if(mission) - var/datum/objective/O = new /datum/objective(mission) - O.owner = Mind - Mind.objectives += O - else - if(helping_station) //DS are the highest priority (if we're a helpful ninja) - for(var/datum/mind/M in ticker.minds) - if(M.current && M.current.stat != DEAD) - if(M.special_role == "Death Commando") - var/datum/objective/assassinate/O = new /datum/objective/assassinate() - O.owner = Mind - O.target = M - O.explanation_text = "Slay \the [M.current.real_name], the Death Commando." - Mind.objectives += O - - else //Xenos are the highest priority (if we're not so helpful) Although this makes zero sense at all... - for(var/mob/living/carbon/alien/humanoid/queen/Q in player_list) - if(Q.mind && Q.stat != DEAD) - var/datum/objective/assassinate/O = new /datum/objective/assassinate() - O.owner = Mind - O.target = Q.mind - O.explanation_text = "Slay \the [Q.real_name]." - Mind.objectives += O - - if(Mind.objectives.len < 4) //not enough objectives still! - var/list/possible_targets = list() - for(var/datum/mind/M in ticker.minds) - if(M.current && M.current.stat != DEAD) - if(istype(M.current,/mob/living/carbon/human)) - if(M.special_role) - possible_targets[M] = 0 //bad-guy - else if(M.assigned_role in command_positions) - possible_targets[M] = 1 //good-guy - - var/list/objectives = list(1,2,3,4) - while(Mind.objectives.len < 4) //still not enough objectives! - switch(pick_n_take(objectives)) - if(1) //research - var/datum/objective/download/O = new /datum/objective/download() - O.owner = Mind - O.gen_amount_goal() - Mind.objectives += O - - if(2) //steal - var/datum/objective/steal/O = new /datum/objective/steal() - O.set_target(pick(O.possible_items_special)) - O.owner = Mind - Mind.objectives += O - - if(3) //protect/kill - if(!possible_targets.len) continue - var/selected = rand(1,possible_targets.len) - var/datum/mind/M = possible_targets[selected] - var/is_bad_guy = possible_targets[M] - possible_targets.Cut(selected,selected+1) - - if(is_bad_guy ^ helping_station) //kill (good-ninja + bad-guy or bad-ninja + good-guy) - var/datum/objective/assassinate/O = new /datum/objective/assassinate() - O.owner = Mind - O.target = M - O.explanation_text = "Slay \the [M.current.real_name], the [M.assigned_role]." - Mind.objectives += O - else //protect - var/datum/objective/protect/O = new /datum/objective/protect() - O.owner = Mind - O.target = M - O.explanation_text = "Protect \the [M.current.real_name], the [M.assigned_role], from harm." - Mind.objectives += O - if(4) //debrain/capture - if(!possible_targets.len) continue - var/selected = rand(1,possible_targets.len) - var/datum/mind/M = possible_targets[selected] - var/is_bad_guy = possible_targets[M] - possible_targets.Cut(selected,selected+1) - - if(is_bad_guy ^ helping_station) //debrain (good-ninja + bad-guy or bad-ninja + good-guy) - var/datum/objective/debrain/O = new /datum/objective/debrain() - O.owner = Mind - O.target = M - O.explanation_text = "Steal the brain of [M.current.real_name]." - Mind.objectives += O - else //capture - var/datum/objective/capture/O = new /datum/objective/capture() - O.owner = Mind - O.gen_amount_goal() - Mind.objectives += O - else - break - - //Add a survival objective since it's usually broad enough for any round type. - var/datum/objective/O = new /datum/objective/survive() - O.owner = Mind - Mind.objectives += O - - //Finally, add their RP-directive - var/directive = generate_ninja_directive() - O = new /datum/objective(directive) //making it an objective so admins can reward the for completion - O.owner = Mind - Mind.objectives += O - - //add some RP-fluff - Mind.store_memory("I am an elite mercenary assassin of the mighty Spider Clan. A SPACE NINJA!") - Mind.store_memory("Suprise is my weapon. Shadows are my armor. Without them, I am nothing. (//initialize your suit by right clicking on it, to use abilities like stealth)!") - Mind.store_memory("Officially, [helping_station?"Nanotrasen":"The Syndicate"] are my employer.") - - //spawn the ninja and assign the candidate - Ninja = create_space_ninja(spawn_loc) - Mind.transfer_to(Ninja) - - //initialise equipment - Ninja.wear_suit:randomize_param() - Ninja.internal = Ninja.s_store - if(Ninja.internals) - Ninja.internals.icon_state = "internal1" - - if(Ninja.mind != Mind) //something has gone wrong! - error("The ninja wasn't assigned the right mind. ;(") - - success_spawn = 1 - -/* -This proc will give the ninja a directive to follow. They are not obligated to do so but it's a fun roleplay reminder. -Making this random or semi-random will probably not work without it also being incredibly silly. -As such, it's hard-coded for now. No reason for it not to be, really. -*/ -/datum/round_event/ninja/proc/generate_ninja_directive() - switch(rand(1,13)) - if(1) return "The Spider Clan must not be linked to this operation. Remain as hidden and covert as possible." - if(2) return "[station_name] is financed by an enemy of the Spider Clan. Cause as much structural damage as possible." - if(3) return "A wealthy animal rights activist has made a request we cannot refuse. Prioritize saving animal lives whenever possible." - if(4) return "The Spider Clan absolutely cannot be linked to this operation. Eliminate all witnesses using most extreme prejudice." - if(5) return "We are currently negotiating with Nanotrasen command. Prioritize saving human lives over ending them." - if(6) return "We are engaged in a legal dispute over [station_name]. If a laywer is present on board, force their cooperation in the matter." - if(7) return "A financial backer has made an offer we cannot refuse. Implicate Syndicate involvement in the operation." - if(8) return "Let no one question the mercy of the Spider Clan. Ensure the safety of all non-essential personnel you encounter." - if(9) return "A free agent has proposed a lucrative business deal. Implicate Nanotrasen involvement in the operation." - if(10) return "Our reputation is on the line. Harm as few civilians or innocents as possible." - if(11) return "Our honor is on the line. Utilize only honorable tactics when dealing with opponents." - if(12) return "We are currently negotiating with a Syndicate leader. Disguise assassinations as suicide or another natural cause." - else return "There are no special supplemental instructions at this time." - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+++++++++++++++++++++++++++++++++++++// //++++++++++++++++++++++++++++++++++ -======================================SPACE NINJA SETUP==================================== -___________________________________________________________________________________________ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -/* - README: - - Data: - - >> space_ninja.dm << is this file. It contains a variety of procs related to either spawning space ninjas, - modifying their verbs, various help procs, testing debug-related content, or storing unused procs for later. - Similar functions should go into this file, along with anything else that may not have an explicit category. - IMPORTANT: actual ninja suit, gloves, etc, are stored under the appropriate clothing files. If you need to change - variables or look them up, look there. Easiest way is through the map file browser. - - >> ninja_abilities.dm << contains all the ninja-related powers. Spawning energy swords, teleporting, and the like. - If more powers are added, or perhaps something related to powers, it should go there. Make sure to describe - what an ability/power does so it's easier to reference later without looking at the code. - IMPORTANT: verbs are still somewhat funky to work with. If an argument is specified but is not referenced in a way - BYOND likes, in the code content, the verb will fail to trigger. Nothing will happen, literally, when clicked. - This can be bypassed by either referencing the argument properly, or linking to another proc with the argument - attached. The latter is what I like to do for certain cases--sometimes it's necessary to do that regardless. - - >> ninja_equipment.dm << deals with all the equipment-related procs for a ninja. Primarily it has the suit, gloves, - and mask. The suit is by far the largest section of code out of the three and includes a lot of code that ties in - to other functions. This file has gotten kind of large so breaking it up may be in order. I use section hearders. - IMPORTANT: not much to say here. Follow along with the comments and adding new functions should be a breeze. Also - know that certain equipment pieces are linked in other files. The energy blade, for example, has special - functions defined in the appropriate files (airlock, securestorage, etc). - - General Notes: - - I created space ninjas with the expressed purpose of spicing up boring rounds. That is, ninjas are to xenos as marauders are to - death squads. Ninjas are stealthy, tech-savvy, and powerful. Not to say marauders are all of those things, but a clever ninja - should have little problem murderampaging their way through just about anything. Short of admin wizards maybe. - HOWEVER! - Ninjas also have a fairly great weakness as they require energy to use abilities. If, theoretically, there is a game - mode based around space ninjas, make sure to account for their energy needs. - - Admin Notes: - - Ninjas are not admin PCs--please do not use them for that purpose. They are another way to participate in the game post-death, - like pais, xenos, death squads, and cyborgs. - I'm currently looking for feedback from regular players since beta testing is largely done. I would appreciate if - you spawned regular players as ninjas when rounds are boring. Or exciting, it's all good as long as there is feedback. - You can also spawn ninja gear manually if you want to. - - How to do that: - Make sure your character has a mind. - Change their assigned_role to "MODE", no quotes. Otherwise, the suit won't initialize. - Change their special_role to "Space Ninja", no quotes. Otherwise, the character will be gibbed. - Spawn ninja gear, put it on, hit initialize. Let the suit do the rest. You are now a space ninja. - I don't recommend messing with suit variables unless you really know what you're doing. - - Miscellaneous Notes: - - Potential Upgrade Tree: - Energy Shield: - Extra Ability - Syndicate Shield device? - Works like the force wall spell, except can be kept indefinitely as long as energy remains. Toggled on or off. - Would block bullets and the like. - Phase Shift - Extra Ability - Advanced Sensors? - Instead of being unlocked at the start, Phase Shieft would become available once requirements are met. - Uranium-based Recharger: - Suit Upgrade - Unsure - Instead of losing energy each second, the suit would regain the same amount of energy. - This would not count in activating stealth and similar. - Extended Battery Life: - Suit Upgrade - Battery of higher capacity - Already implemented. Replace current battery with one of higher capacity. - Advanced Cloak-Tech device. - Suit Upgrade - Syndicate Cloaking Device? - Remove cloak failure rate. -*/ - - -//=======//CURRENT PLAYER VERB//=======// - -/client/proc/cmd_admin_ninjafy(var/mob/living/carbon/human/H in player_list) - set category = null - set name = "Make Space Ninja" - - if(!ticker) - alert("Wait until the game starts") - return - - if(!istype(H)) - return - - if(alert(src, "You sure?", "Confirm", "Yes", "No") != "Yes") - return - - log_admin("[key_name(src)] turned [H.key] into a Space Ninja.") - H.mind = create_ninja_mind(H.key) - H.mind_initialize() - H.equip_space_ninja(1) - if(istype(H.wear_suit, /obj/item/clothing/suit/space/space_ninja)) - H.wear_suit:randomize_param() - spawn(0) - H.wear_suit:ninitialize(10,H) - -//=======//CURRENT GHOST VERB//=======// - -/client/proc/send_space_ninja() - set category = "Fun" - set name = "Spawn Space Ninja" - set desc = "Spawns a space ninja for when you need a teenager with attitude." - set popup_menu = 0 - - if(!holder) - src << "Only administrators may use this command." - return - if(!ticker.mode) - alert("The game hasn't started yet!") - return - if(alert("Are you sure you want to send in a space ninja?",,"Yes","No")=="No") - return - - var/mission = copytext(sanitize(input(src, "Please specify which mission the space ninja shall undertake.", "Specify Mission", null) as text|null),1,MAX_MESSAGE_LEN) - - var/client/C = input("Pick character to spawn as the Space Ninja", "Key", "") as null|anything in clients - if(!C) - return - - var/datum/round_event/ninja/E = new /datum/round_event/ninja() - E.key=C.key - E.mission=mission - - message_admins("\blue [key_name_admin(key)] has spawned [key_name_admin(C.key)] as a Space Ninja.") - log_admin("[key] used Spawn Space Ninja.") - - return - -//=======//NINJA CREATION PROCS//=======// - -/proc/create_space_ninja(spawn_loc) - var/mob/living/carbon/human/new_ninja = new(spawn_loc) - if(prob(50)) new_ninja.gender = "female" - var/datum/preferences/A = new()//Randomize appearance for the ninja. - A.real_name = "[pick(ninja_titles)] [pick(ninja_names)]" - A.copy_to(new_ninja) - ready_dna(new_ninja) - new_ninja.equip_space_ninja() - return new_ninja - -/mob/living/carbon/human/proc/equip_space_ninja(safety=0)//Safety in case you need to unequip stuff for existing characters. - if(safety) - del(w_uniform) - del(wear_suit) - del(wear_mask) - del(head) - del(shoes) - del(gloves) - - var/obj/item/device/radio/R = new /obj/item/device/radio/headset(src) - equip_to_slot_or_del(R, slot_ears) - if(gender==FEMALE) - equip_to_slot_or_del(new /obj/item/clothing/under/color/blackf(src), slot_w_uniform) - else - equip_to_slot_or_del(new /obj/item/clothing/under/color/black(src), slot_w_uniform) - equip_to_slot_or_del(new /obj/item/clothing/shoes/space_ninja(src), slot_shoes) - equip_to_slot_or_del(new /obj/item/clothing/suit/space/space_ninja(src), slot_wear_suit) - equip_to_slot_or_del(new /obj/item/clothing/gloves/space_ninja(src), slot_gloves) - equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/space_ninja(src), slot_head) - equip_to_slot_or_del(new /obj/item/clothing/mask/gas/voice/space_ninja(src), slot_wear_mask) - equip_to_slot_or_del(new /obj/item/device/flashlight(src), slot_belt) - equip_to_slot_or_del(new /obj/item/weapon/plastique(src), slot_r_store) - equip_to_slot_or_del(new /obj/item/weapon/plastique(src), slot_l_store) - equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen(src), slot_s_store) - equip_to_slot_or_del(new /obj/item/weapon/tank/jetpack/carbondioxide(src), slot_back) - - var/obj/item/weapon/implant/explosive/E = new/obj/item/weapon/implant/explosive(src) - E.imp_in = src - E.implanted = 1 - return 1 - -//=======//HELPER PROCS//=======// - -//Randomizes suit parameters. -/obj/item/clothing/suit/space/space_ninja/proc/randomize_param() - s_cost = rand(1,20) - s_acost = rand(20,100) - k_cost = rand(100,500) - k_damage = rand(1,20) - s_delay = rand(10,100) - s_bombs = rand(5,20) - a_boost = rand(1,7) - -//This proc prevents the suit from being taken off. -/obj/item/clothing/suit/space/space_ninja/proc/lock_suit(mob/living/carbon/U, X = 0) - if(X)//If you want to check for icons. - icon_state = U.gender==FEMALE ? "s-ninjanf" : "s-ninjan" - U:gloves.icon_state = "s-ninjan" - U:gloves.item_state = "s-ninjan" - else - if(U.mind.special_role!="Space Ninja") - U << "\red fÄTaL ÈÈRRoR: 382200-*#00CÖDE RED\nUNAU†HORIZED USÈ DETÈC†††eD\nCoMMÈNCING SUB-R0U†IN3 13...\nTÈRMInATING U-U-USÈR..." - U.gib() - return 0 - if(!istype(U:head, /obj/item/clothing/head/helmet/space/space_ninja)) - U << "\red ERROR: 100113 \black UNABLE TO LOCATE HEAD GEAR\nABORTING..." - return 0 - if(!istype(U:shoes, /obj/item/clothing/shoes/space_ninja)) - U << "\red ERROR: 122011 \black UNABLE TO LOCATE FOOT GEAR\nABORTING..." - return 0 - if(!istype(U:gloves, /obj/item/clothing/gloves/space_ninja)) - U << "\red ERROR: 110223 \black UNABLE TO LOCATE HAND GEAR\nABORTING..." - return 0 - - affecting = U - canremove = 0 - slowdown = 0 - n_hood = U:head - n_hood.canremove=0 - n_shoes = U:shoes - n_shoes.canremove=0 - n_shoes.slowdown-- - n_gloves = U:gloves - n_gloves.canremove=0 - - return 1 - -//This proc allows the suit to be taken off. -/obj/item/clothing/suit/space/space_ninja/proc/unlock_suit() - affecting = null - canremove = 1 - slowdown = 1 - icon_state = "s-ninja" - if(n_hood)//Should be attached, might not be attached. - n_hood.canremove=1 - if(n_shoes) - n_shoes.canremove=1 - n_shoes.slowdown++ - if(n_gloves) - n_gloves.icon_state = "s-ninja" - n_gloves.item_state = "s-ninja" - n_gloves.canremove=1 - n_gloves.candrain=0 - n_gloves.draining=0 - -//Allows the mob to grab a stealth icon. -/mob/proc/NinjaStealthActive(atom/A)//A is the atom which we are using as the overlay. - invisibility = INVISIBILITY_LEVEL_TWO//Set ninja invis to 2. - var/icon/opacity_icon = new(A.icon, A.icon_state) - var/icon/alpha_mask = getIconMask(src) - var/icon/alpha_mask_2 = new('icons/effects/effects.dmi', "at_shield1") - alpha_mask.AddAlphaMask(alpha_mask_2) - opacity_icon.AddAlphaMask(alpha_mask) - for(var/i=0,i<5,i++)//And now we add it as overlays. It's faster than creating an icon and then merging it. - var/image/I = image("icon" = opacity_icon, "icon_state" = A.icon_state, "layer" = layer+0.8)//So it's above other stuff but below weapons and the like. - switch(i)//Now to determine offset so the result is somewhat blurred. - if(1) - I.pixel_x -= 1 - if(2) - I.pixel_x += 1 - if(3) - I.pixel_y -= 1 - if(4) - I.pixel_y += 1 - - overlays += I//And finally add the overlay. - overlays += image("icon"='icons/effects/effects.dmi',"icon_state" ="electricity","layer" = layer+0.9) - -//When ninja steal malfunctions. -/mob/proc/NinjaStealthMalf() - invisibility = 0//Set ninja invis to 0. - overlays += image("icon"='icons/effects/effects.dmi',"icon_state" ="electricity","layer" = layer+0.9) - playsound(loc, 'sound/effects/stealthoff.ogg', 75, 1) - -//=======//GENERIC VERB MODIFIERS//=======// - -/obj/item/clothing/suit/space/space_ninja/proc/grant_equip_verbs() - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/init - verbs += /obj/item/clothing/suit/space/space_ninja/proc/deinit - verbs += /obj/item/clothing/suit/space/space_ninja/proc/spideros - verbs += /obj/item/clothing/suit/space/space_ninja/proc/stealth - n_gloves.verbs += /obj/item/clothing/gloves/space_ninja/proc/toggled - - s_initialized = 1 - -/obj/item/clothing/suit/space/space_ninja/proc/remove_equip_verbs() - verbs += /obj/item/clothing/suit/space/space_ninja/proc/init - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/deinit - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/spideros - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/stealth - if(n_gloves) - n_gloves.verbs -= /obj/item/clothing/gloves/space_ninja/proc/toggled - - s_initialized = 0 - -/obj/item/clothing/suit/space/space_ninja/proc/grant_ninja_verbs() - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjashift - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjasmoke - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjaboost - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjablade - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjastar - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjanet - - s_initialized=1 - slowdown=0 - -/obj/item/clothing/suit/space/space_ninja/proc/remove_ninja_verbs() - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjashift - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjasmoke - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjaboost - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjablade - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjastar - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjanet - -//=======//KAMIKAZE VERBS//=======// - -/obj/item/clothing/suit/space/space_ninja/proc/grant_kamikaze(mob/living/carbon/U) - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjashift - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjastar - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjanet - - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjaslayer - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjawalk - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjamirage - - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/stealth - - kamikaze = 1 - - icon_state = U.gender==FEMALE ? "s-ninjakf" : "s-ninjak" - if(n_gloves) - n_gloves.icon_state = "s-ninjak" - n_gloves.item_state = "s-ninjak" - n_gloves.candrain = 0 - n_gloves.draining = 0 - n_gloves.verbs -= /obj/item/clothing/gloves/space_ninja/proc/toggled - - cancel_stealth() - - U << browse(null, "window=spideros") - U << "\red Do or Die, LET'S ROCK!!" - -/obj/item/clothing/suit/space/space_ninja/proc/remove_kamikaze(mob/living/carbon/U) - if(kamikaze) - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjashift - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjastar - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjanet - - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjaslayer - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjawalk - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjamirage - - verbs += /obj/item/clothing/suit/space/space_ninja/proc/stealth - if(n_gloves) - n_gloves.verbs -= /obj/item/clothing/gloves/space_ninja/proc/toggled - - U.incorporeal_move = 0 - kamikaze = 0 - k_unlock = 0 - U << "\blue Disengaging mode...\n\blackCODE NAME: \red KAMIKAZE" - -//=======//AI VERBS//=======// - -/obj/item/clothing/suit/space/space_ninja/proc/grant_AI_verbs() - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ai_hack_ninja - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ai_return_control - - s_busy = 0 - s_control = 0 - -/obj/item/clothing/suit/space/space_ninja/proc/remove_AI_verbs() - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ai_hack_ninja - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ai_return_control - - s_control = 1 - -//=======//OLD & UNUSED//=======// - -/* - -Deprecated. get_dir() does the same thing. Still a nice proc. -Returns direction that the mob or whomever should be facing in relation to the target. -This proc does not grant absolute direction and is mostly useful for 8dir sprite positioning. -I personally used it with getline() to great effect. -/proc/get_dir_to(turf/start,turf/end)//N - var/xdiff = start.x - end.x//The sign is important. - var/ydiff = start.y - end.y - - var/direction_x = xdiff<1 ? 4:8//East - west - var/direction_y = ydiff<1 ? 1:2//North - south - var/direction_xy = xdiff==0 ? -4:0//If x is the same, subtract 4. - var/direction_yx = ydiff==0 ? -1:0//If y is the same, subtract 1. - var/direction_f = direction_x+direction_y+direction_xy+direction_yx//Finally direction tally. - direction_f = direction_f==0 ? 1:direction_f//If direction is 0(same spot), return north. Otherwise, direction. - - return direction_f - -Alternative and inferior method of calculating spideros. -var/temp = num2text(spideros) -var/return_to = copytext(temp, 1, (length(temp)))//length has to be to the length of the thing because by default it's length+1 -spideros = text2num(return_to)//Maximum length here is 6. Use (return_to, X) to specify larger strings if needed. - -//Old way of draining from wire. -/obj/item/clothing/gloves/space_ninja/proc/drain_wire() - set name = "Drain From Wire" - set desc = "Drain energy directly from an exposed wire." - set category = "Ninja Equip" - - var/obj/structure/cable/attached - var/mob/living/carbon/human/U = loc - if(candrain&&!draining) - var/turf/T = U.loc - if(isturf(T) && T.is_plating()) - attached = locate() in T - if(!attached) - U << "\red Warning: no exposed cable available." - else - U << "\blue Connecting to wire, stand still..." - if(do_after(U,50)&&!isnull(attached)) - drain("WIRE",attached,U:wear_suit,src) - else - U << "\red Procedure interrupted. Protocol terminated." - return - -I've tried a lot of stuff but adding verbs to the AI while inside an object, inside another object, did not want to work properly. -This was the best work-around I could come up with at the time. Uses objects to then display to panel, based on the object spell system. -Can be added on to pretty easily. - -BYOND fixed the verb bugs so this is no longer necessary. I prefer verb panels. - -/obj/item/clothing/suit/space/space_ninja/proc/grant_AI_verbs() - var/obj/effect/proc_holder/ai_return_control/A_C = new(AI) - var/obj/effect/proc_holder/ai_hack_ninja/B_C = new(AI) - var/obj/effect/proc_holder/ai_instruction/C_C = new(AI) - new/obj/effect/proc_holder/ai_holo_clear(AI) - AI.proc_holder_list += A_C - AI.proc_holder_list += B_C - AI.proc_holder_list += C_C - - s_control = 0 - -/obj/item/clothing/suit/space/space_ninja/proc/remove_AI_verbs() - var/obj/effect/proc_holder/ai_return_control/A_C = locate() in AI - var/obj/effect/proc_holder/ai_hack_ninja/B_C = locate() in AI - var/obj/effect/proc_holder/ai_instruction/C_C = locate() in AI - var/obj/effect/proc_holder/ai_holo_clear/D_C = locate() in AI - del(A_C) - del(B_C) - del(C_C) - del(D_C) - AI.proc_holder_list = list() - verbs += /obj/item/clothing/suit/space/space_ninja/proc/deinit - verbs += /obj/item/clothing/suit/space/space_ninja/proc/spideros - verbs += /obj/item/clothing/suit/space/space_ninja/proc/stealth - - s_control = 1 - -//Workaround -/obj/effect/proc_holder/ai_holo_clear - name = "Clear Hologram" - desc = "Stops projecting the current holographic image." - panel = "AI Ninja Equip" - density = 0 - opacity = 0 - - -/obj/effect/proc_holder/ai_holo_clear/Click() - var/obj/item/clothing/suit/space/space_ninja/S = loc.loc//This is so stupid but makes sure certain things work. AI.SUIT - del(S.hologram.i_attached) - del(S.hologram) - var/obj/effect/proc_holder/ai_holo_clear/D_C = locate() in S.AI - S.AI.proc_holder_list -= D_C - return - -/obj/effect/proc_holder/ai_instruction//Let's the AI know what they can do. - name = "Instructions" - desc = "Displays a list of helpful information." - panel = "AI Ninja Equip" - density = 0 - opacity = 0 - -/obj/effect/proc_holder/ai_instruction/Click() - loc << "The menu you are seeing will contain other commands if they become available.\nRight click a nearby turf to display an AI Hologram. It will only be visible to you and your host. You can move it freely using normal movement keys--it will disappear if placed too far away." - -/obj/effect/proc_holder/ai_hack_ninja//Generic proc holder to make sure the two verbs below work propely. - name = "Hack SpiderOS" - desc = "Hack directly into the Black Widow(tm) neuro-interface." - panel = "AI Ninja Equip" - density = 0 - opacity = 0 - -/obj/effect/proc_holder/ai_hack_ninja/Click()//When you click on it. - var/obj/item/clothing/suit/space/space_ninja/S = loc.loc - S.hack_spideros() - return - -/obj/effect/proc_holder/ai_return_control - name = "Relinquish Control" - desc = "Return control to the user." - panel = "AI Ninja Equip" - density = 0 - opacity = 0 - -/obj/effect/proc_holder/ai_return_control/Click() - var/mob/living/silicon/ai/A = loc - var/obj/item/clothing/suit/space/space_ninja/S = A.loc - A << browse(null, "window=hack spideros")//Close window - A << "You have seized your hacking attempt. [S.affecting] has regained control." - S.affecting << "UPDATE: [A.real_name] has ceased hacking attempt. All systems clear." - S.remove_AI_verbs() - return -*/ - -//=======//DEBUG//=======// -/* -/obj/item/clothing/suit/space/space_ninja/proc/display_verb_procs() -//DEBUG -//Does nothing at the moment. I am trying to see if it's possible to mess around with verbs as variables. - //for(var/P in verbs) -// if(P.set.name) -// usr << "[P.set.name], path: [P]" - return - - -Most of these are at various points of incomplete. - -/mob/verb/grant_object_panel() - set name = "Grant AI Ninja Verbs Debug" - set category = "Ninja Debug" - var/obj/effect/proc_holder/ai_return_control/A_C = new(src) - var/obj/effect/proc_holder/ai_hack_ninja/B_C = new(src) - usr:proc_holder_list += A_C - usr:proc_holder_list += B_C - -mob/verb/remove_object_panel() - set name = "Remove AI Ninja Verbs Debug" - set category = "Ninja Debug" - var/obj/effect/proc_holder/ai_return_control/A = locate() in src - var/obj/effect/proc_holder/ai_hack_ninja/B = locate() in src - usr:proc_holder_list -= A - usr:proc_holder_list -= B - del(A)//First. - del(B)//Second, to keep the proc going. - return - -/client/verb/grant_verb_ninja_debug1(var/mob/M in view()) - set name = "Grant AI Ninja Verbs Debug" - set category = "Ninja Debug" - - M.verbs += /mob/living/silicon/ai/verb/ninja_return_control - M.verbs += /mob/living/silicon/ai/verb/ninja_spideros - return - -/client/verb/grant_verb_ninja_debug2(var/mob/living/carbon/human/M in view()) - set name = "Grant Back Ninja Verbs" - set category = "Ninja Debug" - - M.wear_suit.verbs += /obj/item/clothing/suit/space/space_ninja/proc/deinit - M.wear_suit.verbs += /obj/item/clothing/suit/space/space_ninja/proc/spideros - return - -/obj/proc/grant_verb_ninja_debug3(var/mob/living/silicon/ai/A as mob) - set name = "Grant AI Ninja Verbs" - set category = "null" - set hidden = 1 - A.verbs -= /obj/item/clothing/suit/space/space_ninja/proc/deinit - A.verbs -= /obj/item/clothing/suit/space/space_ninja/proc/spideros - return - -/mob/verb/get_dir_to_target(var/mob/M in oview()) - set name = "Get Direction to Target" - set category = "Ninja Debug" - - world << "DIR: [get_dir_to(src.loc,M.loc)]" - return -// -/mob/verb/kill_self_debug() - set name = "DEBUG Kill Self" - set category = "Ninja Debug" - - src:death() - -/client/verb/switch_client_debug() - set name = "DEBUG Switch Client" - set category = "Ninja Debug" - - mob = mob:loc:loc - -/mob/verb/possess_mob(var/mob/M in oview()) - set name = "DEBUG Possess Mob" - set category = "Ninja Debug" - - client.mob = M - -/client/verb/switcharoo(var/mob/M in oview()) - set name = "DEBUG Switch to AI" - set category = "Ninja Debug" - - var/mob/last_mob = mob - mob = M - last_mob:wear_suit:AI:key = key -// -/client/verb/ninjaget(var/mob/M in oview()) - set name = "DEBUG Ninja GET" - set category = "Ninja Debug" - - mob = M - M.gib() - space_ninja() - -/mob/verb/set_debug_ninja_target() - set name = "Set Debug Target" - set category = "Ninja Debug" - - ninja_debug_target = src//The target is you, brohime. - world << "Target: [src]" - -/mob/verb/hack_spideros_debug() - set name = "Debug Hack Spider OS" - set category = "Ninja Debug" - - var/mob/living/silicon/ai/A = loc:AI - if(A) - if(!A.key) - A.client.mob = loc:affecting - else - loc:affecting:client:mob = A - return - -//Tests the net and what it does. -/mob/verb/ninjanet_debug() - set name = "Energy Net Debug" - set category = "Ninja Debug" - - var/obj/effect/energy_net/E = new /obj/effect/energy_net(loc) - E.layer = layer+1//To have it appear one layer above the mob. - stunned = 10//So they are stunned initially but conscious. - anchored = 1//Anchors them so they can't move. - E.affecting = src - spawn(0)//Parallel processing. - E.process(src) - return - -I made this as a test for a possible ninja ability (or perhaps more) for a certain mob to see hallucinations. -The thing here is that these guys have to be coded to do stuff as they are simply images that you can't even click on. -That is why you attached them to objects. -/mob/verb/TestNinjaShadow() - set name = "Test Ninja Ability" - set category = "Ninja Debug" - - if(client) - var/safety = 4 - for(var/turf/T in oview(5)) - if(prob(20)) - var/current_clone = image('icons/mob/mob.dmi',T,"s-ninja") - safety-- - spawn(0) - src << current_clone - spawn(300) - del(current_clone) - spawn while(!isnull(current_clone)) - step_to(current_clone,src,1) - sleep(5) - if(safety<=0) break - return */ - -//Alternate ninja speech replacement. -/*This text is hilarious but also absolutely retarded. -message = replacetext(message, "l", "r") -message = replacetext(message, "rr", "ru") -message = replacetext(message, "v", "b") -message = replacetext(message, "f", "hu") -message = replacetext(message, "'t", "") -message = replacetext(message, "t ", "to ") -message = replacetext(message, " I ", " ai ") -message = replacetext(message, "th", "z") -message = replacetext(message, "ish", "isu") -message = replacetext(message, "is", "izu") -message = replacetext(message, "ziz", "zis") -message = replacetext(message, "se", "su") -message = replacetext(message, "br", "bur") -message = replacetext(message, "ry", "ri") -message = replacetext(message, "you", "yuu") -message = replacetext(message, "ck", "cku") -message = replacetext(message, "eu", "uu") -message = replacetext(message, "ow", "au") -message = replacetext(message, "are", "aa") -message = replacetext(message, "ay", "ayu") -message = replacetext(message, "ea", "ii") -message = replacetext(message, "ch", "chi") -message = replacetext(message, "than", "sen") -message = replacetext(message, ".", "") -message = lowertext(message) -*/ - - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+++++++++++++++++++++++++++++++++// //++++++++++++++++++++++++++++++++++ -==================================SPACE NINJA ABILITIES==================================== -___________________________________________________________________________________________ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -//=======//SAFETY CHECK//=======// -/* -X is optional, tells the proc to check for specific stuff. C is also optional. -All the procs here assume that the character is wearing the ninja suit if they are using the procs. -They should, as I have made every effort for that to be the case. -In the case that they are not, I imagine the game will run-time error like crazy. -s_cooldown ticks off each second based on the suit recharge proc, in seconds. Default of 1 seconds. Some abilities have no cool down. -*/ -/obj/item/clothing/suit/space/space_ninja/proc/ninjacost(C = 0,X = 0) - var/mob/living/carbon/human/U = affecting - if( (U.stat||U.incorporeal_move)&&X!=3 )//Will not return if user is using an adrenaline booster since you can use them when stat==1. - U << "\red You must be conscious and solid to do this."//It's not a problem of stat==2 since the ninja will explode anyway if they die. - return 1 - else if(C&&cell.charge[s_bombs] smoke bombs remaining." - var/datum/effect/effect/system/bad_smoke_spread/smoke = new /datum/effect/effect/system/bad_smoke_spread() - smoke.set_up(10, 0, U.loc) - smoke.start() - playsound(U.loc, 'sound/effects/bamf.ogg', 50, 2) - s_bombs-- - s_coold = 1 - return - -//=======//9-8 TILE TELEPORT//=======// -//Click to to teleport 9-10 tiles in direction facing. -/obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt() - set name = "Phase Jaunt (10E)" - set desc = "Utilizes the internal VOID-shift device to rapidly transit in direction facing." - set category = "Ninja Ability" - set popup_menu = 0 - - var/C = 100 - if(!ninjacost(C,1)) - var/mob/living/carbon/human/U = affecting - var/turf/destination = get_teleport_loc(U.loc,U,9,1,3,1,0,1) - var/turf/mobloc = get_turf(U.loc)//To make sure that certain things work properly below. - if(destination&&istype(mobloc, /turf))//The turf check prevents unusual behavior. Like teleporting out of cryo pods, cloners, mechs, etc. - spawn(0) - playsound(U.loc, "sparks", 50, 1) - anim(mobloc,src,'icons/mob/mob.dmi',,"phaseout",,U.dir) - - handle_teleport_grab(destination, U) - U.loc = destination - - spawn(0) - spark_system.start() - playsound(U.loc, 'sound/effects/phasein.ogg', 25, 1) - playsound(U.loc, "sparks", 50, 1) - anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir) - - spawn(0) - destination.kill_creatures(U)//Any living mobs in teleport area are gibbed. Check turf procs for how it does it. - s_coold = 1 - cell.charge-=(C*10) - else - U << "\red The VOID-shift device is malfunctioning, teleportation failed." - return - -//=======//RIGHT CLICK TELEPORT//=======// -//Right click to teleport somewhere, almost exactly like admin jump to turf. -/obj/item/clothing/suit/space/space_ninja/proc/ninjashift(turf/T in oview()) - set name = "Phase Shift (20E)" - set desc = "Utilizes the internal VOID-shift device to rapidly transit to a destination in view." - set category = null//So it does not show up on the panel but can still be right-clicked. - set src = usr.contents//Fixes verbs not attaching properly for objects. Praise the DM reference guide! - - var/C = 200 - if(!ninjacost(C,1)) - var/mob/living/carbon/human/U = affecting - var/turf/mobloc = get_turf(U.loc)//To make sure that certain things work properly below. - if((!T.density)&&istype(mobloc, /turf)) - spawn(0) - playsound(U.loc, 'sound/effects/sparks4.ogg', 50, 1) - anim(mobloc,src,'icons/mob/mob.dmi',,"phaseout",,U.dir) - - handle_teleport_grab(T, U) - U.loc = T - - spawn(0) - spark_system.start() - playsound(U.loc, 'sound/effects/phasein.ogg', 25, 1) - playsound(U.loc, 'sound/effects/sparks2.ogg', 50, 1) - anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir) - - spawn(0)//Any living mobs in teleport area are gibbed. - T.kill_creatures(U) - s_coold = 1 - cell.charge-=(C*10) - else - U << "\red You cannot teleport into solid walls or from solid matter" - return - -//=======//EM PULSE//=======// -//Disables nearby tech equipment. -/obj/item/clothing/suit/space/space_ninja/proc/ninjapulse() - set name = "EM Burst (25E)" - set desc = "Disable any nearby technology with a electro-magnetic pulse." - set category = "Ninja Ability" - set popup_menu = 0 - - var/C = 250 - if(!ninjacost(C,1)) - var/mob/living/carbon/human/U = affecting - playsound(U.loc, 'sound/effects/EMPulse.ogg', 60, 2) - empulse(U, 4, 6) //Procs sure are nice. Slightly weaker than wizard's disable tch. - s_coold = 2 - cell.charge-=(C*10) - return - -//=======//ENERGY BLADE//=======// -//Summons a blade of energy in active hand. -/obj/item/clothing/suit/space/space_ninja/proc/ninjablade() - set name = "Energy Blade (5E)" - set desc = "Create a focused beam of energy in your active hand." - set category = "Ninja Ability" - set popup_menu = 0 - - var/C = 50 - if(!ninjacost(C)) - var/mob/living/carbon/human/U = affecting - if(!kamikaze) - if(!U.get_active_hand()&&!istype(U.get_inactive_hand(), /obj/item/weapon/melee/energy/blade)) - var/obj/item/weapon/melee/energy/blade/W = new() - spark_system.start() - playsound(U.loc, "sparks", 50, 1) - U.put_in_hands(W) - cell.charge-=(C*10) - else - U << "\red You can only summon one blade. Try dropping an item first." - else//Else you can run around with TWO energy blades. I don't know why you'd want to but cool factor remains. - if(!U.get_active_hand()) - var/obj/item/weapon/melee/energy/blade/W = new() - U.put_in_hands(W) - if(!U.get_inactive_hand()) - var/obj/item/weapon/melee/energy/blade/W = new() - U.put_in_inactive_hand(W) - spark_system.start() - playsound(U.loc, "sparks", 50, 1) - s_coold = 1 - return - -//=======//NINJA STARS//=======// -/*Shoots ninja stars at random people. -This could be a lot better but I'm too tired atm.*/ -/obj/item/clothing/suit/space/space_ninja/proc/ninjastar() - set name = "Energy Star (5E)" - set desc = "Launches an energy star at a random living target." - set category = "Ninja Ability" - set popup_menu = 0 - - var/C = 50 - if(!ninjacost(C)) - var/mob/living/carbon/human/U = affecting - var/targets[] = list()//So yo can shoot while yo throw dawg - for(var/mob/living/M in oview(loc)) - if(M.stat) continue//Doesn't target corpses or paralyzed persons. - targets.Add(M) - if(targets.len) - var/mob/living/target=pick(targets)//The point here is to pick a random, living mob in oview to shoot stuff at. - - var/turf/curloc = U.loc - var/atom/targloc = get_turf(target) - if (!targloc || !istype(targloc, /turf) || !curloc) - return - if (targloc == curloc) - return - var/obj/item/projectile/energy/dart/A = new /obj/item/projectile/energy/dart(U.loc) - A.current = curloc - A.yo = targloc.y - curloc.y - A.xo = targloc.x - curloc.x - cell.charge-=(C*10) - A.process() - else - U << "\red There are no targets in view." - return - -//=======//ENERGY NET//=======// -/*Allows the ninja to capture people, I guess. -Must right click on a mob to activate.*/ -/obj/item/clothing/suit/space/space_ninja/proc/ninjanet(mob/living/carbon/M in oview())//Only living carbon mobs. - set name = "Energy Net (20E)" - set desc = "Captures a fallen opponent in a net of energy. Will teleport them to a holding facility after 30 seconds." - set category = null - set src = usr.contents - - var/C = 200 - if(!ninjacost(C,1)&&iscarbon(M)) - var/mob/living/carbon/human/U = affecting - if(M.client)//Monkeys without a client can still step_to() and bypass the net. Also, netting inactive people is lame. - //if(M)//DEBUG - if(!locate(/obj/effect/energy_net) in M.loc)//Check if they are already being affected by an energy net. - for(var/turf/T in getline(U.loc, M.loc)) - if(T.density)//Don't want them shooting nets through walls. It's kind of cheesy. - U << "You may not use an energy net through solid obstacles!" - return - spawn(0) - U.Beam(M,"n_beam",,15) - M.anchored = 1//Anchors them so they can't move. - U.say("Get over here!") - var/obj/effect/energy_net/E = new /obj/effect/energy_net(M.loc) - E.layer = M.layer+1//To have it appear one layer above the mob. - for(var/mob/O in viewers(U, 3)) - O.show_message(text("\red [] caught [] with an energy net!", U, M), 1) - E.affecting = M - E.master = U - spawn(0)//Parallel processing. - E.process(M) - cell.charge-=(C*10) - else - U << "They are already trapped inside an energy net." - else - U << "They will bring no honor to your Clan!" - return - -//=======//ADRENALINE BOOST//=======// -/*Wakes the user so they are able to do their thing. Also injects a decent dose of radium. -Movement impairing would indicate drugs and the like.*/ -/obj/item/clothing/suit/space/space_ninja/proc/ninjaboost() - set name = "Adrenaline Boost" - set desc = "Inject a secret chemical that will counteract all movement-impairing effect." - set category = "Ninja Ability" - set popup_menu = 0 - - if(!ninjacost(,3))//Have to make sure stat is not counted for this ability. - var/mob/living/carbon/human/U = affecting - //Wouldn't need to track adrenaline boosters if there was a miracle injection to get rid of paralysis and the like instantly. - //For now, adrenaline boosters ARE the miracle injection. Well, radium, really. - U.SetParalysis(0) - U.SetStunned(0) - U.SetWeakened(0) - /* - Due to lag, it was possible to adrenaline boost but remain helpless while life.dm resets player stat. - This lead to me and others spamming adrenaline boosters because they failed to kick in on time. - It's technically possible to come back from crit with this but it is very temporary. - Life.dm will kick the player back into unconsciosness the next process loop. - */ - U.stat = 0//At least now you should be able to teleport away or shoot ninja stars. - spawn(30)//Slight delay so the enemy does not immedietly know the ability was used. Due to lag, this often came before waking up. - U.say(pick("A CORNERED FOX IS MORE DANGEROUS THAN A JACKAL!","HURT ME MOOORRREEE!","IMPRESSIVE!")) - spawn(70) - reagents.reaction(U, 2) - reagents.trans_id_to(U, "radium", a_transfer) - U << "\red You are beginning to feel the after-effect of the injection." - a_boost-- - s_coold = 3 - return - -/* -=================================================================================== -<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -=================================================================================== -Or otherwise known as anime mode. Which also happens to be ridiculously powerful. -*/ - -//=======//NINJA MOVEMENT//=======// -//Also makes you move like you're on crack. -/obj/item/clothing/suit/space/space_ninja/proc/ninjawalk() - set name = "Shadow Walk" - set desc = "Combines the VOID-shift and CLOAK-tech devices to freely move between solid matter. Toggle on or off." - set category = "Ninja Ability" - set popup_menu = 0 - - var/mob/living/carbon/human/U = affecting - if(!U.incorporeal_move) - U.incorporeal_move = 2 - U << "\blue You will now phase through solid matter." - else - U.incorporeal_move = 0 - U << "\blue You will no-longer phase through solid matter." - return - -//=======//5 TILE TELEPORT/GIB//=======// -//Allows to gib up to five squares in a straight line. Seriously. -/obj/item/clothing/suit/space/space_ninja/proc/ninjaslayer() - set name = "Phase Slayer" - set desc = "Utilizes the internal VOID-shift device to mutilate creatures in a straight line." - set category = "Ninja Ability" - set popup_menu = 0 - - if(!ninjacost()) - var/mob/living/carbon/human/U = affecting - var/turf/destination = get_teleport_loc(U.loc,U,5) - var/turf/mobloc = get_turf(U.loc)//To make sure that certain things work properly below. - if(destination&&istype(mobloc, /turf)) - U.say("Ai Satsugai!") - spawn(0) - playsound(U.loc, "sparks", 50, 1) - anim(mobloc,U,'icons/mob/mob.dmi',,"phaseout",,U.dir) - - spawn(0) - for(var/turf/T in getline(mobloc, destination)) - spawn(0) - T.kill_creatures(U) - if(T==mobloc||T==destination) continue - spawn(0) - anim(T,U,'icons/mob/mob.dmi',,"phasein",,U.dir) - - handle_teleport_grab(destination, U) - U.loc = destination - - spawn(0) - spark_system.start() - playsound(U.loc, 'sound/effects/phasein.ogg', 25, 1) - playsound(U.loc, "sparks", 50, 1) - anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir) - s_coold = 1 - else - U << "\red The VOID-shift device is malfunctioning, teleportation failed." - return - -//=======//TELEPORT BEHIND MOB//=======// -/*Appear behind a randomly chosen mob while a few decoy teleports appear. -This is so anime it hurts. But that's the point.*/ -/obj/item/clothing/suit/space/space_ninja/proc/ninjamirage() - set name = "Spider Mirage" - set desc = "Utilizes the internal VOID-shift device to create decoys and teleport behind a random target." - set category = "Ninja Ability" - set popup_menu = 0 - - if(!ninjacost())//Simply checks for stat. - var/mob/living/carbon/human/U = affecting - var/targets[] - targets = new() - for(var/mob/living/M in oview(6)) - if(M.stat) continue//Doesn't target corpses or paralyzed people. - targets.Add(M) - if(targets.len) - var/mob/living/target=pick(targets) - var/locx - var/locy - var/turf/mobloc = get_turf(target.loc) - var/safety = 0 - switch(target.dir) - if(NORTH) - locx = mobloc.x - locy = (mobloc.y-1) - if(locy<1) - safety = 1 - if(SOUTH) - locx = mobloc.x - locy = (mobloc.y+1) - if(locy>world.maxy) - safety = 1 - if(EAST) - locy = mobloc.y - locx = (mobloc.x-1) - if(locx<1) - safety = 1 - if(WEST) - locy = mobloc.y - locx = (mobloc.x+1) - if(locx>world.maxx) - safety = 1 - else safety=1 - if(!safety&&istype(mobloc, /turf)) - U.say("Kumo no Shinkiro!") - var/turf/picked = locate(locx,locy,mobloc.z) - spawn(0) - playsound(U.loc, "sparks", 50, 1) - anim(mobloc,U,'icons/mob/mob.dmi',,"phaseout",,U.dir) - - spawn(0) - var/limit = 4 - for(var/turf/T in oview(5)) - if(prob(20)) - spawn(0) - anim(T,U,'icons/mob/mob.dmi',,"phasein",,U.dir) - limit-- - if(limit<=0) break - - handle_teleport_grab(picked, U) - U.loc = picked - U.dir = target.dir - - spawn(0) - spark_system.start() - playsound(U.loc, 'sound/effects/phasein.ogg', 25, 1) - playsound(U.loc, "sparks", 50, 1) - anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir) - s_coold = 1 - else - U << "\red The VOID-shift device is malfunctioning, teleportation failed." - else - U << "\red There are no targets in view." - return - - -//For the love of god,space out your code! This is a nightmare to read. - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -+++++++++++++++++++++++++++++++++// //++++++++++++++++++++++++++++++++++ -===================================SPACE NINJA EQUIPMENT=================================== -___________________________________________________________________________________________ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -/* -=================================================================================== -<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -=================================================================================== -*/ - -//=======//NEW AND DEL//=======// - -/obj/item/clothing/suit/space/space_ninja/New() - ..() - verbs += /obj/item/clothing/suit/space/space_ninja/proc/init//suit initialize verb - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ai_instruction//for AIs - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ai_holo - //verbs += /obj/item/clothing/suit/space/space_ninja/proc/display_verb_procs//DEBUG. Doesn't work. - spark_system = new()//spark initialize - spark_system.set_up(5, 0, src) - spark_system.attach(src) - stored_research = new()//Stolen research initialize. - for(var/T in typesof(/datum/tech) - /datum/tech)//Store up on research. - stored_research += new T(src) - var/reagent_amount//reagent initialize - for(var/reagent_id in reagent_list) - reagent_amount += reagent_id == "radium" ? r_maxamount+(a_boost*a_transfer) : r_maxamount//AI can inject radium directly. - reagents = new(reagent_amount) - reagents.my_atom = src - for(var/reagent_id in reagent_list) - reagent_id == "radium" ? reagents.add_reagent(reagent_id, r_maxamount+(a_boost*a_transfer)) : reagents.add_reagent(reagent_id, r_maxamount)//It will take into account radium used for adrenaline boosting. - cell = new/obj/item/weapon/cell/high//The suit should *always* have a battery because so many things rely on it. - cell.charge = 9000//Starting charge should not be higher than maximum charge. It leads to problems with recharging. - -/obj/item/clothing/suit/space/space_ninja/Del() - if(affecting)//To make sure the window is closed. - affecting << browse(null, "window=hack spideros") - if(AI)//If there are AIs present when the ninja kicks the bucket. - killai() - if(hologram)//If there is a hologram - del(hologram.i_attached)//Delete it and the attached image. - del(hologram) - ..() - return - -//Simply deletes all the attachments and self, killing all related procs. -/obj/item/clothing/suit/space/space_ninja/proc/terminate() - del(n_hood) - del(n_gloves) - del(n_shoes) - del(src) - -/obj/item/clothing/suit/space/space_ninja/proc/killai(mob/living/silicon/ai/A = AI) - if(A.client) - A << "\red Self-erase protocol dete-- *bzzzzz*" - A << browse(null, "window=hack spideros") - AI = null - A.death(1)//Kill, deleting mob. - del(A) - return - -//=======//SUIT VERBS//=======// -//Verbs link to procs because verb-like procs have a bug which prevents their use if the arguments are not readily referenced. - -/obj/item/clothing/suit/space/space_ninja/proc/init() - set name = "Initialize Suit" - set desc = "Initializes the suit for field operation." - set category = "Ninja Equip" - - ninitialize() - return - -/obj/item/clothing/suit/space/space_ninja/proc/deinit() - set name = "De-Initialize Suit" - set desc = "Begins procedure to remove the suit." - set category = "Ninja Equip" - - if(s_control&&!s_busy) - deinitialize() - else - affecting << "\red The function did not trigger!" - return - -/obj/item/clothing/suit/space/space_ninja/proc/spideros() - set name = "Display SpiderOS" - set desc = "Utilize built-in computer system." - set category = "Ninja Equip" - - if(s_control&&!s_busy&&!kamikaze) - display_spideros() - else - affecting << "\red The interface is locked!" - return - -/obj/item/clothing/suit/space/space_ninja/proc/stealth() - set name = "Toggle Stealth" - set desc = "Utilize the internal CLOAK-tech device to activate or deactivate stealth-camo." - set category = "Ninja Equip" - - if(s_control&&!s_busy) - toggle_stealth() - else - affecting << "\red Stealth does not appear to work!" - return - -//=======//PROCESS PROCS//=======// - -/obj/item/clothing/suit/space/space_ninja/proc/ntick(mob/living/carbon/human/U = affecting) - set background = BACKGROUND_ENABLED - - //Runs in the background while the suit is initialized. - spawn while(cell.charge>=0) - - //Let's check for some safeties. - if(s_initialized&&!affecting) terminate()//Kills the suit and attached objects. - if(!s_initialized) return//When turned off the proc stops. - if(AI&&AI.stat==2)//If there is an AI and it's ded. Shouldn't happen without purging, could happen. - if(!s_control) - ai_return_control()//Return control to ninja if the AI was previously in control. - killai()//Delete AI. - - //Now let's do the normal processing. - if(s_coold) s_coold--//Checks for ability s_cooldown first. - var/A = s_cost//s_cost is the default energy cost each ntick, usually 5. - if(!kamikaze) - if(blade_check(U))//If there is a blade held in hand. - A += s_acost - if(s_active)//If stealth is active. - A += s_acost - else - if(prob(s_delay))//Suit delay is used as probability. May change later. - U.adjustBruteLoss(k_damage)//Default damage done, usually 1. - A = k_cost//kamikaze cost. - cell.charge-=A - if(cell.charge<=0) - if(kamikaze) - U.say("I DIE TO LIVE AGAIN!") - U << browse(null, "window=spideros")//Just in case. - U.death() - return - cell.charge=0 - cancel_stealth() - sleep(10)//Checks every second. - -//=======//INITIALIZE//=======// - -/obj/item/clothing/suit/space/space_ninja/proc/ninitialize(delay = s_delay, mob/living/carbon/human/U = loc) - if(U.mind && U.mind.assigned_role=="MODE" && !s_initialized && !s_busy)//Shouldn't be busy... but anything is possible I guess. - s_busy = 1 - for(var/i,i<7,i++) - switch(i) - if(0) - U << "\blue Now initializing..." - if(1) - if(!lock_suit(U))//To lock the suit onto wearer. - break - U << "\blue Securing external locking mechanism...\nNeural-net established." - if(2) - U << "\blue Extending neural-net interface...\nNow monitoring brain wave pattern..." - if(3) - if(U.stat==2||U.health<=0) - U << "\red FĆAL �Rr�R: 344--93#�&&21 BR��N |/|/aV� PATT$RN RED\nA-A-aB�rT�NG..." - unlock_suit() - break - lock_suit(U,1)//Check for icons. - U.regenerate_icons() - U << "\blue Linking neural-net interface...\nPattern \green GREEN\blue, continuing operation." - if(4) - U << "\blue VOID-shift device status: ONLINE.\nCLOAK-tech device status: ONLINE." - if(5) - U << "\blue Primary system status: ONLINE.\nBackup system status: ONLINE.\nCurrent energy capacity: [cell.charge]." - if(6) - U << "\blue All systems operational. Welcome to SpiderOS, [U.real_name]." - grant_ninja_verbs() - grant_equip_verbs() - ntick() - sleep(delay) - s_busy = 0 - else - if(!U.mind||U.mind.assigned_role!="MODE")//Your run of the mill persons shouldn't know what it is. Or how to turn it on. - U << "You do not understand how this suit functions. Where the heck did it even come from?" - else if(s_initialized) - U << "\red The suit is already functioning. \black Please report this bug." - else - U << "\red ERROR: \black You cannot use this function at this time." - return - -//=======//DEINITIALIZE//=======// - -/obj/item/clothing/suit/space/space_ninja/proc/deinitialize(delay = s_delay) - if(affecting==loc&&!s_busy) - var/mob/living/carbon/human/U = affecting - if(!s_initialized) - U << "\red The suit is not initialized. \black Please report this bug." - return - if(alert("Are you certain you wish to remove the suit? This will take time and remove all abilities.",,"Yes","No")=="No") - return - if(s_busy||flush) - U << "\red ERROR: \black You cannot use this function at this time." - return - s_busy = 1 - for(var/i = 0,i<7,i++) - switch(i) - if(0) - U << "\blue Now de-initializing..." - remove_kamikaze(U)//Shutdowns kamikaze. - spideros = 0//Spideros resets. - if(1) - U << "\blue Logging off, [U:real_name]. Shutting down SpiderOS." - remove_ninja_verbs() - if(2) - U << "\blue Primary system status: OFFLINE.\nBackup system status: OFFLINE." - if(3) - U << "\blue VOID-shift device status: OFFLINE.\nCLOAK-tech device status: OFFLINE." - cancel_stealth()//Shutdowns stealth. - if(4) - U << "\blue Disconnecting neural-net interface...\greenSuccess\blue." - if(5) - U << "\blue Disengaging neural-net interface...\greenSuccess\blue." - if(6) - U << "\blue Unsecuring external locking mechanism...\nNeural-net abolished.\nOperation status: FINISHED." - blade_check(U,2) - remove_equip_verbs() - unlock_suit() - U.regenerate_icons() - sleep(delay) - s_busy = 0 - return - -//=======//SPIDEROS PROC//=======// - -/obj/item/clothing/suit/space/space_ninja/proc/display_spideros() - if(!affecting) return//If no mob is wearing the suit. I almost forgot about this variable. - var/mob/living/carbon/human/U = affecting - var/mob/living/silicon/ai/A = AI - var/display_to = s_control ? U : A//Who do we want to display certain messages to? - - var/dat = "SpiderOS" - dat += " Refresh" - if(spideros) - dat += " | Return" - dat += " | Close" - dat += "
    " - if(s_control) - dat += "

    SpiderOS v.1.337

    " - dat += "Welcome, [U.real_name].
    " - else - dat += "

    SpiderOS v.ERR-RR00123

    " - dat += "
    " - dat += " Current Time: [worldtime2text()]
    " - dat += " Battery Life: [round(cell.charge/100)]%
    " - dat += " Smoke Bombs: \Roman [s_bombs]
    " - dat += " pai Device: " - if(pai) - dat += "Configure" - dat += " | " - dat += "Eject" - else - dat += "None Detected" - dat += "

    " - - switch(spideros) - if(0) - dat += "

    Available Functions:

    " - dat += "" - if(3) - dat += "

    Medical Report:

    " - if(U.dna) - dat += "Fingerprints: [md5(U.dna.uni_identity)]
    " - dat += "Unique identity: [U.dna.unique_enzymes]
    " - dat += "

    Overall Status: [U.stat > 1 ? "dead" : "[U.health]% healthy"]

    " - dat += "

    Nutrition Status: [U.nutrition]

    " - dat += "Oxygen loss: [U.getOxyLoss()]" - dat += " | Toxin levels: [U.getToxLoss()]
    " - dat += "Burn severity: [U.getFireLoss()]" - dat += " | Brute trauma: [U.getBruteLoss()]
    " - dat += "Radiation Level: [U.radiation] rad
    " - dat += "Body Temperature: [U.bodytemperature-T0C]°C ([U.bodytemperature*1.8-459.67]°F)
    " - - for(var/datum/disease/D in U.viruses) - dat += "Warning: Virus Detected. Name: [D.name].Type: [D.spread]. Stage: [D.stage]/[D.max_stages]. Possible Cure: [D.cure].
    " - dat += "" - if(1) - dat += "

    Atmospheric Scan:

    "//Headers don't need breaks. They are automatically placed. - var/turf/T = get_turf(U.loc) - if (isnull(T)) - dat += "Unable to obtain a reading." - else - var/datum/gas_mixture/environment = T.return_air() - - var/pressure = environment.return_pressure() - var/total_moles = environment.total_moles() - - dat += "Air Pressure: [round(pressure,0.1)] kPa" - - if (total_moles) - var/o2_level = environment.oxygen/total_moles - var/n2_level = environment.nitrogen/total_moles - var/co2_level = environment.carbon_dioxide/total_moles - var/plasma_level = environment.toxins/total_moles - var/unknown_level = 1-(o2_level+n2_level+co2_level+plasma_level) - dat += "
      " - dat += "
    • Nitrogen: [round(n2_level*100)]%
    • " - dat += "
    • Oxygen: [round(o2_level*100)]%
    • " - dat += "
    • Carbon Dioxide: [round(co2_level*100)]%
    • " - dat += "
    • Plasma: [round(plasma_level*100)]%
    • " - dat += "
    " - if(unknown_level > 0.01) - dat += "OTHER: [round(unknown_level)]%
    " - - dat += "Temperature: [round(environment.temperature-T0C)]°C" - if(2) - if(k_unlock==7||!s_control) - dat += " Hidden Menu" - dat += "

    Anonymous Messenger:

    "//Anonymous because the receiver will not know the sender's identity. - dat += "

    Detected PDAs:

    " - dat += "
      " - var/count = 0 - for (var/obj/item/device/pda/P in get_viewable_pdas()) - dat += "
    • [P]" - dat += "
    • " - count++ - dat += "
    " - if (count == 0) - dat += "None detected.
    " - if(32) - dat += "

    Hidden Menu:

    " - if(s_control) - dat += "Please input password: " - dat += "HERE
    " - dat += "
    " - dat += "Remember, you will not be able to recharge energy during this function. If energy runs out, the suit will auto self-destruct.
    " - dat += "Use with caution. De-initialize the suit when energy is low." - else - //Only leaving this in for funnays. CAN'T LET YOU DO THAT STAR FOX - dat += "WARNING: Hostile runtime intrusion detected: operation locked. The Spider Clan is watching you, INTRUDER." - dat += "ERROR: TARANTULA.v.4.77.12 encryption algorithm detected. Unable to decrypt archive.
    " - if(4) - dat += {" -

    Ninja Manual:

    -
    Who they are:
    - Space ninjas are a special type of ninja, specifically one of the space-faring type. The vast majority of space ninjas belong to the Spider Clan, a cult-like sect, which has existed for several hundred years. The Spider Clan practice a sort of augmentation of human flesh in order to achieve a more perfect state of being and follow Postmodern Space Bushido. They also kill people for money. Their leaders are chosen from the oldest of the grand-masters, people that have lived a lot longer than any mortal man should.
    Being a sect of technology-loving fanatics, the Spider Clan have the very best to choose from in terms of hardware--cybernetic implants, exoskeleton rigs, hyper-capacity batteries, and you get the idea. Some believe that much of the Spider Clan equipment is based on reverse-engineered alien technology while others doubt such claims.
    Whatever the case, their technology is absolutely superb. -
    How they relate to other SS13 organizations:
    -
      -
    • *Nanotrasen and the Syndicate are two sides of the same coin and that coin is valuable.
    • -
    • *The Space Wizard Federation is a problem, mainly because they are an extremely dangerous group of unpredictable individuals--not to mention the wizards hate technology and are in direct opposition of the Spider Clan. Best avoided or left well-enough alone. How to battle: wizards possess several powerful abilities to steer clear off. Blind in particular is a nasty spell--jaunt away if you are blinded and never approach a wizard in melee. Stealth may also work if the wizard is not wearing thermal scanners--don't count on this. Run away if you feel threatened and await a better opportunity.
    • -
    • *Changeling Hivemind: extremely dangerous and to be killed on sight. How to battle: they will likely try to absorb you. Adrenaline boost, then phase shift into them. If you get stung, use SpiderOS to inject counter-agents. Stealth may also work but detecting a changeling is the real battle.
    • -
    • *Xeno Hivemind: their skulls make interesting kitchen decorations and are challenging to best, especially in larger nests. How to battle: they can see through your stealth guise and energy stars will not work on them. Best killed with a Phase Shift or at range. If you happen on a projectile stun weapon, use it and then close in to melee.
    • -
    -
    The reason they (you) are here:
    - Space ninjas are renowned throughout the known controlled space as fearless spies, infiltrators, and assassins. They are sent on missions of varying nature by Nanotrasen, the Syndicate, and other shady organizations and people. To hire a space ninja means serious business. -
    Their playstyle:
    - A mix of traitor, changeling, and wizard. Ninjas rely on energy, or electricity to be precise, to keep their suits running (when out of energy, a suit hibernates). Suits gain energy from objects or creatures that contain electrical charge. APCs, cell batteries, rechargers, SMES batteries, cyborgs, mechs, and exposed wires are currently supported. Through energy ninjas gain access to special powers--while all powers are tied to the ninja suit, the most useful of them are verb activated--to help them in their mission.
    It is a constant struggle for a ninja to remain hidden long enough to recharge the suit and accomplish their objective; despite their arsenal of abilities, ninjas can die like any other. Unlike wizards, ninjas do not possess good crowd control and are typically forced to play more subdued in order to achieve their goals. Some of their abilities are specifically designed to confuse and disorient others.
    With that said, it should be perfectly possible to completely flip the fuck out and rampage as a ninja. -
    Their powers:
    - There are two primary types: Equipment and Abilties. Passive effect are always on. Active effect must be turned on and remain active only when there is energy to do so. Ability costs are listed next to them. - Equipment: cannot be tracked by AI (passive), faster speed (passive), stealth (active), vision switch (passive if toggled), voice masking (passive), SpiderOS (passive if toggled), energy drain (passive if toggled). -
      -
    • Voice masking generates a random name the ninja can use over the radio and in-person. Although, the former use is recommended.
    • -
    • Toggling vision cycles to one of the following: thermal, meson, or darkness vision. The starting mode allows one to scout the identity of those in view, revealing their role. Traitors, revolutionaries, wizards, and other such people will be made known to you.
    • -
    • Stealth, when activated, drains more battery charge and works similarly to a syndicate cloak. The cloak will deactivate when most Abilities are utilized.
    • -
    • On-board AI: The suit is able to download an AI much like an intelicard. Check with SpiderOS for details once downloaded.
    • -
    • SpiderOS is a specialized, PDA-like screen that allows for a small variety of functions, such as injecting healing chemicals directly from the suit. You are using it now, if that was not already obvious. You may also download AI modules directly to the OS.
    • -
    - Abilities: -
      -
    • *Phase Shift (2000E) and Phase Jaunt (1000E) are unique powers in that they can both be used for defense and offense. Jaunt launches the ninja forward facing up to 9 squares, somewhat randomly selecting the final destination. Shift can only be used on turf in view but is precise (cannot be used on walls). Any living mob in the area teleported to is instantly gibbed (mechs are damaged, huggers and other similar critters are killed). It is possible to teleport with a target, provided you grab them before teleporting.
    • -
    • *Energy Blade (500E) is a highly effective weapon. It is summoned directly to the ninja's hand and can also function as an EMAG for certain objects (doors/lockers/etc). You may also use it to cut through walls and disabled doors. Experiment! The blade will crit humans in two hits. This item cannot be placed in containers and when dropped or thrown disappears. Having an energy blade drains more power from the battery each tick.
    • -
    • *EM Pulse (2500E) is a highly useful ability that will create an electromagnetic shockwave around the ninja, disabling technology whenever possible. If used properly it can render a security force effectively useless. Of course, getting beat up with a toolbox is not accounted for.
    • -
    • *Energy Star (500E) is a ninja star made of green energy AND coated in poison. It works by picking a random living target within range and can be spammed to great effect in incapacitating foes. Just remember that the poison used is also used by the Xeno Hivemind (and will have no effect on them).
    • -
    • *Energy Net (2000E) is a non-lethal solution to incapacitating humanoids. The net is made of non-harmful phase energy and will halt movement as long as it remains in effect--it can be destroyed. If the net is not destroyed, after a certain time it will teleport the target to a holding facility for the Spider Clan and then vanish. You will be notified if the net fails or succeeds in capturing a target in this manner. Combine with energy stars or stripping to ensure success. Abduction never looked this leet.
    • -
    • *Adrenaline Boost (1 E. Boost/3) recovers the user from stun, weakness, and paralysis. Also injects 20 units of radium into the bloodstream.
    • -
    • *Smoke Bomb (1 Sm.Bomb/10) is a weak but potentially useful ability. It creates harmful smoke and can be used in tandem with other powers to confuse enemies.
    • -
    • *???: unleash the True Ultimate Power!
    • -

      IMPORTANT:

      -
        -
      • *Make sure to toggle Special Interaction from the Ninja Equipment menu to interact differently with certain objects.
      • -
      • *Your starting power cell can be replaced if you find one with higher maximum energy capacity by clicking on your suit with the higher capacity cell.
      • -
      • *Conserve your energy. Without it, you are very vulnerable.
      • -
      - That is all you will need to know. The rest will come with practice and talent. Good luck! -

      Master /N

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

      AI Control:

      " - //var/mob/living/silicon/ai/A = AI - if(AI)//If an AI exists. - dat += "Stored AI: [A.name]
      " - dat += "System integrity: [(A.health+100)/2]%
      " - - //I personally think this makes things a little more fun. Ninjas can override all but law 0. - //if (A.laws.zeroth) - // laws += "
    • 0: [A.laws.zeroth]
    • " - - for (var/index = 1, index <= A.laws.ion.len, index++) - var/law = A.laws.ion[index] - if (length(law) > 0) - var/num = ionnum() - laws += "
    • [num]. [law]
    • " - - var/number = 1 - for (var/index = 1, index <= A.laws.inherent.len, index++) - var/law = A.laws.inherent[index] - if (length(law) > 0) - laws += "
    • [number]: [law]
    • " - number++ - - for (var/index = 1, index <= A.laws.supplied.len, index++) - var/law = A.laws.supplied[index] - if (length(law) > 0) - laws += "
    • [number]: [law]
    • " - number++ - - dat += "

      Laws:

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

      Activate Abilities:

      - - "} - if(7) - dat += "

      Research Stored:

      " - if(t_disk) - dat += "Eject Disk
      " - dat += "
        " - if(istype(stored_research,/list))//If there is stored research. Should be but just in case. - for(var/datum/tech/current_data in stored_research) - dat += "
      • " - dat += "[current_data.name]: [current_data.level]" - if(t_disk)//If there is a disk inserted. We can either write or overwrite. - dat += " *Copy to Disk
        " - dat += "
      • " - dat += "
      " - dat += "" - - //Setting the can>resize etc to 0 remove them from the drag bar but still allows the window to be draggable. - display_to << browse(dat,"window=spideros;size=400x444;border=1;can_resize=1;can_close=0;can_minimize=0") - -//=======//SPIDEROS TOPIC PROC//=======// - -/obj/item/clothing/suit/space/space_ninja/Topic(href, href_list) - ..() - var/mob/living/carbon/human/U = affecting - var/mob/living/silicon/ai/A = AI - var/display_to = s_control ? U : A//Who do we want to display certain messages to? - - if(s_control) - if(!affecting||U.stat||!s_initialized)//Check to make sure the guy is wearing the suit after clicking and it's on. - U << "\red Your suit must be worn and active to use this function." - U << browse(null, "window=spideros")//Closes the window. - return - - if(k_unlock!=7&&href_list["choice"]!="Return") - var/u1=text2num(href_list["choice"]) - var/u2=(u1?abs(abs(k_unlock-u1)-2):1) - k_unlock=(!u2? k_unlock+1:0) - if(k_unlock==7) - U << "Anonymous Messenger blinks." - else - if(!affecting||A.stat||!s_initialized||A.loc!=src) - A << "\red This function is not available at this time." - A << browse(null, "window=spideros")//Closes the window. - return - - switch(href_list["choice"]) - if("Close") - display_to << browse(null, "window=spideros") - return - if("Refresh")//Refresh, goes to the end of the proc. - if("Return")//Return - if(spideros<=9) - spideros=0 - else - spideros = round(spideros/10)//Best way to do this, flooring to nearest integer. - - if("Shock") - var/damage = min(cell.charge, rand(50,150))//Uses either the current energy left over or between 50 and 150. - if(damage>1)//So they don't spam it when energy is a factor. - spark_system.start()//SPARKS THERE SHALL BE SPARKS - U.electrocute_act(damage, src,0.1,1)//The last argument is a safety for the human proc that checks for gloves. - cell.charge -= damage - else - A << "\red ERROR: \black Not enough energy remaining." - - if("Message") - var/obj/item/device/pda/P = locate(href_list["target"]) - var/t = input(U, "Please enter untraceable message.") as text - t = copytext(sanitize(t), 1, MAX_MESSAGE_LEN) - if(!t||U.stat||U.wear_suit!=src||!s_initialized)//Wow, another one of these. Man... - display_to << browse(null, "window=spideros") - return - if(isnull(P)||P.toff)//So it doesn't freak out if the object no-longer exists. - display_to << "\red Error: unable to deliver message." - display_spideros() - return - P.tnote += "← From [!s_control?(A):"an unknown source"]:
      [t]
      " - if (!P.silent) - playsound(P.loc, 'sound/machines/twobeep.ogg', 50, 1) - for (var/mob/O in hearers(3, P.loc)) - O.show_message(text("\icon[P] *[P.ttone]*")) - P.overlays.Cut() - P.overlays += image('icons/obj/pda.dmi', "pda-r") - - if("Inject") - if( (href_list["tag"]=="radium"? (reagents.get_reagent_amount("radium"))<=(a_boost*a_transfer) : !reagents.get_reagent_amount(href_list["tag"])) )//Special case for radium. If there are only a_boost*a_transfer radium units left. - display_to << "\red Error: the suit cannot perform this function. Out of [href_list["name"]]." - else - reagents.reaction(U, 2) - reagents.trans_id_to(U, href_list["tag"], href_list["tag"]=="nutriment"?5:a_transfer)//Nutriment is a special case since it's very potent. Shouldn't influence actual refill amounts or anything. - display_to << "Injecting..." - U << "You feel a tiny prick and a sudden rush of substance in to your veins." - - if("Trigger Ability") - var/ability_name = href_list["name"]+href_list["cost"]//Adds the name and cost to create the full proc name. - var/proc_arguments//What arguments to later pass to the proc, if any. - var/targets[] = list()//To later check for. - var/safety = 0//To later make sure we're triggering the proc when needed. - switch(href_list["name"])//Special case. - if("Phase Shift") - safety = 1 - for(var/turf/T in oview(5,loc)) - targets.Add(T) - if("Energy Net") - safety = 1 - for(var/mob/living/carbon/M in oview(5,loc)) - targets.Add(M) - if(targets.len)//Let's create an argument for the proc if needed. - proc_arguments = pick(targets) - safety = 0 - if(!safety) - A << "You trigger [href_list["name"]]." - U << "[href_list["name"]] suddenly triggered!" - call(src,ability_name)(proc_arguments) - else - A << "There are no potential [href_list["name"]=="Phase Shift"?"destinations" : "targets"] in view." - - if("Unlock Kamikaze") - if(input(U)=="Divine Wind") - if( !(U.stat||U.wear_suit!=src||!s_initialized) ) - if( !(cell.charge<=1||s_busy) ) - s_busy = 1 - for(var/i, i<4, i++) - switch(i) - if(0) - U << "\blue Engaging mode...\n\blackCODE NAME: \red KAMIKAZE" - if(1) - U << "\blue Re-routing power nodes... \nUnlocking limiter..." - if(2) - U << "\blue Power nodes re-routed. \nLimiter unlocked." - if(3) - grant_kamikaze(U)//Give them verbs and change variables as necessary. - U.regenerate_icons()//Update their clothing. - ninjablade()//Summon two energy blades. - message_admins("\blue [key_name_admin(U)] used KAMIKAZE mode.")//Let the admins know. - s_busy = 0 - return - sleep(s_delay) - else - U << "\red ERROR: \black Unable to initiate mode." - else - U << browse(null, "window=spideros") - s_busy = 0 - return - else - U << "\red ERROR: WRONG PASSWORD!" - k_unlock = 0 - spideros = 0 - s_busy = 0 - - if("Eject Disk") - var/turf/T = get_turf(loc) - if(!U.get_active_hand()) - U.put_in_hands(t_disk) - t_disk.add_fingerprint(U) - t_disk = null - else - if(T) - t_disk.loc = T - t_disk = null - else - U << "\red ERROR: \black Could not eject disk." - - if("Copy to Disk") - var/datum/tech/current_data = locate(href_list["target"]) - U << "[current_data.name] successfully [(!t_disk.stored) ? "copied" : "overwritten"] to disk." - t_disk.stored = current_data - - if("Configure pAI") - pai.attack_self(U) - - if("Eject pAI") - var/turf/T = get_turf(loc) - if(!U.get_active_hand()) - U.put_in_hands(pai) - pai.add_fingerprint(U) - pai = null - else - if(T) - pai.loc = T - pai = null - else - U << "\red ERROR: \black Could not eject pAI card." - - if("Override AI Laws") - var/law_zero = A.laws.zeroth//Remembers law zero, if there is one. - A.laws = new /datum/ai_laws/ninja_override - A.set_zeroth_law(law_zero)//Adds back law zero if there was one. - A.show_laws() - U << "\blue Law Override: SUCCESS." - - if("Purge AI") - var/confirm = alert("Are you sure you want to purge the AI? This cannot be undone once started.", "Confirm purge", "Yes", "No") - if(U.stat||U.wear_suit!=src||!s_initialized) - U << browse(null, "window=spideros") - return - if(confirm == "Yes"&&AI) - if(A.laws.zeroth)//Gives a few seconds to re-upload the AI somewhere before it takes full control. - s_busy = 1 - for(var/i,i<5,i++) - if(AI==A) - switch(i) - if(0) - A << "\red WARNING: \black purge procedure detected. \nNow hacking host..." - U << "\red WARNING: HACKING AT��TEMP� IN PR0GRESs!" - spideros = 0 - k_unlock = 0 - U << browse(null, "window=spideros") - if(1) - A << "Disconnecting neural interface..." - U << "\red WAR�NING: �R�O0�Gr�--S 2&3%" - if(2) - A << "Shutting down external protocol..." - U << "\red WARNING: P����RֆGr�5S 677^%" - cancel_stealth() - if(3) - A << "Connecting to kernel..." - U << "\red WARNING: �R�r�R_404" - A.control_disabled = 0 - if(4) - A << "Connection established and secured. Menu updated." - U << "\red W�r#nING: #%@!!WȆ|_4�54@ \nUn�B88l3 T� L�-�o-L�CaT2 ##$!�RN�0..%.." - grant_AI_verbs() - return - sleep(s_delay) - else break - s_busy = 0 - U << "\blue Hacking attempt disconnected. Resuming normal operation." - else - flush = 1 - A.suiciding = 1 - A << "Your core files are being purged! This is the end..." - spawn(0) - display_spideros()//To refresh the screen and let this finish. - while (A.stat != 2) - A.adjustOxyLoss(2) - A.updatehealth() - sleep(10) - killai() - U << "Artificial Intelligence was terminated. Rebooting..." - flush = 0 - - if("Wireless AI") - A.control_disabled = !A.control_disabled - A << "AI wireless has been [A.control_disabled ? "disabled" : "enabled"]." - else//If it's not a defined function, it's a menu. - spideros=text2num(href_list["choice"]) - - display_spideros()//Refreshes the screen by calling it again (which replaces current screen with new screen). - return - -//=======//SPECIAL AI FUNCTIONS//=======// - -/obj/item/clothing/suit/space/space_ninja/proc/ai_holo(var/turf/T in oview(3,affecting))//To have an internal AI display a hologram to the AI and ninja only. - set name = "Display Hologram" - set desc = "Channel a holographic image directly to the user's field of vision. Others will not see it." - set category = null - set src = usr.loc - - if(s_initialized&&affecting&&affecting.client&&istype(affecting.loc, /turf))//If the host exists and they are playing, and their location is a turf. - if(!hologram)//If there is not already a hologram. - hologram = new(T)//Spawn a blank effect at the location. - hologram.invisibility = 101//So that it doesn't show up, ever. This also means one could attach a number of images to a single obj and display them differently to differnet people. - hologram.anchored = 1//So it cannot be dragged by space wind and the like. - hologram.dir = get_dir(T,affecting.loc) - var/image/I = image(AI.holo_icon,hologram)//Attach an image to object. - hologram.i_attached = I//To attach the image in order to later reference. - AI << I - affecting << I - affecting << "An image flicks to life nearby. It appears visible to you only." - - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ai_holo_clear - - ai_holo_process()//Move to initialize - else - AI << "\red ERROR: \black Image feed in progress." - else - AI << "\red ERROR: \black Unable to project image." - return - -/obj/item/clothing/suit/space/space_ninja/proc/ai_holo_process() - set background = BACKGROUND_ENABLED - - spawn while(hologram&&s_initialized&&AI)//Suit on and there is an AI present. - if(!s_initialized||get_dist(affecting,hologram.loc)>3)//Once suit is de-initialized or hologram reaches out of bounds. - del(hologram.i_attached) - del(hologram) - - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ai_holo_clear - return - sleep(10)//Checks every second. - -/obj/item/clothing/suit/space/space_ninja/proc/ai_instruction()//Let's the AI know what they can do. - set name = "Instructions" - set desc = "Displays a list of helpful information." - set category = "AI Ninja Equip" - set src = usr.loc - - AI << "The menu you are seeing will contain other commands if they become available.\nRight click a nearby turf to display an AI Hologram. It will only be visible to you and your host. You can move it freely using normal movement keys--it will disappear if placed too far away." - -/obj/item/clothing/suit/space/space_ninja/proc/ai_holo_clear() - set name = "Clear Hologram" - set desc = "Stops projecting the current holographic image." - set category = "AI Ninja Equip" - set src = usr.loc - - del(hologram.i_attached) - del(hologram) - - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ai_holo_clear - return - -/obj/item/clothing/suit/space/space_ninja/proc/ai_hack_ninja() - set name = "Hack SpiderOS" - set desc = "Hack directly into the Black Widow(tm) neuro-interface." - set category = "AI Ninja Equip" - set src = usr.loc - - display_spideros() - return - -/obj/item/clothing/suit/space/space_ninja/proc/ai_return_control() - set name = "Relinquish Control" - set desc = "Return control to the user." - set category = "AI Ninja Equip" - set src = usr.loc - - AI << browse(null, "window=spideros")//Close window - AI << "You have seized your hacking attempt. [affecting.real_name] has regained control." - affecting << "UPDATE: [AI.real_name] has ceased hacking attempt. All systems clear." - - remove_AI_verbs() - return - -//=======//GENERAL SUIT PROCS//=======// - -/obj/item/clothing/suit/space/space_ninja/attackby(obj/item/I, mob/U) - if(U==affecting)//Safety, in case you try doing this without wearing the suit/being the person with the suit. - if(istype(I, /obj/item/device/aicard))//If it's an AI card. - if(s_control) - I:transfer_ai("NINJASUIT","AICARD",src,U) - else - U << "\red ERROR: \black Remote access channel disabled." - return//Return individually so that ..() can run properly at the end of the proc. - else if(istype(I, /obj/item/device/paicard) && !pai)//If it's a pai card. - U:drop_item() - I.loc = src - pai = I - U << "\blue You slot \the [I] into \the [src]." - updateUsrDialog() - return - else if(istype(I, /obj/item/weapon/reagent_containers/glass))//If it's a glass beaker. - var/total_reagent_transfer//Keep track of this stuff. - for(var/reagent_id in reagent_list) - var/datum/reagent/R = I.reagents.has_reagent(reagent_id)//Mostly to pull up the name of the reagent after calculating. Also easier to use than writing long proc paths. - if(R&&reagents.get_reagent_amount(reagent_id)=a_transfer)//Radium is always special. - //Here we determine how much reagent will actually transfer if there is enough to transfer or there is a need of transfer. Minimum of max amount available (using a_transfer) or amount needed. - var/amount_to_transfer = min( (r_maxamount+(reagent_id == "radium"?(a_boost*a_transfer):0)-reagents.get_reagent_amount(reagent_id)) ,(round(R.volume/a_transfer))*a_transfer)//In the end here, we round the amount available, then multiply it again. - R.volume -= amount_to_transfer//Remove from reagent volume. Don't want to delete the reagent now since we need to perserve the name. - reagents.add_reagent(reagent_id, amount_to_transfer)//Add to suit. Reactions are not important. - total_reagent_transfer += amount_to_transfer//Add to total reagent trans. - U << "Added [amount_to_transfer] units of [R.name]."//Reports on the specific reagent added. - I.reagents.update_total()//Now we manually update the total to make sure everything is properly shoved under the rug. - - U << "Replenished a total of [total_reagent_transfer ? total_reagent_transfer : "zero"] chemical units."//Let the player know how much total volume was added. - return - else if(istype(I, /obj/item/weapon/cell)) - if(I:maxcharge>cell.maxcharge&&n_gloves&&n_gloves.candrain) - U << "\blue Higher maximum capacity detected.\nUpgrading..." - if (n_gloves&&n_gloves.candrain&&do_after(U,s_delay)) - U.drop_item() - I.loc = src - I:charge = min(I:charge+cell.charge, I:maxcharge) - var/obj/item/weapon/cell/old_cell = cell - old_cell.charge = 0 - U.put_in_hands(old_cell) - old_cell.add_fingerprint(U) - old_cell.corrupt() - old_cell.updateicon() - cell = I - U << "\blue Upgrade complete. Maximum capacity: [round(cell.maxcharge/100)]%" - else - U << "\red Procedure interrupted. Protocol terminated." - return - else if(istype(I, /obj/item/weapon/disk/tech_disk))//If it's a data disk, we want to copy the research on to the suit. - var/obj/item/weapon/disk/tech_disk/TD = I - if(TD.stored)//If it has something on it. - U << "Research information detected, processing..." - if(do_after(U,s_delay)) - for(var/datum/tech/current_data in stored_research) - if(current_data.id==TD.stored.id) - if(current_data.levelERROR: \black Procedure interrupted. Process terminated." - else - I.loc = src - t_disk = I - U << "\blue You slot \the [I] into \the [src]." - return - ..() - -/obj/item/clothing/suit/space/space_ninja/proc/toggle_stealth() - var/mob/living/carbon/human/U = affecting - if(s_active) - cancel_stealth() - else - spawn(0) - anim(U.loc,U,'icons/mob/mob.dmi',,"cloak",,U.dir) - s_active=!s_active - U.update_icons() //update their icons - U << "\blue You are now invisible to normal detection." - for(var/mob/O in oviewers(U)) - O.show_message("[U.name] vanishes into thin air!",1) - return - -/obj/item/clothing/suit/space/space_ninja/proc/cancel_stealth() - var/mob/living/carbon/human/U = affecting - if(s_active) - spawn(0) - anim(U.loc,U,'icons/mob/mob.dmi',,"uncloak",,U.dir) - s_active=!s_active - U.update_icons() //update their icons - U << "\blue You are now visible." - for(var/mob/O in oviewers(U)) - O.show_message("[U.name] appears from thin air!",1) - return 1 - return 0 - -/obj/item/clothing/suit/space/space_ninja/proc/blade_check(mob/living/carbon/U, X = 1)//Default to checking for blade energy. - switch(X) - if(1) - if(istype(U.get_active_hand(), /obj/item/weapon/melee/energy/blade)) - if(cell.charge<=0)//If no charge left. - U.drop_item()//Blade is dropped from active hand (and deleted). - else return 1 - else if(istype(U.get_inactive_hand(), /obj/item/weapon/melee/energy/blade)) - if(cell.charge<=0) - U.swap_hand()//swap hand - U.drop_item()//drop blade - else return 1 - if(2) - if(istype(U.get_active_hand(), /obj/item/weapon/melee/energy/blade)) - U.drop_item() - if(istype(U.get_inactive_hand(), /obj/item/weapon/melee/energy/blade)) - U.swap_hand() - U.drop_item() - return 0 - -/obj/item/clothing/suit/space/space_ninja/examine() - set src in view() - ..() - if(s_initialized) - var/mob/living/carbon/human/U = affecting - if(s_control) - U << "All systems operational. Current energy capacity: [cell.charge]." - if(!kamikaze) - U << "The CLOAK-tech device is [s_active?"active":"inactive"]." - else - U << "\red KAMIKAZE MODE ENGAGED!" - U << "There are [s_bombs] smoke bombs remaining." - U << "There are [a_boost] adrenaline boosters remaining." - else - U << "�rr�R �a��a�� No-�-� f��N� 3RR�r" - -/* -=================================================================================== -<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -=================================================================================== -*/ - -//=======//ENERGY DRAIN PROCS//=======// - -/obj/item/clothing/gloves/space_ninja/proc/drain(target_type as text, target, obj/suit) -//Var Initialize - var/obj/item/clothing/suit/space/space_ninja/S = suit - var/mob/living/carbon/human/U = S.affecting - var/obj/item/clothing/gloves/space_ninja/G = S.n_gloves - - var/drain = 0//To drain from battery. - var/maxcapacity = 0//Safety check for full battery. - var/totaldrain = 0//Total energy drained. - - G.draining = 1 - - if(target_type!="RESEARCH")//I lumped research downloading here for ease of use. - U << "\blue Now charging battery..." - - switch(target_type) - - if("APC") - var/obj/machinery/power/apc/A = target - if(A.cell&&A.cell.charge) - var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() - spark_system.set_up(5, 0, A.loc) - while(G.candrain&&A.cell.charge>0&&!maxcapacity) - drain = rand(G.mindrain,G.maxdrain) - if(A.cell.chargeS.cell.maxcharge) - drain = S.cell.maxcharge-S.cell.charge - maxcapacity = 1//Reached maximum battery capacity. - if (do_after(U,10)) - spark_system.start() - playsound(A.loc, "sparks", 50, 1) - A.cell.charge-=drain - S.cell.charge+=drain - totaldrain+=drain - else break - U << "\blue Gained [totaldrain] energy from the APC." - if(!A.emagged) - flick("apc-spark", src) - A.emagged = 1 - A.locked = 0 - A.update_icon() - else - U << "\red This APC has run dry of power. You must find another source." - - if("SMES") - var/obj/machinery/power/smes/A = target - if(A.charge) - var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() - spark_system.set_up(5, 0, A.loc) - while(G.candrain&&A.charge>0&&!maxcapacity) - drain = rand(G.mindrain,G.maxdrain) - if(A.chargeS.cell.maxcharge) - drain = S.cell.maxcharge-S.cell.charge - maxcapacity = 1 - if (do_after(U,10)) - spark_system.start() - playsound(A.loc, "sparks", 50, 1) - A.charge-=drain - S.cell.charge+=drain - totaldrain+=drain - else break - U << "\blue Gained [totaldrain] energy from the SMES cell." - else - U << "\red This SMES cell has run dry of power. You must find another source." - - if("CELL") - var/obj/item/weapon/cell/A = target - if(A.charge) - if (G.candrain&&do_after(U,30)) - U << "\blue Gained [A.charge] energy from the cell." - if(S.cell.charge+A.charge>S.cell.maxcharge) - S.cell.charge=S.cell.maxcharge - else - S.cell.charge+=A.charge - A.charge = 0 - G.draining = 0 - A.corrupt() - A.updateicon() - else - U << "\red Procedure interrupted. Protocol terminated." - else - U << "\red This cell is empty and of no use." - - if("MACHINERY")//Can be applied to generically to all powered machinery. I'm leaving this alone for now. - var/obj/machinery/A = target - if(A.powered())//If powered. - - var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() - spark_system.set_up(5, 0, A.loc) - - var/obj/machinery/power/apc/B = A.loc.loc:get_apc()//Object.turf.area find APC - if(B)//If APC exists. Might not if the area is unpowered like Centcom. - var/datum/powernet/PN = B.terminal.powernet - while(G.candrain&&!maxcapacity&&!isnull(A))//And start a proc similar to drain from wire. - drain = rand(G.mindrain,G.maxdrain) - var/drained = 0 - if(PN&&do_after(U,10)) - drained = min(drain, PN.avail) - PN.newload += drained - if(drained < drain)//if no power on net, drain apcs - for(var/obj/machinery/power/terminal/T in PN.nodes) - if(istype(T.master, /obj/machinery/power/apc)) - var/obj/machinery/power/apc/AP = T.master - if(AP.operating && AP.cell && AP.cell.charge>0) - AP.cell.charge = max(0, AP.cell.charge - 5) - drained += 5 - else break - S.cell.charge += drained - if(S.cell.charge>S.cell.maxcharge) - totaldrain += (drained-(S.cell.charge-S.cell.maxcharge)) - S.cell.charge = S.cell.maxcharge - maxcapacity = 1 - else - totaldrain += drained - spark_system.start() - if(drained==0) break - U << "\blue Gained [totaldrain] energy from the power network." - else - U << "\red Power network could not be found. Aborting." - else - U << "\red This recharger is not providing energy. You must find another source." - - if("RESEARCH") - var/obj/machinery/A = target - U << "\blue Hacking \the [A]..." - spawn(0) - var/turf/location = get_turf(U) - for(var/mob/living/silicon/ai/AI in player_list) - AI << "\red Network Alert: Hacking attempt detected[location?" in [location]":". Unable to pinpoint location"]." - if(A:files&&A:files.known_tech.len) - for(var/datum/tech/current_data in S.stored_research) - U << "\blue Checking \the [current_data.name] database." - if(do_after(U, S.s_delay)&&G.candrain&&!isnull(A)) - for(var/datum/tech/analyzing_data in A:files.known_tech) - if(current_data.id==analyzing_data.id) - if(analyzing_data.level>current_data.level) - U << "\blue Database: \black UPDATED." - current_data.level = analyzing_data.level - break//Move on to next. - else break//Otherwise, quit processing. - U << "\blue Data analyzed. Process finished." - - if("WIRE") - var/obj/structure/cable/A = target - var/datum/powernet/PN = A.get_powernet() - while(G.candrain&&!maxcapacity&&!isnull(A)) - drain = (round((rand(G.mindrain,G.maxdrain))/2)) - var/drained = 0 - if(PN&&do_after(U,10)) - drained = min(drain, PN.avail) - PN.newload += drained - if(drained < drain)//if no power on net, drain apcs - for(var/obj/machinery/power/terminal/T in PN.nodes) - if(istype(T.master, /obj/machinery/power/apc)) - var/obj/machinery/power/apc/AP = T.master - if(AP.operating && AP.cell && AP.cell.charge>0) - AP.cell.charge = max(0, AP.cell.charge - 5) - drained += 5 - else break - S.cell.charge += drained - if(S.cell.charge>S.cell.maxcharge) - totaldrain += (drained-(S.cell.charge-S.cell.maxcharge)) - S.cell.charge = S.cell.maxcharge - maxcapacity = 1 - else - totaldrain += drained - S.spark_system.start() - if(drained==0) break - U << "\blue Gained [totaldrain] energy from the power network." - - if("MECHA") - var/obj/mecha/A = target - A.occupant_message("\red Warning: Unauthorized access through sub-route 4, block H, detected.") - if(A.get_charge()) - while(G.candrain&&A.cell.charge>0&&!maxcapacity) - drain = rand(G.mindrain,G.maxdrain) - if(A.cell.chargeS.cell.maxcharge) - drain = S.cell.maxcharge-S.cell.charge - maxcapacity = 1 - if (do_after(U,10)) - A.spark_system.start() - playsound(A.loc, "sparks", 50, 1) - A.cell.use(drain) - S.cell.charge+=drain - totaldrain+=drain - else break - U << "\blue Gained [totaldrain] energy from [src]." - else - U << "\red The exosuit's battery has run dry. You must find another source of power." - - if("CYBORG") - var/mob/living/silicon/robot/A = target - A << "\red Warning: Unauthorized access through sub-route 12, block C, detected." - G.draining = 1 - if(A.cell&&A.cell.charge) - while(G.candrain&&A.cell.charge>0&&!maxcapacity) - drain = rand(G.mindrain,G.maxdrain) - if(A.cell.chargeS.cell.maxcharge) - drain = S.cell.maxcharge-S.cell.charge - maxcapacity = 1 - if (do_after(U,10)) - A.spark_system.start() - playsound(A.loc, "sparks", 50, 1) - A.cell.charge-=drain - S.cell.charge+=drain - totaldrain+=drain - else break - U << "\blue Gained [totaldrain] energy from [A]." - else - U << "\red Their battery has run dry of power. You must find another source." - - else//Else nothing :< - - G.draining = 0 - - return - -//=======//GENERAL PROCS//=======// - -/obj/item/clothing/gloves/space_ninja/proc/toggled() - set name = "Toggle Interaction" - set desc = "Toggles special interaction on or off." - set category = "Ninja Equip" - - var/mob/living/carbon/human/U = loc - U << "You [candrain?"disable":"enable"] special interaction." - candrain=!candrain - -/obj/item/clothing/gloves/space_ninja/examine() - set src in view() - ..() - if(!canremove) - var/mob/living/carbon/human/U = loc - U << "The energy drain mechanism is: [candrain?"active":"inactive"]." - -/* -=================================================================================== -<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -=================================================================================== -*/ - -/obj/item/clothing/mask/gas/voice/space_ninja/New() - verbs += /obj/item/clothing/mask/gas/voice/space_ninja/proc/togglev - verbs += /obj/item/clothing/mask/gas/voice/space_ninja/proc/switchm - -//This proc is linked to human life.dm. It determines what hud icons to display based on mind special role for most mobs. -/obj/item/clothing/mask/gas/voice/space_ninja/proc/assess_targets(list/target_list, mob/living/carbon/U) - var/icon/tempHud = 'icons/mob/hud.dmi' - for(var/mob/living/target in target_list) - if(iscarbon(target)) - switch(target.mind.special_role) - if("traitor") - U.client.images += image(tempHud,target,"hudtraitor") - if("Revolutionary","Head Revolutionary") - U.client.images += image(tempHud,target,"hudrevolutionary") - if("Cultist") - U.client.images += image(tempHud,target,"hudcultist") - if("Changeling") - U.client.images += image(tempHud,target,"hudchangeling") - if("Wizard","Fake Wizard") - U.client.images += image(tempHud,target,"hudwizard") - if("Hunter","Sentinel","Drone","Queen") - U.client.images += image(tempHud,target,"hudalien") - if("Syndicate") - U.client.images += image(tempHud,target,"hudoperative") - if("Death Commando") - U.client.images += image(tempHud,target,"huddeathsquad") - if("Space Ninja") - U.client.images += image(tempHud,target,"hudninja") - else//If we don't know what role they have but they have one. - U.client.images += image(tempHud,target,"hudunknown1") - else if(issilicon(target))//If the silicon mob has no law datum, no inherent laws, or a law zero, add them to the hud. - var/mob/living/silicon/silicon_target = target - if(!silicon_target.laws||(silicon_target.laws&&(silicon_target.laws.zeroth||!silicon_target.laws.inherent.len))) - if(isrobot(silicon_target))//Different icons for robutts and AI. - U.client.images += image(tempHud,silicon_target,"hudmalborg") - else - U.client.images += image(tempHud,silicon_target,"hudmalai") - return 1 - -/obj/item/clothing/mask/gas/voice/space_ninja/proc/togglev() - set name = "Toggle Voice" - set desc = "Toggles the voice synthesizer on or off." - set category = "Ninja Equip" - - var/mob/U = loc//Can't toggle voice when you're not wearing the mask. - var/vchange = (alert("Would you like to synthesize a new name or turn off the voice synthesizer?",,"New Name","Turn Off")) - if(vchange=="New Name") - var/chance = rand(1,100) - switch(chance) - if(1 to 50)//High chance of a regular name. - voice = "[rand(0,1)==1?pick(first_names_female):pick(first_names_male)] [pick(last_names)]" - if(51 to 80)//Smaller chance of a clown name. - voice = "[pick(clown_names)]" - if(81 to 90)//Small chance of a wizard name. - voice = "[pick(wizard_first)] [pick(wizard_second)]" - if(91 to 100)//Small chance of an existing crew name. - var/names[] = new() - for(var/mob/living/carbon/human/M in player_list) - if(M==U||!M.client||!M.real_name) continue - names.Add(M.real_name) - voice = !names.len ? "Cuban Pete" : pick(names) - U << "You are now mimicking [voice]." - else - U << "The voice synthesizer is [voice!="Unknown"?"now":"already"] deactivated." - voice = "Unknown" - return - -/obj/item/clothing/mask/gas/voice/space_ninja/proc/switchm() - set name = "Switch Mode" - set desc = "Switches between Night Vision, Meson, or Thermal vision modes." - set category = "Ninja Equip" - //Have to reset these manually since life.dm is retarded like that. Go figure. - //This will only work for humans because only they have the appropriate code for the mask. - var/mob/U = loc - switch(mode) - if(0) - mode=1 - U << "Switching mode to Night Vision." - if(1) - mode=2 - U.see_in_dark = 2 - U << "Switching mode to Thermal Scanner." - if(2) - mode=3 - U.see_invisible = SEE_INVISIBLE_LIVING - U.sight &= ~SEE_MOBS - U << "Switching mode to Meson Scanner." - if(3) - mode=0 - U.sight &= ~SEE_TURFS - U << "Switching mode to Scouter." - -/obj/item/clothing/mask/gas/voice/space_ninja/examine() - set src in view() - ..() - - var/mode - switch(mode) - if(0) - mode = "Scouter" - if(1) - mode = "Night Vision" - if(2) - mode = "Thermal Scanner" - if(3) - mode = "Meson Scanner" - usr << "[mode] is active."//Leaving usr here since it may be on the floor or on a person. - usr << "Voice mimicking algorithm is set [!vchange?"inactive":"active"]." - -/* -=================================================================================== -<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -=================================================================================== -*/ - -/* -It will teleport people to a holding facility after 30 seconds. (Check the process() proc to change where teleport goes) -It is possible to destroy the net by the occupant or someone else. -*/ - -/obj/effect/energy_net - name = "energy net" - desc = "It's a net made of green energy." - icon = 'icons/effects/effects.dmi' - icon_state = "energynet" - - density = 1//Can't pass through. - opacity = 0//Can see through. - mouse_opacity = 1//So you can hit it with stuff. - anchored = 1//Can't drag/grab the trapped mob. - - var/health = 25//How much health it has. - var/mob/living/affecting = null//Who it is currently affecting, if anyone. - var/mob/living/master = null//Who shot web. Will let this person know if the net was successful or failed. - - proc - healthcheck() - if(health <=0) - density = 0 - if(affecting) - var/mob/living/carbon/M = affecting - M.anchored = 0 - for(var/mob/O in viewers(src, 3)) - O.show_message(text("[] was recovered from the energy net!", M.name), 1, text("You hear a grunt."), 2) - if(!isnull(master))//As long as they still exist. - master << "\red ERROR: \black unable to initiate transport protocol. Procedure terminated." - del(src) - return - - process(var/mob/living/carbon/M as mob) - var/check = 30//30 seconds before teleportation. Could be extended I guess. - var/mob_name = affecting.name//Since they will report as null if terminated before teleport. - //The person can still try and attack the net when inside. - while(!isnull(M)&&!isnull(src)&&check>0)//While M and net exist, and 30 seconds have not passed. - check-- - sleep(10) - - if(isnull(M)||M.loc!=loc)//If mob is gone or not at the location. - if(!isnull(master))//As long as they still exist. - master << "\red ERROR: \black unable to locate \the [mob_name]. Procedure terminated." - del(src)//Get rid of the net. - return - - if(!isnull(src))//As long as both net and person exist. - //No need to check for countdown here since while() broke, it's implicit that it finished. - - density = 0//Make the net pass-through. - invisibility = 101//Make the net invisible so all the animations can play out. - health = INFINITY//Make the net invincible so that an explosion/something else won't kill it while, spawn() is running. - for(var/obj/item/W in M) - if(istype(M,/mob/living/carbon/human)) - if(W==M:w_uniform) continue//So all they're left with are shoes and uniform. - if(W==M:shoes) continue - M.drop_from_inventory(W) - - spawn(0) - playsound(M.loc, 'sound/effects/sparks4.ogg', 50, 1) - anim(M.loc,M,'icons/mob/mob.dmi',,"phaseout",,M.dir) - - M.loc = pick(holdingfacility)//Throw mob in to the holding facility. - M << "\red You appear in a strange place!" - - spawn(0) - var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() - spark_system.set_up(5, 0, M.loc) - spark_system.start() - playsound(M.loc, 'sound/effects/phasein.ogg', 25, 1) - playsound(M.loc, 'sound/effects/sparks2.ogg', 50, 1) - anim(M.loc,M,'icons/mob/mob.dmi',,"phasein",,M.dir) - del(src)//Wait for everything to finish, delete the net. Else it will stop everything once net is deleted, including the spawn(0). - - for(var/mob/O in viewers(src, 3)) - O.show_message(text("[] vanished!", M), 1, text("You hear sparks flying!"), 2) - - if(!isnull(master))//As long as they still exist. - master << "\blue SUCCESS: \black transport procedure of \the [affecting] complete." - - M.anchored = 0//Important. - - else//And they are free. - M << "\blue You are free of the net!" - return - - bullet_act(var/obj/item/projectile/Proj) - health -= Proj.damage - healthcheck() - ..() - - ex_act(severity) - switch(severity) - if(1.0) - health-=50 - if(2.0) - health-=50 - if(3.0) - health-=prob(50)?50:25 - healthcheck() - return - - blob_act() - health-=50 - healthcheck() - return - - meteorhit() - health-=50 - healthcheck() - return - - hitby(AM as mob|obj) - ..() - for(var/mob/O in viewers(src, null)) - O.show_message(text("\red [src] was hit by [AM]."), 1) - var/tforce = 0 - if(ismob(AM)) - tforce = 10 - else - tforce = AM:throwforce - playsound(src.loc, 'sound/weapons/slash.ogg', 80, 1) - health = max(0, health - tforce) - healthcheck() - ..() - return - - attack_hand() - if (HULK in usr.mutations) - usr << text("\blue You easily destroy the energy net.") - for(var/mob/O in oviewers(src)) - O.show_message(text("\red [] rips the energy net apart!", usr), 1) - health-=50 - healthcheck() - return - - attack_paw() - return attack_hand() - - attack_alien() - if (islarva(usr)) - return - usr << text("\green You claw at the net.") - for(var/mob/O in oviewers(src)) - O.show_message(text("\red [] claws at the energy net!", usr), 1) - playsound(src.loc, 'sound/weapons/slash.ogg', 80, 1) - health -= rand(10, 20) - if(health <= 0) - usr << text("\green You slice the energy net to pieces.") - for(var/mob/O in oviewers(src)) - O.show_message(text("\red [] slices the energy net apart!", usr), 1) - healthcheck() - return - - attackby(obj/item/weapon/W as obj, mob/user as mob) - var/aforce = W.force - health = max(0, health - aforce) - healthcheck() - ..() - return - -proc/create_ninja_mind(key) - var/datum/mind/Mind = new /datum/mind(key) - Mind.assigned_role = "MODE" - Mind.special_role = "Space Ninja" - ticker.mode.traitors |= Mind //Adds them to current traitor list. Which is really the extra antagonist list. ->>>>>>> f993585... [tumblr approved] Sausage Party Reduction:code/modules/events/ninja.dm - return Mind \ No newline at end of file diff --git a/code/modules/events/tgevents/prison_break.dm b/code/modules/events/tgevents/prison_break.dm deleted file mode 100644 index d7c0cc48fbb..00000000000 --- a/code/modules/events/tgevents/prison_break.dm +++ /dev/null @@ -1,52 +0,0 @@ -/datum/round_event_control/prison_break - name = "Prison Break" - typepath = /datum/round_event/prison_break - max_occurrences = 2 - -/datum/round_event/prison_break - announceWhen = 50 - endWhen = 20 - var/list/area/prisonAreas = list() - - -/datum/round_event/prison_break/setup() - announceWhen = rand(50, 60) - endWhen = rand(20, 30) - - for(var/area/security/A in world) - if(istype(A, /area/security/prison) || istype(A, /area/security/brig)) - prisonAreas += A - - -/datum/round_event/prison_break/announce() - if(prisonAreas && prisonAreas.len > 0) - command_alert("Gr3y.T1d3 virus detected in [station_name()] imprisonment subroutines. Recommend station AI involvement.", "Security Alert") - else - world.log << "ERROR: Could not initate grey-tide. Unable find prison or brig area." - kill() - - -/datum/round_event/prison_break/start() - for(var/area/A in prisonAreas) - for(var/obj/machinery/light/L in A) - L.flicker(10) - -/datum/round_event/prison_break/end() - for(var/area/A in prisonAreas) - for(var/obj/O in A) - if(istype(O,/obj/machinery/power/apc)) - var/obj/machinery/power/apc/temp = O - temp.overload_lighting() - else if(istype(O,/obj/structure/closet/secure_closet/brig)) - var/obj/structure/closet/secure_closet/brig/temp = O - temp.locked = 0 - temp.icon_state = temp.icon_closed - else if(istype(O,/obj/machinery/door/airlock/security)) - var/obj/machinery/door/airlock/security/temp = O - temp.prison_open() - else if(istype(O,/obj/machinery/door/airlock/glass_security)) - var/obj/machinery/door/airlock/glass_security/temp = O - temp.prison_open() - else if(istype(O,/obj/machinery/door_timer)) - var/obj/machinery/door_timer/temp = O - temp.releasetime = 1 \ No newline at end of file diff --git a/code/modules/events/tgevents/radiation_storm.dm b/code/modules/events/tgevents/radiation_storm.dm deleted file mode 100644 index 0012fbb42cb..00000000000 --- a/code/modules/events/tgevents/radiation_storm.dm +++ /dev/null @@ -1,55 +0,0 @@ -/datum/round_event_control/radiation_storm - name = "Radiation Storm" - typepath = /datum/round_event/radiation_storm - max_occurrences = 1 - -/datum/round_event/radiation_storm - var/list/protected_areas = list(/area/maintenance, /area/turret_protected/ai_upload, /area/turret_protected/ai_upload_foyer, /area/turret_protected/ai) - - -/datum/round_event/radiation_storm/setup() - startWhen = rand(10, 20) - endWhen = startWhen + 5 - -/datum/round_event/radiation_storm/announce() - command_alert("High levels of radiation detected near the station. Maintenance is best shielded from radiation.", "Anomaly Alert") - world << sound('sound/AI/radiation.ogg') //sound not longer matches the text, but an audible warning is probably good - - -/datum/round_event/radiation_storm/start() - for(var/mob/living/carbon/C in living_mob_list) - var/turf/T = get_turf(C) - if(!T) continue - if(T.z != 1) continue - - var/skip = 0 - for(var/a in protected_areas) - if(istype(T.loc, a)) - skip = 1 - continue - - if(skip) continue - - if(locate(/obj/machinery/power/apc) in T) //damn you maint APCs!! - continue - - if(istype(C, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = C - H.apply_effect((rand(15, 75)), IRRADIATE, 0) - if(prob(5)) - H.apply_effect((rand(90, 150)), IRRADIATE, 0) - if(prob(25)) - if(prob(75)) - randmutb(H) - domutcheck(H, null, 1) - else - randmutg(H) - domutcheck(H, null, 1) - - else if(istype(C, /mob/living/carbon/monkey)) - var/mob/living/carbon/monkey/M = C - M.apply_effect((rand(15, 75)), IRRADIATE, 0) - - -/datum/round_event/radiation_storm/end() - command_alert("The radiation threat has passed. Please return to your workplaces.", "Anomaly Alert") \ No newline at end of file diff --git a/code/modules/events/tgevents/spacevine.dm b/code/modules/events/tgevents/spacevine.dm deleted file mode 100644 index 2ebf4f12d26..00000000000 --- a/code/modules/events/tgevents/spacevine.dm +++ /dev/null @@ -1,266 +0,0 @@ -/var/global/spacevines_spawned = 0 - -/datum/event/spacevine -// name = "Spacevine" -// typepath = /datum/event/spacevine -// weight = 15 -// max_occurrences = 3 - -/datum/event/spacevine/start() - var/list/turfs = list() //list of all the empty floor turfs in the hallway areas - - for(var/area/hallway/A in world) - for(var/turf/simulated/floor/F in A) - if(!F.contents.len) - turfs += F - - if(turfs.len) //Pick a turf to spawn at if we can - var/turf/simulated/floor/T = pick(turfs) - spawn(0) new/obj/effect/spacevine_controller(T) //spawn a controller at turf - spacevines_spawned = 1 - - - - -// SPACE VINES (Note that this code is very similar to Biomass code) -/obj/effect/spacevine - name = "space vines" - desc = "An extremely expansionistic species of vine." - icon = 'icons/effects/spacevines.dmi' - icon_state = "Light1" - anchored = 1 - density = 0 - layer = 5 - pass_flags = PASSTABLE | PASSGRILLE - var/energy = 0 - var/obj/effect/spacevine_controller/master = null - var/mob/living/buckled_mob - - New() - return - - Destroy() - if(master) - master.vines -= src - master.growth_queue -= src - ..() - - -/obj/effect/spacevine/attackby(obj/item/weapon/W as obj, mob/user as mob) - if (!W || !user || !W.type) return - switch(W.type) - if(/obj/item/weapon/circular_saw) del src - if(/obj/item/weapon/kitchen/utensil/knife) del src - if(/obj/item/weapon/scalpel) del src - if(/obj/item/weapon/twohanded/fireaxe) del src - if(/obj/item/weapon/hatchet) del src - if(/obj/item/weapon/melee/energy) del src - - //less effective weapons - if(/obj/item/weapon/wirecutters) - if(prob(25)) del src - if(/obj/item/weapon/shard) - if(prob(25)) del src - - else //weapons with subtypes - if(istype(W, /obj/item/weapon/melee/energy/sword)) del src - else if(istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - if(WT.remove_fuel(0, user)) del src - else - manual_unbuckle(user) - return - //Plant-b-gone damage is handled in its entry in chemistry-reagents.dm - ..() - - -/obj/effect/spacevine/attack_hand(mob/user as mob) - manual_unbuckle(user) - - -/obj/effect/spacevine/attack_paw(mob/user as mob) - manual_unbuckle(user) - -/obj/effect/spacevine/proc/unbuckle() - if(buckled_mob) - if(buckled_mob.buckled == src) //this is probably unneccesary, but it doesn't hurt - buckled_mob.buckled = null - buckled_mob.anchored = initial(buckled_mob.anchored) - buckled_mob.update_canmove() - buckled_mob = null - return - -/obj/effect/spacevine/proc/manual_unbuckle(mob/user as mob) - if(buckled_mob) - if(prob(50)) - if(buckled_mob.buckled == src) - if(buckled_mob != user) - buckled_mob.visible_message(\ - "[user.name] frees [buckled_mob.name] from the vines.",\ - "[user.name] frees you from the vines.",\ - "You hear shredding and ripping.") - else - buckled_mob.visible_message(\ - "[buckled_mob.name] struggles free of the vines.",\ - "You untangle the vines from around yourself.",\ - "You hear shredding and ripping.") - unbuckle() - else - var/text = pick("rips","tears","pulls") - user.visible_message(\ - "[user.name] [text] at the vines.",\ - "You [text] at the vines.",\ - "You hear shredding and ripping.") - return - -/obj/effect/spacevine_controller - var/list/obj/effect/spacevine/vines = list() - var/list/growth_queue = list() - var/reached_collapse_size - var/reached_slowdown_size - //What this does is that instead of having the grow minimum of 1, required to start growing, the minimum will be 0, - //meaning if you get the spacevines' size to something less than 20 plots, it won't grow anymore. - - New() - if(!istype(src.loc,/turf/simulated/floor)) - del(src) - - spawn_spacevine_piece(src.loc) - processing_objects.Add(src) - - Destroy() - processing_objects.Remove(src) - ..() - - proc/spawn_spacevine_piece(var/turf/location) - var/obj/effect/spacevine/SV = new(location) - growth_queue += SV - vines += SV - SV.master = src - - process() - if(!vines) - del(src) //space vines exterminated. Remove the controller - return - if(!growth_queue) - del(src) //Sanity check - return - if(vines.len >= 250 && !reached_collapse_size) - reached_collapse_size = 1 - if(vines.len >= 30 && !reached_slowdown_size ) - reached_slowdown_size = 1 - - var/length = 0 - if(reached_collapse_size) - length = 0 - else if(reached_slowdown_size) - if(prob(25)) - length = 1 - else - length = 0 - else - length = 1 - length = min( 30 , max( length , vines.len / 5 ) ) - var/i = 0 - var/list/obj/effect/spacevine/queue_end = list() - - for( var/obj/effect/spacevine/SV in growth_queue ) - i++ - queue_end += SV - growth_queue -= SV - if(SV.energy < 2) //If tile isn't fully grown - if(prob(20)) - SV.grow() - else //If tile is fully grown - SV.buckle_mob() - - //if(prob(25)) - SV.spread() - if(i >= length) - break - - growth_queue = growth_queue + queue_end - //sleep(5) - //src.process() - -/obj/effect/spacevine/proc/grow() - if(!energy) - src.icon_state = pick("Med1", "Med2", "Med3") - energy = 1 - SetOpacity(1) - layer = 5 - else - src.icon_state = pick("Hvy1", "Hvy2", "Hvy3") - energy = 2 - -/obj/effect/spacevine/proc/buckle_mob() - if(!buckled_mob && prob(25)) - for(var/mob/living/carbon/V in src.loc) - if((V.stat != DEAD) && (V.buckled != src)) //if mob not dead or captured - V.buckled = src - V.loc = src.loc - V.update_canmove() - src.buckled_mob = V - V << "The vines [pick("wind", "tangle", "tighten")] around you!" - break //only capture one mob at a time. - -/obj/effect/spacevine/proc/spread() - var/direction = pick(cardinal) - var/step = get_step(src,direction) - if(istype(step,/turf/simulated/floor)) - var/turf/simulated/floor/F = step - if(!locate(/obj/effect/spacevine,F)) - if(F.Enter(src)) - if(master) - master.spawn_spacevine_piece( F ) - -/* -/obj/effect/spacevine/proc/Life() - if (!src) return - var/Vspread - if (prob(50)) Vspread = locate(src.x + rand(-1,1),src.y,src.z) - else Vspread = locate(src.x,src.y + rand(-1, 1),src.z) - var/dogrowth = 1 - if (!istype(Vspread, /turf/simulated/floor)) dogrowth = 0 - for(var/obj/O in Vspread) - if (istype(O, /obj/structure/window) || istype(O, /obj/effect/forcefield) || istype(O, /obj/effect/blob) || istype(O, /obj/effect/alien/weeds) || istype(O, /obj/effect/spacevine)) dogrowth = 0 - if (istype(O, /obj/machinery/door/)) - if(O:p_open == 0 && prob(50)) O:open() - else dogrowth = 0 - if (dogrowth == 1) - var/obj/effect/spacevine/B = new /obj/effect/spacevine(Vspread) - B.icon_state = pick("vine-light1", "vine-light2", "vine-light3") - spawn(20) - if(B) - B.Life() - src.growth += 1 - if (src.growth == 10) - src.name = "Thick Space Kudzu" - src.icon_state = pick("vine-med1", "vine-med2", "vine-med3") - src.opacity = 1 - src.waittime = 80 - if (src.growth == 20) - src.name = "Dense Space Kudzu" - src.icon_state = pick("vine-hvy1", "vine-hvy2", "vine-hvy3") - src.density = 1 - spawn(src.waittime) - if (src.growth < 20) src.Life() - -*/ - -/obj/effect/spacevine/ex_act(severity) - switch(severity) - if(1.0) - del(src) - return - if(2.0) - if (prob(90)) - del(src) - return - if(3.0) - if (prob(50)) - del(src) - return - return - - diff --git a/code/modules/events/tgevents/spontaneous_appendicitis.dm b/code/modules/events/tgevents/spontaneous_appendicitis.dm deleted file mode 100644 index 02859d551a6..00000000000 --- a/code/modules/events/tgevents/spontaneous_appendicitis.dm +++ /dev/null @@ -1,20 +0,0 @@ -/datum/round_event_control/spontaneous_appendicitis - name = "Spontaneous Appendicitis" - typepath = /datum/round_event/spontaneous_appendicitis - weight = 20 - max_occurrences = 4 - earliest_start = 6000 - -/datum/round_event/spontaneous_appendicitis/start() - for(var/mob/living/carbon/human/H in shuffle(living_mob_list)) - var/foundAlready = 0 //don't infect someone that already has the virus - for(var/datum/disease/D in H.viruses) - foundAlready = 1 - if(H.stat == 2 || foundAlready) - continue - - var/datum/disease/D = new /datum/disease/appendicitis - D.holder = H - D.affected_mob = H - H.viruses += D - break \ No newline at end of file diff --git a/code/modules/events/tgevents/vent_clog.dm b/code/modules/events/tgevents/vent_clog.dm index 0b14faf4ec7..885552dff28 100755 --- a/code/modules/events/tgevents/vent_clog.dm +++ b/code/modules/events/tgevents/vent_clog.dm @@ -1,4 +1,3 @@ - /datum/event/vent_clog announceWhen = 0 startWhen = 5 diff --git a/code/modules/events/tgevents/weightless.dm b/code/modules/events/tgevents/weightless.dm deleted file mode 100644 index c0035bfbfd6..00000000000 --- a/code/modules/events/tgevents/weightless.dm +++ /dev/null @@ -1,31 +0,0 @@ -/datum/round_event_control/weightless - name = "Gravity Systems Failure" - typepath = /datum/round_event/weightless - weight = 15 - -/datum/round_event/weightless - startWhen = 5 - endWhen = 65 - -/datum/round_event/weightless/setup() - startWhen = rand(0,10) - endWhen = rand(40,80) - -/datum/round_event/weightless/announce() - command_alert("Warning: Failsafes for the station's artificial gravity arrays have been triggered. Please be aware that if this problem recurs it may result in formation of gravitational anomalies. Nanotrasen wishes to remind you that the unauthorised formation of anomalies within Nanotrasen facilities is strictly prohibited by health and safety regulation [rand(99,9999)][pick("a","b","c")]:subclause[rand(1,20)][pick("a","b","c")].") - -/datum/round_event/weightless/start() - for(var/area/A in world) - A.gravitychange(0) - - if(control) - control.weight *= 2 - -/datum/round_event/weightless/end() - for(var/area/A in world) - A.gravitychange(1) - - if(announceWhen >= 0) - command_alert("Artificial gravity arrays are now functioning within normal parameters. Please report any irregularities to your respective head of staff.") - - diff --git a/code/modules/events/tgevents/wormholes.dm b/code/modules/events/tgevents/wormholes.dm deleted file mode 100644 index 42235bffa97..00000000000 --- a/code/modules/events/tgevents/wormholes.dm +++ /dev/null @@ -1,75 +0,0 @@ -/datum/round_event_control/wormholes - name = "Wormholes" - typepath = /datum/round_event/wormholes - max_occurrences = 3 - weight = 2 - - -/datum/round_event/wormholes - announceWhen = 10 - endWhen = 60 - - var/list/pick_turfs = list() - var/list/wormholes = list() - var/shift_frequency = 3 - var/number_of_wormholes = 400 - -/datum/round_event/wormholes/setup() - announceWhen = rand(0, 20) - endWhen = rand(40, 80) - -/datum/round_event/wormholes/start() - for(var/turf/simulated/floor/T in world) - if(T.z == 1) - pick_turfs += T - - for(var/i = 1, i <= number_of_wormholes, i++) - var/turf/T = pick(pick_turfs) - wormholes += new /obj/effect/portal/wormhole(T, null, null, -1) - -/datum/round_event/wormholes/announce() - command_alert("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert") - for(var/mob/M in player_list) - if(!istype(M, /mob/new_player)) - M << sound('sound/AI/spanomalies.ogg') - -/datum/round_event/wormholes/tick() - if(activeFor % shift_frequency == 0) - for(var/obj/effect/portal/wormhole/O in wormholes) - var/turf/T = pick(pick_turfs) - if(T) O.loc = T - -/datum/round_event/wormholes/end() - portals.Remove(wormholes) - for(var/obj/effect/portal/wormhole/O in wormholes) - O.loc = null - wormholes.Cut() - - -/obj/effect/portal/wormhole - name = "wormhole" - desc = "It looks highly unstable; It could close at any moment." - icon = 'icons/obj/objects.dmi' - icon_state = "anom" - failchance = 0 - -/obj/effect/portal/wormhole/attack_hand(mob/user) - teleport(user) - -/obj/effect/portal/wormhole/attackby(obj/item/I, mob/user) - teleport(user) - -/obj/effect/portal/wormhole/teleport(atom/movable/M) - if(istype(M, /obj/effect)) //sparks don't teleport - return - if(M.anchored && istype(M, /obj/mecha)) - return - - if(istype(M, /atom/movable)) - var/turf/target - if(portals.len) - var/obj/effect/portal/P = pick(portals) - if(P && isturf(P.loc)) - target = P.loc - if(!target) return - do_teleport(M, target, 1, 1, 0, 0) ///You will appear adjacent to the beacon \ No newline at end of file diff --git a/code/modules/events/viral_infection.dm b/code/modules/events/viral_infection.dm index 846ab43de90..876e3453896 100644 --- a/code/modules/events/viral_infection.dm +++ b/code/modules/events/viral_infection.dm @@ -1,6 +1,6 @@ datum/event/viral_infection - var/severity = 1 + severity = 1 datum/event/viral_infection/setup() announceWhen = rand(0, 3000) diff --git a/code/modules/events/viral_outbreak.dm b/code/modules/events/viral_outbreak.dm index c991354afad..f11acd511f3 100644 --- a/code/modules/events/viral_outbreak.dm +++ b/code/modules/events/viral_outbreak.dm @@ -1,6 +1,6 @@ datum/event/viral_outbreak - var/severity = 1 + severity = 1 datum/event/viral_outbreak/setup() announceWhen = rand(0, 3000) diff --git a/code/modules/events/wallrot.dm b/code/modules/events/wallrot.dm index 13da0842b02..dfaedf451ec 100644 --- a/code/modules/events/wallrot.dm +++ b/code/modules/events/wallrot.dm @@ -2,7 +2,7 @@ datum/event/wallrot - var/severity = 1 + severity = 1 datum/event/wallrot/setup() announceWhen = rand(0, 300) diff --git a/code/modules/events/zombie_outbreak.dm b/code/modules/events/zombie_outbreak.dm deleted file mode 100644 index ea6a863496e..00000000000 --- a/code/modules/events/zombie_outbreak.dm +++ /dev/null @@ -1,50 +0,0 @@ -/datum/event/zombie_outbreak - startWhen = 40 - announceWhen = 20 - endWhen = 800 - oneShot = 1 //DON'T SPAWN ANOTHER OUTBREAK, one is bad enough - var/spawncount = 12 //Base zombie count - -/datum/event/carp_migration/setup() - announceWhen = rand(10, 40) - startWhen = rand(announceWhen, 50) //Doesn't pick anything before announcement - endWhen = rand(600,1200) - -/datum/event/zombie_outbreak/start() - var/count = 0 - if(player_list.len < 12) - count = 2 - else if(player_list.len < 22) - count = 1 - else - count = 0 - for(count, count < 3, count++) - for(var/mob/living/carbon/F in living_mob_list) //Has a chance to spawn zombies on players or mobs - sleep(20) - if(prob(40)) - var/mob/living/simple_animal/hostile/zombie/ZEDS = new(F.loc) //Have to give a var that's under zombie and call new. - playsound(F.loc, 'sound/effects/phasein.ogg', vol = 80, vary = 1,extrarange = 6) - -//Ripped spider_infestation code - var/list/vents = list() - for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in world) - if(temp_vent.loc.z == 1 && !temp_vent.welded && temp_vent.network) - if(temp_vent.network.normal_members.len > 50) - vents += temp_vent - - while((spawncount >= 1) && vents.len) - sleep(5) - var/obj/vent = pick(vents) - var/mob/living/simple_animal/hostile/zombie/ZEDS = new(vent.loc) - playsound(vent.loc, 'sound/effects/phasein.ogg', vol = 80, vary = 1,extrarange = 6) - vents -= vent - spawncount-- - -/datum/event/zombie_outbreak/announce() - var/alertshouted = pick( - "A Boscalian ship has jumped into our sector.", - "Unidentified vessel has passed our perimeter, detecting blue technology.", - "Detecting Syndicate signal.", - "Biological scans picking up level 10 biohazard. Please find the nearest BioHazard locker and prepare for sterilization procedures.") - command_alert(alertshouted) - world << sound('sound/AI/spanomalies.ogg') \ No newline at end of file diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 25f4454f8ce..58fff0705ce 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -237,7 +237,7 @@ /mob/living/carbon/can_use_vents() return - + /mob/living/proc/handle_ventcrawl(var/obj/machinery/atmospherics/unary/vent_pump/vent_found = null, var/ignore_items = 0) // -- TLE -- Merged by Carn if(stat) src << "You must be conscious to do this!" @@ -557,7 +557,7 @@ /mob/living/carbon/proc/spawn_larvae() set category = "Alien" - set name = "Reproduce" + set name = "Reproduce (100)" set desc = "Spawn several young." var/mob/living/simple_animal/borer/B = has_brain_worms() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 31c3de35fb6..1b12f3595fd 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -283,7 +283,7 @@ if("Combat") module = new /obj/item/weapon/robot_module/combat(src) - module_sprites["Combat Android"] = "droid-combat" + module_sprites["Combat Android"] = "droidcombat" channels = list("Security" = 1) if("Hunter") diff --git a/code/modules/mob/living/simple_animal/borer.dm b/code/modules/mob/living/simple_animal/borer.dm index 0bccafc9d7c..56ca314b62e 100644 --- a/code/modules/mob/living/simple_animal/borer.dm +++ b/code/modules/mob/living/simple_animal/borer.dm @@ -12,6 +12,12 @@ return if(istype(src.loc,/mob/living/simple_animal/borer)) + message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) + if (!message) + return + log_say("[key_name(src)] : [message]") + if (stat == 2) + return say_dead(message) var/mob/living/simple_animal/borer/B = src.loc src << "You whisper silently, \"[message]\"" B.host << "The captive mind of [src] whispers, \"[message]\"" @@ -95,7 +101,6 @@ /mob/living/simple_animal/borer/New(var/by_gamemode=0) ..() truename = "[pick("Primary","Secondary","Tertiary","Quaternary")] [rand(1000,9999)]" - host_brain = new/mob/living/captive_brain(src) if(!by_gamemode) request_player() @@ -215,10 +220,6 @@ src << "You cannot do that in your current state." return - if(!host.internal_organs_by_name["brain"]) //this should only run in admin-weirdness situations, but it's here non the less - RR - src << "There is no brain here for us to command!" - return - if(docile) src << "\blue You are feeling far too docile to do that." return @@ -233,6 +234,8 @@ src << "\red You plunge your probosci deep into the cortex of the host brain, interfacing directly with their nervous system." host << "\red You feel a strange shifting sensation behind your eyes as an alien consciousness displaces yours." + host.attack_log += text("\[[time_stamp()]\] [src.name] ([src.ckey]) has assumed control of [host.name] ([host.ckey])") + msg_admin_attack("[src.name] ([src.ckey]) has assumed control of [host.name] ([host.ckey]) (JMP)") // host -> brain var/h2b_id = host.computer_id var/h2b_ip= host.lastKnownIP @@ -244,6 +247,8 @@ host_brain.ckey = host.ckey + host_brain.name = host.name + if(!host_brain.computer_id) host_brain.computer_id = h2b_id @@ -274,7 +279,7 @@ /mob/living/simple_animal/borer/verb/secrete_chemicals() set category = "Alien" - set name = "Secrete Chemicals" + set name = "Secrete Chemicals (50)" set desc = "Push some chemicals into your host's bloodstream." if(!host) @@ -291,9 +296,9 @@ if(chemicals < 50) src << "You don't have enough chemicals!" - var/chem = input("Select a chemical to secrete.", "Chemicals") in list("bicaridine","tramadol","hyperzine","alkysine") + var/chem = input("Select a chemical to secrete.", "Chemicals") as null|anything in list("alkysine","bicaridine","hyperzine","tramadol") - if(chemicals < 50 || !host || controlling || !src || stat) //Sanity check. + if(!chem || chemicals < 50 || !host || controlling || !src || stat) //Sanity check. return src << "\red You squirt a measure of [chem] from your reservoirs into [host]'s bloodstream." @@ -331,6 +336,7 @@ src << "You wiggle out of [host]'s ear and plop to the ground." detatch() + leave_host() mob/living/simple_animal/borer/proc/detatch() @@ -341,22 +347,19 @@ mob/living/simple_animal/borer/proc/detatch() var/datum/organ/external/head = H.get_organ("head") head.implants -= src - src.loc = get_turf(host) controlling = 0 reset_view(null) machine = null - host.reset_view(null) - host.machine = null - host.verbs -= /mob/living/carbon/proc/release_control host.verbs -= /mob/living/carbon/proc/punish_host host.verbs -= /mob/living/carbon/proc/spawn_larvae if(host_brain) - + host.attack_log += text("\[[time_stamp()]\] [host_brain.name] ([host_brain.ckey]) has taken control back from [src.name] ([host.ckey])") + msg_admin_attack("[host_brain.name] ([host_brain.ckey]) has taken control back from [src.name] ([host.ckey]) (JMP)") // host -> self var/h2s_id = host.computer_id var/h2s_ip= host.lastKnownIP @@ -387,11 +390,23 @@ mob/living/simple_animal/borer/proc/detatch() del(host_brain) + return + +/mob/living/simple_animal/borer/proc/leave_host() + + if(!host) return + + src.loc = get_turf(host) + + reset_view(null) + machine = null + + host.reset_view(null) + host.machine = null + var/mob/living/H = host H.status_flags &= ~PASSEMOTES - host = null - return /mob/living/simple_animal/borer/verb/infest() @@ -483,7 +498,7 @@ mob/living/simple_animal/borer/proc/detatch() set desc = "Enter an air vent and crawl through the pipe system." set category = "Alien" handle_ventcrawl() - + /mob/living/simple_animal/borer/can_use_vents() return diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 47e84b497cb..0432e4baef6 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -150,6 +150,11 @@ proc/isorgan(A) if(L && L.implanted) return 1 return 0 + +proc/isnewplayer(A) + if(istype(A, /mob/new_player)) + return 1 + return 0 proc/hasorgans(A) return ishuman(A) diff --git a/code/modules/power/cable_logic.dm b/code/modules/power/cable_logic.dm index 3a3b6f9180e..915f8c7f624 100644 --- a/code/modules/power/cable_logic.dm +++ b/code/modules/power/cable_logic.dm @@ -85,7 +85,7 @@ var/dir_output = 1 var/obj/structure/cable/input var/obj/structure/cable/output - icon = 'icons/obj/pipes/heat.dmi' + icon = 'icons/atmos/heat.dmi' icon_state = "intact" /obj/machinery/logic/oneinput/process() diff --git a/code/modules/shuttles/departmental.dm b/code/modules/shuttles/departmental.dm index f4ed5419f25..46eea928fb9 100644 --- a/code/modules/shuttles/departmental.dm +++ b/code/modules/shuttles/departmental.dm @@ -9,10 +9,6 @@ shuttle_tag = "Engineering" req_one_access_txt = "10;24" circuit = /obj/item/weapon/circuitboard/engineering_shuttle - -/obj/machinery/computer/shuttle_control/engineering/launch() - usr << "The engineering shuttle is currently undergoing maintenance and is therefore unavailable." - return /obj/machinery/computer/shuttle_control/research name = "Research Shuttle Console" diff --git a/config/example/config.txt b/config/example/config.txt index 8f305573c67..ad4fc4c110f 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -78,7 +78,7 @@ PROBABILITY EXTEND-A-TRAITORMONGOUS 6 PROBABILITY TRAITORCHAN 4 PROBABILITY BLOB 4 PROBABILITY REVOLUTION 2 -PROBABILITY TRADE 4 +PROBABILITY HEIST 4 PROBABILITY WIZARD 2 PROBABILITY VAMPIRE 4 PROBABILITY RAGINMAGES 0 @@ -87,7 +87,6 @@ PROBABILITY XENOS 2 PROBABILITY MUTINY 1 PROBABILITY NATIONS 0 PROBABILITY METEOR 0 -PROBABILITY HEIST 0 ## Hash out to disable random events during the round. ALLOW_RANDOM_EVENTS @@ -241,4 +240,21 @@ GHOST_INTERACTION ## Path to the python2 executable on the system. Leave blank for default. ## Default is "python" on Windows, "/usr/bin/env python2" on UNIX. -#PYTHON_PATH pythonw \ No newline at end of file +#PYTHON_PATH pythonw + +## Expected round length in minutes +EXPECTED_ROUND_LENGTH 120 + +## The lower delay between events in minutes. +## Affect mundane, moderate, and major events respectively +EVENT_DELAY_LOWER 10;30;50 + +## The upper delay between events in minutes. +## Affect mundane, moderate, and major events respectively +EVENT_DELAY_UPPER 15;45;70 + +## The delay until the first time an event of the given severity runs in minutes. +## Unset setting use the EVENT_DELAY_LOWER and EVENT_DELAY_UPPER values instead. +# EVENT_CUSTOM_START_MINOR 10;15 +# EVENT_CUSTOM_START_MODERATE 30;45 +EVENT_CUSTOM_START_MAJOR 80;100 \ No newline at end of file diff --git a/icons/atmos/tank.dmi b/icons/atmos/tank.dmi index 322f43e8f09..f4f87d5ac53 100644 Binary files a/icons/atmos/tank.dmi and b/icons/atmos/tank.dmi differ diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi index 90de8149672..d295d948414 100644 Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi index 9ecb5b7a1c7..f0ddc3b8170 100644 Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ diff --git a/icons/obj/pipe-item.dmi b/icons/obj/pipe-item.dmi index b8e9bee2804..2fa39fec047 100644 Binary files a/icons/obj/pipe-item.dmi and b/icons/obj/pipe-item.dmi differ diff --git a/icons/turf/areas.dmi b/icons/turf/areas.dmi index aed88f9d397..ae0bd0b88d3 100755 Binary files a/icons/turf/areas.dmi and b/icons/turf/areas.dmi differ diff --git a/icons/turf/shuttle.dmi b/icons/turf/shuttle.dmi index 31f8cfe7863..c3fbb5e7d6b 100644 Binary files a/icons/turf/shuttle.dmi and b/icons/turf/shuttle.dmi differ diff --git a/maps/cyberiad.dmm b/maps/cyberiad.dmm index b69f8636e4c..3b029be437d 100644 --- a/maps/cyberiad.dmm +++ b/maps/cyberiad.dmm @@ -90,7 +90,7 @@ "abL" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/table,/obj/item/weapon/paper,/obj/machinery/light/small{dir = 1},/obj/item/weapon/pen,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area/security/permabrig) "abM" = (/obj/structure/grille,/obj/structure/sign/securearea,/turf/simulated/floor/airless{icon_state = "circuit"},/area) "abN" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/machinery/light/small{dir = 8},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1475; listening = 1; name = "Station Intercom (Security)"; pixel_x = -30; pixel_y = 0},/turf/simulated/floor/plating,/area/security/permabrig) -"abO" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/simulated/floor/plating,/area/security/permabrig) +"abO" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4; level = 1},/turf/simulated/floor/plating,/area/security/permabrig) "abP" = (/obj/machinery/atmospherics/valve{dir = 4},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/plating,/area/security/permabrig) "abQ" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/plating,/area/security/permabrig) "abR" = (/turf/simulated/floor/plating,/area/security/permabrig) @@ -107,8 +107,8 @@ "acc" = (/obj/structure/lattice,/obj/machinery/camera{c_tag = "Brig Secure Armory Exterior North"; dir = 4; network = list("SS13")},/turf/space,/area) "acd" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/table,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/glasses/sunglasses/blindfold,/turf/simulated/floor{icon_state = "dark"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) "ace" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/table,/obj/item/device/radio/electropack,/obj/item/device/assembly/signaler{code = 2; frequency = 1449},/turf/simulated/floor{icon_state = "dark"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) -"acf" = (/obj/machinery/light/small{dir = 1},/obj/machinery/power/apc{dir = 1; name = "Prisoner Transfer Center APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/stool/bed/chair{name = "Electric Chair"},/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) -"acg" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/effect/decal/cleanable/cobweb2,/obj/structure/table,/obj/item/weapon/wrench,/obj/item/weapon/screwdriver,/obj/item/clothing/head/helmet,/turf/simulated/floor{icon_state = "dark"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) +"acf" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/effect/decal/cleanable/cobweb2,/obj/structure/table,/obj/item/weapon/wrench,/obj/item/weapon/screwdriver,/obj/item/clothing/head/helmet,/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) +"acg" = (/obj/machinery/power/apc{dir = 1; name = "Prisoner Transfer Center APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/stool/bed/chair{name = "Electric Chair"},/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) "ach" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall/r_wall,/area) "aci" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/permabrig) "acj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/security/hos) @@ -295,7 +295,7 @@ "afI" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/table/reinforced,/obj/item/clothing/suit/jacket,/obj/item/clothing/head/beret/sec,/obj/machinery/light_switch{pixel_x = -25},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/security/podbay) "afJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/security/podbay) "afK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/security/podbay) -"afL" = (/obj/structure/closet/secure_closet/security,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Security Podbay APC"; pixel_x = 25},/turf/simulated/floor{icon_state = "dark"},/area/security/podbay) +"afL" = (/obj/structure/closet/secure_closet/security,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Security Podbay APC"; pixel_x = 25},/obj/item/device/spacepod_equipment/weaponry/laser,/turf/simulated/floor{icon_state = "dark"},/area/security/podbay) "afM" = (/obj/effect/decal/warning_stripes/southwest,/turf/simulated/floor,/area/security/range) "afN" = (/obj/effect/decal/warning_stripes/southeast,/turf/simulated/floor,/area/security/range) "afO" = (/obj/effect/decal/warning_stripes/southwest,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/range) @@ -864,8 +864,8 @@ "aqF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/carpet,/area/security/detectives_office) "aqG" = (/obj/structure/table/woodentable,/obj/machinery/requests_console{pixel_x = 30},/obj/item/device/camera{name = "detectives camera"; desc = "A one use - polaroid camera. 30 photos left."; pixel_x = 0; pixel_y = 0; pictures_left = 30},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "aqH" = (/obj/effect/decal/cleanable/oil/streak,/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"aqI" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "security_airlock"; name = "interior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; level = 2},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"aqJ" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "security_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 2},/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"aqI" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "security_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"aqJ" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "security_airlock"; name = "interior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aqK" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "security_pump"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "security_sensor"; pixel_x = 22; pixel_y = 25},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aqL" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/auxport) "aqM" = (/turf/simulated/floor/plating/airless,/obj/structure/cable,/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk3"; icon_state = "catwalk3"},/area/solar/auxport) @@ -1075,7 +1075,7 @@ "auI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) "auJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/fore) "auK" = (/obj/machinery/camera{c_tag = "Fore Primary Hallway West"; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) -"auL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10; tag = "icon-intact (SOUTHWEST)"},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) +"auL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) "auM" = (/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) "auN" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) "auO" = (/obj/machinery/camera{c_tag = "Fore Primary Hallway North"; network = list("SS13")},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) @@ -1206,11 +1206,11 @@ "axj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "axk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "axl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor/wood,/area/crew_quarters/mrchangs) -"axm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/mrchangs) +"axm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/mrchangs) "axn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/light/small,/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor/wood,/area/crew_quarters/mrchangs) "axo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area) "axp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/civilian/barber) -"axq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/civilian/barber) +"axq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/civilian/barber) "axr" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/crew_quarters/fitness) "axs" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/fitness) "axt" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/crew_quarters/fitness) @@ -1252,7 +1252,7 @@ "ayd" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/escape_pod2/station) "aye" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod{frequency = 1380; id_tag = "escape_pod_2"; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; req_one_access_txt = "0"; tag_door = "escape_pod_2_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod2/station) "ayf" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "arrivals_pump"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "arrivals_sensor"; pixel_x = 25; pixel_y = 12},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "arrivals_pump"; tag_exterior_door = "arrivals_outer"; frequency = 1379; id_tag = "arrivals_airlock"; tag_interior_door = "arrivals_inner"; pixel_x = 25; req_access_txt = "13"; tag_chamber_sensor = "arrivals_sensor"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) -"ayg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (SOUTHWEST)"; dir = 10},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"ayg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; initialize_directions = 10},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "ayh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/spray/waterflower,/turf/simulated/floor/wood,/area/mimeoffice) "ayi" = (/obj/structure/table/woodentable,/obj/item/weapon/pen/red{pixel_x = 2; pixel_y = 6},/obj/item/weapon/paper_bin,/obj/item/toy/crayon/mime,/obj/machinery/light_switch{name = "light switch "; dir = 2; pixel_x = 0; pixel_y = -22},/turf/simulated/floor/wood,/area/mimeoffice) "ayj" = (/obj/machinery/camera{c_tag = "Magistrate's Office"; dir = 4; network = list("SS13")},/turf/simulated/floor/carpet,/area/magistrateoffice) @@ -1326,7 +1326,7 @@ "azz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness) "azA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/crew_quarters/fitness) "azB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/crew_quarters/fitness) -"azC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/turf/simulated/floor,/area/crew_quarters/fitness) +"azC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/crew_quarters/fitness) "azD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/stool,/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/crew_quarters/fitness) "azE" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/crew_quarters/fitness) "azF" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/shuttle/escape_pod1/station) @@ -1401,9 +1401,9 @@ "aAW" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "eva_inner"; locked = 1; name = "EVA Internal Access"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aAX" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aAY" = (/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"aAZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"aBa" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 2; initialize_directions = 11; level = 1},/turf/simulated/wall,/area) -"aBb" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/turf/simulated/wall,/area) +"aAZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fpmaint) +"aBa" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/wall,/area) +"aBb" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/wall,/area) "aBc" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/camera{c_tag = "Fore Primary Hallway South"; dir = 4; network = list("SS13")},/obj/machinery/power/apc{dir = 8; name = "Fore Primary Hallway APC"; pixel_x = -24},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) "aBd" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/hallway/primary/fore) "aBe" = (/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep) @@ -1490,16 +1490,16 @@ "aCH" = (/obj/effect/decal/cleanable/oil/streak,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aCI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) "aCJ" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "solar_tool_pump"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "solar_tool_sensor"; pixel_x = 25; pixel_y = 12},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "solar_tool_pump"; tag_exterior_door = "solar_tool_outer"; frequency = 1379; id_tag = "solar_tool_airlock"; tag_interior_door = "solar_tool_inner"; pixel_x = 25; req_access_txt = "13"; tag_chamber_sensor = "solar_tool_sensor"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) -"aCK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (SOUTHWEST)"; dir = 10},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) -"aCL" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6; tag = "icon-intact (SOUTHWEST)"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"aCM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"aCN" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"aCO" = (/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/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"aCP" = (/obj/effect/decal/cleanable/generic,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"aCQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"aCR" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"aCS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"aCT" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; tag = "icon-intact (SOUTHWEST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/plating,/area/maintenance/fpmaint) +"aCK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; initialize_directions = 10},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) +"aCL" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/maintenance/fpmaint) +"aCM" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) +"aCN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) +"aCO" = (/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/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) +"aCP" = (/obj/effect/decal/cleanable/generic,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) +"aCQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/fpmaint) +"aCR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) +"aCS" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor/plating,/area/maintenance/fpmaint) +"aCT" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/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/fpmaint) "aCU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/maintenance{name = "E.V.A. Maintenance"; req_access_txt = "0"; req_one_access_txt = "18"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aCV" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore) "aCW" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/fore) @@ -1543,7 +1543,7 @@ "aDI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) "aDJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) "aDK" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "solar_tool_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) -"aDL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{level = 2},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) +"aDL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/auxsolarport) "aDM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) "aDN" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aDO" = (/turf/simulated/wall/r_wall,/area/maintenance/fpmaint) @@ -1651,7 +1651,7 @@ "aFM" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/crew_quarters/fitness) "aFN" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/crew_quarters/fitness) "aFO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area) -"aFP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "solar_chapel_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{level = 2},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) +"aFP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "solar_chapel_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "aFQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area) "aFR" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area) "aFS" = (/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/plating{dir = 4; icon_regular_floor = "whitecorner"},/area/maintenance/abandonedbar) @@ -1680,9 +1680,9 @@ "aGp" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) "aGq" = (/obj/machinery/power/terminal,/obj/machinery/light/small{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) "aGr" = (/obj/item/weapon/extinguisher,/obj/effect/decal/cleanable/generic,/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"aGs" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6; tag = "icon-intact (SOUTHWEST)"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"aGt" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"aGu" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; tag = "icon-intact (SOUTHWEST)"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) +"aGs" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/maintenance/fpmaint) +"aGt" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/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/fpmaint) +"aGu" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aGv" = (/obj/machinery/space_heater,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aGw" = (/turf/simulated/wall/r_wall,/area/security/nuke_storage) "aGx" = (/turf/simulated/floor{icon_state = "dark"},/area/gateway) @@ -1703,7 +1703,7 @@ "aGM" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/beach/water{icon_state = "seadeep"},/area/crew_quarters/fitness) "aGN" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/beach/water{icon_state = "seadeep"},/area/crew_quarters/fitness) "aGO" = (/obj/machinery/power/solar_control{id = "auxsolareast"; name = "Fore Starboard Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) -"aGP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "solar_chapel_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; level = 2},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) +"aGP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "solar_chapel_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "aGQ" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "aGR" = (/obj/structure/table/woodentable,/obj/item/weapon/lipstick/random,/turf/simulated/floor/plating,/area/maintenance/abandonedbar) "aGS" = (/turf/simulated/floor{dir = 4; icon_state = "whitecorner"},/area/maintenance/abandonedbar) @@ -1738,7 +1738,7 @@ "aHv" = (/obj/machinery/gateway{dir = 10},/turf/simulated/floor{icon_state = "vault"; dir = 4},/area/gateway) "aHw" = (/obj/machinery/gateway{density = 0},/obj/structure/cable{d2 = 2; icon_state = "0-2"},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/gateway) "aHx" = (/obj/machinery/gateway{dir = 6},/turf/simulated/floor{icon_state = "vault"; dir = 1},/area/gateway) -"aHy" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/clothing/shoes/magboots{pixel_y = -5},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) +"aHy" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_command{name = "External EVA Storage"; req_access_txt = "18"},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "aHz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/camera/motion{c_tag = "EVA West"; dir = 4; network = list("SS13")},/obj/structure/table/reinforced,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva) "aHA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/ai_monitored/storage/eva) "aHB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/camera{c_tag = "EVA East"; dir = 8; network = list("SS13")},/obj/structure/table/reinforced,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva) @@ -1783,7 +1783,7 @@ "aIo" = (/obj/machinery/computer/secure_data,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint2) "aIp" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1},/turf/simulated/floor{icon_state = "red"; dir = 5},/area/security/checkpoint2) "aIq" = (/obj/machinery/atmospherics/valve,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) -"aIr" = (/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Fore Port Solar Access"; req_access_txt = "10"},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"aIr" = (/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Fore Port Solar Access"; req_access_txt = "10"},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) "aIs" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/maintenance/auxsolarport) "aIt" = (/obj/machinery/vending/assist,/turf/simulated/floor,/area/storage/primary) "aIu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/storage/primary) @@ -1805,7 +1805,7 @@ "aIK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/door/window/southleft{name = "Gateway Chamber"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "dark"},/area/gateway) "aIL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "dark"},/area/gateway) "aIM" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/gateway) -"aIN" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_command{name = "Jetpack Storage"; req_access_txt = "18"},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) +"aIN" = (/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "aIO" = (/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva) "aIP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "aIQ" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva) @@ -1835,10 +1835,10 @@ "aJo" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aJp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aJq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) -"aJr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) +"aJr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aJs" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aJt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) -"aJu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) +"aJu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aJv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aJw" = (/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aJx" = (/turf/simulated/wall/r_wall,/area/maintenance/fsmaint2) @@ -1865,8 +1865,8 @@ "aJS" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aJT" = (/obj/machinery/camera{c_tag = "Fore Port Solar Access"},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aJU" = (/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/fpmaint2) -"aJV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6; tag = "icon-intact (SOUTHWEST)"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) -"aJW" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"aJV" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"aJW" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/structure/closet/gmcloset{icon_closed = "black"; icon_state = "black"; name = "formal wardrobe"},/obj/item/device/eftpos{eftpos_name = "Bar EFTPOS scanner"},/obj/machinery/light/small{dir = 4},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor/wood,/area/crew_quarters/bar) "aJX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/storage/primary) "aJY" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor,/area/storage/primary) "aJZ" = (/turf/simulated/floor,/area/storage/primary) @@ -1896,7 +1896,7 @@ "aKx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/sign/poster{pixel_x = 0; pixel_y = 0},/turf/simulated/wall,/area) "aKy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar) "aKz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/bar) -"aKA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/obj/structure/closet/gmcloset{icon_closed = "black"; icon_state = "black"; name = "formal wardrobe"},/obj/item/device/eftpos{eftpos_name = "Bar EFTPOS scanner"},/obj/machinery/light/small{dir = 4},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor/wood,/area/crew_quarters/bar) +"aKA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aKB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aKC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Fore Starboard Solar Access"; req_access_txt = "10"},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "aKD" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) @@ -1907,9 +1907,9 @@ "aKI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aKJ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aKK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) -"aKL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{tag = "icon-manifold-r-f (NORTH)"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) +"aKL" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aKM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area) -"aKN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{tag = "icon-manifold-r-f (NORTH)"; dir = 1},/turf/simulated/wall,/area) +"aKN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aKO" = (/obj/machinery/door/airlock/maintenance{name = "Chapel Maintenance"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aKP" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/chapel/main) "aKQ" = (/turf/space,/area/shuttle/escape/station) @@ -1927,12 +1927,12 @@ "aLc" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table/reinforced,/turf/simulated/floor{icon_state = "red"},/area/security/checkpoint2) "aLd" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/item/device/radio,/turf/simulated/floor{icon_state = "red"; dir = 6},/area/security/checkpoint2) "aLe" = (/obj/machinery/light/small{dir = 8},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) -"aLf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5; tag = "icon-intact (SOUTHWEST)"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) -"aLg" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"aLf" = (/obj/effect/decal/cleanable/generic,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"aLg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aLh" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) -"aLi" = (/obj/effect/decal/cleanable/generic,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) -"aLj" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) -"aLk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; tag = "icon-intact (SOUTHWEST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"aLi" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"aLj" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/junction{tag = "icon-pipe-j1 (EAST)"; icon_state = "pipe-j1"; dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) +"aLk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = 20; tag = "icon-pipe-j1s (EAST)"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aLl" = (/obj/structure/table,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/stack/cable_coil{pixel_x = 2; pixel_y = -2},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/screwdriver{pixel_y = 16},/turf/simulated/floor,/area/storage/primary) "aLm" = (/obj/structure/table,/obj/machinery/light{dir = 4},/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/storage/primary) "aLn" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "vault"; dir = 1},/area/security/nuke_storage) @@ -1966,9 +1966,9 @@ "aLP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aLQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/junction{tag = "icon-pipe-j1 (EAST)"; icon_state = "pipe-j1"; dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aLR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) -"aLS" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/junction{tag = "icon-pipe-j1 (EAST)"; icon_state = "pipe-j1"; dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) +"aLS" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aLT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) -"aLU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = 20; tag = "icon-pipe-j1s (EAST)"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) +"aLU" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/wall,/area) "aLV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aLW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aLX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) @@ -1976,7 +1976,7 @@ "aLZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aMa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aMb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) -"aMc" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) +"aMc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/secondary/entry) "aMd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aMe" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aMf" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) @@ -2046,7 +2046,7 @@ "aNr" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aNs" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aNt" = (/obj/machinery/door/airlock{name = "Unit B"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) -"aNu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; level = 1},/turf/simulated/wall,/area) +"aNu" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aNv" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = -28; pixel_y = 4},/obj/structure/reagent_dispensers/beerkeg,/turf/simulated/floor/wood,/area/crew_quarters/bar) "aNw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/bar) "aNx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/window/southleft{tag = "icon-left (WEST)"; name = "Bar Delivery"; icon_state = "left"; dir = 8; req_access_txt = "25"; base_state = "left"},/obj/effect/decal/warning_stripes/yellow,/turf/simulated/floor,/area/crew_quarters/bar) @@ -2069,7 +2069,7 @@ "aNO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aNP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aNQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) -"aNR" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/wall,/area) +"aNR" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/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/fpmaint2) "aNS" = (/obj/structure/filingcabinet,/turf/simulated/floor/wood,/area/library) "aNT" = (/turf/simulated/floor/wood,/area/library) "aNU" = (/obj/structure/stool/bed/chair/office/dark,/obj/machinery/camera{c_tag = "Library North"; dir = 2; network = list("SS13")},/turf/simulated/floor/wood,/area/library) @@ -2089,7 +2089,7 @@ "aOi" = (/turf/simulated/floor,/area/escapepodbay) "aOj" = (/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/escapepodbay) "aOk" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/shuttle/arrival/station) -"aOl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/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; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/secondary/entry) +"aOl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/gateway) "aOm" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/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,/area/hallway/secondary/entry) "aOn" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 20},/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{icon_state = "bot"},/area/hallway/secondary/entry) "aOo" = (/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/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "bot"},/area/hallway/secondary/entry) @@ -2099,8 +2099,8 @@ "aOs" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor,/area/hallway/secondary/entry) "aOt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/sign/double/map/left{pixel_y = 31},/turf/simulated/floor,/area/hallway/secondary/entry) "aOu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/sign/double/map/right{pixel_y = 31},/turf/simulated/floor,/area/hallway/secondary/entry) -"aOv" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"aOw" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; tag = "icon-intact (SOUTHWEST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"aOv" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/hallway/primary/central/north) +"aOw" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/wood,/area/library) "aOx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aOy" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aOz" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/analyzer,/turf/simulated/floor,/area/storage/primary) @@ -2117,7 +2117,7 @@ "aOK" = (/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{icon_state = "vault"; dir = 5},/area/hallway/primary/port) "aOL" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/simulated/floor,/area/gateway) "aOM" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/door_control{id = "stationawaygate"; name = "Gateway Shutters Access Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "62"},/turf/simulated/floor,/area/gateway) -"aON" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/gateway) +"aON" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aOO" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/turf/simulated/floor,/area/gateway) "aOP" = (/obj/machinery/light{dir = 4},/obj/effect/decal/warning_stripes/southwest,/obj/structure/closet/secure_closet/exile,/turf/simulated/floor,/area/gateway) "aOQ" = (/obj/item/clothing/suit/space/mime,/obj/item/clothing/head/helmet/space/mime,/obj/structure/rack{dir = 8; layer = 2.9},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) @@ -2210,7 +2210,7 @@ "aQz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) "aQA" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/hallway/primary/central/north) "aQB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/hallway/primary/central/north) -"aQC" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/hallway/primary/central/north) +"aQC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/primary/port) "aQD" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area) "aQE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area) "aQF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area) @@ -2346,7 +2346,7 @@ "aTf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor{icon_state = "hydrofloor"},/area/hydroponics) "aTg" = (/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor{icon_state = "hydrofloor"},/area/hydroponics) "aTh" = (/obj/structure/girder,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) -"aTi" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{tag = "icon-manifold-b-f (WEST)"; dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/wood,/area/library) +"aTi" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/primary/port) "aTj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood,/area/library) "aTk" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood,/area/library) "aTl" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/library) @@ -2358,7 +2358,7 @@ "aTr" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) "aTs" = (/obj/machinery/camera{c_tag = "Chapel North"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aTt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) -"aTu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) +"aTu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/secondary/entry) "aTv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Escape Pod Bay"},/turf/simulated/floor,/area/escapepodbay) "aTw" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aTx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry) @@ -2377,7 +2377,7 @@ "aTK" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/hallway/primary/port) "aTL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/hallway/primary/port) "aTM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/hallway/primary/port) -"aTN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor,/area/hallway/primary/port) +"aTN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/secondary/entry) "aTO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/port) "aTP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/primary/port) "aTQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/port) @@ -2387,11 +2387,11 @@ "aTU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/primary/port) "aTV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/port) "aTW" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor,/area/hallway/primary/port) -"aTX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/turf/simulated/floor,/area/hallway/primary/port) +"aTX" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/maintenance/port) "aTY" = (/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,/area/hallway/primary/port) "aTZ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/port) "aUa" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor,/area/hallway/primary/port) -"aUb" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/primary/port) +"aUb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/maintenance/port) "aUc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/hallway/primary/central/nw) "aUd" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/hallway/primary/central/nw) "aUe" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central/nw) @@ -2530,7 +2530,7 @@ "aWH" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry) "aWI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) "aWJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/entry) -"aWK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/secondary/entry) +"aWK" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/machinery/camera{c_tag = "Chapel South"; dir = 8; network = list("SS13")},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aWL" = (/obj/structure/stool/bed/chair/comfy/beige{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair_beige"; dir = 1},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) "aWM" = (/obj/machinery/vending/snack,/turf/simulated/floor{icon_state = "dark"},/area/hallway/secondary/entry) "aWN" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/port) @@ -2607,7 +2607,7 @@ "aYg" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) "aYh" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) "aYi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/entry) -"aYj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/secondary/entry) +"aYj" = (/obj/machinery/camera{c_tag = "Locker Room West"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/crew_quarters/locker) "aYk" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "neutralcorner"; dir = 4},/area/hallway/secondary/entry) "aYl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/hallway/secondary/entry) "aYm" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/hallway/secondary/entry) @@ -2855,8 +2855,8 @@ "bcU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/security/vacantoffice) "bcV" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/security/vacantoffice) "bcW" = (/obj/structure/closet/crate,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/port) -"bcX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6; tag = "icon-intact (SOUTHWEST)"},/turf/simulated/floor/plating,/area/maintenance/port) -"bcY" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10; tag = "icon-intact (SOUTHWEST)"},/turf/simulated/floor/plating,/area/maintenance/port) +"bcX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/crew_quarters/locker) +"bcY" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/crew_quarters/locker) "bcZ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/maintenance/port) "bda" = (/obj/structure/closet/wardrobe/grey,/obj/machinery/requests_console{department = "Locker Room"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor,/area/crew_quarters/locker) "bdb" = (/obj/structure/table,/obj/item/clothing/head/soft/grey{pixel_x = -2; pixel_y = 3},/turf/simulated/floor,/area/crew_quarters/locker) @@ -2911,7 +2911,7 @@ "bdY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/carpet,/area/chapel/main) "bdZ" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main) "bea" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/stool,/obj/effect/landmark/start{name = "Civilian"},/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main) -"beb" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/obj/machinery/camera{c_tag = "Chapel South"; dir = 8; network = list("SS13")},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) +"beb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/crew_quarters/locker) "bec" = (/obj/item/device/radio/intercom{pixel_x = -25},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera{c_tag = "Departure Lounge West"; dir = 4; network = list("SS13")},/obj/machinery/vending/cola,/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) "bed" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/turf/simulated/floor,/area/hallway/secondary/exit) "bee" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/hallway/secondary/exit) @@ -2934,17 +2934,17 @@ "bev" = (/obj/structure/closet/wardrobe/black,/turf/simulated/floor,/area/crew_quarters/locker) "bew" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor,/area/crew_quarters/locker) "bex" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor,/area/crew_quarters/locker) -"bey" = (/obj/machinery/camera{c_tag = "Locker Room West"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor,/area/crew_quarters/locker) -"bez" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/turf/simulated/floor,/area/crew_quarters/locker) -"beA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor,/area/crew_quarters/locker) -"beB" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 2; initialize_directions = 11; level = 1},/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"; tag = "icon-pipe-j2"},/turf/simulated/floor,/area/crew_quarters/locker) -"beC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor,/area/crew_quarters/locker) +"bey" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"; tag = "icon-pipe-j2"},/turf/simulated/floor,/area/crew_quarters/locker) +"bez" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) +"beA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/port) +"beB" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) +"beC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/primary/starboard) "beD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/crew_quarters/locker) "beE" = (/obj/structure/closet/secure_closet/personal,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/crew_quarters/locker) "beF" = (/obj/effect/decal/cleanable/oil,/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/port) -"beG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/maintenance/port) -"beH" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/maintenance/port) -"beI" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; tag = "icon-manifold (EAST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/port) +"beG" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) +"beH" = (/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/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) +"beI" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/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 = 4},/turf/simulated/floor/plating,/area/maintenance/port) "beJ" = (/obj/effect/decal/cleanable/cobweb2,/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/maintenance/port) "beK" = (/obj/item/clothing/gloves/rainbow,/obj/item/clothing/shoes/rainbow,/obj/item/clothing/head/soft/rainbow,/obj/item/clothing/under/rainbow,/turf/simulated/floor/plating,/area/maintenance/port) "beL" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/storage/tools) @@ -3124,9 +3124,9 @@ "bid" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/machinery/vending/dinnerware,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/kitchen) "bie" = (/obj/machinery/icemachine,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "bif" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "kitchenhall"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) -"big" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "kitchenhall"; name = "Kitchen Shutters"; opacity = 0},/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) +"big" = (/obj/machinery/camera{c_tag = "Labor Camp Security Hallway"; dir = 8; network = list("Labor"); pixel_x = 0; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/laborcamp/security) "bih" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "kitchenhall"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) -"bii" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "kitchenhall"; name = "Kitchen Shutters"; opacity = 0},/obj/item/weapon/toy/xmas_cracker,/obj/item/weapon/toy/xmas_cracker,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) +"bii" = (/obj/machinery/light/small{dir = 1},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "labor_camp_north_sensor"; pixel_x = -8; pixel_y = 30},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "labor_camp_north_pump"},/obj/machinery/door_control{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 0; pixel_y = -28; req_access_txt = "2"},/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{id_tag = "labor_camp_north_airlock"; master_tag = "labor_camp_dock"; pixel_y = 30; req_access_txt = "2"; req_one_access_txt = "0"; tag_airpump = "labor_camp_north_pump"; tag_chamber_sensor = "labor_camp_north_sensor"; tag_exterior_door = "labor_camp_north_outer"; tag_interior_door = "labor_camp_north_inner"},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "bij" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) "bik" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Botanist"},/turf/simulated/floor{dir = 1; icon_state = "green"},/area/hydroponics) "bil" = (/turf/simulated/floor{dir = 1; icon_state = "green"},/area/hydroponics) @@ -3274,7 +3274,7 @@ "bkX" = (/turf/simulated/floor{dir = 5; icon_state = "green"},/area/hallway/primary/starboard/west) "bkY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/hallway/primary/starboard/east) "bkZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/starboard/east) -"bla" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{tag = "icon-manifold-b-f (WEST)"; dir = 8},/turf/simulated/floor,/area/hallway/primary/starboard) +"bla" = (/obj/effect/landmark{name = "blobstart"},/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/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) "blb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/starboard/east) "blc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/starboard/east) "bld" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atm{pixel_y = 32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/starboard/east) @@ -3300,10 +3300,10 @@ "blx" = (/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/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "bly" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8},/turf/simulated/floor{icon_state = "warningcorner"; dir = 1},/area/hallway/secondary/entry) "blz" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor,/area/hallway/secondary/entry) -"blA" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) -"blB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) -"blC" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) -"blD" = (/obj/effect/landmark{name = "blobstart"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10; tag = "icon-intact (SOUTHWEST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) +"blA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) +"blB" = (/obj/structure/disposalpipe/segment{dir = 4},/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/port) +"blC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) +"blD" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plating,/area/maintenance/port) "blE" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) "blF" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/wall,/area/maintenance/port) "blG" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/plating,/area/maintenance/port) @@ -3363,7 +3363,7 @@ "bmI" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) "bmJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) "bmK" = (/obj/item/stack/sheet/cardboard,/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) -"bmL" = (/obj/machinery/camera{c_tag = "Cargo Bay Storage"; dir = 8; network = list("SS13")},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) +"bmL" = (/obj/machinery/camera{c_tag = "Cargo Bay Storage"; dir = 8; network = list("SS13")},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) "bmM" = (/obj/machinery/camera{c_tag = "Cargo Delivery Office"; dir = 4; network = list("SS13")},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/telepad_cargo,/turf/simulated/floor{dir = 8; icon_state = "brown"},/area/quartermaster/office) "bmN" = (/obj/structure/filingcabinet/filingcabinet,/turf/simulated/floor{icon_state = "arrival"; dir = 4},/area/quartermaster/office) "bmO" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/west) @@ -3427,11 +3427,11 @@ "bnU" = (/obj/machinery/conveyor{dir = 4; id = "garbage"},/turf/simulated/floor/plating,/area/maintenance/disposal) "bnV" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plating,/area/maintenance/disposal) "bnW" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/maintenance/disposal) -"bnX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5; tag = "icon-intact (SOUTHWEST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plating,/area/maintenance/port) -"bnY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/maintenance/port) -"bnZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/maintenance/port) -"boa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/decal/cleanable/oil/streak,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/maintenance/port) -"bob" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; tag = "icon-manifold (EAST)"},/turf/simulated/floor/plating,/area/maintenance/port) +"bnX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/decal/cleanable/oil/streak,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) +"bnY" = (/obj/item/weapon/screwdriver,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) +"bnZ" = (/obj/item/stack/sheet/rglass,/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/plating,/area/maintenance/port) +"boa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) +"bob" = (/obj/item/device/flashlight,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) "boc" = (/obj/machinery/camera{c_tag = "Locker Room Toilets"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) "bod" = (/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/maintenance/port) "boe" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/port) @@ -3481,15 +3481,15 @@ "boW" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/port) "boX" = (/obj/machinery/door/airlock{name = "Unit 4"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) "boY" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) -"boZ" = (/obj/item/stack/sheet/rglass,/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6; tag = "icon-intact (SOUTHWEST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/plating,/area/maintenance/port) -"bpa" = (/obj/item/weapon/screwdriver,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) -"bpb" = (/obj/item/device/flashlight,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) -"bpc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) -"bpd" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/turf/simulated/floor/plating,/area/maintenance/port) -"bpe" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) +"boZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) +"bpa" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor/plating,/area/maintenance/port) +"bpb" = (/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/port) +"bpc" = (/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/port) +"bpd" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/space,/area) +"bpe" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/maintenance/port) "bpf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor/plating,/area/maintenance/port) -"bpg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; tag = "icon-intact (EAST)"},/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/port) -"bph" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; tag = "icon-intact (SOUTHWEST)"},/turf/simulated/floor/plating,/area/maintenance/port) +"bpg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-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/port) +"bph" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/west) "bpi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) "bpj" = (/obj/machinery/door_control{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "31"},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) "bpk" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) @@ -3533,11 +3533,11 @@ "bpW" = (/turf/simulated/floor{icon_state = "white"},/area/medical/reception) "bpX" = (/obj/machinery/camera{c_tag = "Medbay Lobby East"; network = list("SS13")},/obj/structure/stool,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/reception) "bpY" = (/obj/structure/stool,/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/reception) -"bpZ" = (/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) -"bqa" = (/obj/effect/landmark{name = "HONKsquad"},/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) -"bqb" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor,/area/medical/sleeper) -"bqc" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/sleeper) -"bqd" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor,/area/medical/sleeper) +"bpZ" = (/obj/effect/landmark{name = "HONKsquad"},/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) +"bqa" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots{pixel_y = -5},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) +"bqb" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/jetpack/carbondioxide,/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) +"bqc" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor,/area/medical/sleeper) +"bqd" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/sleeper) "bqe" = (/obj/structure/table,/obj/item/device/camera{name = "Autopsy Camera"; pixel_x = -2; pixel_y = -2},/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/medical/morgue) "bqf" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/medical/morgue) "bqg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/medical/morgue) @@ -3559,7 +3559,7 @@ "bqw" = (/obj/machinery/autolathe,/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bqx" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 0},/obj/item/weapon/storage/belt/utility,/obj/item/clothing/gloves/color/latex,/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bqy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"},/obj/structure/closet/hydrant{pixel_x = -33},/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"bqz" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 1; name = "Starboard Emergency Storage APC"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 2},/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"bqz" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 1; name = "Starboard Emergency Storage APC"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bqA" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bqB" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "specops_dock_airlock"; name = "exterior access button"; pixel_x = -5; pixel_y = 25; req_access_txt = "0"; req_one_access_txt = "13"},/turf/space,/area) "bqC" = (/obj/structure/closet/emcloset,/obj/machinery/camera{c_tag = "Arrivals Auxiliary Docking South"; dir = 4; network = list("SS13")},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry) @@ -3589,7 +3589,7 @@ "bra" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=1"; dir = 1; freq = 1400; location = "Bridge"},/obj/structure/plasticflaps{opacity = 1},/turf/simulated/floor{icon_state = "bot"},/area/bridge/meeting_room) "brb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/command{name = "Conference Room"; req_access = null; req_access_txt = "19"},/turf/simulated/floor/wood,/area/bridge/meeting_room) "brc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/lattice,/turf/space,/area) -"brd" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 2; initialize_directions = 11; level = 1},/turf/space,/area) +"brd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/assembly/chargebay) "bre" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravitygenerator) "brf" = (/turf/simulated/floor{icon_state = "vault"; dir = 1},/area/engine/gravitygenerator) "brg" = (/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/engine/gravitygenerator) @@ -3613,9 +3613,9 @@ "bry" = (/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/reception) "brz" = (/turf/simulated/floor/airless{icon_state = "white"},/area/medical/reception) "brA" = (/obj/structure/stool,/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/reception) -"brB" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/sleeper) -"brC" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/medical/sleeper) -"brD" = (/obj/machinery/camera{c_tag = "Medbay Lounge"; network = list("SS13")},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/weapon/soap/nanotrasen,/obj/item/weapon/gun/syringe,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) +"brB" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor,/area/medical/sleeper) +"brC" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/sleeper) +"brD" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/medical/sleeper) "brE" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "brF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "brG" = (/obj/structure/table,/obj/item/weapon/autopsy_scanner,/obj/item/weapon/scalpel,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/morgue) @@ -3656,8 +3656,8 @@ "bsp" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/disposal) "bsq" = (/obj/machinery/light_switch{pixel_y = -25},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/disposal) "bsr" = (/obj/machinery/door/airlock/maintenance{name = "Disposal Access"; req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/port) -"bss" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5; tag = "icon-intact (SOUTHWEST)"},/turf/simulated/floor/plating,/area/maintenance/port) -"bst" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; tag = "icon-intact (SOUTHWEST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/plating,/area/maintenance/port) +"bss" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) +"bst" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 9; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/research{name = "Research Division"}) "bsu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/port) "bsv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/port) "bsw" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/port) @@ -3674,7 +3674,7 @@ "bsH" = (/obj/structure/disposalpipe/sortjunction{dir = 1; name = "Sorting Office"; sortType = 2},/turf/simulated/floor,/area/quartermaster/office) "bsI" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/quartermaster/office) "bsJ" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "packageExternal"},/turf/simulated/floor,/area/quartermaster/office) -"bsK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5; tag = "icon-intact (SOUTHWEST)"},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/west) +"bsK" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor,/area/hallway/primary/central/sw) "bsL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/central/west) "bsM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/central/west) "bsN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/maintcentral) @@ -3719,14 +3719,14 @@ "btA" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/bluegrid,/area/assembly/chargebay) "btB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/bluegrid,/area/assembly/chargebay) "btC" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/assembly/chargebay) -"btD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/assembly/chargebay) +"btD" = (/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/structure/table,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/quartermaster/office) "btE" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "hazard door east"},/obj/machinery/door/airlock/glass_research{name = "Robotics Lab"; req_access_txt = "29"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "btF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "btG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) -"btH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) +"btH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "btI" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = 6},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/obj/item/clothing/glasses/welding,/obj/structure/disposalpipe/segment{dir = 4},/obj/item/device/radio/headset/headset_sci{pixel_x = -3},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "btJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area) -"btK" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 9; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/research{name = "Research Division"}) +"btK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/quartermaster/office) "btL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "btM" = (/obj/machinery/camera{c_tag = "Research Access"; dir = 2; network = list("Research","SS13")},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{tag = "icon-warnwhite (NORTHEAST)"; icon_state = "warnwhite"; dir = 5},/area/medical/research{name = "Research Division"}) "btN" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = -30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) @@ -3744,7 +3744,7 @@ "btZ" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/entry) "bua" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor,/area/hallway/secondary/entry) "bub" = (/obj/machinery/conveyor{dir = 1; id = "garbage"},/obj/machinery/door/poddoor{density = 1; icon_state = "pdoor1"; id = "Disposal Exit"; name = "Disposal Exit Vent"; opacity = 1},/turf/simulated/floor/plating,/area/maintenance/disposal) -"buc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/disposal) +"buc" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/medical/sleeper) "bud" = (/obj/machinery/camera{c_tag = "Disposals"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/disposal) "bue" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/port) "buf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) @@ -3798,9 +3798,9 @@ "bvb" = (/obj/structure/table,/obj/machinery/door/window/northright{name = "Medbay Lobby"; req_access_txt = "5"},/obj/item/device/radio/intercom{broadcasting = 1; canhear_range = 5; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = 0},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/medical/reception) "bvc" = (/obj/structure/table,/obj/machinery/media/receiver/boombox,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/turf/simulated/floor{dir = 5; icon_state = "blue"},/area/medical/reception) "bvd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/reception) -"bve" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/medical/sleeper) -"bvf" = (/obj/structure/table,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/device/antibody_scanner,/turf/simulated/floor{dir = 4; icon_state = "blue"},/area/medical/biostorage) -"bvg" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay2) +"bve" = (/obj/structure/table,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/device/antibody_scanner,/turf/simulated/floor{dir = 4; icon_state = "blue"},/area/medical/biostorage) +"bvf" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall{desc = "A specially coated wall that resists temperatures for Science"; max_temperature = 1e+009; name = "Coated Reinforced Wall"},/area) +"bvg" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall/r_wall{desc = "A specially coated wall that resists temperatures for Science"; max_temperature = 1e+009; name = "Coated Reinforced Wall"},/area) "bvh" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/storage/box/bodybags,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/morgue) "bvi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/medical/morgue) "bvj" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plating,/area/assembly/chargebay) @@ -3851,7 +3851,7 @@ "bwc" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_mining{name = "Delivery Office"; req_access_txt = "50"},/turf/simulated/floor,/area/quartermaster/office) "bwd" = (/turf/simulated/wall,/area/hallway/primary/central/sw) "bwe" = (/obj/machinery/light{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/sw) -"bwf" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6; tag = "icon-intact (SOUTHWEST)"},/turf/simulated/floor,/area/hallway/primary/central/sw) +"bwf" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bwg" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/primary/central/sw) "bwh" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/emergency_oxygen,/turf/simulated/floor/plating,/area/maintenance/maintcentral) "bwi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/command{name = "Head of Personnel"; req_access = null; req_access_txt = "57"},/turf/simulated/floor,/area/crew_quarters/heads) @@ -3881,12 +3881,12 @@ "bwG" = (/obj/structure/table,/obj/item/weapon/folder/white{pixel_y = 10},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/medical/reception) "bwH" = (/turf/simulated/floor{tag = "icon-whiteblue"; icon_state = "whiteblue"},/area/medical/reception) "bwI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{tag = "icon-whiteblue (SOUTHEAST)"; icon_state = "whiteblue"; dir = 6},/area/medical/reception) -"bwJ" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 1; on = 1},/obj/machinery/door_control{id = "staffroom"; name = "Staff Room Privacy Shutters Control"; pixel_x = -25; pixel_y = 0},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) -"bwK" = (/obj/structure/reagent_dispensers/water_cooler,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) -"bwL" = (/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) -"bwM" = (/obj/machinery/camera{c_tag = "Medbay Break Room"; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/obj/machinery/washing_machine,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bwJ" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4; level = 1},/turf/simulated/wall/r_wall{desc = "A specially coated wall that resists temperatures for Science"; max_temperature = 1e+009; name = "Coated Reinforced Wall"},/area) +"bwK" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay2) +"bwL" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 1; on = 1},/obj/machinery/door_control{id = "staffroom"; name = "Staff Room Privacy Shutters Control"; pixel_x = -25; pixel_y = 0},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bwM" = (/obj/structure/reagent_dispensers/water_cooler,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) "bwN" = (/obj/structure/morgue,/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/medical/morgue) -"bwO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/table/woodentable,/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bwO" = (/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) "bwP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/morgue) "bwQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -28},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/morgue) "bwR" = (/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/morgue) @@ -3936,7 +3936,7 @@ "bxJ" = (/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{dir = 8; icon_state = "brown"},/area/quartermaster/office) "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},/turf/simulated/floor,/area/quartermaster/office) "bxL" = (/obj/structure/disposalpipe/segment{name = "Sorting Office"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/quartermaster/office) -"bxM" = (/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/structure/table,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/turf/simulated/floor,/area/quartermaster/office) +"bxM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bxN" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/clipboard,/obj/item/weapon/pen/red{pixel_x = 2; pixel_y = 6},/obj/structure/table,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/turf/simulated/floor,/area/quartermaster/office) "bxO" = (/obj/machinery/computer/ordercomp,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor,/area/quartermaster/office) "bxP" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor,/area/quartermaster/office) @@ -3976,7 +3976,7 @@ "byx" = (/obj/machinery/door/window/eastright{name = "Medical Reception"; req_access_txt = "5"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/medical/reception) "byy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/effect/decal/warning_stripes/yellow/partial{dir = 1},/obj/effect/decal/warning_stripes/arrow{dir = 1},/turf/simulated/floor,/area/medical/reception) "byz" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/warning_stripes/yellow/partial{dir = 1},/obj/effect/decal/warning_stripes/arrow{dir = 1},/turf/simulated/floor,/area/medical/reception) -"byA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light{dir = 1; on = 1},/obj/structure/bookcase/manuals/medical,/obj/item/weapon/book/manual/stasis,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"byA" = (/obj/machinery/camera{c_tag = "Medbay Break Room"; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/obj/machinery/washing_machine,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) "byB" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "0"; req_one_access_txt = "6,9"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "byC" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/wall,/area) "byD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -4053,12 +4053,12 @@ "bzW" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/medbay3) "bzX" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyerStar"; name = "Medbay Entrance Starboard"; req_access_txt = "5"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/medical/medbay2) "bzY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyerStar"; name = "Medbay Entrance Starboard"; req_access_txt = "5"},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/medical/medbay2) -"bzZ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bzZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/table/woodentable,/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) "bAa" = (/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bAb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) -"bAc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) -"bAd" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Staff Room"; req_access_txt = "5"; req_one_access_txt = "0"},/turf/simulated/floor{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/medical/medbreak) -"bAe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) +"bAc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light{dir = 1; on = 1},/obj/structure/bookcase/manuals/medical,/obj/item/weapon/book/manual/stasis,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bAd" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "mining_dock_pump"},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/quartermaster/miningdock) +"bAe" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) "bAf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bAg" = (/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bAh" = (/turf/simulated/floor{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/medical/medbay2) @@ -4123,17 +4123,17 @@ "bBo" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyerPort"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = -26; pixel_y = 6; range = 3; req_access_txt = null},/turf/simulated/floor{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/medical/medbay2) "bBp" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/medical/medbay2) "bBq" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area) -"bBr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bBr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) "bBs" = (/obj/structure/closet/secure_closet/medical3,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay3) "bBt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay3) "bBu" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/medical/medbay3) "bBv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyerStar"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = -26; range = 6},/turf/simulated/floor{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/medical/medbay2) "bBw" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) -"bBx" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/blue,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bBx" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Staff Room"; req_access_txt = "5"; req_one_access_txt = "0"},/turf/simulated/floor{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/medical/medbreak) "bBy" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bBz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/junction{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2) "bBA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) -"bBB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) +"bBB" = (/obj/effect/landmark/start{name = "Geneticist"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "bBC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bBD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bBE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 23},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) @@ -4210,7 +4210,7 @@ "bCX" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medical Equipment"; req_access_txt = "5"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/medbay3) "bCY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2) "bCZ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) -"bDa" = (/obj/structure/stool,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bDa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bDb" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{tag = "icon-whiteblue"; icon_state = "whiteblue"},/area/medical/medbay2) "bDc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{tag = "icon-whiteblue"; icon_state = "whiteblue"},/area/medical/medbay2) "bDd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{tag = "icon-whiteblue"; icon_state = "whiteblue"},/area/medical/medbay2) @@ -4239,7 +4239,7 @@ "bDA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bDB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/noticeboard{pixel_y = 28},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bDC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"bDD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bDD" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/quartermaster/miningdock) "bDE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "bDF" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) "bDG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) @@ -4262,7 +4262,7 @@ "bDX" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "QM #2"},/obj/machinery/bot/mulebot{home_destination = "QM #2"; suffix = "#2"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/storage) "bDY" = (/obj/structure/table,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/weapon/folder/yellow,/obj/item/device/eftpos{eftpos_name = "Cargo Bay EFTPOS scanner"},/turf/simulated/floor,/area/quartermaster/office) "bDZ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor,/area/quartermaster/office) -"bEa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/quartermaster/office) +"bEa" = (/obj/structure/closet/l3closet/janitor,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor,/area/janitor) "bEb" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass_mining{name = "Cargo Office"; req_access_txt = "50"},/turf/simulated/floor,/area/quartermaster/office) "bEc" = (/obj/machinery/lapvend,/turf/simulated/floor,/area/quartermaster/office) "bEd" = (/obj/structure/closet/secure_closet/hop2,/turf/simulated/floor,/area/crew_quarters/heads) @@ -4292,7 +4292,7 @@ "bEB" = (/obj/structure/table,/obj/item/bodybag/cryobag{pixel_x = -3},/obj/item/bodybag/cryobag,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/item/device/flashlight/pen,/obj/item/device/flashlight/pen,/obj/item/device/flashlight/pen,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/tie/stethoscope,/obj/item/clothing/tie/stethoscope,/obj/item/clothing/tie/stethoscope,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay3) "bEC" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/item/roller,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay3) "bED" = (/turf/simulated/floor{icon_state = "white"},/area/medical/medbay3) -"bEE" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) +"bEE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) "bEF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bEG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay2) "bEH" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Genetics Cloning"; req_access_txt = "0"; req_one_access_txt = "5;9"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) @@ -4302,7 +4302,7 @@ "bEL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area) "bEM" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bEN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"bEO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; level = 1},/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) +"bEO" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor/plating,/area/maintenance/aft) "bEP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bEQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bER" = (/obj/machinery/camera{c_tag = "Research Hallway North"; dir = 1; network = list("Research","SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -4359,19 +4359,19 @@ "bFQ" = (/obj/machinery/light{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bFR" = (/obj/machinery/camera{c_tag = "Medbay Emergency Entrance"; dir = 2; network = list("SS13")},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bFS" = (/turf/simulated/floor{dir = 1; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2) -"bFT" = (/obj/structure/table,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/mask/muzzle,/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -27},/obj/machinery/light,/turf/simulated/floor{tag = "icon-whiteblue (SOUTHWEST)"; icon_state = "whiteblue"; dir = 10},/area/medical/medbay3) +"bFT" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/blue,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) "bFU" = (/obj/machinery/camera{c_tag = "Medbay Equipment"; dir = 1; network = list("SS13")},/obj/structure/closet/wardrobe/white/medical,/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay3) "bFV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay3) "bFW" = (/obj/structure/table,/obj/item/weapon/storage/box/gloves{pixel_y = 8},/obj/item/weapon/storage/box/masks{pixel_y = -3},/obj/machinery/light,/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/item/weapon/wirecutters{desc = "This cuts gloves."; name = "Glove Snippers"},/turf/simulated/floor{tag = "icon-whiteblue (SOUTHEAST)"; icon_state = "whiteblue"; dir = 6},/area/medical/medbay3) -"bFX" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen{name = "Canister: \[O2] (CRYO)"},/turf/simulated/floor,/area/medical/cryo) -"bFY" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 1},/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) -"bFZ" = (/obj/machinery/clonepod{biomass = 150},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) -"bGa" = (/obj/machinery/computer/cloning,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) -"bGb" = (/obj/machinery/dna_scannernew,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) -"bGc" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/stool,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) -"bGd" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -28},/obj/structure/stool,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) -"bGe" = (/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay Lobby)"; pixel_x = 0; pixel_y = -30},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) -"bGf" = (/obj/machinery/vending/chinese,/obj/machinery/light,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bFX" = (/obj/structure/stool,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bFY" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) +"bFZ" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen{name = "Canister: \[O2] (CRYO)"},/turf/simulated/floor,/area/medical/cryo) +"bGa" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 1},/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) +"bGb" = (/obj/machinery/clonepod{biomass = 150},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) +"bGc" = (/obj/machinery/computer/cloning,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) +"bGd" = (/obj/machinery/dna_scannernew,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) +"bGe" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/stool,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bGf" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -28},/obj/structure/stool,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) "bGg" = (/obj/machinery/light{dir = 8},/obj/structure/closet/secure_closet/medical1,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{tag = "icon-whitepurple (NORTHWEST)"; icon_state = "whitepurple"; dir = 9},/area/medical/genetics) "bGh" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/camera{c_tag = "Research Genetics North"; network = list("Research","SS13")},/obj/machinery/power/apc{dir = 1; name = "Genetics APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1},/area/medical/genetics) "bGi" = (/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) @@ -4448,11 +4448,11 @@ "bHB" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay2) "bHC" = (/obj/structure/noticeboard,/turf/simulated/wall,/area) "bHD" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medical Equipment"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/medbay3) -"bHE" = (/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) -"bHF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "staffroom"; name = "Staff Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area) -"bHG" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable,/obj/machinery/light,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bHE" = (/obj/structure/closet/firecloset,/obj/item/taperoll/engineering,/turf/simulated/floor,/area/engine/controlroom) +"bHF" = (/obj/machinery/vending/chinese,/obj/machinery/light,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bHG" = (/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) "bHH" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) -"bHI" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bHI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "staffroom"; name = "Staff Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area) "bHJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Genetics"; req_access_txt = "9"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "bHK" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{tag = "icon-whitepurple (WEST)"; icon_state = "whitepurple"; dir = 8},/area/medical/genetics) "bHL" = (/obj/effect/landmark/start{name = "Geneticist"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) @@ -4480,10 +4480,10 @@ "bIh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bIi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area) "bIj" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"bIk" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) -"bIl" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; dir = 4},/obj/machinery/power/apc{dir = 2; name = "Research Shuttle Dock APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/medical/research{name = "Research Division"}) -"bIm" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; dir = 4},/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/medical/research{name = "Research Division"}) -"bIn" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; dir = 4},/turf/simulated/shuttle/plating,/area/medical/research{name = "Research Division"}) +"bIk" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) +"bIl" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/medical/research{name = "Research Division"}) +"bIm" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/power/apc{dir = 2; name = "Research Shuttle Dock APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/medical/research{name = "Research Division"}) +"bIn" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/shuttle/plating,/area/medical/research{name = "Research Division"}) "bIo" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "research_dock_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "bIp" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "research_dock_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "research_dock_airlock"; pixel_x = 25; pixel_y = 0; req_access_txt = "13;65"; tag_airpump = "research_dock_pump"; tag_chamber_sensor = "research_dock_sensor"; tag_exterior_door = "research_dock_outer"; tag_interior_door = "research_dock_inner"},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "bIq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) @@ -4513,17 +4513,17 @@ "bIO" = (/obj/machinery/light{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bIP" = (/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = 21},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bIQ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) -"bIR" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; level = 1},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) +"bIR" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "bIS" = (/obj/machinery/alarm{pixel_y = 25},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bIT" = (/obj/machinery/light{dir = 1},/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay Requests Console"; pixel_x = 0; pixel_y = 30; pixel_z = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) -"bIU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2) -"bIV" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/medical/sleeper) -"bIW" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/medical/sleeper) -"bIX" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/wall,/area) +"bIU" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable,/obj/machinery/light,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bIV" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bIW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2) +"bIX" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/medical/sleeper) "bIY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) -"bIZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area) -"bJa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2) -"bJb" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2"; icon_state = "pipe-j2"; dir = 2},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2) +"bIZ" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/medical/sleeper) +"bJa" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/wall,/area) +"bJb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area) "bJc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Genetics"; req_access_txt = "9"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "bJd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{tag = "icon-whitepurple (WEST)"; icon_state = "whitepurple"; dir = 8},/area/medical/genetics) "bJe" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) @@ -4599,13 +4599,13 @@ "bKw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{tag = "icon-whitebluecorner (WEST)"; icon_state = "whitebluecorner"; dir = 8},/area/medical/medbay2) "bKx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bKy" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay2) -"bKz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/table,/obj/machinery/recharger{pixel_y = 0},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) -"bKA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/britcup,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) -"bKB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/stool,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) -"bKC" = (/obj/machinery/computer/med_data,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) -"bKD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) +"bKz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2) +"bKA" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2"; icon_state = "pipe-j2"; dir = 2},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2) +"bKB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/table,/obj/machinery/recharger{pixel_y = 0},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bKC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/britcup,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bKD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/stool,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) "bKE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) -"bKF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/newscaster{pixel_x = 30},/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) +"bKF" = (/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay Lobby)"; pixel_x = 0; pixel_y = -28},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) "bKG" = (/obj/machinery/light{dir = 8},/obj/structure/table,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/stokcubes,/obj/item/weapon/storage/box/neaeracubes,/obj/item/weapon/storage/box/farwacubes,/turf/simulated/floor{tag = "icon-whitepurple (WEST)"; icon_state = "whitepurple"; dir = 8},/area/medical/genetics) "bKH" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/table,/obj/item/roller,/obj/item/weapon/storage/box/disks,/turf/simulated/floor{tag = "icon-whitepurple (EAST)"; icon_state = "whitepurple"; dir = 4},/area/medical/genetics) "bKI" = (/turf/simulated/wall/r_wall,/area/toxins/server) @@ -4670,13 +4670,13 @@ "bLP" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area) "bLQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bLR" = (/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay2) -"bLS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) -"bLT" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/structure/stool,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) -"bLU" = (/obj/machinery/computer/crew,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) -"bLV" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/britcup,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) -"bLW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor{tag = "icon-whitebluecorner (WEST)"; icon_state = "whitebluecorner"; dir = 8},/area/medical/medbay2) -"bLX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) -"bLY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/stool,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bLS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) +"bLT" = (/obj/machinery/computer/med_data,/obj/machinery/newscaster{pixel_x = 30},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bLU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) +"bLV" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/structure/stool,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bLW" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor{dir = 10; icon_state = "brown"},/area/quartermaster/miningdock) +"bLX" = (/obj/item/weapon/ore/silver,/obj/item/weapon/ore/silver,/obj/structure/closet/crate,/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "mining_dock_pump"},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/quartermaster/miningdock) +"bLY" = (/obj/machinery/computer/crew,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) "bLZ" = (/obj/structure/stool/bed/chair/office/dark,/turf/simulated/floor{tag = "icon-whitepurple (WEST)"; icon_state = "whitepurple"; dir = 8},/area/medical/genetics) "bMa" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bMb" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) @@ -4687,7 +4687,7 @@ "bMg" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 4; icon_state = "rightsecure"; name = "Server Exterior Door"; req_access = null; req_access_txt = "0"},/obj/machinery/door/window/brigdoor{dir = 8; name = "Server Interior Door"; req_access = null; req_access_txt = "0"},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bMh" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bMi" = (/obj/structure/stool/bed/chair/office/light,/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) -"bMj" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; level = 2},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) +"bMj" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bMk" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage) "bMl" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/decal/warning_stripes/yellow,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage) "bMm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) @@ -4749,10 +4749,10 @@ "bNq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area) "bNr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bNs" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay2) -"bNt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "staffroom"; name = "Staff Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area) -"bNu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay2) -"bNv" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/syringes{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/syringes,/obj/machinery/power/apc{dir = 4; name = "Medbay Equipment APC"; pixel_x = 25},/obj/structure/cable,/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay3) -"bNw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2) +"bNt" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/britcup,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bNu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor{tag = "icon-whitebluecorner (WEST)"; icon_state = "whitebluecorner"; dir = 8},/area/medical/medbay2) +"bNv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bNw" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/stool,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) "bNx" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/wall,/area) "bNy" = (/obj/machinery/computer/scan_consolenew,/obj/structure/window/reinforced,/turf/simulated/floor{tag = "icon-whitepurple (WEST)"; icon_state = "whitepurple"; dir = 8},/area/medical/genetics) "bNz" = (/obj/machinery/dna_scannernew,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) @@ -4787,7 +4787,7 @@ "bOc" = (/obj/machinery/computer/shuttle_control/mining,/turf/simulated/floor{dir = 9; icon_state = "brown"},/area/quartermaster/miningdock) "bOd" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor,/area/quartermaster/miningdock) "bOe" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/quartermaster/miningdock) -"bOf" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/quartermaster/miningdock) +"bOf" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "Medbay Treatment Center APC"; pixel_y = -24},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "blue"; dir = 6},/area/medical/sleeper) "bOg" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/quartermaster/miningdock) "bOh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass_mining{name = "Quartermaster"; req_access_txt = "41"},/turf/simulated/floor,/area/quartermaster/qm) "bOi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor,/area/quartermaster/qm) @@ -4818,13 +4818,13 @@ "bOH" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/cmo) "bOI" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/cmo) "bOJ" = (/obj/machinery/power/apc{dir = 4; name = "CMO Office APC"; pixel_x = 25},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/mob/living/simple_animal/cat/Runtime,/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/cmo) -"bOK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) -"bOL" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/cell_charger,/obj/item/weapon/gun/syringe,/turf/simulated/floor{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/medical/medbay3) -"bOM" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/medical/medbay2) -"bON" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) -"bOO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/closet/walllocker/emerglocker/north,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) -"bOP" = (/obj/machinery/camera{c_tag = "Medbay Fore Starboard"; network = list("SS13")},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/machinery/power/apc{dir = 1; name = "Medbay APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) -"bOQ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) +"bOK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "staffroom"; name = "Staff Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area) +"bOL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay2) +"bOM" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/syringes{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/syringes,/obj/machinery/power/apc{dir = 4; name = "Medbay Equipment APC"; pixel_x = 25},/obj/structure/cable,/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay3) +"bON" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2) +"bOO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) +"bOP" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/cell_charger,/obj/item/weapon/gun/syringe,/turf/simulated/floor{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/medical/medbay3) +"bOQ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/medical/medbay2) "bOR" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor{tag = "icon-whitepurple (NORTHWEST)"; icon_state = "whitepurple"; dir = 9},/area/medical/genetics) "bOS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1},/area/medical/genetics) "bOT" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/medical/genetics) @@ -4848,7 +4848,7 @@ "bPl" = (/turf/simulated/shuttle/floor,/area/shuttle/mining/station) "bPm" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/mining/station) "bPn" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/miningdock) -"bPo" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "mining_dock_pump"},/obj/item/weapon/ore/silver,/obj/item/weapon/ore/silver,/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/quartermaster/miningdock) +"bPo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bPp" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "mining_dock_airlock"; pixel_x = 25; pixel_y = -5; req_access_txt = "0"; req_one_access_txt = "13;48"; tag_airpump = "mining_dock_pump"; tag_chamber_sensor = "mining_dock_sensor"; tag_exterior_door = "mining_dock_outer"; tag_interior_door = "mining_dock_inner"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "mining_dock_sensor"; pixel_x = 25; pixel_y = 8},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1},/obj/item/weapon/ore/iron,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/quartermaster/miningdock) "bPq" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/wall,/area/quartermaster/miningdock) "bPr" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air{filled = 0.2},/turf/simulated/floor{dir = 8; icon_state = "brown"},/area/quartermaster/miningdock) @@ -4875,7 +4875,7 @@ "bPM" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/primary/aft) "bPN" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bPO" = (/obj/structure/closet/jcloset,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor,/area/janitor) -"bPP" = (/obj/structure/closet/l3closet/janitor,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor,/area/janitor) +"bPP" = (/obj/structure/disposalpipe/segment,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "bPQ" = (/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/camera{c_tag = "Custodial Closet"; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/janitor) "bPR" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/machinery/newscaster{pixel_y = 30},/turf/simulated/floor,/area/janitor) "bPS" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/janitor) @@ -4902,14 +4902,14 @@ "bQn" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "white"},/area/medical/cmo) "bQo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/cmo) "bQp" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "CMO's Office"; req_access_txt = "40"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/cmo) -"bQq" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable,/obj/item/roller,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) -"bQr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/wall,/area) -"bQs" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; initialize_directions = 10},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) -"bQt" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) -"bQu" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) -"bQv" = (/obj/effect/landmark/start{name = "Medical Doctor"},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) -"bQw" = (/obj/effect/landmark/start{name = "Geneticist"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) -"bQx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) +"bQq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/closet/walllocker/emerglocker/north,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) +"bQr" = (/obj/machinery/camera{c_tag = "Medbay Fore Starboard"; network = list("SS13")},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/machinery/power/apc{dir = 1; name = "Medbay APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) +"bQs" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) +"bQt" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable,/obj/item/roller,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) +"bQu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/wall,/area) +"bQv" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; initialize_directions = 10},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) +"bQw" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) +"bQx" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) "bQy" = (/obj/machinery/light,/turf/simulated/floor{tag = "icon-whitepurple (SOUTHWEST)"; icon_state = "whitepurple"; dir = 10},/area/medical/genetics) "bQz" = (/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/medical/genetics) "bQA" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/medical/genetics) @@ -4950,7 +4950,7 @@ "bRj" = (/obj/structure/disposalpipe/segment,/obj/effect/landmark/start{name = "Shaft Miner"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/quartermaster/miningdock) "bRk" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/quartermaster/miningdock) "bRl" = (/obj/item/weapon/beach_ball/holoball,/turf/simulated/floor/plating,/area/maintenance/apmaint) -"bRm" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/plating,/area/maintenance/aft) +"bRm" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/rack,/obj/item/clothing/suit/radiation,/obj/item/clothing/head/radiation,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/biostorage) "bRn" = (/obj/machinery/photocopier,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/light_switch{pixel_x = -25},/turf/simulated/floor/wood,/area/blueshield) "bRo" = (/turf/simulated/floor{icon_state = "bcarpet05"},/area/blueshield) "bRp" = (/turf/simulated/floor/wood,/area/blueshield) @@ -4981,15 +4981,15 @@ "bRO" = (/obj/structure/table,/obj/machinery/computer/med_data/laptop,/turf/simulated/floor{icon_state = "white"},/area/medical/cmo) "bRP" = (/obj/structure/table,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 0},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/cmo) "bRQ" = (/obj/machinery/camera{c_tag = "Medbay Starboard Corridor"; dir = 4; network = list("SS13")},/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2) -"bRR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) -"bRS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) -"bRT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Genetics Cloning"; req_access_txt = "0"; req_one_access_txt = "5;9"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) -"bRU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) -"bRV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay2) -"bRW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) -"bRX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) -"bRY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) -"bRZ" = (/obj/structure/table,/obj/item/weapon/book/manual/medical_cloning,/obj/item/weapon/storage/box/bodybags,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) +"bRR" = (/obj/effect/landmark/start{name = "Medical Doctor"},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) +"bRS" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"bRT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) +"bRU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) +"bRV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) +"bRW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Genetics Cloning"; req_access_txt = "0"; req_one_access_txt = "5;9"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) +"bRX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) +"bRY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay2) +"bRZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) "bSa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/engine,/area/toxins/telescipad) "bSb" = (/obj/machinery/telepad,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/engine,/area/toxins/telescipad) "bSc" = (/obj/item/device/radio/beacon,/turf/simulated/floor/engine,/area/toxins/telescipad) @@ -5007,10 +5007,10 @@ "bSo" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating/airless,/area/toxins/test_area) "bSp" = (/obj/machinery/camera{c_tag = "Research Toxins Test Chamber North"; network = list("Toxins","Research","SS13")},/obj/machinery/light{dir = 1},/turf/simulated/floor/airless,/area/toxins/test_area) "bSq" = (/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/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/miningdock) -"bSr" = (/obj/item/weapon/ore/silver,/obj/item/weapon/ore/silver,/obj/item/weapon/ore/iron,/obj/structure/closet/crate,/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "mining_dock_pump"},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/quartermaster/miningdock) +"bSr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) "bSs" = (/obj/machinery/camera{c_tag = "Mining Dock External"; dir = 8},/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor{icon_state = "warning"},/area/quartermaster/miningdock) "bSt" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/simulated/wall,/area/quartermaster/miningdock) -"bSu" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/obj/machinery/vending/eva,/turf/simulated/floor{dir = 10; icon_state = "brown"},/area/quartermaster/miningdock) +"bSu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bSv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor,/area/quartermaster/miningdock) "bSw" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/quartermaster/miningdock) "bSx" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; name = "QM Office"; sortType = 3},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/quartermaster/miningdock) @@ -5034,8 +5034,8 @@ "bSP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bSQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bSR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/closet/paramedic,/obj/item/key/ambulance,/turf/simulated/floor{icon_state = "white"},/area/medical/paramedic) -"bSS" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/obj/machinery/camera{c_tag = "Paramedic Bay"; dir = 1; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/paramedic) -"bST" = (/obj/machinery/light,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 2; name = "Paramedic APC"; pixel_y = -24},/turf/simulated/floor{icon_state = "white"},/area/medical/paramedic) +"bSS" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/paramedic) +"bST" = (/obj/machinery/light,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 2; name = "Paramedic APC"; pixel_y = -24},/obj/machinery/camera{c_tag = "Paramedic Bay"; dir = 1; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/paramedic) "bSU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/paramedic) "bSV" = (/obj/machinery/computer/crew,/turf/simulated/floor{icon_state = "white"},/area/medical/paramedic) "bSW" = (/obj/machinery/door_control{id = "acute2"; name = "Acute 2 Shutters Control"; pixel_x = 6; pixel_y = -25},/obj/machinery/door_control{id = "scansep"; name = "Scanning Room Separation Shutters Control"; pixel_x = -6; pixel_y = -25},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) @@ -5047,13 +5047,13 @@ "bTc" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/item/weapon/folder/white{pixel_y = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/weapon/reagent_containers/food/drinks/coffee,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/tie/stethoscope,/obj/item/weapon/stamp/cmo,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/cmo) "bTd" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area) "bTe" = (/obj/machinery/photocopier,/turf/simulated/floor{tag = "icon-whiteblue (SOUTHWEST)"; icon_state = "whiteblue"; dir = 10},/area/medical/medbay2) -"bTf" = (/obj/machinery/power/apc{dir = 4; cell_type = 15000; name = "east bump"; pixel_x = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) -"bTg" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) -"bTh" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) -"bTi" = (/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) -"bTj" = (/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) -"bTk" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 0; pixel_y = 0},/obj/machinery/camera{c_tag = "Medbay Cryogenics"; network = list("SS13")},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) -"bTl" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor,/area/medical/cryo) +"bTf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"bTg" = (/obj/machinery/power/apc{dir = 4; cell_type = 15000; name = "east bump"; pixel_x = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) +"bTh" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) +"bTi" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) +"bTj" = (/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) +"bTk" = (/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) +"bTl" = (/obj/structure/table,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/mask/muzzle,/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -27},/obj/machinery/light,/obj/item/weapon/gun/syringe,/turf/simulated/floor{tag = "icon-whiteblue (SOUTHWEST)"; icon_state = "whiteblue"; dir = 10},/area/medical/medbay3) "bTm" = (/obj/structure/table/woodentable,/obj/machinery/light/small/lamp/green,/turf/simulated/floor/wood,/area/medical/psych) "bTn" = (/obj/structure/table/woodentable,/obj/machinery/computer/med_data/laptop,/turf/simulated/floor/wood,/area/medical/psych) "bTo" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/briefcase,/obj/machinery/light{dir = 1; on = 1},/turf/simulated/floor/wood,/area/medical/psych) @@ -5094,7 +5094,7 @@ "bTX" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/wood,/area/blueshield) "bTY" = (/obj/structure/stool/bed/chair/office/dark,/turf/simulated/floor/carpet,/area/ntrep) "bTZ" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/wood,/area/ntrep) -"bUa" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) +"bUa" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bUb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/hallway/primary/aft) "bUc" = (/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bUd" = (/obj/machinery/door/airlock/maintenance{name = "Custodial Maintenance"; req_access_txt = "26"},/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -5112,9 +5112,9 @@ "bUp" = (/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo) "bUq" = (/obj/machinery/computer/crew,/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 6; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo) "bUr" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area) -"bUs" = (/obj/machinery/camera{c_tag = "Medbay Cloning"; network = list("SS13")},/obj/structure/closet/wardrobe/medic_white,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) -"bUt" = (/obj/machinery/disposal,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) -"bUu" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) +"bUs" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 0; pixel_y = 0},/obj/machinery/camera{c_tag = "Medbay Cryogenics"; network = list("SS13")},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) +"bUt" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor,/area/medical/cryo) +"bUu" = (/obj/machinery/camera{c_tag = "Medbay Cloning"; network = list("SS13")},/obj/structure/closet/wardrobe/medic_white,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "bUv" = (/obj/structure/table/woodentable,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor/wood,/area/medical/psych) "bUw" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/obj/effect/landmark/start{name = "Psychiatrist"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/wood,/area/medical/psych) "bUx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/hologram/holopad,/turf/simulated/floor/wood,/area/medical/psych) @@ -5190,8 +5190,8 @@ "bVP" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bVQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bVR" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/medical/sleeper) -"bVS" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal,/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) -"bVT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay2) +"bVS" = (/obj/machinery/disposal,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) +"bVT" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "bVU" = (/obj/machinery/door_control{id = "scanhide"; name = "Scanning Room Privacy Shutters Control"; pixel_x = 6; pixel_y = 25},/obj/machinery/camera{c_tag = "Medbay Scanning"; network = list("SS13")},/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 8; icon_state = "freezer_0"; tag = ""},/obj/machinery/door_control{id = "scansep"; name = "Scanning Room Separation Shutters Control"; pixel_x = -6; pixel_y = 25},/turf/simulated/floor{dir = 5; icon_state = "blue"},/area/medical/sleeper) "bVV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "scanhide"; name = "Scanning Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area) "bVW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) @@ -5199,14 +5199,14 @@ "bVY" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area) "bVZ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "CMO's Office"; req_access_txt = "40"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/cmo) "bWa" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area) -"bWb" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor,/area/medical/cryo) -"bWc" = (/obj/structure/closet/secure_closet/medical1,/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) -"bWd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) -"bWe" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) -"bWf" = (/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) -"bWg" = (/obj/structure/sign/examroom,/turf/simulated/wall,/area) -"bWh" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Exam Room APC"; pixel_x = 25},/obj/structure/filingcabinet,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) -"bWi" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/structure/closet/secure_closet/medical1,/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"bWb" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal,/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) +"bWc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay2) +"bWd" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor,/area/medical/cryo) +"bWe" = (/obj/structure/closet/secure_closet/medical1,/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) +"bWf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"bWg" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"bWh" = (/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"bWi" = (/obj/structure/sign/examroom,/turf/simulated/wall,/area) "bWj" = (/obj/structure/flora/kirbyplants,/obj/machinery/door_control{id = "psychoffice"; name = "Privacy Shutters Control"; pixel_x = -25; pixel_y = 0},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/wood,/area/medical/psych) "bWk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/wood,/area/medical/psych) "bWl" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/wood,/area/medical/psych) @@ -5247,7 +5247,7 @@ "bWU" = (/obj/structure/grille,/obj/structure/window/plasmareinforced{dir = 4},/obj/structure/window/plasmareinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area) "bWV" = (/turf/simulated/floor/airless{dir = 8; icon_state = "warning"},/area/toxins/test_area) "bWW" = (/turf/simulated/wall/r_wall,/area/maintenance/apmaint) -"bWX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/stool,/obj/machinery/camera{c_tag = "Medbay Examination Room"; network = list("SS13")},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"bWX" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Exam Room APC"; pixel_x = 25},/obj/structure/filingcabinet,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) "bWY" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) "bWZ" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Blueshield"; departmentType = 5; name = "Blueshield Requests Console"; pixel_x = -30},/turf/simulated/floor/wood,/area/blueshield) "bXa" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Blueshield"},/turf/simulated/floor{icon_state = "bcarpet05"},/area/blueshield) @@ -5269,24 +5269,24 @@ "bXq" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bXr" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "Medbay"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor{icon_state = "bot"},/area/maintenance/asmaint) "bXs" = (/obj/machinery/door/window/eastleft{name = "Medical Delivery"; req_access_txt = "5"},/obj/effect/decal/warning_stripes/yellow,/turf/simulated/floor,/area/medical/sleeper) -"bXt" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/stool/bed/chair/wheelchair,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) -"bXu" = (/obj/machinery/newscaster{pixel_x = 30},/obj/machinery/alarm{pixel_y = 26},/obj/structure/flora/kirbyplants,/turf/simulated/floor{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/medical/reception) -"bXv" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"bXt" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/structure/closet/secure_closet/medical1,/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"bXu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/stool,/obj/machinery/camera{c_tag = "Medbay Examination Room"; network = list("SS13")},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"bXv" = (/obj/structure/table,/obj/item/weapon/book/manual/medical_cloning,/obj/item/weapon/storage/box/bodybags,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "bXw" = (/turf/simulated/floor{dir = 4; icon_state = "blue"},/area/medical/sleeper) "bXx" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "scanhide"; name = "Scanning Room Privacy Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/sleeper) "bXy" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{dir = 1; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2) "bXz" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2) "bXA" = (/obj/structure/closet/walllocker/emerglocker/north,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/photocopier,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bXB" = (/obj/machinery/light{dir = 1},/obj/structure/table,/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment,/obj/item/roller,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) -"bXC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Examination Room"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) -"bXD" = (/obj/machinery/light_switch{name = "light switch "; dir = 2; pixel_x = 0; pixel_y = -22},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/morgue) +"bXC" = (/obj/machinery/camera{c_tag = "Medbay Lounge"; network = list("SS13")},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/weapon/soap/nanotrasen,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) +"bXD" = (/obj/machinery/newscaster{pixel_x = 30},/obj/machinery/alarm{pixel_y = 26},/obj/structure/flora/kirbyplants,/turf/simulated/floor{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/medical/reception) "bXE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bXF" = (/obj/machinery/vending/coffee,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bXG" = (/obj/machinery/light{dir = 1},/obj/machinery/vending/medical,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bXH" = (/obj/structure/closet/walllocker/emerglocker/north,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bXI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2) -"bXJ" = (/obj/structure/table,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/computer/med_data/laptop,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) -"bXK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/morgue) +"bXJ" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"bXK" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/stool/bed/chair/wheelchair,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) "bXL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Psych Office"; req_access_txt = "64"},/turf/simulated/floor{icon_state = "white"},/area/medical/psych) "bXM" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "psychoffice"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area) "bXN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "psychoffice"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area) @@ -5334,7 +5334,7 @@ "bYD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bYE" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/closet/firecloset,/obj/item/taperoll/engineering,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/engine/controlroom) "bYF" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = 30},/obj/structure/closet/firecloset,/obj/item/taperoll/engineering,/turf/simulated/floor,/area/engine/controlroom) -"bYG" = (/obj/structure/closet/firecloset,/obj/item/taperoll/engineering,/obj/machinery/computer/security/telescreen{desc = "Used for watching the supermatter core."; name = "Supermatter Monitor"; network = list("Supermatter"); pixel_x = 0; pixel_y = 30},/turf/simulated/floor,/area/engine/controlroom) +"bYG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/turf/simulated/floor/plating,/area/medical/exam_room) "bYH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/computer/security/telescreen{desc = "Used for watching the singularity chamber."; dir = 8; layer = 4; name = "Singularity Engine Telescreen"; network = list("Singularity"); pixel_x = 0; pixel_y = 30},/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor,/area/engine/controlroom) "bYI" = (/obj/machinery/power/monitor,/obj/structure/cable,/turf/simulated/floor{icon_state = "caution"; dir = 5},/area/engine/controlroom) "bYJ" = (/obj/structure/table,/obj/item/device/t_scanner,/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -5343,7 +5343,7 @@ "bYM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"},/turf/simulated/wall,/area) "bYN" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/sleeper) "bYO" = (/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor,/area/medical/sleeper) -"bYP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/medical/exam_room) +"bYP" = (/obj/machinery/light_switch{name = "light switch "; dir = 2; pixel_x = 0; pixel_y = -22},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/morgue) "bYQ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "scanhide"; name = "Scanning Room Privacy Shutters"; opacity = 0},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/sleeper) "bYR" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{tag = "icon-whitebluecorner (WEST)"; icon_state = "whitebluecorner"; dir = 8},/area/medical/medbay2) "bYS" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) @@ -5356,7 +5356,7 @@ "bYZ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bZa" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bZb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) -"bZc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"bZc" = (/obj/structure/table,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/computer/med_data/laptop,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) "bZd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bZe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bZf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) @@ -5404,8 +5404,8 @@ "bZV" = (/obj/structure/closet,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bZW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bZX" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance Access"; req_access_txt = "5"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bZY" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) -"bZZ" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_y = -10},/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 25; pixel_y = 16; req_access_txt = "0"},/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"bZY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/morgue) +"bZZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/medical/exam_room) "caa" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{dir = 4; icon_state = "blue"},/area/medical/sleeper) "cab" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2) "cac" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) @@ -5473,7 +5473,7 @@ "cbm" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/oxygen{name = "Canister: \[O2] (CRYO)"},/obj/machinery/light_switch{name = "light switch "; dir = 2; pixel_x = 0; pixel_y = -22},/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/medical/sleeper) "cbn" = (/obj/machinery/bodyscanner,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/sleeper) "cbo" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -28},/obj/machinery/body_scanconsole,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/sleeper) -"cbp" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "Medbay Treatment Center APC"; pixel_y = -24},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; level = 1},/turf/simulated/floor{icon_state = "blue"; dir = 6},/area/medical/sleeper) +"cbp" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/ward) "cbq" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Scanning Room"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "cbr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (SOUTHWEST)"; icon_state = "whiteblue"; dir = 10},/area/medical/medbay2) "cbs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) @@ -5517,7 +5517,7 @@ "cce" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plating,/area/storage/tech) "ccf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/storage/tech) "ccg" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/storage/tech) -"cch" = (/obj/structure/disposalpipe/segment,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) +"cch" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "cci" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/hallway/primary/aft) "ccj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/aft) "cck" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/window/northleft{dir = 4; icon_state = "left"; name = "Engineering Desk"; req_access_txt = "0"; req_one_access_txt = "11;24"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/controlroom) @@ -5603,7 +5603,7 @@ "cdM" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/virology) "cdN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/virology) "cdO" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/virology) -"cdP" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; level = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/rack,/obj/item/clothing/suit/radiation,/obj/item/clothing/head/radiation,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/biostorage) +"cdP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor{icon_state = "dark"},/area/construction) "cdQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/medical/biostorage) "cdR" = (/obj/structure/table,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/device/assembly/igniter,/obj/item/device/assembly/igniter,/obj/item/device/assembly/igniter,/obj/item/device/assembly/timer,/obj/item/device/assembly/timer,/obj/item/device/assembly/timer,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/camera{c_tag = "Medbay Storage"; dir = 8; network = list("SS13")},/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/turf/simulated/floor{dir = 4; icon_state = "blue"},/area/medical/biostorage) "cdS" = (/obj/structure/closet,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -5619,10 +5619,10 @@ "cec" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "ced" = (/obj/structure/sign/securearea{pixel_x = 0; pixel_y = 32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cee" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"cef" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; level = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"cef" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/primary/aft) "ceg" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "ceh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"cei" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"cei" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/machinery/meter,/turf/simulated/wall/r_wall,/area) "cej" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cek" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cel" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -5656,7 +5656,7 @@ "ceN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/construction) "ceO" = (/obj/machinery/camera{c_tag = "Engineering Construction Area"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/construction) "ceP" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "white"},/area/medical/ward) -"ceQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/ward) +"ceQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "ceR" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/ward) "ceS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/ward) "ceT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/ward) @@ -5673,7 +5673,7 @@ "cfe" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/camera{c_tag = "Virology Access North"; dir = 8; network = list("SS13")},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/virology) "cff" = (/obj/structure/rack,/obj/item/clothing/suit/radiation,/obj/item/clothing/head/radiation,/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/biostorage) "cfg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/medical/biostorage) -"cfh" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/table,/obj/item/weapon/cane,/obj/item/weapon/cane{pixel_x = -3; pixel_y = 2},/obj/item/weapon/cane{pixel_x = -6; pixel_y = 4},/obj/item/weapon/storage/box/rxglasses,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"cfh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) "cfi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/maintenance/asmaint) "cfj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "cfk" = (/obj/structure/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/sunglasses,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -5775,7 +5775,7 @@ "chc" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/storage/tech) "chd" = (/obj/machinery/power/apc{name = "Aft Hall APC"; dir = 8; pixel_x = -25; pixel_y = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "che" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) -"chf" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"chf" = (/obj/machinery/iv_drip,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "chg" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 6; icon_state = "caution"},/area/hallway/secondary/construction{name = "\improper Engineering Training"}) "chh" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/engine/controlroom) "chi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/vending/eva,/turf/simulated/floor,/area/engine/controlroom) @@ -5806,7 +5806,7 @@ "chH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "chI" = (/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/border_only,/turf/simulated/floor/plating,/area/toxins/xenobiology/xenoflora) "chJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 10; icon_state = "whitegreen"},/area/toxins/xenobiology/xenoflora) -"chK" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/toxins/xenobiology/xenoflora) +"chK" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4; level = 1},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/toxins/xenobiology/xenoflora) "chL" = (/obj/machinery/atmospherics/pipe/manifold/visible,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/toxins/xenobiology/xenoflora) "chM" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4; initialize_directions = 11; level = 2},/turf/simulated/floor{dir = 6; icon_state = "whitegreen"},/area/toxins/xenobiology/xenoflora) "chN" = (/turf/simulated/floor,/area/toxins/xenobiology/xenoflora) @@ -5814,13 +5814,13 @@ "chP" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/toxins/xenobiology/xenoflora) "chQ" = (/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/toxins/xenobiology/xenoflora) "chR" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/camera{c_tag = "Research Xenoflora Laboratory East"; dir = 8; network = list("Research","SS13")},/turf/simulated/floor{dir = 6; icon_state = "whitegreen"},/area/toxins/xenobiology/xenoflora) -"chS" = (/obj/machinery/door/airlock/engineering{name = "Aft Starboard Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"chS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Examination Room"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/exam_room) "chT" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/toxins/test_area) "chU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating/airless,/area/toxins/test_area) "chV" = (/obj/machinery/power/apc{dir = 4; name = "Explosives Testing APC"; pixel_x = 25},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/toxins/test_area) "chW" = (/obj/machinery/camera{c_tag = "Research Toxins Test Chamber South"; dir = 1; network = list("Toxins","Research","SS13")},/obj/machinery/light,/turf/simulated/floor/airless,/area/toxins/test_area) "chX" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 0; icon_state = "in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator) -"chY" = (/obj/machinery/atmospherics/pipe/simple/insulated{dir = 4},/turf/simulated/wall/r_wall,/area) +"chY" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) "chZ" = (/obj/machinery/atmospherics/binary/pump{dir = 4; on = 1},/obj/structure/sign/fire{pixel_y = -32},/turf/simulated/floor/plating,/area/maintenance/incinerator) "cia" = (/obj/machinery/atmospherics/pipe/simple/insulated{dir = 4},/obj/machinery/door_control{id = "disvent"; name = "Incinerator Vent Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "12"},/obj/machinery/meter,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "cib" = (/obj/machinery/light,/obj/machinery/atmospherics/tvalve/mirrored/digital{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) @@ -5840,7 +5840,7 @@ "cip" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor,/area/engine/controlroom) "ciq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor,/area/engine/controlroom) "cir" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/construction) -"cis" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10; initialize_directions = 10; level = 1},/turf/simulated/floor{icon_state = "dark"},/area/construction) +"cis" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/primary/aft) "cit" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "dark"},/area/construction) "ciu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "dark"},/area/construction) "civ" = (/obj/structure/table,/obj/item/weapon/storage/box/gloves,/obj/item/weapon/storage/box/masks,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner"},/obj/machinery/light_switch{pixel_x = -5; pixel_y = 27},/obj/machinery/holosign_switch{id = "surgery1"; pixel_x = 5; pixel_y = 27},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) @@ -5934,28 +5934,28 @@ "ckf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/item/pod_parts/core,/obj/machinery/camera{c_tag = "Mechanic's Workshop East"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "dark"},/area/engine/mechanic_workshop) "ckg" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/engine/mechanic_workshop) "ckh" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/structure/table/reinforced,/obj/machinery/door/window/westright{name = "Mechanic's Desk"; req_access = null; req_access_txt = "70"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/engine,/area/engine/mechanic_workshop) -"cki" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/aft) -"ckj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"ckk" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"ckl" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"ckm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"ckn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"cko" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"ckp" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"ckq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"ckr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"cks" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera{c_tag = "Aft Primary Hallway 3"; dir = 2; network = list("SS13")},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"ckt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"cku" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"ckv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/hallway/primary/aft) -"ckw" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) +"cki" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/disposal) +"ckj" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_y = -10},/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"ckk" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/table,/obj/item/weapon/cane,/obj/item/weapon/cane{pixel_x = -3; pixel_y = 2},/obj/item/weapon/cane{pixel_x = -6; pixel_y = 4},/obj/item/weapon/storage/box/rxglasses,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"ckl" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/storage/pill_bottle/antitox,/obj/structure/closet/secure_closet/medical_wall{name = "Pill Cabinet"; pixel_y = -32},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"ckm" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/stool/bed,/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 25; pixel_y = 0; req_access_txt = "0"},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"ckn" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/reception) +"cko" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"ckp" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/medical{name = "Examination Room"; req_access_txt = "5"; req_one_access_txt = "0"},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/exam_room) +"ckq" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"ckr" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engine/engineering) +"cks" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"ckt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cku" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/power/monitor{name = "Engine Power Monitoring Computer"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/engine/engineering) +"ckv" = (/obj/structure/table,/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/item/weapon/cell/high,/turf/simulated/floor,/area/engine/engineering) +"ckw" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/sign/securearea,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area) "ckx" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/primary/aft) -"cky" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 2},/obj/machinery/meter,/turf/simulated/wall/r_wall,/area) +"cky" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint) "ckz" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9; level = 1},/turf/simulated/floor,/area/engine/controlroom) "ckA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/wall/r_wall,/area) "ckB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area) "ckC" = (/obj/machinery/iv_drip,/obj/machinery/light{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) -"ckD" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) +"ckD" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint) "ckE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "ckF" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "ckG" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) @@ -5963,7 +5963,7 @@ "ckI" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/light{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "ckJ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "ckK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) -"ckL" = (/obj/machinery/iv_drip,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; level = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) +"ckL" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint) "ckM" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/obj/machinery/door/airlock/maintenance,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/asmaint) "ckN" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/obj/machinery/door/airlock/maintenance,/turf/simulated/floor/plating,/area/maintenance/asmaint) "ckO" = (/obj/machinery/door/window/eastright{base_state = "right"; dir = 1; icon_state = "right"; name = "Xenoflora Containment"; req_access_txt = "47"},/turf/simulated/floor,/area/toxins/xenobiology/xenoflora_storage) @@ -5978,7 +5978,7 @@ "ckX" = (/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/toxins/xenobiology/xenoflora) "ckY" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 30; pixel_y = 0},/turf/simulated/floor{dir = 5; icon_state = "whitegreen"},/area/toxins/xenobiology/xenoflora) "ckZ" = (/obj/machinery/power/solar_control{id = "starboardsolar"; name = "Aft Starboard Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/solar/starboard) -"cla" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "solar_xeno_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "10;13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6; level = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/solar/starboard) +"cla" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "solar_xeno_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "10;13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/solar/starboard) "clb" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/solar/starboard) "clc" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/engine,/area/engine/mechanic_workshop) "cld" = (/turf/simulated/floor/engine,/area/engine/mechanic_workshop) @@ -5992,15 +5992,15 @@ "cll" = (/turf/simulated/floor{icon_state = "dark"},/area/engine/mechanic_workshop) "clm" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass_engineering{name = "Mechanic Workshop"; req_access_txt = "70"; req_one_access_txt = "0"},/turf/simulated/floor{icon_state = "dark"},/area/engine/mechanic_workshop) "cln" = (/turf/simulated/floor,/area/hallway/primary/aft) -"clo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"clo" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/table,/obj/item/stack/sheet/mineral/plasma{amount = 30},/obj/item/device/pipe_painter,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) "clp" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/aft) "clq" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor,/area/hallway/primary/aft) "clr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) "cls" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2"; icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) "clt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) -"clu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) +"clu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint) "clv" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/camera{c_tag = "Aft Primary Hallway 2"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/primary/aft) -"clw" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9; level = 2},/obj/structure/sign/securearea,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area) +"clw" = (/obj/structure/closet/secure_closet/personal/patient,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "Virology APC"; pixel_x = -25; pixel_y = 3},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/virology) "clx" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor,/area/engine/break_room) "cly" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/recharge_station,/turf/simulated/floor,/area/engine/break_room) "clz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/computer/station_alert,/turf/simulated/floor,/area/engine/break_room) @@ -6011,7 +6011,7 @@ "clE" = (/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/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor,/area/atmos/control) "clF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera{c_tag = "Atmospherics Control Room"; network = list("SS13")},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "Atmospherics Control APC"; pixel_y = 26},/obj/structure/table,/obj/item/weapon/book/manual/atmospipes,/obj/item/device/multitool{pixel_x = 5},/turf/simulated/floor,/area/atmos/control) "clG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/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" = "Waste Loop")},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/atmos/control) -"clH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; tag = "icon-manifold-b (NORTH)"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"clH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "clI" = (/obj/structure/closet/crate/freezer,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "clJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "clK" = (/obj/machinery/computer/operating,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) @@ -6039,7 +6039,7 @@ "cmg" = (/obj/machinery/seed_extractor,/turf/simulated/floor,/area/toxins/xenobiology/xenoflora) "cmh" = (/obj/machinery/light,/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/simulated/floor{dir = 10; icon_state = "whitegreen"},/area/toxins/xenobiology/xenoflora) "cmi" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/reagent_containers/glass/bucket,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{dir = 6; icon_state = "whitegreen"},/area/toxins/xenobiology/xenoflora) -"cmj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "solar_xeno_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{level = 2},/turf/simulated/floor/plating,/area/solar/starboard) +"cmj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "solar_xeno_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/solar/starboard) "cmk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area) "cml" = (/obj/structure/spacepoddoor,/obj/machinery/door/poddoor/three_tile_ver{id = "mechpodbay"; layer = 3.1; req_access_txt = "70"},/turf/simulated/floor/engine,/area/engine/mechanic_workshop) "cmm" = (/obj/machinery/door_control{desc = "A remote control-switch for the pod doors."; id = "mechpodbay"; name = "Pod Door Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "70"},/turf/simulated/floor/engine,/area/engine/mechanic_workshop) @@ -6053,13 +6053,13 @@ "cmu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/item/stack/sheet/metal{amount = 50},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{icon_state = "dark"},/area/engine/mechanic_workshop) "cmv" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light_switch{name = "light switch "; dir = 2; pixel_x = 0; pixel_y = -22},/obj/machinery/cell_charger,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = 10},/turf/simulated/floor{icon_state = "dark"},/area/engine/mechanic_workshop) "cmw" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/engine/mechanic_workshop) -"cmx" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/storage/pill_bottle/antitox,/obj/structure/closet/secure_closet/medical_wall{name = "Pill Cabinet"; pixel_y = -32},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"cmx" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "cmy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "cmz" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "cmA" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "bot"},/area/assembly/assembly_line) "cmB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "cmC" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"cmD" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cmD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor,/area/engine/engineering) "cmE" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 6},/turf/simulated/floor,/area/hallway/primary/aft) "cmF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) "cmG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/aft) @@ -6095,7 +6095,7 @@ "cnk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{icon_state = "door_locked"; locked = 1; name = "Assembly Line Maintenance"; req_access_txt = "32"},/turf/simulated/floor/plating,/area/assembly/assembly_line) "cnl" = (/obj/machinery/door/window/southleft{base_state = "left"; dir = 2; icon_state = "left"; name = "Assembly Line Delivery"; req_access_txt = "32"},/turf/simulated/floor{icon_state = "delivery"},/area/assembly/assembly_line) "cnm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area) -"cnn" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cnn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cno" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor,/area/hallway/primary/aft) "cnp" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/hallway/primary/aft) "cnq" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/effect/landmark/start{name = "Civilian"},/turf/simulated/floor,/area/hallway/primary/aft) @@ -6153,7 +6153,7 @@ "coq" = (/obj/structure/table,/turf/simulated/floor,/area/assembly/assembly_line) "cor" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line) "cos" = (/obj/structure/closet/crate,/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line) -"cot" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cot" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_dock_inner"; locked = 1; name = "Engineering Dock Airlock"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cou" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 4},/turf/simulated/floor,/area/hallway/primary/aft) "cov" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/aft) "cow" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/aft) @@ -6177,7 +6177,7 @@ "coO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/turf/simulated/floor/plating,/area) "coP" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/turf/simulated/floor/plating,/area) "coQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/turf/simulated/floor/plating,/area) -"coR" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/turf/simulated/wall/r_wall,/area) +"coR" = (/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 4; level = 2},/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Unfiltered to Mix"; on = 0},/turf/simulated/floor,/area/atmos/distribution) "coS" = (/turf/simulated/floor/engine,/area/toxins/xenobiology) "coT" = (/mob/living/carbon/slime,/turf/simulated/floor/engine,/area/toxins/xenobiology) "coU" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio3"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/turf/simulated/floor/engine,/area/toxins/xenobiology) @@ -6206,18 +6206,18 @@ "cpr" = (/obj/structure/table,/obj/item/weapon/book/manual/supermatter_engine,/turf/simulated/floor,/area/engine/break_room) "cps" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/obj/effect/landmark/start{name = "Life Support Specialist"},/turf/simulated/floor,/area/engine/break_room) "cpt" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/engine/break_room) -"cpu" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor,/area/atmos/control) -"cpv" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; level = 2},/turf/simulated/floor,/area/atmos/control) +"cpu" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/atmos/control) +"cpv" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor,/area/atmos/control) "cpw" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{level = 2},/turf/simulated/floor,/area/atmos/control) "cpx" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 9; level = 2},/turf/simulated/floor,/area/atmos/control) "cpy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/atmos/control) "cpz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/door/airlock/maintenance{req_access_txt = "24"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"cpA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 2; tag = "icon-manifold-b"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"cpA" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; level = 2},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/atmos/distribution) "cpB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/asmaint) "cpC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"cpD" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1; tag = "icon-manifold-b (NORTH)"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"cpD" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; level = 2},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/atmos/distribution) "cpE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"cpF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{tag = "icon-manifold-b (EAST)"; dir = 4; level = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"cpF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "cpG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/plating,/area/maintenance/asmaint) "cpH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/plating,/area/maintenance/asmaint) "cpI" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{dir = 10; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/virology) @@ -6268,7 +6268,7 @@ "cqB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "viro_airlock_interior"; locked = 1; name = "Virology Internal Airlock"; req_access_txt = "5"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "viro_airlock_control"; name = "Virology Access Button"; pixel_x = -28; pixel_y = 8; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cqC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall/r_wall,/area/medical/virology) "cqD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area) -"cqE" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; level = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "Virology APC"; pixel_x = -25; pixel_y = 3},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/virology) +"cqE" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "cqF" = (/obj/structure/closet/secure_closet/personal/patient,/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/virology) "cqG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/virology) "cqH" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) @@ -6290,7 +6290,7 @@ "cqX" = (/turf/simulated/floor/plating{desc = "
      There is some old writing on this floor. You are barely able to read out a few lines from a tangled scribble.

      In a chamber a great mirror lies, cut away it solemn cries. Travel bold as thou might, piercing vastness as a kite.

      HONK!
      "; name = "Old Note #6"},/area/assembly/assembly_line) "cqY" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plating,/area/assembly/assembly_line) "cqZ" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/barricade/wooden,/turf/simulated/floor{icon_state = "floorgrime"},/area) -"cra" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cra" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor,/area/engine/engineering) "crb" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/aft) "crc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=AIE"; location = "AftH"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/aft) "crd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/hallway/primary/aft) @@ -6315,7 +6315,7 @@ "crw" = (/obj/machinery/disposal,/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/xenobiology) "crx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cry" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"crz" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"crz" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "crA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "crB" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "crC" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) @@ -6330,7 +6330,7 @@ "crL" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/assembly/assembly_line) "crM" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Assembly Line East"; dir = 1; network = list("SS13")},/turf/simulated/floor,/area/assembly/assembly_line) "crN" = (/obj/structure/table,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -28},/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line) -"crO" = (/obj/machinery/vending/coffee,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"crO" = (/turf/simulated/wall,/area/maintenance/engi_shuttle) "crP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "crQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "crR" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) @@ -6353,8 +6353,8 @@ "csi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/atmos/distribution) "csj" = (/obj/machinery/light{dir = 1},/obj/machinery/meter{frequency = 1443; id = "wloop_atm_meter"; name = "Waste Loop"},/obj/machinery/light_switch{pixel_y = 27},/obj/machinery/atmospherics/pipe/manifold/visible/purple{dir = 8},/turf/simulated/floor,/area/atmos/distribution) "csk" = (/obj/machinery/camera{c_tag = "Atmospherics North-East"; network = list("SS13")},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/atmospherics/binary/volume_pump/on{dir = 8; name = "Distro to Waste"; on = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/atmos/distribution) -"csl" = (/obj/machinery/meter{frequency = 1443; id = "dloop_atm_meter"; name = "Distribution Loop"},/obj/machinery/atmospherics/pipe/manifold/visible,/turf/simulated/floor,/area/atmos/distribution) -"csm" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/turf/simulated/floor,/area/atmos/distribution) +"csl" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 1},/turf/simulated/floor,/area/atmos/distribution) +"csm" = (/obj/machinery/meter{frequency = 1443; id = "dloop_atm_meter"; name = "Distribution Loop"},/obj/machinery/atmospherics/pipe/manifold/visible/cyan,/turf/simulated/floor,/area/atmos/distribution) "csn" = (/obj/machinery/atmospherics/binary/volume_pump/on{dir = 8; name = "Air To Distro"},/obj/machinery/power/apc{dir = 1; name = "Atmospherics Distribution Loop APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor,/area/atmos/distribution) "cso" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 10; initialize_directions = 10; level = 2},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor,/area/atmos/distribution) "csp" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/atmos/distribution) @@ -6429,7 +6429,7 @@ "ctG" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk12"; icon_state = "catwalk12"},/area/solar/starboard) "ctH" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk12"; icon_state = "catwalk12"},/area/solar/starboard) "ctI" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk8"; icon_state = "catwalk8"},/area/solar/starboard) -"ctJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area) +"ctJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "ctK" = (/obj/structure/table,/obj/machinery/camera{c_tag = "Assembly Line West"; dir = 1; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/assembly/assembly_line) "ctL" = (/turf/simulated/floor{icon_state = "white"},/area/assembly/assembly_line) "ctM" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor{icon_state = "white"},/area/assembly/assembly_line) @@ -6487,8 +6487,8 @@ "cuM" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/toxins/xenobiology) "cuN" = (/obj/structure/cable,/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/starboard) "cuO" = (/turf/simulated/floor/plating/airless,/obj/structure/cable,/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk3"; icon_state = "catwalk3"},/area/solar/port) -"cuP" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area) -"cuQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area) +"cuP" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cuQ" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "engineering_dock_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1379; id_tag = "engineering_dock_airlock"; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; req_one_access_txt = "13;10;24"; tag_airpump = "engineering_dock_pump"; tag_chamber_sensor = "engineering_dock_sensor"; tag_exterior_door = "engineering_dock_outer"; tag_interior_door = "engineering_dock_inner"},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cuR" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/maintenance/portsolar) "cuS" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/portsolar) "cuT" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes{charge = 0},/turf/simulated/floor/plating,/area/maintenance/portsolar) @@ -6546,11 +6546,11 @@ "cvT" = (/turf/simulated/floor/plating/airless,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "robotics_solar_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "13"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk8"; icon_state = "catwalk8"},/area/solar/port) "cvU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "robotics_solar_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/maintenance/portsolar) "cvV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/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"; pixel_x = 0; pixel_y = -25; req_access_txt = "13"; tag_chamber_sensor = "robotics_solar_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "robotics_solar_sensor"; pixel_x = 12; pixel_y = -25},/turf/simulated/floor/plating,/area/maintenance/portsolar) -"cvW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 2},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "robotics_solar_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/portsolar) -"cvX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; level = 2},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "robotics_solar_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/portsolar) +"cvW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "robotics_solar_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/portsolar) +"cvX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "robotics_solar_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/portsolar) "cvY" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/portsolar) "cvZ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/portsolar) -"cwa" = (/obj/machinery/door/airlock/engineering{name = "Aft Port Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) +"cwa" = (/turf/simulated/wall/r_wall,/area/maintenance/engi_shuttle) "cwb" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) "cwc" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/maintenance/aft) "cwd" = (/obj/structure/closet/crate,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/simulated/floor/plating,/area/maintenance/aft) @@ -6585,7 +6585,7 @@ "cwG" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 9; tag = "icon-intact-y (NORTHWEST)"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/atmos/distribution) "cwH" = (/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Pure to Mix"; on = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/atmos/distribution) "cwI" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 5},/turf/simulated/floor,/area/atmos/distribution) -"cwJ" = (/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 4; initialize_directions = 12; level = 2},/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Unfiltered to Mix"; on = 0},/turf/simulated/floor,/area/atmos/distribution) +"cwJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/atmos) "cwK" = (/obj/machinery/atmospherics/valve/digital{color = ""; dir = 4; name = "Gas Mix Inlet Valve"},/turf/simulated/floor{icon_state = "green"; dir = 6},/area/atmos/distribution) "cwL" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/green{dir = 4; level = 2},/turf/space,/area) "cwM" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "on"; id = "waste_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) @@ -6605,13 +6605,13 @@ "cxa" = (/obj/effect/landmark/start{name = "Xenobiologist"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cxb" = (/obj/machinery/camera{c_tag = "Xenobiology Module East"; dir = 8; network = list("Research","SS13"); pixel_y = -22},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cxc" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk3"; icon_state = "catwalk3"},/area/solar/port) -"cxd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area) +"cxd" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "engineering_dock_pump"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_dock_sensor"; pixel_x = -25; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cxe" = (/obj/machinery/power/solar_control{id = "portsolar"; name = "Aft Port Solar Control"; track = 0},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/portsolar) "cxf" = (/turf/simulated/floor/plating,/area/maintenance/portsolar) "cxg" = (/obj/machinery/power/apc{dir = 4; name = "Aft Port Solar APC"; pixel_x = 23; pixel_y = 2},/obj/machinery/camera{c_tag = "Aft Port Solar Control"; dir = 1; network = list("SS13")},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/portsolar) "cxh" = (/obj/structure/closet/wardrobe/black,/obj/machinery/camera{c_tag = "Aft Port Solar Access"; dir = 1; network = list("SS13")},/turf/simulated/floor/plating,/area/maintenance/aft) "cxi" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) -"cxj" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) +"cxj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cxk" = (/obj/machinery/computer/security/engineering,/obj/machinery/light_switch{pixel_x = -27},/turf/simulated/floor,/area/engine/engineering) "cxl" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/engine/engineering) "cxm" = (/turf/simulated/floor,/area/engine/engineering) @@ -6637,12 +6637,12 @@ "cxG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/atmos) "cxH" = (/obj/machinery/door_control{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = 24; pixel_y = 4; req_access_txt = "24"},/obj/machinery/atmospherics/pipe/simple/visible/purple,/turf/simulated/floor,/area/atmos) "cxI" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 6; initialize_directions = 6; level = 2},/obj/structure/sign/nosmoking_2,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/atmos/distribution) -"cxJ" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; level = 2},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{level = 2},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/atmos/distribution) +"cxJ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/aisat/entrance) "cxK" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; level = 2},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/atmos/distribution) -"cxL" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; level = 2},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{level = 2},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/atmos/distribution) +"cxL" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/window/eastright{dir = 1; name = "MiniSat Walkway Access"; req_access_txt = "13;75"},/turf/simulated/floor/plating,/area/aisat) "cxM" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; level = 2},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/atmos/distribution) "cxN" = (/obj/machinery/atmospherics/pipe/simple/visible/green{level = 2},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; level = 2},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/atmos/distribution) -"cxO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 4},/turf/simulated/floor/plating,/area) +"cxO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 4; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area) "cxP" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/virology/lab) "cxQ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/light_switch{pixel_x = -27},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/virology) "cxR" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/virology) @@ -6661,15 +6661,15 @@ "cye" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area) "cyf" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk8"; icon_state = "catwalk8"},/area/solar/starboard) "cyg" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk3"; icon_state = "catwalk3"},/area/solar/port) -"cyh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area) +"cyh" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cyi" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/aft) "cyj" = (/obj/item/stack/cable_coil{amount = 5},/turf/simulated/floor/plating,/area/maintenance/aft) "cyk" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plating,/area/maintenance/aft) -"cyl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) -"cym" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/wall/r_wall,/area) -"cyn" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -30; pixel_y = 0},/obj/machinery/power/monitor{name = "Grid Power Monitoring Computer"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"cyl" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cym" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_dock_outer"; locked = 1; name = "Engineering Dock Airlock"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cyn" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "engineering_dock_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -8; req_access_txt = "0"; req_one_access_txt = "13;10;24"},/turf/space,/area) "cyo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"cyp" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/stool/bed,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"cyp" = (/obj/machinery/portable_atmospherics/canister/toxins,/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/storage/secure) "cyq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/engine/hardsuitstorage) "cyr" = (/obj/structure/closet/secure_closet/engineering_welding,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engine/hardsuitstorage) "cys" = (/obj/structure/closet/secure_closet/engineering_electrical,/turf/simulated/floor,/area/engine/hardsuitstorage) @@ -6725,7 +6725,7 @@ "czq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "czr" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "czs" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area) -"czt" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/reception) +"czt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/medical/virology/lab) "czu" = (/obj/machinery/computer/station_alert,/turf/simulated/floor,/area/engine/engineering) "czv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/engine/hardsuitstorage) "czw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engine/hardsuitstorage) @@ -6768,7 +6768,7 @@ "cAh" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "cAi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/virology/lab) "cAj" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) -"cAk" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) +"cAk" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/door/window/eastright{base_state = "left"; dir = 1; icon_state = "left"; name = "MiniSat Walkway Access"; req_access_txt = "13;75"},/turf/simulated/floor/plating,/area/aisat) "cAl" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "cAm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/turf/simulated/floor/plating,/area) "cAn" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "hydrofloor"},/area/toxins/xenobiology) @@ -6782,19 +6782,19 @@ "cAv" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door_control{id = "xenobio6"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/machinery/door_control{desc = "A remote control-switch for a door to space."; id = "xenobioout6"; name = "Containment Release Switch"; pixel_x = 24; pixel_y = 4; req_access = "55"},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/toxins/xenobiology) "cAw" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk3"; icon_state = "catwalk3"},/area/solar/starboard) "cAx" = (/turf/space,/area/vox_station/southeast_solars) -"cAy" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) -"cAz" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/medical{name = "Examination Room"; req_access_txt = "5"; req_one_access_txt = "0"},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/exam_room) -"cAA" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"cAB" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engine/engineering) -"cAC" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Engineering Maintenance"; req_access_txt = "10"; req_one_access_txt = null},/turf/simulated/floor,/area/engine/engineering) -"cAD" = (/obj/structure/stool,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/aft) -"cAE" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/power/monitor{name = "Engine Power Monitoring Computer"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/engine/engineering) -"cAF" = (/obj/structure/table,/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/item/weapon/cell/high,/turf/simulated/floor,/area/engine/engineering) -"cAG" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/table,/obj/item/stack/sheet/mineral/plasma{amount = 30},/obj/item/device/pipe_painter,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"cAH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor,/area/engine/engineering) -"cAI" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/aft) +"cAy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plating/airless,/area) +"cAz" = (/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cAA" = (/obj/machinery/vending/coffee,/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cAB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cAC" = (/obj/machinery/atmospherics/pipe/simple/insulated{dir = 4},/turf/simulated/wall/r_wall{desc = "A specially coated wall that resists temperatures for Science"; max_temperature = 1e+009; name = "Coated Reinforced Wall"},/area) +"cAD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cAE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cAF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cAG" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cAH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cAI" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft) "cAJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"cAK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/aft) +"cAK" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft) "cAL" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/wall/r_wall,/area) "cAM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/chiefs_office) "cAN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/turf/simulated/floor,/area/engine/chiefs_office) @@ -6812,7 +6812,7 @@ "cAZ" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Waste to Port"},/turf/simulated/floor,/area/atmos) "cBa" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor,/area/atmos) "cBb" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor,/area/atmos) -"cBc" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/turf/simulated/floor,/area/atmos) +"cBc" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4; initialize_directions = 11; level = 2},/turf/simulated/floor,/area/atmos) "cBd" = (/obj/machinery/atmospherics/trinary/filter{density = 0; dir = 1; filter_type = 4; name = "Gas filter (N2O tank)"; on = 1},/turf/simulated/floor,/area/atmos) "cBe" = (/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 4; level = 2},/turf/simulated/floor{icon_state = "escape"; dir = 6},/area/atmos) "cBf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 4; level = 2},/obj/machinery/atmospherics/pipe/simple/visible/cyan{level = 2},/turf/simulated/floor/plating,/area) @@ -6830,7 +6830,7 @@ "cBr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "cBs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/medical/virology/lab) "cBt" = (/obj/structure/disposalpipe/junction,/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) -"cBu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) +"cBu" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/aisat) "cBv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "cBw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/turf/simulated/floor/plating,/area) "cBx" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio4"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/computer/reconstitutor/animal,/turf/simulated/floor/engine,/area/toxins/xenobiology) @@ -6842,12 +6842,19 @@ "cBD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio6"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/disposalpipe/segment,/obj/structure/cable,/turf/simulated/floor/plating,/area/toxins/xenobiology) "cBE" = (/obj/machinery/door/window/southright{name = "Containment Pen"; req_access_txt = "55"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio6"; name = "Containment Blast Doors"; opacity = 0},/turf/simulated/floor/engine,/area/toxins/xenobiology) "cBF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio6"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable,/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cBG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor,/area/engine/engineering) -"cBH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area) -"cBI" = (/obj/machinery/portable_atmospherics/canister/toxins,/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/storage/secure) -"cBJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/primary/aft) -"cBK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/primary/aft) -"cBL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/primary/aft) +"cBG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cBH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera{c_tag = "Aft Primary Hallway 3"; dir = 2; network = list("SS13")},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cBI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cBJ" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cBK" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cBL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cBM" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor,/area/hallway/primary/aft) +"cBN" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cBO" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cBP" = (/obj/machinery/power/apc{dir = 2; name = "Mining EVA APC"; pixel_x = 1; pixel_y = -23},/obj/structure/cable,/obj/machinery/vending/eva,/turf/simulated/floor,/area/mine/eva) +"cBQ" = (/turf/space,/area/shuttle/constructionsite/station) +"cBR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) +"cBS" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -30; pixel_y = 0},/obj/machinery/power/monitor{name = "Grid Power Monitoring Computer"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/engine/engineering) "cBT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cBU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cBV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engine/engineering) @@ -6864,13 +6871,13 @@ "cCg" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/atmos,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/atmos,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/atmos) "cCh" = (/obj/machinery/atmospherics/pipe/manifold/visible/purple{dir = 8},/turf/simulated/floor,/area/atmos) "cCi" = (/obj/machinery/atmospherics/binary/volume_pump/on{dir = 8; name = "Port to Filter"},/turf/simulated/floor,/area/atmos) -"cCj" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/atmospherics/valve,/turf/simulated/floor,/area/atmos) +"cCj" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/visible/cyan{level = 2},/turf/simulated/floor/plating,/area) "cCk" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor,/area/atmos) "cCl" = (/obj/machinery/atmospherics/valve,/turf/simulated/floor,/area/atmos) "cCm" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{level = 2},/obj/machinery/atmospherics/portables_connector{dir = 4},/turf/simulated/floor,/area/atmos) "cCn" = (/obj/machinery/atmospherics/pipe/simple/visible/green{level = 2},/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4; level = 2},/turf/simulated/floor,/area/atmos) "cCo" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/binary/volume_pump/on{dir = 8; name = "Space Loop Out"},/turf/simulated/floor,/area/atmos) -"cCp" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 2},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/visible/cyan{level = 2},/turf/simulated/floor/plating,/area) +"cCp" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/wall,/area/engine/engineering) "cCq" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible{dir = 10},/turf/space,/area) "cCr" = (/obj/structure/table,/obj/item/weapon/storage/box/masks,/obj/item/weapon/storage/box/gloves,/obj/machinery/requests_console{department = "Virology"; departmentType = 1; name = "Virology Requests Console"; pixel_x = -30},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/item/device/antibody_scanner,/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "cCs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/virology/lab) @@ -6881,7 +6888,7 @@ "cCx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "cCy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "cCz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) -"cCA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) +"cCA" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/aisat) "cCB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/medical/virology/lab) "cCC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "cCD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/turf/simulated/floor/plating,/area) @@ -6890,6 +6897,10 @@ "cCG" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk12"; icon_state = "catwalk12"},/area/solar/starboard) "cCH" = (/turf/simulated/floor/plating/airless,/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk3"; icon_state = "catwalk3"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk0"; icon_state = "catwalk0"},/area/solar/starboard) "cCI" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk1"; icon_state = "catwalk1"},/area/solar/port) +"cCJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"cCK" = (/obj/machinery/door/airlock/maintenance{name = "Engineering Shuttle"; req_access_txt = "10;24"; req_one_access_txt = null},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cCL" = (/obj/structure/table,/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cCM" = (/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Engineering Shuttle Access APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cCN" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor,/area/engine/engineering) "cCO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/engine/engineering) "cCP" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/engine/engineering) @@ -6906,7 +6917,7 @@ "cDa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/plating,/area/engine/engineering) "cDb" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/atmos,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/atmos,/obj/machinery/light{dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/atmos) "cDc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/atmos) -"cDd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9; level = 2},/turf/simulated/floor,/area/atmos) +"cDd" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/window/eastright{base_state = "left"; dir = 1; icon_state = "left"; name = "MiniSat Walkway Access"; req_access_txt = "13;75"},/turf/simulated/floor/plating,/area/aisat) "cDe" = (/obj/machinery/atmospherics/pipe/simple/visible/purple,/turf/simulated/floor,/area/atmos) "cDf" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/turf/simulated/floor,/area/atmos) "cDg" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/atmos) @@ -6937,10 +6948,20 @@ "cDF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/turf/simulated/floor/plating,/area) "cDG" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/engine,/area/toxins/xenobiology) "cDH" = (/obj/machinery/light/small{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/engine,/area/toxins/xenobiology) +"cDI" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cDJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cDK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cDL" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Engineering Maintenance"; req_access_txt = "10"; req_one_access_txt = null},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"cDM" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cDN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cDO" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cDP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/space_heater,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cDQ" = (/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cDR" = (/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Engineering Secure Storage North"; dir = 4; network = list("SS13")},/obj/machinery/shield_capacitor,/turf/simulated/floor/plating,/area/storage/secure) "cDS" = (/obj/machinery/shield_capacitor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/storage/secure) "cDT" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig,/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Secure Storage APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/storage/secure) "cDU" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig,/obj/machinery/alarm{pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/storage/secure) +"cDV" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/effect/decal/cleanable/generic,/obj/machinery/camera{c_tag = "Engineering Shuttle Access"; dir = 8; network = list("SS13")},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cDW" = (/obj/machinery/camera{c_tag = "Engineering West"; dir = 4; network = list("SS13")},/obj/structure/dispenser,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor,/area/engine/engineering) "cDX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/engine/engineering) "cDY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engine/engineering) @@ -6974,6 +6995,15 @@ "cEA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/virology/lab) "cEB" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/engine,/area/toxins/xenobiology) "cEC" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/lattice,/turf/space,/area) +"cED" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cEE" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/light{dir = 8},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cEF" = (/obj/structure/rack,/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cEG" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cEH" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "engineering_dock_airlock"; name = "interior access button"; pixel_x = -30; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "13;10;24"},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cEI" = (/obj/machinery/computer/shuttle_control/engineering{req_access = null; req_one_access_txt = "10;24"},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cEJ" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cEK" = (/obj/machinery/door/airlock/engineering{name = "Aft Port Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/portsolar) +"cEL" = (/obj/machinery/door/airlock/engineering{name = "Aft Starboard Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/solar/starboard) "cEM" = (/obj/machinery/shield_gen,/turf/simulated/floor/plating,/area/storage/secure) "cEN" = (/obj/machinery/shield_gen,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/storage/secure) "cEO" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/storage/secure) @@ -7007,9 +7037,10 @@ "cFq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "cFr" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "cFs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plating/airless,/area) -"cFt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plating/airless,/area) +"cFt" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/constructionsite/site) "cFu" = (/obj/structure/sign/biohazard{pixel_y = 32},/obj/machinery/atmospherics/pipe/vent{dir = 8},/turf/simulated/floor/plating/airless,/area) "cFv" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor{desc = "By gods, release the hounds!"; id = "xenobioout6"; name = "Containment Release"},/turf/simulated/floor/engine,/area/toxins/xenobiology) +"cFw" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/constructionsite/site) "cFx" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/storage/secure) "cFy" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/storage/secure) "cFz" = (/turf/simulated/floor{icon_state = "dark"},/area/storage/secure) @@ -7042,6 +7073,19 @@ "cGa" = (/obj/structure/stool/bed,/obj/effect/landmark/start{name = "Virologist"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "cGb" = (/turf/simulated/floor/plating/airless,/area/toxins/xenobiology) "cGc" = (/turf/simulated/floor/plating/airless,/obj/structure/cable,/obj/machinery/power/tracker,/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk1"; icon_state = "catwalk1"},/area/solar/starboard) +"cGd" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/constructionsite/site) +"cGe" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/site) +"cGf" = (/turf/simulated/shuttle/wall,/area/shuttle/constructionsite/site) +"cGg" = (/turf/simulated/shuttle/wall{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/area/shuttle/constructionsite/site) +"cGh" = (/obj/machinery/computer/shuttle_control/engineering,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/site) +"cGi" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/space,/area/shuttle/constructionsite/site) +"cGj" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1379; id_tag = "engineering_shuttle"; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; req_one_access_txt = "13;11;24"; tag_door = "engineering_shuttle_hatch"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/site) +"cGk" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/constructionsite/site) +"cGl" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/shuttle/constructionsite/site) +"cGm" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/constructionsite/site) +"cGn" = (/obj/structure/lattice,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "engineering_station_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -8; req_access_txt = "0"; req_one_access_txt = "13;11;24"},/turf/space,/area) +"cGo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/engiestation) +"cGp" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "engineering_station_pump"},/turf/simulated/floor/plating,/area/engiestation) "cGq" = (/obj/machinery/field_generator,/turf/simulated/floor/plating,/area/storage/secure) "cGr" = (/obj/machinery/field_generator,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/storage/secure) "cGs" = (/obj/machinery/light_switch{pixel_x = 27},/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area/storage/secure) @@ -7077,9 +7121,20 @@ "cGW" = (/obj/machinery/vending/coffee,/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "cGX" = (/obj/machinery/vending/snack,/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "cGY" = (/obj/structure/flora/kirbyplants,/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) +"cGZ" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/wall,/area) +"cHa" = (/obj/machinery/light/small{dir = 4},/obj/structure/closet/walllocker/emerglocker/north,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/engine/engineering) +"cHb" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "engineering_station_pump"},/turf/simulated/floor/plating,/area/engiestation) +"cHc" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_station_inner"; locked = 1; name = "Engineering Dock Airlock"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/plating,/area/engiestation) +"cHd" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "engineering_station_airlock"; name = "interior access button"; pixel_x = -30; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "13;11;24"},/obj/machinery/light_switch{pixel_x = -28; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/visible{dir = 6; level = 1},/turf/simulated/floor,/area/engiestation) +"cHe" = (/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor{icon_state = "delivery"},/area/engiestation) +"cHf" = (/obj/machinery/camera{c_tag = "Labor Camp External"; dir = 4; network = list("Labor")},/turf/simulated/floor{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) +"cHg" = (/obj/machinery/door/poddoor/preopen{id = "Labor"; name = "labor camp blast door"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "labor_camp_north_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = 25; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; initialize_directions = 10},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"cHh" = (/obj/machinery/camera{c_tag = "Labor Camp Central"; network = list("Labor")},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"cHi" = (/obj/machinery/flasher{id = "Labor"; pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4},/turf/simulated/wall,/area/mine/laborcamp) +"cHj" = (/obj/machinery/door/poddoor/preopen{id = "Labor"; name = "labor camp blast door"},/obj/machinery/door/airlock{name = "Labor Camp External Access"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/laborcamp) "cHk" = (/obj/machinery/light/small{dir = 8},/obj/machinery/field_generator,/turf/simulated/floor/plating,/area/storage/secure) "cHl" = (/obj/machinery/light/small{dir = 4},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/storage/secure) -"cHm" = (/obj/machinery/atmospherics/pipe/simple/hidden{level = 2},/turf/simulated/wall,/area/engine/engineering) +"cHm" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4; level = 1},/obj/machinery/atmospherics/valve,/turf/simulated/floor,/area/atmos) "cHn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_west_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/engine/engineering) "cHo" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.7; name = "Singularity Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engineering) "cHp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.7; name = "Singularity Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engineering) @@ -7089,7 +7144,7 @@ "cHt" = (/obj/item/weapon/screwdriver,/turf/simulated/floor,/area/engine/engineering) "cHu" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) "cHv" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_east_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"cHw" = (/obj/machinery/atmospherics/pipe/simple/hidden{level = 2},/turf/simulated/wall,/area) +"cHw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/plating,/area) "cHx" = (/obj/machinery/power/apc{dir = 8; name = "Atmospherics APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 6},/turf/simulated/floor,/area/atmos) "cHy" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 4},/turf/simulated/floor,/area/atmos) "cHz" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 4},/turf/simulated/floor,/area/atmos) @@ -7106,6 +7161,13 @@ "cHK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/turf/simulated/floor/plating,/area) "cHL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/turf/simulated/floor/plating,/area) "cHM" = (/turf/space,/area/vox_station/southwest_solars) +"cHN" = (/obj/machinery/camera{c_tag = "Labor Camp Medical"; dir = 8; network = list("Labor")},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/simulated/floor{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp) +"cHO" = (/obj/structure/rack{dir = 1},/obj/item/clothing/glasses/meson,/obj/item/device/flashlight,/obj/item/weapon/storage/bag/ore,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/obj/item/weapon/shovel{attack_verb = list("ineffectively hit"); desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; force = 1; name = "safety shovel"; pixel_x = -5; throwforce = 1},/obj/item/weapon/pickaxe{attack_verb = list("ineffectively hit"); desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; force = 1; name = "safety pickaxe"; pixel_x = 5; throwforce = 1},/obj/machinery/camera{c_tag = "Labor Camp Storage"; dir = 8; network = list("Labor")},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) +"cHP" = (/obj/machinery/computer/security{name = "Labor Camp Monitoring"; network = list("Labor")},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/mine/laborcamp/security) +"cHQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 4; name = "Labor Camp Security APC"; pixel_x = 24; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/camera{c_tag = "Labor Camp Monitoring"; network = list("Labor")},/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/mine/laborcamp/security) +"cHR" = (/obj/machinery/door_control{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 28; pixel_y = 7; req_access_txt = "2"},/obj/machinery/flasher_button{id = "Labor"; pixel_x = 26; pixel_y = -3},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/mine/laborcamp/security) +"cHS" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "75"},/turf/simulated/floor,/area/aisat/maintenance) +"cHT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4},/obj/effect/decal/warning_stripes/northeastcorner,/turf/simulated/floor,/area/aisat/maintenance) "cHU" = (/obj/machinery/pipedispenser/disposal,/turf/simulated/floor/plating,/area/storage/secure) "cHV" = (/obj/machinery/pipedispenser,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/storage/secure) "cHW" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/closet/crate/internals,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/storage/secure) @@ -7122,7 +7184,7 @@ "cIh" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/engine/engineering) "cIi" = (/turf/simulated/wall/r_wall,/area/engine/engineering) "cIj" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"cIk" = (/obj/machinery/light/small{dir = 4},/obj/structure/closet/walllocker/emerglocker/north,/obj/machinery/atmospherics/pipe/simple/hidden{level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"cIk" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1},/turf/simulated/floor,/area/aisat/maintenance) "cIl" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/door/airlock/external{name = "Engineering Escape Pod"; req_access = null; req_access_txt = "24"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/atmos) "cIm" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/visible/purple,/turf/simulated/floor,/area/atmos) "cIn" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/t_scanner,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/turf/simulated/floor,/area/atmos) @@ -7136,6 +7198,9 @@ "cIv" = (/obj/machinery/atmospherics/trinary/filter{density = 0; dir = 1; filter_type = 3; name = "Gas filter (CO2 tank)"; on = 1},/turf/simulated/floor,/area/atmos) "cIw" = (/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 4; level = 2},/turf/simulated/floor{dir = 6; icon_state = "yellow"},/area/atmos) "cIx" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "on"; id = "co2_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) +"cIy" = (/obj/machinery/alarm{dir = 4; hidden = 1; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera/motion{c_tag = "Mini Satellite Maintenance"; dir = 4; network = list("SS13","MiniSat")},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/aisat/maintenance) +"cIz" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) +"cIA" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "cIB" = (/turf/simulated/floor/plating,/area/storage/secure) "cIC" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/storage/secure) "cID" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "engineering_west_pump"; tag_exterior_door = "engineering_west_outer"; frequency = 1379; id_tag = "engineering_west_airlock"; tag_interior_door = "engineering_west_inner"; pixel_x = 25; req_access_txt = "10;13"; tag_chamber_sensor = "engineering_west_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_west_sensor"; pixel_x = 25; pixel_y = 12},/turf/simulated/floor/plating,/area/engine/engineering) @@ -7152,6 +7217,12 @@ "cIO" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{level = 2},/turf/simulated/floor,/area/atmos) "cIP" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 8; initialize_directions = 11; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/atmos) "cIQ" = (/obj/machinery/light{dir = 4},/turf/simulated/floor,/area/atmos) +"cIR" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_locked"; id_tag = "vox_southwest_lock"; locked = 1; req_access_txt = "152"; req_one_access = null; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) +"cIS" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_locked"; id_tag = "vox_southeast_lock"; locked = 1; req_access_txt = "152"; req_one_access = null; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) +"cIT" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) +"cIU" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox/station) +"cIV" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; initialize_directions = 10},/obj/structure/table,/obj/item/device/radio/beacon/syndicate/bomb{pixel_y = 5},/obj/item/device/radio/beacon/syndicate/bomb,/turf/unsimulated/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cIW" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor,/area/tdome) "cIX" = (/obj/machinery/light/small{dir = 8},/obj/machinery/shieldgen,/turf/simulated/floor/plating,/area/storage/secure) "cIY" = (/obj/machinery/shieldgen,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/storage/secure) "cIZ" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/solar_control,/obj/item/weapon/tracker_electronics,/obj/item/weapon/paper/solar,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/storage/secure) @@ -7170,9 +7241,18 @@ "cJm" = (/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 4; level = 2},/obj/machinery/atmospherics/pipe/simple/visible/yellow{level = 2},/turf/simulated/floor,/area/atmos) "cJn" = (/obj/machinery/atmospherics/trinary/filter{density = 0; dir = 4; filter_type = 1; name = "Gas filter (O2 tank)"; on = 1},/turf/simulated/floor,/area/atmos) "cJo" = (/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 4; level = 2},/turf/simulated/floor,/area/atmos) -"cJp" = (/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 4; initialize_directions = 12; level = 2},/turf/simulated/floor,/area/atmos) +"cJp" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10; initialize_directions = 10; level = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/door/window/eastright{dir = 1; name = "MiniSat Walkway Access"; req_access_txt = "13;75"},/turf/simulated/floor/plating,/area/aisat) "cJq" = (/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 9; level = 2},/turf/simulated/floor,/area/atmos) "cJr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 9; level = 2},/turf/simulated/floor/plating,/area) +"cJs" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"},/turf/simulated/floor,/area/tdome) +"cJt" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1},/turf/simulated/floor,/area/tdome) +"cJu" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/tdome) +"cJv" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/unsimulated/wall/fakeglass,/area/tdome) +"cJw" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) +"cJx" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4; level = 1},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) +"cJy" = (/obj/machinery/door/airlock/external{frequency = 1381; icon_state = "door_locked"; id_tag = "telecoms_inner"; locked = 1; name = "External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/entrance) +"cJz" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1381; master_tag = "telecoms_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/tcommsat/entrance) +"cJA" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1379; id_tag = "engineering_station_airlock"; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; req_one_access_txt = "13;11;24"; tag_airpump = "engineering_station_pump"; tag_chamber_sensor = "engineering_station_sensor"; tag_exterior_door = "engineering_station_outer"; tag_interior_door = "engineering_station_inner"},/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/turf/simulated/floor/plating,/area/engiestation) "cJB" = (/obj/structure/closet/radiation,/turf/simulated/floor/plating,/area/storage/secure) "cJC" = (/obj/machinery/the_singularitygen{anchored = 0},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/storage/secure) "cJD" = (/obj/machinery/power/port_gen/pacman,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/storage/secure) @@ -7197,6 +7277,11 @@ "cJW" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1443; input_tag = "air_in"; name = "Mixed Air Supply Control"; output_tag = "air_out"; pressure_setting = 2000; sensors = list("air_sensor" = "Tank")},/turf/simulated/floor{icon_state = "arrival"},/area/atmos) "cJX" = (/obj/machinery/camera{c_tag = "Atmospherics South-East"; dir = 1; network = list("SS13")},/obj/machinery/atmospherics/valve/digital{name = "Mixed Air Outlet Valve"; openDuringInit = 1},/turf/simulated/floor{icon_state = "arrival"; dir = 6},/area/atmos) "cJY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area) +"cJZ" = (/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_station_sensor"; pixel_x = -25; pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4; level = 1},/turf/simulated/floor/plating,/area/engiestation) +"cKa" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"},/turf/simulated/floor/airless,/area/constructionsite/atmospherics) +"cKb" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Labor Camp APC"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; initialize_directions = 10},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=5-Central"; location = "4-Maint"},/turf/simulated/floor/plating,/area/mine/laborcamp) +"cKc" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/visible{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/laborcamp/security) +"cKd" = (/obj/machinery/door/airlock/external{frequency = 1399; icon_state = "door_locked"; id_tag = "nmining_inner"; locked = 1; name = "North Mining External Access"; req_access = null; req_access_txt = "null"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/mine/north_outpost) "cKe" = (/obj/machinery/floodlight,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/storage/secure) "cKf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area) "cKg" = (/turf/simulated/floor/plating/airless,/area/engine/engineering) @@ -7204,12 +7289,22 @@ "cKi" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 6},/turf/simulated/floor/plating,/area) "cKj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 9},/turf/simulated/floor/plating,/area) "cKk" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/visible/yellow{level = 2},/turf/simulated/floor/plating,/area) -"cKl" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/hidden{level = 2},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area) +"cKl" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1399; master_tag = "nmining_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = null},/turf/simulated/floor/plating,/area/mine/north_outpost) "cKm" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/visible/green{level = 2},/turf/simulated/floor/plating,/area) "cKn" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area) "cKo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/visible/cyan{level = 2},/turf/simulated/floor/plating,/area) "cKp" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area) "cKq" = (/turf/space,/area/xenos_station/southeast) +"cKr" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/light/small{dir = 4},/obj/machinery/light_switch{pixel_x = 23; pixel_y = 0},/turf/simulated/floor/plating,/area/mine/north_outpost) +"cKs" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"},/turf/simulated/floor/plating,/area/mine/north_outpost) +"cKt" = (/obj/structure/dispenser/oxygen,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor,/area/mine/west_outpost) +"cKu" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "mining_outpost_inner"; locked = 1; name = "Mining Dock Airlock"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor,/area/mine/production) +"cKv" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "mining_outpost_airlock"; name = "interior access button"; pixel_x = -30; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "13;48"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; initialize_directions = 10},/turf/simulated/floor,/area/mine/production) +"cKw" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4; level = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/tox) +"cKx" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area/traitor/atmos) +"cKy" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4; level = 1},/turf/simulated/floor/plating,/area/traitor/atmos) +"cKz" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/aisat) +"cKA" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/aisat) "cKB" = (/obj/machinery/light/small{dir = 8},/obj/machinery/power/emitter,/turf/simulated/floor/plating,/area/storage/secure) "cKC" = (/obj/machinery/power/emitter,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/storage/secure) "cKD" = (/obj/machinery/floodlight,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/storage/secure) @@ -7219,14 +7314,17 @@ "cKH" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; state = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cKI" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating/airless,/area) "cKJ" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible/green{level = 2},/turf/space,/area) -"cKK" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible/yellow{level = 2},/turf/space,/area) -"cKL" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/space,/area) +"cKK" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor,/area/engine/controlroom) +"cKL" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/obj/machinery/alarm{dir = 4; hidden = 1; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cKM" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible/green{level = 2},/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{dir = 4},/turf/space,/area) "cKN" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/space,/area) "cKO" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible/yellow{level = 2},/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/space,/area) "cKP" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible/cyan{level = 2},/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/space,/area) "cKQ" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/space,/area) "cKR" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/turf/space,/area) +"cKS" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light/small{dir = 4},/obj/machinery/camera/motion{c_tag = "Mini Satellite Exterior North-West"; dir = 8; network = list("SS13","MiniSat")},/turf/simulated/floor/plating,/area/aisat) +"cKT" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/light/small{dir = 8},/obj/machinery/camera/motion{c_tag = "Mini Satellite Exterior North-East"; dir = 4; network = list("SS13","MiniSat")},/turf/simulated/floor/plating,/area/aisat) +"cKU" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/aisat) "cKV" = (/obj/machinery/power/emitter,/turf/simulated/floor/plating,/area/storage/secure) "cKW" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating/airless,/area) "cKX" = (/obj/item/device/multitool,/turf/simulated/floor/plating/airless,/area/engine/engineering) @@ -7234,6 +7332,12 @@ "cKZ" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/structure/grille,/obj/machinery/meter,/turf/simulated/wall/r_wall,/area/atmos) "cLa" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/structure/grille,/obj/machinery/meter{frequency = 1443; id = "mair_in_meter"; name = "Mixed Air Tank In"},/turf/simulated/wall/r_wall,/area/atmos) "cLb" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/structure/grille,/obj/machinery/meter{frequency = 1443; id = "mair_out_meter"; name = "Mixed Air Tank Out"},/turf/simulated/wall/r_wall,/area/atmos) +"cLc" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/aisat) +"cLd" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/aisat) +"cLe" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/window/reinforced{dir = 4},/obj/machinery/light/small{dir = 4},/obj/machinery/camera/motion{c_tag = "Mini Satellite Exterior South-West"; dir = 8; network = list("SS13","MiniSat")},/turf/simulated/floor/plating,/area/aisat) +"cLf" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/light/small{dir = 8},/obj/machinery/camera/motion{c_tag = "Mini Satellite Exterior South-East"; dir = 4; network = list("SS13","MiniSat")},/turf/simulated/floor/plating,/area/aisat) +"cLg" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/aisat) +"cLh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/aisat) "cLi" = (/obj/machinery/power/emitter,/obj/machinery/camera{c_tag = "Engineering Secure Storage South"; dir = 4; network = list("SS13")},/turf/simulated/floor/plating,/area/storage/secure) "cLj" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/storage/secure) "cLk" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area) @@ -7250,6 +7354,7 @@ "cLv" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 1; frequency = 1441; icon_state = "on"; id = "o2_in"; on = 1},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) "cLw" = (/obj/machinery/air_sensor{frequency = 1443; id_tag = "air_sensor"; output = 7},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) "cLx" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; external_pressure_bound = 0; frequency = 1443; icon_state = "in"; id_tag = "air_out"; internal_pressure_bound = 2000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) +"cLy" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/aisat) "cLz" = (/obj/item/weapon/crowbar,/turf/space,/area) "cLA" = (/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "cLB" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) @@ -7257,6 +7362,7 @@ "cLD" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) "cLE" = (/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) "cLF" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) +"cLG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor,/area/aisat/maintenance) "cLH" = (/obj/machinery/light{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area) "cLI" = (/obj/item/weapon/wrench,/turf/simulated/floor/plating/airless,/area) "cLJ" = (/obj/machinery/the_singularitygen{anchored = 1},/obj/effect/decal/warning_stripes/red/hollow,/turf/simulated/floor/plating/airless,/area) @@ -7340,7 +7446,7 @@ "cNj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/aisat/entrance) "cNk" = (/obj/machinery/door/airlock/external{name = "MiniSat External Access"; req_access = null; req_access_txt = "75;13"},/turf/simulated/floor/plating,/area/aisat) "cNl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/aisat/entrance) -"cNm" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/aisat/entrance) +"cNm" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) "cNn" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/aisat/entrance) "cNo" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/aisat/entrance) "cNp" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/aisat/entrance) @@ -7364,9 +7470,9 @@ "cNH" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/hatch{name = "MiniSat Antechamber"; req_access_txt = "75"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cNI" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/hatch{name = "MiniSat Antechamber"; req_access_txt = "75"},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cNJ" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area) -"cNK" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6; initialize_directions = 6},/obj/machinery/door/window/eastright{base_state = "left"; dir = 1; icon_state = "left"; name = "MiniSat Walkway Access"; req_access_txt = "13;75"},/turf/simulated/floor/plating,/area/aisat) -"cNL" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; initialize_directions = 6},/obj/machinery/door/window/eastright{dir = 1; name = "MiniSat Walkway Access"; req_access_txt = "13;75"},/turf/simulated/floor/plating,/area/aisat) -"cNM" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; initialize_directions = 6},/turf/simulated/floor/plating,/area/aisat) +"cNK" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) +"cNL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/sign/chemistry{desc = "A warning sign which reads 'SAMPLE PREPARATION'"; name = "\improper SAMPLE PREPARATION"; pixel_y = 32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) +"cNM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/mineral,/area/mine/unexplored) "cNN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Exterior"; req_access_txt = "75"},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cNO" = (/obj/machinery/light{dir = 1; on = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cNP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) @@ -7375,10 +7481,10 @@ "cNS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/light_switch{pixel_y = 27},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cNT" = (/obj/machinery/light{dir = 1; on = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cNU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Exterior"; req_access_txt = "75"},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) -"cNV" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 2},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/aisat) -"cNW" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 2},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/window/eastright{base_state = "left"; dir = 1; icon_state = "left"; name = "MiniSat Walkway Access"; req_access_txt = "13;75"},/turf/simulated/floor/plating,/area/aisat) -"cNX" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10; level = 2},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/door/window/eastright{dir = 1; name = "MiniSat Walkway Access"; req_access_txt = "13;75"},/turf/simulated/floor/plating,/area/aisat) -"cNY" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 2},/turf/simulated/floor/plating,/area/aisat) +"cNV" = (/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) +"cNW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/conveyor_switch{id = "anotempload"; name = "conveyor switch"; pixel_x = 0; pixel_y = 0},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) +"cNX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor,/area/research_outpost/entry) +"cNY" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor,/area/research_outpost/iso1) "cNZ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area) "cOa" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area) "cOb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) @@ -7386,21 +7492,21 @@ "cOd" = (/obj/machinery/hologram/holopad,/obj/effect/landmark/start{name = "Cyborg"},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cOe" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cOf" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/space,/area) -"cOg" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/aisat) -"cOh" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; level = 1},/obj/machinery/alarm{dir = 4; hidden = 1; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) +"cOg" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor,/area/research_outpost/iso3) +"cOh" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor,/area/research_outpost/iso2) "cOi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cOj" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cOk" = (/obj/machinery/bot/secbot/pingsky,/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cOl" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cOm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cOn" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "AI Satellite Antechamber APC"; pixel_x = 25},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) -"cOo" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 2},/obj/machinery/light/small{dir = 4},/obj/machinery/camera/motion{c_tag = "Mini Satellite Exterior North-West"; dir = 8; network = list("SS13","MiniSat")},/turf/simulated/floor/plating,/area/aisat) +"cOo" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "research_inner"; locked = 1; name = "Research Outpost External Access"; req_access = null; req_access_txt = null},/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/research_outpost/gearstore) "cOp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/bot/floorbot{on = 0},/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/turret_protected/aisat_interior) "cOq" = (/obj/machinery/turret{dir = 1},/obj/machinery/ai_status_display{pixel_y = -32},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cOr" = (/obj/machinery/camera/motion{c_tag = "Mini Satellite Antechamber"; dir = 1; network = list("SS13","MiniSat")},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cOs" = (/obj/machinery/turret{dir = 1},/obj/machinery/status_display{pixel_x = 0; pixel_y = -32},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cOt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/bot/cleanbot{on = 0},/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/turret_protected/aisat_interior) -"cOu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/light/small{dir = 8},/obj/machinery/camera/motion{c_tag = "Mini Satellite Exterior North-East"; dir = 4; network = list("SS13","MiniSat")},/turf/simulated/floor/plating,/area/aisat) +"cOu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area) "cOv" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/highsecurity{icon_state = "door_locked"; locked = 1; name = "AI Chamber"; req_access_txt = "16"},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/ai) "cOw" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/ai) "cOx" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/ai) @@ -7414,9 +7520,9 @@ "cOF" = (/obj/machinery/turret{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "cOG" = (/obj/machinery/light,/obj/machinery/ai_slipper{icon_state = "motion0"},/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = -21},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "cOH" = (/obj/machinery/turret{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"cOI" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 2},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/aisat) +"cOI" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "cOJ" = (/turf/simulated/wall,/area/turret_protected/ai) -"cOK" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/aisat) +"cOK" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "cOL" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = 0; pixel_y = 20},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 0; pixel_y = -26},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_x = -25; pixel_y = -4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "cOM" = (/obj/machinery/ai_slipper{icon_state = "motion0"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "cON" = (/obj/effect/landmark/start{name = "AI"},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 28; pixel_y = 5},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = -27; pixel_y = 4},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 1; listening = 1; name = "Common Channel"; pixel_y = 25},/obj/machinery/newscaster/security_unit{pixel_x = -32; pixel_y = 32},/obj/machinery/requests_console{department = "AI"; departmentType = 5; name = "AI Requests Console"; pixel_x = 32; pixel_y = 32},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) @@ -7436,10 +7542,10 @@ "cPb" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "cPc" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{cell_type = 5000; dir = 8; name = "MiniSat Exterior APC"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/plating,/area/aisat) "cPd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/aisat) -"cPe" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/aisat) -"cPf" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 2},/obj/structure/window/reinforced{dir = 4},/obj/machinery/light/small{dir = 4},/obj/machinery/camera/motion{c_tag = "Mini Satellite Exterior South-West"; dir = 8; network = list("SS13","MiniSat")},/turf/simulated/floor/plating,/area/aisat) +"cPe" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/space,/area) +"cPf" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 4; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) "cPg" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable,/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/ai) -"cPh" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/light/small{dir = 8},/obj/machinery/camera/motion{c_tag = "Mini Satellite Exterior South-East"; dir = 4; network = list("SS13","MiniSat")},/turf/simulated/floor/plating,/area/aisat) +"cPh" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible/yellow{level = 2},/turf/space,/area) "cPi" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/wall/r_wall,/area) "cPj" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = 0},/obj/item/device/multitool,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{dir = 9; icon_state = "yellow"},/area/aisat/maintenance) "cPk" = (/obj/machinery/atmospherics/pipe/tank/air,/turf/simulated/floor{dir = 5; icon_state = "yellow"},/area/aisat/maintenance) @@ -7452,21 +7558,13 @@ "cPr" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/obj/machinery/light{dir = 1; on = 1},/turf/simulated/floor,/area/aisat/maintenance) "cPs" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/decal/warning_stripes/west,/turf/simulated/floor,/area/aisat/maintenance) "cPt" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor,/area/aisat/maintenance) -"cPu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5; initialize_directions = 6},/turf/simulated/floor/plating,/area/aisat) -"cPv" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 2},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "75"},/turf/simulated/floor,/area/aisat/maintenance) -"cPw" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; level = 2},/turf/simulated/floor,/area/aisat/maintenance) -"cPx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; initialize_directions = 11; level = 2},/obj/effect/decal/warning_stripes/northeastcorner,/turf/simulated/floor,/area/aisat/maintenance) "cPy" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/effect/decal/warning_stripes/north,/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/aisat/maintenance) "cPz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/effect/decal/warning_stripes/northwestcorner,/turf/simulated/floor,/area/aisat/maintenance) "cPA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor,/area/aisat/maintenance) "cPB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "75"},/turf/simulated/floor,/area/aisat/maintenance) -"cPC" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 2},/turf/simulated/floor/plating,/area/aisat) -"cPD" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9; level = 2},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/aisat) -"cPE" = (/obj/machinery/atmospherics/pipe/simple/hidden{level = 2},/obj/machinery/alarm{dir = 4; hidden = 1; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera/motion{c_tag = "Mini Satellite Maintenance"; dir = 4; network = list("SS13","MiniSat")},/turf/simulated/floor,/area/aisat/maintenance) "cPF" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/aisat/maintenance) "cPG" = (/obj/structure/stool/bed/chair,/turf/simulated/floor,/area/aisat/maintenance) "cPH" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor,/area/aisat/maintenance) -"cPI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 2; initialize_directions = 11; level = 1},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor,/area/aisat/maintenance) "cPJ" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1443; icon_state = "on"; id = "air_in"; on = 1},/turf/simulated/floor/plating,/area) "cPK" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/turf/space,/area) "cPL" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor{dir = 10; icon_state = "yellow"},/area/aisat/maintenance) @@ -8012,12 +8110,10 @@ "daf" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area) "dag" = (/obj/item/flag/wiz,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "dah" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership/elite_squad) -"dai" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; level = 2},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "daj" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1331; id_tag = "vox_west_control"; pixel_x = 24; req_access_txt = "152"; tag_airpump = "vox_west_vent"; tag_chamber_sensor = "vox_west_sensor"; tag_exterior_door = "vox_northwest_lock"; tag_interior_door = "vox_southwest_lock"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "vox_west_vent"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "dak" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "voxshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "dal" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "voxshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "dam" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1331; id_tag = "vox_east_control"; pixel_x = -24; req_access_txt = "152"; tag_airpump = "vox_east_vent"; tag_chamber_sensor = "vox_east_sensor"; tag_exterior_door = "vox_northeast_lock"; tag_interior_door = "vox_southeast_lock"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "vox_east_vent"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) -"dan" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; initialize_directions = 11; level = 2},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "dao" = (/turf/space/transit/north/shuttlespace_ns8,/area/syndicate_station/transit) "dap" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area) "daq" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (WEST)"; icon_state = "fakewindows"; dir = 8},/area/wizard_station) @@ -8032,11 +8128,9 @@ "daz" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "syndicate_elite"; name = "Side Hull Door"; opacity = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership) "daA" = (/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership/elite_squad) "daB" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership/elite_squad) -"daC" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_locked"; id_tag = "vox_southwest_lock"; locked = 1; req_access_txt = "152"; req_one_access = null; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden{level = 2},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "daD" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "vox_west_control"; req_one_access_txt = "152"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) "daE" = (/obj/machinery/door/airlock/hatch{req_access_txt = "152"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "daF" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "vox_east_control"; req_one_access_txt = "152"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) -"daG" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_locked"; id_tag = "vox_southeast_lock"; locked = 1; req_access_txt = "152"; req_one_access = null; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden{level = 2},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "daH" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area) "daI" = (/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station) "daJ" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station) @@ -8047,7 +8141,6 @@ "daO" = (/turf/unsimulated/floor{icon_state = "chapel"},/area/wizard_station) "daP" = (/obj/machinery/door/airlock/glass_security{name = "Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{id = "syndicate_elite_mech_room"; name = "Mech Room Door"},/turf/unsimulated/floor{icon_state = "floor4"},/area/syndicate_mothership/elite_squad) "daQ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "voxshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) -"daR" = (/obj/machinery/atmospherics/pipe/simple/hidden{level = 2},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "daS" = (/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "daT" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "voxshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "daU" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area) @@ -8057,7 +8150,6 @@ "daY" = (/obj/machinery/computer/pod{id = "syndicate_elite"; name = "Hull Door Control"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership) "daZ" = (/obj/machinery/computer/syndicate_elite_shuttle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership) "dba" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "voxshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) -"dbb" = (/obj/machinery/atmospherics/pipe/simple/hidden{level = 2},/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox/station) "dbc" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/machinery/recharger{pixel_y = 0},/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox/station) "dbd" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weed_extract,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox/station) "dbe" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/machinery/bot/floorbot{on = 0},/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox/station) @@ -8331,7 +8423,6 @@ "dgm" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/antitoxin,/obj/item/weapon/reagent_containers/syringe/antitoxin{pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/antitoxin{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "dgn" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "dgo" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"dgp" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10},/obj/structure/table,/obj/item/device/radio/beacon/syndicate/bomb{pixel_y = 5},/obj/item/device/radio/beacon/syndicate/bomb,/turf/unsimulated/floor{icon_state = "floor4"},/area/syndicate_station/start) "dgq" = (/obj/structure/table,/obj/item/weapon/grenade/syndieminibomb{pixel_x = 4; pixel_y = 2; pixel_z = 0},/obj/item/weapon/grenade/syndieminibomb{pixel_x = -1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "dgr" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/bush,/turf/unsimulated/floor{tag = "icon-gravsnow_corner (WEST)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) "dgs" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) @@ -9216,13 +9307,9 @@ "dxn" = (/obj/machinery/camera{pixel_x = 10; network = list("Thunderdome"); c_tag = "Thunderdome Arena"},/turf/simulated/floor/bluegrid,/area/tdome) "dxo" = (/obj/structure/table,/obj/random/powercell,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "dxp" = (/obj/structure/table,/obj/random/tool,/obj/random/bomb_supply,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) -"dxq" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; level = 2},/turf/simulated/floor,/area/tdome) -"dxr" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; level = 2},/turf/simulated/floor,/area/tdome) -"dxs" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; level = 2},/turf/simulated/floor,/area/tdome) "dxt" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "dxu" = (/obj/structure/table,/obj/random/technology_scanner,/obj/random/tech_supply,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "dxv" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) -"dxw" = (/obj/machinery/atmospherics/pipe/simple/hidden{level = 2},/turf/simulated/floor,/area/tdome) "dxx" = (/obj/structure/table,/obj/item/clothing/gloves/yellow,/obj/random/bomb_supply,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "dxy" = (/obj/machinery/computer/teleporter,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "dxz" = (/obj/machinery/teleport/station,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) @@ -9232,7 +9319,6 @@ "dxD" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (WEST)"; icon_state = "fakewindows"; dir = 8},/area) "dxE" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows2 (WEST)"; icon_state = "fakewindows2"; dir = 8},/area) "dxF" = (/obj/machinery/door/airlock/command{name = "Thunderdome Administration"; req_access = null; req_access_txt = "102"},/turf/simulated/floor,/area/tdome) -"dxG" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/machinery/atmospherics/pipe/simple/hidden{level = 2},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/unsimulated/wall/fakeglass,/area/tdome) "dxH" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/obj/item/weapon/shield/energy,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "dxI" = (/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "dxJ" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) @@ -9364,7 +9450,6 @@ "dAf" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/camera{c_tag = "Telecomms West Wing North"; dir = 2; network = list("Telecomms")},/turf/space,/area/turret_protected/tcomsat) "dAg" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) "dAh" = (/obj/machinery/power/apc{dir = 1; name = "Telecoms Sat. APC"; pixel_x = 1; pixel_y = 26},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/visible{dir = 6; level = 1},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"dAi" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) "dAj" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) "dAk" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) "dAl" = (/obj/item/weapon/coin/clown,/turf/simulated/floor/engine,/area/tcommsat/computer) @@ -9378,7 +9463,6 @@ "dAt" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) "dAu" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) "dAv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"dAw" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) "dAx" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) "dAy" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomsat) "dAz" = (/obj/structure/filingcabinet,/turf/simulated/floor,/area/tcommsat/computer) @@ -9460,7 +9544,6 @@ "dBX" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) "dBY" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) "dBZ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5; level = 1},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"dCa" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10; initialize_directions = 10; level = 1},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) "dCb" = (/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dCc" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dCd" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Telecoms Sat. Central Compartment APC"; pixel_x = -1; pixel_y = 26},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) @@ -9476,7 +9559,6 @@ "dCn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) "dCo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) "dCp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"dCq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6; initialize_directions = 6; level = 1},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) "dCr" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; level = 1},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) "dCs" = (/obj/machinery/telecomms/server/presets/supply,/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; tag = "icon-vault (NORTH)"; temperature = 80},/area/tcommsat/chamber) "dCt" = (/obj/machinery/telecomms/server/presets/service,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) @@ -9622,8 +9704,6 @@ "dFd" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1381; master_tag = "telecoms_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "13"},/turf/simulated/floor/plating/airless,/area) "dFe" = (/obj/machinery/door/airlock/external{frequency = 1381; icon_state = "door_locked"; id_tag = "telecoms_outer"; locked = 1; name = "External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/tcommsat/entrance) "dFf" = (/obj/machinery/camera/xray{c_tag = "Telecomms Airlock"; network = list("Telecomms")},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1381; id_tag = "telecoms_pump"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "telecoms_pump"; tag_exterior_door = "telecoms_outer"; frequency = 1381; id_tag = "telecoms_airlock"; tag_interior_door = "telecoms_inner"; pixel_x = 0; pixel_y = -25; req_access_txt = "13"; tag_chamber_sensor = "telecoms_sensor"},/obj/machinery/airlock_sensor{frequency = 1381; id_tag = "telecoms_sensor"; pixel_x = 12; pixel_y = -25},/turf/simulated/floor/plating,/area/tcommsat/entrance) -"dFg" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 2},/obj/machinery/door/airlock/external{frequency = 1381; icon_state = "door_locked"; id_tag = "telecoms_inner"; locked = 1; name = "External Access"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/tcommsat/entrance) -"dFh" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1381; master_tag = "telecoms_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/tcommsat/entrance) "dFi" = (/obj/machinery/bluespace_beacon,/turf/simulated/floor,/area/tcommsat/entrance) "dFj" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 29; pixel_y = 0},/turf/simulated/floor,/area/tcommsat/entrance) "dFk" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating/airless,/area) @@ -9893,35 +9973,13 @@ "dKo" = (/obj/structure/closet/wardrobe/atmospherics_yellow,/obj/machinery/light_switch{pixel_y = -28},/turf/simulated/floor,/area/engiestation) "dKp" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/decal/cleanable/dirt,/obj/machinery/light,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -28},/turf/simulated/floor,/area/engiestation) "dKq" = (/obj/item/weapon/storage/fancy/egg_box,/obj/item/weapon/storage/box/drinkingglasses,/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/milk,/turf/simulated/floor,/area/engiestation) -"dKr" = (/turf/simulated/floor/plating,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/shuttle/constructionsite/site) -"dKs" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/shuttle/constructionsite/site) -"dKt" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (EAST)"; icon_state = "heater"; dir = 4},/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/shuttle/constructionsite/site) -"dKu" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (WEST)"; icon_state = "propulsion"; dir = 8},/turf/simulated/floor/plating,/area/shuttle/constructionsite/site) -"dKv" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "engineering_station_airlock"; name = "interior access button"; pixel_x = -30; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "13;48"},/obj/machinery/light_switch{pixel_x = -28; pixel_y = 0},/turf/simulated/floor,/area/engiestation) -"dKw" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "delivery"},/area/engiestation) "dKx" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/shuttle/constructionsite/site) "dKy" = (/obj/machinery/computer/station_alert,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/site) -"dKz" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/site) "dKA" = (/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/site) -"dKB" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/embedded_controller/radio/simple_docking_controller{id_tag = "engineering_shuttle"; pixel_x = 0; pixel_y = 30; req_one_access_txt = "13;48"; tag_door = "engineering_shuttle_hatch"},/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area/shuttle/constructionsite/site) -"dKC" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (EAST)"; icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/shuttle/constructionsite/site) -"dKD" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (WEST)"; icon_state = "propulsion"; dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/shuttle/constructionsite/site) -"dKE" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_station_inner"; locked = 1; name = "Engineering Dock Airlock"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/engiestation) "dKF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/engiestation) -"dKG" = (/obj/structure/grille,/obj/structure/window/full/shuttle,/turf/simulated/floor/plating,/area/shuttle/constructionsite/site) -"dKH" = (/obj/machinery/computer/shuttle_control/engineering{req_one_access_txt = "10;24"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/site) -"dKI" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_shuttle_hatch"; locked = 1; name = "Engineering Shuttle Hatch"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/shuttle/constructionsite/site) "dKJ" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_station_outer"; locked = 1; name = "Engineering Dock Airlock"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/engiestation) -"dKK" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "engineering_station_pump"},/turf/simulated/floor/plating,/area/engiestation) -"dKL" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4},/turf/simulated/floor/plating,/area/engiestation) "dKM" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall2"; dir = 2},/area/shuttle/constructionsite/site) "dKN" = (/obj/machinery/computer/atmos_alert,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/site) -"dKO" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (EAST)"; icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/shuttle/constructionsite/site) -"dKP" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (WEST)"; icon_state = "propulsion"; dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/shuttle/constructionsite/site) -"dKQ" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1379; id_tag = "engineering_station_airlock"; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "13;48"; tag_airpump = "engineering_station_pump"; tag_chamber_sensor = "engineering_station_sensor"; tag_exterior_door = "engineering_station_outer"; tag_interior_door = "engineering_station_inner"},/turf/simulated/floor/plating,/area/engiestation) -"dKR" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "engineering_station_pump"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_station_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/plating,/area/engiestation) -"dKS" = (/turf/simulated/floor/plating,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/constructionsite/site) -"dKT" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "engineering_station_airlock"; name = "exterior access button"; pixel_x = -8; pixel_y = 25; req_access_txt = "0"; req_one_access_txt = "13;48"},/turf/space,/area) "dKU" = (/turf/simulated/floor/airless{icon_state = "white"},/area/constructionsite/medical) "dKV" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/constructionsite/medical) "dKW" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/floor/airless{icon_state = "white"},/area/constructionsite/medical) @@ -9958,7 +10016,6 @@ "dLB" = (/obj/machinery/light/small{dir = 1},/obj/machinery/air_sensor{frequency = 1441; id_tag = "d_n2_sensor"},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/constructionsite/atmospherics) "dLC" = (/turf/simulated/floor/plating/airless,/area/constructionsite) "dLD" = (/obj/structure/lattice,/turf/space,/area/constructionsite) -"dLE" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (NORTHEAST)"; dir = 5},/turf/simulated/floor/airless,/area/constructionsite/atmospherics) "dLF" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "on"; id = "d_n2_in"; on = 1},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/constructionsite/atmospherics) "dLG" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/constructionsite/atmospherics) "dLH" = (/turf/simulated/floor/airless,/area/constructionsite) @@ -10138,7 +10195,6 @@ "dOZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dPa" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dPb" = (/obj/machinery/light/small{dir = 8},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 5; level = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) -"dPc" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dPd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/visible/purple{dir = 8},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dPe" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 10},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dPf" = (/obj/machinery/door/window/westleft,/turf/simulated/floor,/area/research_outpost/atmos) @@ -10233,7 +10289,6 @@ "dQQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) "dQR" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) "dQS" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) -"dQT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10; initialize_directions = 10; level = 1},/obj/structure/sign/chemistry{desc = "A warning sign which reads 'SAMPLE PREPARATION'"; name = "\improper SAMPLE PREPARATION"; pixel_y = 32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) "dQU" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/light/small{dir = 8},/turf/simulated/floor{dir = 4; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dQV" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dQW" = (/obj/structure/table,/obj/item/weapon/reagent_containers/dropper{pixel_y = -4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) @@ -10247,8 +10302,6 @@ "dRe" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/glass_atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor,/area/research_outpost/power) "dRf" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 5},/turf/simulated/wall/r_wall,/area/research_outpost/power) "dRg" = (/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/turf/simulated/wall/r_wall,/area/research_outpost/power) -"dRh" = (/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 2},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) -"dRi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 2},/turf/simulated/mineral,/area/mine/unexplored) "dRj" = (/obj/machinery/atmospherics/pipe/vent{dir = 8},/turf/simulated/floor/plating,/area/mine/unexplored) "dRk" = (/obj/item/stack/rods,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard,/turf/simulated/floor/plating,/area/mine/abandoned) "dRl" = (/obj/item/stack/rods,/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) @@ -10465,7 +10518,6 @@ "dVo" = (/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Medbay"; req_access_txt = "0"; req_one_access_txt = "65;5"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/med) "dVp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/med) "dVq" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/med) -"dVr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6; initialize_directions = 6; level = 1},/obj/machinery/conveyor_switch{id = "anotempload"; name = "conveyor switch"; pixel_x = 0; pixel_y = 0},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "dVs" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "dVt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "dVu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Temporary Storage"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) @@ -10512,7 +10564,6 @@ "dWj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/research_outpost/entry) "dWk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor,/area/research_outpost/entry) "dWl" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/research_outpost/entry) -"dWm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6; initialize_directions = 6; level = 1},/turf/simulated/floor,/area/research_outpost/entry) "dWn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/sign/greencross,/turf/simulated/wall,/area/research_outpost/med) "dWo" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/med) "dWp" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "Outpost Medbay APC"; pixel_x = 24; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/med) @@ -10653,13 +10704,10 @@ "dYU" = (/obj/machinery/conveyor_switch{id = "anosample"},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01},/area/research_outpost/maint) "dYV" = (/turf/simulated/floor/plating,/area/research_outpost/maint) "dYW" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/maint) -"dYX" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5; initialize_directions = 6; level = 1},/turf/simulated/floor,/area/research_outpost/iso1) "dYY" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/research_outpost/iso1) "dYZ" = (/obj/machinery/power/apc{dir = 4; name = "Isolation Room One APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/research_outpost/iso1) -"dZa" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5; initialize_directions = 6; level = 1},/turf/simulated/floor,/area/research_outpost/iso2) "dZb" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/research_outpost/iso2) "dZc" = (/obj/machinery/power/apc{dir = 4; name = "Isolation Room Two APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/research_outpost/iso2) -"dZd" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5; initialize_directions = 6; level = 1},/turf/simulated/floor,/area/research_outpost/iso3) "dZe" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/research_outpost/iso3) "dZf" = (/obj/machinery/power/apc{dir = 4; name = "Isolation Room Three APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/research_outpost/iso3) "dZg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) @@ -10716,7 +10764,6 @@ "eaf" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor,/area/research_outpost/gearstore) "eag" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor,/area/research_outpost/gearstore) "eah" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/airlock/glass_mining{name = "Equipment storage"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/research_outpost/gearstore) -"eai" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; level = 1},/turf/simulated/floor,/area/research_outpost/gearstore) "eaj" = (/turf/simulated/floor,/area/research_outpost/gearstore) "eak" = (/obj/machinery/mineral/unloading_machine,/turf/simulated/floor{icon_state = "floorgrime"},/area/research_outpost/tempstorage) "eal" = (/obj/machinery/conveyor_switch{id = "anotempload"},/turf/simulated/floor/airless{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) @@ -10811,7 +10858,6 @@ "ebW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/gearstore) "ebX" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/gearstore) "ebY" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/research_outpost/gearstore) -"ebZ" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "research_inner"; locked = 1; name = "Research Outpost External Access"; req_access = null; req_access_txt = null},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 1; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/research_outpost/gearstore) "eca" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/mine/explored) "ecb" = (/obj/structure/transit_tube{tag = "icon-D-SE"; icon_state = "D-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/maintstore2) "ecc" = (/obj/structure/transit_tube{tag = "icon-E-SW"; icon_state = "E-SW"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) @@ -10899,11 +10945,9 @@ "edG" = (/obj/structure/rack{dir = 1},/obj/item/clothing/glasses/meson,/obj/item/device/flashlight,/obj/item/weapon/storage/bag/ore,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/obj/item/weapon/shovel{attack_verb = list("ineffectively hit"); desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; force = 1; name = "safety shovel"; pixel_x = -5; throwforce = 1},/obj/item/weapon/pickaxe{attack_verb = list("ineffectively hit"); desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; force = 1; name = "safety pickaxe"; pixel_x = 5; throwforce = 1},/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "edH" = (/obj/structure/rack{dir = 1},/obj/item/clothing/glasses/meson,/obj/item/device/flashlight,/obj/item/weapon/storage/bag/ore,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/obj/item/weapon/shovel{attack_verb = list("ineffectively hit"); desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; force = 1; name = "safety shovel"; pixel_x = -5; throwforce = 1},/obj/item/weapon/pickaxe{attack_verb = list("ineffectively hit"); desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; force = 1; name = "safety pickaxe"; pixel_x = 5; throwforce = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "edI" = (/obj/structure/rack{dir = 1},/obj/item/clothing/glasses/meson,/obj/item/device/flashlight,/obj/item/weapon/storage/bag/ore,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/obj/item/weapon/shovel{attack_verb = list("ineffectively hit"); desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; force = 1; name = "safety shovel"; pixel_x = -5; throwforce = 1},/obj/item/weapon/pickaxe{attack_verb = list("ineffectively hit"); desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; force = 1; name = "safety pickaxe"; pixel_x = 5; throwforce = 1},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"edJ" = (/obj/structure/rack{dir = 1},/obj/item/clothing/glasses/meson,/obj/item/device/flashlight,/obj/item/weapon/storage/bag/ore,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/obj/item/weapon/shovel{attack_verb = list("ineffectively hit"); desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; force = 1; name = "safety shovel"; pixel_x = -5; throwforce = 1},/obj/item/weapon/pickaxe{attack_verb = list("ineffectively hit"); desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; force = 1; name = "safety pickaxe"; pixel_x = 5; throwforce = 1},/obj/machinery/camera{c_tag = "Labor Camp Storage"; dir = 8; network = list("Labor")},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "edK" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 2},/turf/simulated/floor{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp) "edL" = (/obj/structure/table,/obj/item/device/healthanalyzer,/obj/item/stack/medical/advanced/bruise_pack,/turf/simulated/floor{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp) "edM" = (/obj/structure/sign/redcross{pixel_y = 32},/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp) -"edN" = (/obj/machinery/camera{c_tag = "Labor Camp Medical"; dir = 8; network = list("Labor")},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/simulated/floor{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp) "edO" = (/turf/simulated/wall,/area/mine/laborcamp) "edP" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "edQ" = (/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) @@ -10944,21 +10988,18 @@ "eez" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "eeA" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "eeB" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"eeC" = (/obj/machinery/door/poddoor/preopen{id = "Labor"; name = "labor camp blast door"},/obj/machinery/door/airlock{name = "Labor Camp External Access"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/laborcamp) "eeD" = (/obj/structure/ore_box,/turf/simulated/floor/plating/airless/asteroid{temperature = 273.15},/area/mine/explored) "eeE" = (/turf/space,/area/shuttle/siberia/outpost) "eeF" = (/obj/machinery/vending/sustenance,/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "eeG" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "eeH" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/wall,/area/mine/laborcamp) "eeI" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"eeJ" = (/obj/machinery/flasher{id = "Labor"; pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4},/turf/simulated/wall,/area/mine/laborcamp) "eeK" = (/obj/machinery/conveyor_switch/oneway{id = "gulag"},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "eeL" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; temperature = 273.15},/area/mine/laborcamp) "eeM" = (/turf/simulated/floor{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; temperature = 273.15},/area/mine/explored) "eeN" = (/turf/simulated/floor/airless{tag = "icon-asteroidwarning (NORTHWEST)"; icon_state = "asteroidwarning"; dir = 9},/area/mine/explored) "eeO" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "labor_camp_north_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = -10; req_access_txt = "2"},/turf/space,/area/shuttle/siberia/outpost) "eeP" = (/obj/machinery/light_switch{pixel_x = -27; pixel_y = 0},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"eeQ" = (/obj/machinery/camera{c_tag = "Labor Camp Central"; network = list("Labor")},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "eeR" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "eeS" = (/obj/machinery/conveyor{dir = 2; id = "gulag"},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "eeT" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/obj/structure/plasticflaps/mining,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/laborcamp) @@ -10968,13 +11009,10 @@ "eeX" = (/obj/structure/ore_box,/obj/machinery/mineral/input,/turf/simulated/floor{tag = "icon-asteroidwarning (WEST)"; icon_state = "asteroidwarning"; dir = 8; temperature = 273.15},/area/mine/explored) "eeY" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/simulated/floor{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored) "eeZ" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "labor_camp_north_outer"; locked = 1; name = "Labor Camp Airlock"; opacity = 1; req_access_txt = "2"},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"efa" = (/obj/machinery/light/small{dir = 1},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "labor_camp_north_sensor"; pixel_x = -8; pixel_y = 30},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "labor_camp_north_pump"},/obj/machinery/door_control{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 0; pixel_y = -28; req_access_txt = "2"},/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{id_tag = "labor_camp_north_airlock"; master_tag = "labor_camp_dock"; pixel_y = 30; req_access_txt = "2"; req_one_access_txt = "0"; tag_airpump = "labor_camp_north_pump"; tag_chamber_sensor = "labor_camp_north_sensor"; tag_exterior_door = "labor_camp_north_outer"; tag_interior_door = "labor_camp_north_inner"},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "efb" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "labor_camp_north_inner"; locked = 1; name = "Labor Camp Airlock"; opacity = 1; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"efc" = (/obj/machinery/door/poddoor/preopen{id = "Labor"; name = "labor camp blast door"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "labor_camp_north_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = 25; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; initialize_directions = 10},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) "efd" = (/turf/simulated/floor,/area/mine/laborcamp) "efe" = (/obj/machinery/mineral/processing_unit_console{machinedir = 6},/turf/simulated/wall,/area/mine/laborcamp) "eff" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 2; id = "gulag"},/obj/machinery/mineral/input,/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) -"efg" = (/obj/machinery/camera{c_tag = "Labor Camp External"; dir = 4; network = list("Labor")},/turf/simulated/floor{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) "efh" = (/turf/simulated/floor{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) "efi" = (/obj/machinery/conveyor_switch/oneway{id = "gulag"},/turf/simulated/floor{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) "efj" = (/obj/effect/decal/cleanable/blood/old,/turf/simulated/floor{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored) @@ -11000,7 +11038,6 @@ "efD" = (/turf/simulated/wall/r_wall,/area/mine/laborcamp/security) "efE" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/embedded_controller/radio/docking_port_multi{child_names_txt = "Airlock One;Airlock Two"; child_tags_txt = "labor_camp_north_airlock;labor_camp_south_airlock"; id_tag = "labor_camp_dock"; pixel_x = -25; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp/security) "efF" = (/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp/security) -"efG" = (/obj/machinery/camera{c_tag = "Labor Camp Security Hallway"; dir = 8; network = list("Labor"); pixel_x = 0; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/laborcamp/security) "efH" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/wall,/area/mine/laborcamp/security) "efI" = (/turf/simulated/wall,/area/mine/laborcamp/security) "efJ" = (/obj/structure/girder,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp/security) @@ -11014,7 +11051,6 @@ "efR" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/laborcamp/security) "efS" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/mine/laborcamp/security) "efT" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/mine/laborcamp/security) -"efU" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Labor Camp APC"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=5-Central"; location = "4-Maint"},/turf/simulated/floor/plating,/area/mine/laborcamp) "efV" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/mine/laborcamp/security) "efW" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp External Access"; req_access_txt = "2"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) "efX" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored) @@ -11028,7 +11064,6 @@ "egf" = (/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor,/area/mine/laborcamp/security) "egg" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor,/area/mine/laborcamp/security) "egh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/mine/laborcamp/security) -"egi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 4; name = "Labor Camp Security APC"; pixel_x = 24; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/camera{c_tag = "Labor Camp Monitoring"; network = list("Labor")},/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/mine/laborcamp/security) "egj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall,/area/mine/laborcamp/security) "egk" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) "egl" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) @@ -11043,7 +11078,6 @@ "egu" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/mine/laborcamp/security) "egv" = (/turf/simulated/floor,/area/mine/laborcamp/security) "egw" = (/obj/structure/stool/bed/chair/office/dark,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/mine/laborcamp/security) -"egx" = (/obj/machinery/door_control{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 28; pixel_y = 7; req_access_txt = "2"},/obj/machinery/flasher_button{id = "Labor"; pixel_x = 26; pixel_y = -3},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/mine/laborcamp/security) "egy" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/laborcamp/security) "egz" = (/turf/simulated/floor/plating,/area/mine/laborcamp/security) "egA" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/turf/simulated/floor/plating,/area/mine/laborcamp/security) @@ -11051,13 +11085,11 @@ "egC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/mine/laborcamp/security) "egD" = (/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor,/area/mine/laborcamp/security) "egE" = (/obj/machinery/computer/secure_data,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/mine/laborcamp/security) -"egF" = (/obj/machinery/computer/security{name = "Labor Camp Monitoring"; network = list("Labor")},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/mine/laborcamp/security) "egG" = (/obj/machinery/computer/prisoner,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor,/area/mine/laborcamp/security) "egH" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/simulated/floor,/area/mine/laborcamp/security) "egI" = (/obj/machinery/space_heater,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) "egJ" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) "egK" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/mine/laborcamp/security) -"egL" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/simulated/floor/plating,/area/mine/laborcamp/security) "egM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/mine/laborcamp/security) "egN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) "egO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) @@ -11084,20 +11116,16 @@ "ehj" = (/obj/structure/lattice,/obj/structure/window/reinforced,/turf/space,/area/mine/explored) "ehk" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored) "ehl" = (/turf/simulated/floor/plating,/area/mine/north_outpost) -"ehm" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6; level = 2},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1399; master_tag = "nmining_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = null},/turf/simulated/floor/plating,/area/mine/north_outpost) -"ehn" = (/obj/machinery/door/airlock/external{frequency = 1399; icon_state = "door_locked"; id_tag = "nmining_inner"; locked = 1; name = "North Mining External Access"; req_access = null; req_access_txt = "null"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 2},/turf/simulated/floor/plating,/area/mine/north_outpost) "eho" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1399; id_tag = "nmining_pump"},/obj/machinery/airlock_sensor{frequency = 1399; id_tag = "nmining_sensor"; pixel_x = 0; pixel_y = 25},/turf/simulated/floor/plating,/area/mine/north_outpost) "ehp" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "nmining_pump"; tag_exterior_door = "NMining_outer"; frequency = 1399; id_tag = "nmining_airlock"; tag_interior_door = "nmining_inner"; pixel_x = 0; pixel_y = 25; req_access_txt = "null"; tag_chamber_sensor = "nmining_sensor"},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/mine/north_outpost) "ehq" = (/obj/machinery/door/airlock/external{frequency = 1399; icon_state = "door_locked"; id_tag = "NMining_outer"; locked = 1; name = "North Mining External"; req_access = null; req_access_txt = "null"},/turf/simulated/floor/plating,/area/mine/north_outpost) "ehr" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1399; master_tag = "nmining_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = null},/turf/simulated/floor/plating/airless,/area/mine/explored) "ehs" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plating,/area/mine/north_outpost) -"eht" = (/obj/machinery/atmospherics/pipe/simple/hidden{level = 2},/obj/machinery/light/small{dir = 4},/obj/machinery/light_switch{pixel_x = 23; pixel_y = 0},/turf/simulated/floor/plating,/area/mine/north_outpost) "ehu" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/explored) "ehv" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plating,/area/mine/north_outpost) "ehw" = (/obj/structure/table,/turf/simulated/floor/plating,/area/mine/north_outpost) "ehx" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plating,/area/mine/north_outpost) "ehy" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plating,/area/mine/north_outpost) -"ehz" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; level = 2},/turf/simulated/floor/plating,/area/mine/north_outpost) "ehA" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area/mine/unexplored) "ehB" = (/obj/structure/stool,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/area/mine/north_outpost) "ehC" = (/obj/machinery/mineral/input,/obj/structure/window/reinforced,/turf/simulated/floor{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/mine/explored) @@ -11206,7 +11234,6 @@ "ejB" = (/obj/structure/table,/obj/machinery/microwave,/obj/machinery/light_switch{pixel_y = 23},/turf/simulated/floor,/area/mine/west_outpost) "ejC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/mine/west_outpost) "ejD" = (/obj/machinery/recharge_station,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/mine/west_outpost) -"ejE" = (/obj/structure/dispenser/oxygen,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6; level = 2},/turf/simulated/floor,/area/mine/west_outpost) "ejF" = (/obj/structure/rack,/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/turf/simulated/floor,/area/mine/west_outpost) "ejG" = (/obj/structure/rack,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/turf/simulated/floor,/area/mine/west_outpost) "ejH" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/mine/west_outpost) @@ -11356,7 +11383,6 @@ "emv" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/mine/production) "emw" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/mine/production) "emx" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/mine/eva) -"emy" = (/obj/machinery/power/apc{dir = 2; name = "Mining EVA APC"; pixel_x = 1; pixel_y = -23},/obj/structure/cable,/turf/simulated/floor,/area/mine/eva) "emz" = (/obj/machinery/mech_bay_recharge_port,/obj/machinery/light/small,/turf/simulated/floor/plating,/area/mine/eva) "emA" = (/turf/simulated/floor/mech_bay_recharge_floor,/area/mine/eva) "emB" = (/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor,/area/mine/eva) @@ -11480,8 +11506,6 @@ "eoP" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/airless{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; dir = 2},/area/mine/explored) "eoQ" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "mining_outpost_outer"; locked = 1; name = "Mining Dock Airlock"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/mine/production) "eoR" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "mining_outpost_airlock"; pixel_x = 0; pixel_y = 30; req_access_txt = "0"; req_one_access_txt = "13;48"; tag_airpump = "mining_outpost_pump"; tag_chamber_sensor = "mining_outpost_sensor"; tag_exterior_door = "mining_outpost_outer"; tag_interior_door = "mining_outpost_inner"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "mining_outpost_sensor"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "mining_outpost_pump"},/turf/simulated/floor,/area/mine/production) -"eoS" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "mining_outpost_inner"; locked = 1; name = "Mining Dock Airlock"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; dir = 4},/turf/simulated/floor,/area/mine/production) -"eoT" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "mining_outpost_airlock"; name = "interior access button"; pixel_x = -30; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "13;48"},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (SOUTHWEST)"; dir = 10},/turf/simulated/floor,/area/mine/production) "eoU" = (/obj/machinery/door/window/westright{name = "Production Area"; req_access_txt = "48"},/turf/simulated/floor,/area/mine/production) "eoV" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/mine/production) "eoW" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/camera{c_tag = "Mining Outpost Production Room"; dir = 8; network = list("Mining Outpost")},/turf/simulated/floor,/area/mine/production) @@ -12298,7 +12322,6 @@ "eEB" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 6},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/tox) "eEC" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/tox) "eED" = (/obj/machinery/atmospherics/binary/pump/highcap{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/tox) -"eEE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 2},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area) "eEF" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plating/airless,/area) "eEG" = (/obj/structure/table,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/matter_bin{pixel_x = -3; pixel_y = 2},/obj/machinery/alarm{dir = 8; hidden = 1; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/rnd) "eEH" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) @@ -12314,7 +12337,6 @@ "eER" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eES" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eET" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) -"eEU" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eEV" = (/obj/machinery/door/airlock/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eEW" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/tox) "eEX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/tox) @@ -12379,7 +12401,6 @@ "eGe" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eGf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/power/apc{dir = 4; pixel_x = 24},/obj/structure/disposalpipe/segment,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eGg" = (/obj/machinery/light_switch{pixel_x = -24; pixel_y = 0},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/tox) -"eGh" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/tox) "eGi" = (/obj/machinery/atmospherics/pipe/tank/oxygen{dir = 8; volume = 20000},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/tox) "eGj" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area) "eGk" = (/mob/living/simple_animal/cat/Syndi,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) @@ -12410,7 +12431,6 @@ "eGJ" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/turf/simulated/floor/plating,/area/traitor/atmos) "eGK" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plating,/area/traitor/hall) "eGL" = (/obj/machinery/door/firedoor/multi_tile/triple{dir = 3},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) -"eGM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; level = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eGN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eGO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eGP" = (/obj/machinery/door/airlock/glass,/obj/machinery/door/firedoor/multi_tile/triple{dir = 3; layer = 2.6},/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) @@ -12419,13 +12439,11 @@ "eGS" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible{dir = 4; level = 1},/turf/simulated/floor/plating,/area/traitor/atmos) "eGT" = (/obj/machinery/atmospherics/trinary/filter{dir = 4; name = "Gas filter (Toxins tank)"; on = 1},/turf/simulated/floor/plating,/area/traitor/atmos) "eGU" = (/obj/machinery/atmospherics/trinary/filter{dir = 4; filter_type = 4; name = "Gas filter (N2O tank)"; on = 1},/turf/simulated/floor/plating,/area/traitor/atmos) -"eGV" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/turf/simulated/floor/plating,/area/traitor/atmos) "eGW" = (/turf/simulated/floor/plating,/area/traitor/atmos) "eGX" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/simulated/floor/plating,/area/traitor/atmos) "eGY" = (/obj/machinery/door/airlock/glass,/obj/machinery/door/firedoor/multi_tile/triple{layer = 2.6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eGZ" = (/obj/machinery/door/airlock/glass,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eHa" = (/obj/machinery/door/airlock/glass,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) -"eHb" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/turf/simulated/floor/plating,/area/traitor/atmos) "eHc" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/turf/simulated/floor/plating,/area/traitor/atmos) "eHd" = (/obj/machinery/atmospherics/pipe/manifold/visible,/turf/simulated/floor/plating,/area/traitor/atmos) "eHe" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/plating,/area/traitor/atmos) @@ -12580,7 +12598,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiabCabDabEabFabGabHabIabJabKabLaaiaaaaaaaaaaaaabzabAabMabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBabBabBabBabBabBabBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaafaafaafaafaafaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiabNabOabPabQabRabSabTabUabVabVaaiaaaaaaaaaaaaaaaabzabAabAabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBabBabBabBabBabBabBabBabBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaafaafaafaafaafaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWaaaaaaaaaabWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiabXabYabZacaacbaaiaccaaaaaaaaaaaaaaaabzabAabAabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBabBabBabBabBabBabBabBabBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWabWabWabWabWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiacdaceacfacgachaciabTaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaabzabAabAabzaaiaaiaaiacjackaaiaaiaaiabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBabBabBabBabBabBabBabBabBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWabWabWabWabWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiacdaceacgacfachaciabTaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaabzabAabAabzaaiaaiaaiacjackaaiaaiaaiabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBabBabBabBabBabBabBabBabBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWaaaaaaabWaaaaaaabWabWabWabWabWabWabWaaaaaaabWaaaaaaabWaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaclacmacnacoacpacqacraaiacsaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaabzactacuaaiacvacwacxacyaczacAaaiabAabAabAabAabAabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBabBabBabBabBabBabBabBabBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWabWabWabWaaaabWabWabWabWabWabWabWabWabWaaaabWabWabWabWaaaaabaabaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiacBacCacDacEacFacGacraaiaaiaaiacHacIacJaaiaaiaaiaaaaaaaaaaaaabzacuaaiacKacLacMacLacLacNaaiaaiaaiaaiaaiaaiaaiabAacOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBabBabBabBabBabBabBabBabBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaaaahaahaahaahaahaaaaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWabWabWabWaaaabWabWabWabWabWabWabWabWabWaaaabWabWabWabWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiacPacQaaiaaiacRacSacTacUacVaaiaaiaaaaaaaaaaaaaaaabzaaiacWacXacYacZadaadbaaiadcaddadeadfadgadhadiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBabBabBabBabBabBabBabBabBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaaaahaahaahaahaahaaaaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -12605,7 +12623,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagragragragragragragragragraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuaaaaabaaaakUaaaaaaaaaaaaaaaaaaaaaaaaakqalGansantanualGalKanvanwanxanyanzanAanBanCanDanDanEanFanGanHanIanJanKanLanManNanOanPanNanQanRanKanSanTanUanKanKanUanOanTanUanKanKanSanTanManVanWanXanYanZaoaaobaocaaqannaodamlamlaoeaaaaofaogaofaaaaaaaaaahxahxahxaaaaaaaaaaaaaaaaaaaaaakqaabaohaohaohaohaohaabaoiaabaohaohaohaohaohaabakqaaaaaaajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagragragragragragragragragraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakqaabaojaabakqaaaaaaaaaaaaaaaaaaaaaaaaakqalGaokaokaolalGaaaaaaaaaaomaaiaonaooaopaaqaaqaaqaaqaaqaaqaaqaoqaoraaqaaqaaqaosaotaouaosaaqaaqaaqaovaowaaqaoxaoyaaqaozaowaaqaaqaaqaoAaoBaaqaaJaoCaoDaoEaoFaaqamfaocaoGaaiaaiaaiaoHaoIaoJaaiaoKaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakqaabaoLaoMaoMaoMaoMaoNaoOaoPaoQaoQaoQaoQaoRaabakqaaaaaaajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagragragragragragragragragraaaaaaaaaaaaaaaacuacuacuakqakqaaaaaaaaaaoSaaaaaaaaaakqakqacuacuacuaaaaaaakUamoaoTaokaoUalGalKaoVanwaoWaoXaoYaoZapaapbapcapdaaqapeapfapgaphapiapjapkaplapmapnapoappapqaprapjapsaptapuapvapwapxapyaptaaqapzapAapBapCaaqapDapEapFapGapHapIamfaocapJapKapLapMapNapNapOaaiapPaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakqaabapQapQapQapQapQaabapRaabapQapQapQapQapQaabakqaaaaaaajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagragragragragragragragragraaaaaaaaaaaaaaaacuaaaaaaaabaabaaaaaaaaaaoSaabaabaaaaabaabaaaaaaacuaaaaaaakqalGapSaokaokapTapUapVapWapXapYamDapZaqaamyamyaqbaaqaqcaqdaqeaqfaqgaqhaqiaqjaqkaqlaqmaqnaqjaqoaqpaqqaqraqsaqtaquaqvaqwaqxaqyaqzaqAaqBaqCaaqaqDaqEaqEaqFaqEaqGamfaocannannannannaqHannaqIaqJaqKaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuaaaaaaaaaaabaaaaaaaabapRaaaaaaaaaaabaaaaaaaaaacuaaaaaaajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagragragragragragragragragraaaaaaaaaaaaaaaacuaaaaaaaabaabaaaaaaaaaaoSaabaabaaaaabaabaaaaaaacuaaaaaaakqalGapSaokaokapTapUapVapWapXapYamDapZaqaamyamyaqbaaqaqcaqdaqeaqfaqgaqhaqiaqjaqkaqlaqmaqnaqjaqoaqpaqqaqraqsaqtaquaqvaqwaqxaqyaqzaqAaqBaqCaaqaqDaqEaqEaqFaqEaqGamfaocannannannannaqHannaqJaqIaqKaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuaaaaaaaaaaabaaaaaaaabapRaaaaaaaaaaabaaaaaaaaaacuaaaaaaajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagragragragragragragragragraaaaaaaaaaaaaaaacuaabaqLaqLaqLaqLaqLaabaqMaabaqLaqLaqLaqLaqLaabacuaaaaaaakqalGaqNaqNaqNalGalKalLalLaqOaqPaqQanDaqRaqSamyaqTaaqaqUaqVaqWaqXaqYaqZaraarbarcardarearfargarhaqZariaqxarjarkarlarjaqwaqxaaqarmarnaroarpaaqarqarraqEaqFaqEarsamfartaruarvarwarvarxaryaaiaaiaaqaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakqaabaohaohaohaohaohaabapRaabaohaohaohaohaohaabakqaaaajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagragragragragragragragragraaaaaaaaaaaaaaaacuaabarzarAarAarAarAarBarCarDarEarEarEarEarFaabacuaaaaaaakqarGarHarHarHarIarJaaaaaaaaiaaiaaiaaiaaiarKamyarLaaiaaqaaqaaqarMarNaaqaaqaaqaaqarOarPaaqaaqaaqaaiarQarRarSarTarUarVaqwarWaaqarXarYarZasaabJasbascasdaseaqEasfamfasgashasiasjaskaslasmasnasoaspaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakqaabaoLaoMaoMaoMaoMaoNaoOaoPaoQaoQaoQaoQaoRaabakqaaaajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFajFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuaabasqasqasqasqasqaabasraabasqasqasqasqasqaabacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiassamyarLaaiastapfapgaphapiapjasuaplasvaswasxasyaszasAapjasBasCasDasEasFasFasGasHaaqasIasJasKasLaaqasMasNasOaqFaqEasPamfasgaqHashashashasQannasRasSasTaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakqaabapQapQapQapQapQaabapRaabapQapQapQapQapQaabakqaaaaaaajFajFajFajFaaaaaaajFajFajFajFajFajFajFaaaaaaajFajFajFajFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -12623,96 +12641,96 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaySazFazGazHaySazIazJazKaySaxCaxCazLazMazNazOazPazQayVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazRazSazTazUazVazWazXazYazbaabaaqazZaAaaAbaaqaAcaaqaAdaAeaAfaAgaAhaznaAiaAjaAkaAlaAmaAnaAoaApaAqavtaArabZaAsaAtaAuaysaytaaqaAvayRayRaAwaAwaAwayRayRayRayRaAxaAyaAzaAAaABaACaADaAEaAFaAGaAFaAFaAHaAFaAIaAJaxZaxZaxZaxZaxZaAKaALaAMaANaaaaaaaaaaaaaxuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaySaAOaAPaAQaySaAOaAPaAQaySaARaASaASaxCaxCaxCaASaASawHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxDaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaabaabaaaaaaaabaATazSaAUaAVaAWaAXaAYaAYazbaaqaaqaxEabZabZabZaAZabZaBaabZabZabZaBbabZabZaaEabZabZabZabZabsaugaBcauRaBdaaqasgaosaBeaysaytaaqaztayRaAwaBfaBfaBgaAwayRaBhayRaBiaBjaBkaBlaBmaBnaBoaBpaBnaBqaBnaBnaBraBhaBsaANaxZaxZaxZaxZaxZaANaBtaBuaBvaaaaaaaaaaaaaxuaaaaaaaaaaaaaaaaaaaaaaaqaaqaBwaBxaBxaBxaBxaByaaqaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaySaBzaBAayaaySaBBaBAayaaySaBCaySaySaySaySaySaASaxBaaaaaaaaaaaaaaaaaaaaaaabaaaaBDaBEaBDaabaabaabaabaaaaaaaaaaabazbazbazbazbaBFaBGaBGaBHazbazbazbazbaBIaAYaAYazbaBJaBKaBLaBMaBMaBNaBOaBPaBQaBQaBQaBQaBRaBQaBSaBTaBUaBQaBQaBVaBVaBWaBXaBYaBZabJaCaaosaCbaBeaBeaaqaztayRaAwaCcaCdaCeaAwayRayRaCfaCgaBjaChaCiayRayRaCjaCkayRaClayRayRaCmayRaCnaCoaxZaxZaxZaxZaxZaCoaCpaBuaBvaaaaaaaaaaaaaCqaaaaaaaaaaaaaaaaaaaaqaaqaCraCsaCtaCuaCvaCwaCxaCtaaqaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCyaCzaCAaCzaCBaCzaCCaCzaCDaCEaCFaCFaCFaCFaCGaySaCHaxBaaaaabaabaaaaaaaaaaaaaabaaaaCIaCJaCKaabaaaaabaaaaaaaaaaaaaaaazbaCLaCMaCNaCMaCMaCMaCMaCOaCMaCMaCPaCQaCNaCRaCSaCSaCSaCSaCSaCSaCSaCTaaiaaiaaiaaiaiVabmaaiaCUaaiafaaiVaaiaaiaaiaaiaCVaCWaCXaCYaCZaAtaDaaDbaBeaDcaztayRaAwaDdaBfaBfaAwayRayRayRaDeaDfaDgaDhayRayRaCjaDiayRayRayRayRaDjayRaDkaDlaxZaxZaxZaxZaxZaDmaDnaDoaCoaaaaaaaaaaDpaDqaDpaaaaaaaaaaaqaaqaaqaDraCuaDsaCuaDtaDuaCuaCuaCuaDvaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCyaCzaCAaCzaCBaCzaCCaCzaCDaCEaCFaCFaCFaCFaCGaySaCHaxBaaaaabaabaaaaaaaaaaaaaabaaaaCIaCJaCKaabaaaaabaaaaaaaaaaaaaaaazbaCLaCNaCMaCNaCNaCNaCNaCOaCNaCNaCPaCQaCMaCSaCRaCRaCRaCRaCRaCRaCRaCTaaiaaiaaiaaiaiVabmaaiaCUaaiafaaiVaaiaaiaaiaaiaCVaCWaCXaCYaCZaAtaDaaDbaBeaDcaztayRaAwaDdaBfaBfaAwayRayRayRaDeaDfaDgaDhayRayRaCjaDiayRayRayRayRaDjayRaDkaDlaxZaxZaxZaxZaxZaDmaDnaDoaCoaaaaaaaaaaDpaDqaDpaaaaaaaaaaaqaaqaaqaDraCuaDsaCuaDtaDuaCuaCuaCuaDvaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDwaDxaDyaDzaDAaDBaDCaDDaDEaDCaDFaDGaDCaDCaDHaySaxCayWaabaabaaaaaaaaaaaaaaaaabaDIaDJaDKaDLaDMaaaaabaaaaaaaaaaaaaaaazbaDNazbaDOaDPaDQaDQaDQaDRaDQaDQaDQaDSaDOaDTaDUaDUaDUaDUaDUaDUaDUaAYaaiaDVaDWaDXaDYaDZaEaaEbaEcaEdaEeaEfaDWaEgaaiaEhauRaEiaaqaEjaosaEkaElaElaEmaEnaEoaEpaEqaEqaEraEsaBnaEtaEsaEsaEuaEvaEwayRayRaExaEyaEzaEAaEAaEAaEBayRaECaEDaxZaxZaxZaxZaxZaEEaaiaaiaaiaaaaaaaaaaEFaEGaEFaaaaaaaaqaaqaEHaaqaEIaEJaEKaELaCuaCuaEMaENaCuaEOaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaySaEPaEQaEPaERaDyaDyaESaEPaEQaEPaETaEUaEVaEWaySaxCayVayVaEXayZayZayZayZazaayVaEYaEZaFaaFbaEYazbazbaFcaFdaFeazbazbazbaDNaFfaDOaaaaabaaaaabaaaaabaaaaabaaaaDOaDTaDUaFgaFhaFiaFjaFkaDUaAYaaiaFlaFlaFmaFnaFoaFpaFqaFpaFraFsaFtaFlaFlaaiaEhauRaFuaaqaEjaosaBeaysaytaaqaztaFvaFwaFxaFyaFzaFzaFAaFBaFzaFBaFCaFDaFEaFFaFGaFHaFIaFJaFKaFKaFKaFLayRaaqaFMaxZaxZaxZaxZaxZaFNaaiaabaaaaaaaaaaoHaFOaFPaFQaFRaaaaaqaFSaFTaFUaFVaFWaFXaCuaCuaCuaFYaFZaCuaGaaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaabaGbayaaGcaAPaGdaGeaGfaGgaGhaGdaAPaGiaGjayaaGkaGlaySaxCaxCaxCaxCaxCaxCaxCaxCaGmaGnaEYaGoaGpaGqaEYaGraGsaCMaCMaCMaCMaCMaGtaGuaGvaDOaabaGwaGwaGwaGwaGwaGwaGwaabaDOaDTaDUaGxaGyaGzaGAaGxaDUaAYaaiaaiaaiaaiaGBaGCaDWaGDaDWaGCaGEaaiaaiaaiaaiaEhauRaGFaaqaEjaosaAuaysaytaaqaAvaGGaaqaaqaaqaaqaaqaaqaaqaGHaaqaaqaaqaaqaaqaaqaGIaaqaGJaGKaGLaGMaGNaaqaaqaFMaxZaxZaxZaxZaxZaFNaaiaaaaaaaaaaaaaaiaGOaGPaGQaaiaaaaaqaGRaGSaaqaGTaGUaGVaGWaGXaGYaGZaHaaDtaaqaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDwaEQaHbaHcaHcaHcaHcaHdaEQaDwaHeayaaHfaHgaySaHhaHhaHhaHhaHhaHhaHhaxCaHiaHjaEYaHkaHlaHmaEYaHnaHoaHnaHnaHnaHnaHnaHnaHnaHnaHpaaaaGwaHqaHraHsaHtaHuaGwaaaaDOaDTaDUaGxaHvaHwaHxaGxaDUaAYaaiaHyaHyaFmaHzaHAaFpaFqaFpaHAaHBaHCaHDaHEaaiaEhauRaEiaaqaHFaxQaHGaysaytaaqaztaGGaaqaHHaHIaHJaHJaaqaHKaHIaHLaaqaHMaHNaHOaaqaHPaaqaHQaHRaHRaHRaHSaaqaabaHTaHUaHUaHUaHUaHUaHVaabaaaaaaaagaaaaaiaHWaHXaHYaaiaaaaaqaHZaIaaaqaaqaaqaaqaaqaIbaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIcaIdaIeaIdaIdaIfaIgaIdaIdaIeaIhaIiayaaERaIjaySaIkaIlaImaInaIoaIpaHhaxCaIqayVaEYaEYaIraIsaHpaItaIuaIvaIwaIxaIyaIzaIAaIBaICaHpaabaGwaIDaIEaIFaIGaIHaGwaabaDOaDTaDUaIIaIJaIKaILaIMaDUaAYaaiaDVaDWaINaIOaGCaDWaIPaDWaGCaIQaIRaDWaEgaaiaEhauRaISaaqaEjazrazsaysaytaaqaITaIUaaqaIVaHIaHIaHIaIWaIXaIYaIZaaqaJaaJbaJcaJdaJeaaqaJfaJgaJhaJgaJiaaqaaaaabaaaaabaaaaabaaaaabaaaaaaaaaaaaaaaaaiaJjaJkaJlaaiaJmaaqaaqaaqaaqaJnaJoaJpaJpaJqaJpaJraJpaJsaJtaJtaJuaJtaJtaJtaJtaJvaJwaJxaaiaJyaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIcaIhaIdaJzbqaaJBaJCaJDaJEaJFaJGbpZaJAaJHaJIaEPaERaJJaySaJKaJLaJMaJNaJMaJOaJPaxCaJQaJRaJSaJTaJUaJVaJWaJXaJYaJZaJZaJZaKaaJZaJZaKbaKcaHpaaaaGwaKdaIEaKeaIGaKfaGwaaaaDOaDTaDUaKgaKhaKiaKjaKkaDUaAYaaiaHyaHyaFmaKlaHAaFpaKmaFpaHAaKnaFtaKoaKpaaiaKqawzaKraaqaEjazrabZabZabZabZaKsaKtaKuaKvaKwabZabZabZaaEabZabsaKxaKyaKzaKAabZaKBaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiaoHaoJaaiaaiaaiaaiaaiaaiaKCaamaaiaKDaKEaKFaKGaKHaKIaKJabZabZabZabZaaEaKKaKLabZabZaKMabZaKNabZabZaaEaKOaaqaaqaKPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiabAacOaaaaaaaaaaaaaaaaaaaaaaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaKRaKSaKTaJAaKUaJBaKUaJBaKUaJBaKUaJAaKVaKWaGdaERaKXaySaKYaKZaLaaLbaLcaLdaHhaLeaLfaLgaLhaLiaLjaLkaHnaLlaJZaJZaJZaJZaJZaJZaJZaKbaLmaHpaabaGwaLnaLoaLpaLqaLraGwaabaDOaDTaDUaLsaLtaLuaLvaLwaDUaAYaaiaaiaaiaaiaLxaGCaDWaGDaDWaGCaLyaaiaaiaaiaaiaLzaLAaLBaaqaHFaLCaLDaLDaLDaLEaLFaADabJaLGaLHabJaLIabJaLJabJaLKaxXaLLaLMaLNaaqaLOaLPaLQaLRaLRaLPaLSaLTaLTaLTaLTaLTaLUaLVaLTaLWaLXaLYaLZaMaaMbaMbaMcaMdaMeaMeaMeaMfaJwaMgaMhaMiaMjaaqaMkaMlaMmaaJaaqaMnaaqaMoaMpaMqaMraMsaMtaMuaMvaMwaMxaMyaaiaMzaMAaMBaMCaMDaMEaMFaMGaMHaMIaaaaaaaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMJaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMKaJBaJBaIeaJAaKUaJBaKUaMLaKUaJBaKUaJAaKVaKWaGdaERaMMaySaySaMNaMOaMPaMOaySaySaySaySaySaMQaMRaMSaMTaHnaMUaMVaMWaJZaJZaMXaJZaMYaMZaNaaHpaaaaGwaGwaNbaNcaNbaGwaGwaaaaDOaDTaDUaNdaNeaNfaLvaNgaDUaAYaaiaDVaDWaNhaIOaGCaDWaGDaDWaGCaIQaNiaaiaaiaaiaNjaNkaNlaNmaNnabmaaiaaiaaiaaqaNoaNpaaqaNqaHIaaqaNraaqaNsaaqaNtaNuaNvaNwaNxaNyaNzaNAaNBaNCaNDaxSaNEaNDaNDaNFaNDaNAaNGaNAaNHaNAaNAaNIaNJaNKaNLaNLaNMaNNaNOaNPaNLaNQaJtabJaNRaNSaNTaNUaNVaNWaNXaaJaNYaNZaaqaOaaObaOcaOdaMsaOeaMuaMvaMwaOfaOgaaiaOhaOiaOiaOjaMGaMGaMGaMGaMHaMIaaaaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaJHaOkaKSaKTaJAaKUaJBaKUaJBaKUaJBaKUaJAaKVaKWaGdaERaOlaOmaOnaOoaOpaOqaDyaOraOsaOtaOuaOvaOwaOxaOyaOyaHnaOzaOAaOBaOCaODaOEaOFaOGaOHaOIayaaaaaabaaaaOJaOKaOJaaaaabaaaayaaDTaDUaOLaOMaONaOOaOPaDUaAYaaiaOQaORaFmaOSaOTaFpaOUaFpaOVaOWaOXaaiaOYaOZaPaaPbaPcaPdaPeaPfaaaaaaaaiaPgaPhaPiaaqaPjaHIaHIaHIaPkaHIaHIaHIaaJaPlaPmaaqaPnaosaaqaPoaaqaaqaPpaPqaPraPsaPtaaqaPuaPvaaqaPnaaqaaqaaqaaqaPwaaqaaqaosaaqaaqaaqaaqaPxaJwaaqaPyaNTaPzaPAaPBaPCaPDaPEaPFaPGaaqaPHaPIaPJaPKaPLaOeaMuaMvaMwaPMaPNaaiaPOaOiaOiaOjaMGaMGaMGaMGaMHaMIaaaaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPPaPQaIdaJzaJAaJBaJBaPRaJBaJBaPSaJBaJAaJHaPTaPUaERaPVaPWaPXaPYaPXaPXaPXaPXaPXaPZaDyaySaQaaQaaQaaQaaQaaQbaQcaQdaHnaHnaHnaHnaQbaQeaQfaQgaQhaQiaQiaQjaQkaQlaQiaQiaQmaQgaQnaQgaQoaDUaQpaQqaQraQsaQtaaiaaiaaiaaiaQuaQvaQwaQxaQwaQyaQzaaiaaiaQAaPbaPbaPbaPbaQBaQCaQDaQEaQFaaiaQGaPhaQHaaqaaqaaqaaqaaqaaqaaqaaqaaqaaJaQIaQJaQKaQLaQMaQNaQOaQPaaqaQQaQRaQSaQTaQUaaqaQVaQWaQXaQYaQXaQZaRaaRbaRcaRdaReaRfaRgaRhaRiaaqaRjaMbaRkaRlaRmaPzaRnaPBaPCaRoaaqaRpaRqaRraRsaRtaOdaOdaaqaOgaMuaMvaMwaRuaRvaaiaRwaRxaRyaRzaRAaRBaMGaMGaRCaMIaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPPaIdaIeaIdaIdaIfaIgaIdaIdaIeaPQaRDayaaREaPVaCyaRFaRFaRGaRFaRHaySaRIaRJaDyaRKaRLaRMaRNaROaRPaRNaRQaRNaRNaRNaRRaRNaRNaRSaRTaRUaRVaRWaRXaRVaRYaRVaRVaRVaRVaRZaSaaSbaRNaRNaScaSdaSeaSfaSgaShaSiaSjaSkaSlaSmaSmaSmaSmaSmaSmaSnaSoaSpaSqaSraSsaStaSuaSvaSwaPbaPbaSxaSyaSzaSyaSAaSBaSCaSDaSEaSFaSGaaqaSHaSIaSJaSKaSLaSLaSMaSNaSOaSPaaqaSQaSRaSSaSSaSTaaqaSUaSVaSWaSXaSYaSYaSZaTaaTbaTaaTcaTdaTeaTfaTgaaqaPxaThaaqaTiaTjaTjaTkaTlaTjaTmaaqaTnaToaaqaTpaTqaOdaTraaqaTsaTtaTuaMwaOgaOgaaiaTvaaiabmafaaaiaaiaaiaaiaaiabAacOaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCyaTwaTxaHcaHcaHcaHcaTyaTwaCyaHeayaaTzaTAaTBaTCaTDaTEaTEaTFaySaTGaRJaTHaTIaRLaTJaTKaTLaTMaTMaTNaTOaTOaTOaTPaTQaTQaTRaTSaTTaTMaTMaTUaTVaTWaTXaTYaTYaTZaTYaUaaTVaTVaTVaUbaSdaSeaSfaSgaSgaSgaSgaUcaSgaSgaSgaSgaSgaSgaUdaUeaUfaUgaUhaUiaUjaUkaUlaUmaUnaUnaUnaUoaUpaUpaUpaUqaSGaSGaSGaUraUsaSGaaqaUtaUuaSLaSLaUvaSLaUwaUxaSOaUyaaqaUzaUAaUBaUCaUDaaqaUEaUFaUGaUHaUIaUJaaqaUKaULaUKaaqaaqaaqaosaaqaaqaPxaJwaaqaUMaNTaNTaNTaUNaNTaUOaaqaaqaaqaaqaaqaaqaaqaUPaaqaMwaMwaMvaMwaUQaURaaqaUSaUTaUUaUVaUWaUXaUYaUZaVaaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaabaGbayaaGcaAPaGdaGeaGfaGgaGhaGdaAPaGiaGjayaaGkaGlaySaxCaxCaxCaxCaxCaxCaxCaxCaGmaGnaEYaGoaGpaGqaEYaGraGsaCNaCNaCNaCNaCNaGuaGtaGvaDOaabaGwaGwaGwaGwaGwaGwaGwaabaDOaDTaDUaGxaGyaGzaGAaGxaDUaAYaaiaaiaaiaaiaGBaGCaDWaGDaDWaGCaGEaaiaaiaaiaaiaEhauRaGFaaqaEjaosaAuaysaytaaqaAvaGGaaqaaqaaqaaqaaqaaqaaqaGHaaqaaqaaqaaqaaqaaqaGIaaqaGJaGKaGLaGMaGNaaqaaqaFMaxZaxZaxZaxZaxZaFNaaiaaaaaaaaaaaaaaiaGOaGPaGQaaiaaaaaqaGRaGSaaqaGTaGUaGVaGWaGXaGYaGZaHaaDtaaqaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDwaEQaHbaHcaHcaHcaHcaHdaEQaDwaHeayaaHfaHgaySaHhaHhaHhaHhaHhaHhaHhaxCaHiaHjaEYaHkaHlaHmaEYaHnaHoaHnaHnaHnaHnaHnaHnaHnaHnaHpaaaaGwaHqaHraHsaHtaHuaGwaaaaDOaDTaDUaGxaHvaHwaHxaGxaDUaAYaaibqbbqbaFmaHzaHAaFpaFqaFpaHAaHBaHCaHDaHEaaiaEhauRaEiaaqaHFaxQaHGaysaytaaqaztaGGaaqaHHaHIaHJaHJaaqaHKaHIaHLaaqaHMaHNaHOaaqaHPaaqaHQaHRaHRaHRaHSaaqaabaHTaHUaHUaHUaHUaHUaHVaabaaaaaaaagaaaaaiaHWaHXaHYaaiaaaaaqaHZaIaaaqaaqaaqaaqaaqaIbaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIcaIdaIeaIdaIdaIfaIgaIdaIdaIeaIhaIiayaaERaIjaySaIkaIlaImaInaIoaIpaHhaxCaIqayVaEYaEYaIraIsaHpaItaIuaIvaIwaIxaIyaIzaIAaIBaICaHpaabaGwaIDaIEaIFaIGaIHaGwaabaDOaDTaDUaIIaIJaIKaILaIMaDUaAYaaiaDVaDWaHyaIOaGCaDWaIPaDWaGCaIQaIRaDWaEgaaiaEhauRaISaaqaEjazrazsaysaytaaqaITaIUaaqaIVaHIaHIaHIaIWaIXaIYaIZaaqaJaaJbaJcaJdaJeaaqaJfaJgaJhaJgaJiaaqaaaaabaaaaabaaaaabaaaaabaaaaaaaaaaaaaaaaaiaJjaJkaJlaaiaJmaaqaaqaaqaaqaJnaJoaJpaJpaJqaJpaJraJpaJsaJtaJtaNHaJtaJtaJtaJtaJvaJwaJxaaiaJyaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIcaIhaIdaJzbpZaJBaJCaJDaJEaJFaJGaINaJAaJHaJIaEPaERaJJaySaJKaJLaJMaJNaJMaJOaJPaxCaJQaJRaJSaJTaJUaJuaJVaJXaJYaJZaJZaJZaKaaJZaJZaKbaKcaHpaaaaGwaKdaIEaKeaIGaKfaGwaaaaDOaDTaDUaKgaKhaKiaKjaKkaDUaAYaaibqabqaaFmaKlaHAaFpaKmaFpaHAaKnaFtaKoaKpaaiaKqawzaKraaqaEjazrabZabZabZabZaKsaKtaKuaKvaKwabZabZabZaaEabZabsaKxaKyaKzaJWabZaKBaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiaoHaoJaaiaaiaaiaaiaaiaaiaKCaamaaiaKDaKEaKFaKGaKHaKIaKJabZabZabZabZaaEaKKaKAabZabZaKMabZaBbabZabZaaEaKOaaqaaqaKPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiabAacOaaaaaaaaaaaaaaaaaaaaaaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaKRaKSaKTaJAaKUaJBaKUaJBaKUaJBaKUaJAaKVaKWaGdaERaKXaySaKYaKZaLaaLbaLcaLdaHhaLeaKNaKLaLhaLfaLiaLgaHnaLlaJZaJZaJZaJZaJZaJZaJZaKbaLmaHpaabaGwaLnaLoaLpaLqaLraGwaabaDOaDTaDUaLsaLtaLuaLvaLwaDUaAYaaiaaiaaiaaiaLxaGCaDWaGDaDWaGCaLyaaiaaiaaiaaiaLzaLAaLBaaqaHFaLCaLDaLDaLDaLEaLFaADabJaLGaLHabJaLIabJaLJabJaLKaxXaLLaLMaLNaaqaLOaLPaLQaLRaLRaLPaLjaLTaLTaLTaLTaLTaLkaLVaLTaLWaLXaLYaLZaMaaMbaMbaLSaMdaMeaMeaMeaMfaJwaMgaMhaMiaMjaaqaMkaMlaMmaaJaaqaMnaaqaMoaMpaMqaMraMsaMtaMuaMvaMwaMxaMyaaiaMzaMAaMBaMCaMDaMEaMFaMGaMHaMIaaaaaaaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMJaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMKaJBaJBaIeaJAaKUaJBaKUaMLaKUaJBaKUaJAaKVaKWaGdaERaMMaySaySaMNaMOaMPaMOaySaySaySaySaySaMQaMRaMSaMTaHnaMUaMVaMWaJZaJZaMXaJZaMYaMZaNaaHpaaaaGwaGwaNbaNcaNbaGwaGwaaaaDOaDTaDUaNdaNeaNfaLvaNgaDUaAYaaiaDVaDWaNhaIOaGCaDWaGDaDWaGCaIQaNiaaiaaiaaiaNjaNkaNlaNmaNnabmaaiaaiaaiaaqaNoaNpaaqaNqaHIaaqaNraaqaNsaaqaNtaLUaNvaNwaNxaNyaNzaNAaNBaNCaNDaxSaNEaNDaNDaNFaNDaNAaNGaNAaNHaNAaNAaNIaNJaNKaNLaNLaNMaNNaNOaNPaNLaNQaJtabJbNxaNSaNTaNUaNVaNWaNXaaJaNYaNZaaqaOaaObaOcaOdaMsaOeaMuaMvaMwaOfaOgaaiaOhaOiaOiaOjaMGaMGaMGaMGaMHaMIaaaaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaJHaOkaKSaKTaJAaKUaJBaKUaJBaKUaJBaKUaJAaKVaKWaGdaERaMcaOmaOnaOoaOpaOqaDyaOraOsaOtaOuaNuaNRaOxaOyaOyaHnaOzaOAaOBaOCaODaOEaOFaOGaOHaOIayaaaaaabaaaaOJaOKaOJaaaaabaaaayaaDTaDUaOLaOMaOlaOOaOPaDUaAYaaiaOQaORaFmaOSaOTaFpaOUaFpaOVaOWaOXaaiaOYaOZaPaaPbaPcaPdaPeaPfaaaaaaaaiaPgaPhaPiaaqaPjaHIaHIaHIaPkaHIaHIaHIaaJaPlaPmaaqaPnaosaaqaPoaaqaaqaPpaPqaPraPsaPtaaqaPuaPvaaqaPnaaqaaqaaqaaqaPwaaqaaqaosaaqaaqaaqaaqaPxaJwaaqaPyaNTaPzaPAaPBaPCaPDaPEaPFaPGaaqaPHaPIaPJaPKaPLaOeaMuaMvaMwaPMaPNaaiaPOaOiaOiaOjaMGaMGaMGaMGaMHaMIaaaaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPPaPQaIdaJzaJAaJBaJBaPRaJBaJBaPSaJBaJAaJHaPTaPUaERaPVaPWaPXaPYaPXaPXaPXaPXaPXaPZaDyaySaQaaQaaQaaQaaQaaQbaQcaQdaHnaHnaHnaHnaQbaQeaQfaQgaQhaQiaQiaQjaQkaQlaQiaQiaQmaQgaQnaQgaQoaDUaQpaQqaQraQsaQtaaiaaiaaiaaiaQuaQvaQwaQxaQwaQyaQzaaiaaiaQAaPbaPbaPbaPbaQBaOvaQDaQEaQFaaiaQGaPhaQHaaqaaqaaqaaqaaqaaqaaqaaqaaqaaJaQIaQJaQKaQLaQMaQNaQOaQPaaqaQQaQRaQSaQTaQUaaqaQVaQWaQXaQYaQXaQZaRaaRbaRcaRdaReaRfaRgaRhaRiaaqaRjaMbaRkaRlaRmaPzaRnaPBaPCaRoaaqaRpaRqaRraRsaRtaOdaOdaaqaOgaMuaMvaMwaRuaRvaaiaRwaRxaRyaRzaRAaRBaMGaMGaRCaMIaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPPaIdaIeaIdaIdaIfaIgaIdaIdaIeaPQaRDayaaREaPVaCyaRFaRFaRGaRFaRHaySaRIaRJaDyaRKaRLaRMaRNaROaRPaRNaRQaRNaRNaRNaRRaRNaRNaRSaRTaRUaRVaRWaRXaRVaRYaRVaRVaRVaRVaRZaSaaSbaRNaRNaScaSdaSeaSfaSgaShaSiaSjaSkaSlaSmaSmaSmaSmaSmaSmaSnaSoaSpaSqaSraSsaStaSuaSvaSwaPbaPbaSxaSyaSzaSyaSAaSBaSCaSDaSEaSFaSGaaqaSHaSIaSJaSKaSLaSLaSMaSNaSOaSPaaqaSQaSRaSSaSSaSTaaqaSUaSVaSWaSXaSYaSYaSZaTaaTbaTaaTcaTdaTeaTfaTgaaqaPxaThaaqaOwaTjaTjaTkaTlaTjaTmaaqaTnaToaaqaTpaTqaOdaTraaqaTsaTtaONaMwaOgaOgaaiaTvaaiabmafaaaiaaiaaiaaiaaiabAacOaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCyaTwaTxaHcaHcaHcaHcaTyaTwaCyaHeayaaTzaTAaTBaTCaTDaTEaTEaTFaySaTGaRJaTHaTIaRLaTJaTKaTLaTMaTMaTMaTOaTOaTOaTPaTQaTQaTRaTSaTTaTMaTMaTUaTVaTWaQCaTYaTYaTZaTYaUaaTVaTVaTVaTiaSdaSeaSfaSgaSgaSgaSgaUcaSgaSgaSgaSgaSgaSgaUdaUeaUfaUgaUhaUiaUjaUkaUlaUmaUnaUnaUnaUoaUpaUpaUpaUqaSGaSGaSGaUraUsaSGaaqaUtaUuaSLaSLaUvaSLaUwaUxaSOaUyaaqaUzaUAaUBaUCaUDaaqaUEaUFaUGaUHaUIaUJaaqaUKaULaUKaaqaaqaaqaosaaqaaqaPxaJwaaqaUMaNTaNTaNTaUNaNTaUOaaqaaqaaqaaqaaqaaqaaqaUPaaqaMwaMwaMvaMwaUQaURaaqaUSaUTaUUaUVaUWaUXaUYaUZaVaaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaGbayaaTBaAPaGdaVbaVcaVdaVeaGdaAPaVfaVgayaaVhaPVaTBaViaVjaTEaTEaTFaySaVkaRJaDyaTIaRLaVlaVmaVnaRNaRNaVoaVpaVqaRNaVraVsaVtaVsaVuaVvaVsaVsaVwaVsaVsaVxaVyaVsaVzaVsaVAaRNaRNaRNaVBaVCaVDaVEaVFaVGaVFaVHaVIaVHaVHaVHaVHaVHaVHaVJaVKaVLaVLaVLaVLaVMaVLaVNaVOaVLaVLaVPaVQaVRaVRaVRaVRaVRaVRaVRaVSaSGaSGaaqaVTaVUaVVaVWaVWaVXaVYaUxaSOaVZaaqaaqaaqaaqaaqaWaaaqaWbaWcaWdaWeaQXaWfaaqaWgaWhaWiaWjaWkaWlaWmaWnaaqaPxaJwaaqaWoaWpaNTaWqaWraNTaWsaWsaaqaWtaWuaWvaaqaWwaWxaWyaMwaMwaWzaWAaOgaWBaaqaWCaUTaUUaWDaWEaUTaUTaWFaWGaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaySaDwaTwaPUaERaDyaDyaESaPUaTwaPUaWHaWIaWJaWKaDwaWLaWLaRGaWLaRHaySaWMaRJaDyaySaQaaQaaWNaQaaQaaQaaQaaQaaQaaWOaWPaQaaQaaQaaQaaQaaQaaWQaWRaWQaQaaWSaQaaWTaVmaWUaWVaWWaWXaRNaWYaQaaWZaWZaXaaXaaXaaXbaQEaQEaQEaQEaQEaQEaQEaaiaXcaXdaXeaXdaXfaXfaXgaXhaXiaXjaXkaaiaXlaQEaQEaQEaQEaQEaQEaXmaXnaXnaXnaaqaXoaXpaXqaXqaXqaXqaXraKyaXsaXtaXuaXvaXwaXxaXyaXzaaqaaqaXAaXlaXBaQEaXCaaqaXDaXEaXFaXFaXFaXFaXGaXHaaqaXIaJwaaqaXJaNTaWqaWqaWraWqaNTaXKaaqaXLaXMaXNaaqaMwaXOaXPaXQaXQaXRaXSaXTaXUabZaXVaXWaXXaXYaUVaUTaUTaXZaWGaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCyaYaaDyaYbaYcaYdaYeaYfaYgaYeaYhaYiaYeaYeaYjaYkaYlaYmaYnaYnaYnaYoaYnaYpaYqaySaYraYsaYtaYuaYvaYwaYxaYyaYzaYAaYBaYCaYDaYEaYFaYGaYHaYIaYJaYKaYHaYLaQaaQaaYMaQaaQaaQaaQaaYNaYOaQaaYPaWZaYQaSgaSlaYRaaaaaaaaaaaaaaaaaaaaaaaiaYSaYTaYUaYVaYWaYXaYYaYZaZaaZbaZcaaiaaaaaaaaaaaaaaaaaaaaaaEFaZdaSGaZeaaqaZfaXpaXtaXtaXtaXtaXtaZgaZhaXtaXtaXtaXwaZiaZiaZjaZkaZlaZmaZnaZoaZpaZqaaqaZraZsaZtaZuaZuaZtaZvaZwaaqaPxaZxaaqaZyaZzaNTaWqaWraNTaZAaZAaaqaaqaZBaaqaaqaZCaWxaWAaZDaZDaZEaWAaOgaaqaaqaZFaUTaZGaZGaZHaZGaUTaZIaWGaaaaaaaaaaZJaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaySaDwaTwaPUaERaDyaDyaESaPUaTwaPUaWHaWIaWJaTuaDwaWLaWLaRGaWLaRHaySaWMaRJaDyaySaQaaQaaWNaQaaQaaQaaQaaQaaQaaWOaWPaQaaQaaQaaQaaQaaQaaWQaWRaWQaQaaWSaQaaWTaVmaWUaWVaWWaWXaRNaWYaQaaWZaWZaXaaXaaXaaXbaQEaQEaQEaQEaQEaQEaQEaaiaXcaXdaXeaXdaXfaXfaXgaXhaXiaXjaXkaaiaXlaQEaQEaQEaQEaQEaQEaXmaXnaXnaXnaaqaXoaXpaXqaXqaXqaXqaXraKyaXsaXtaXuaXvaXwaXxaXyaXzaaqaaqaXAaXlaXBaQEaXCaaqaXDaXEaXFaXFaXFaXFaXGaXHaaqaXIaJwaaqaXJaNTaWqaWqaWraWqaNTaXKaaqaXLaXMaXNaaqaMwaXOaXPaXQaXQaXRaXSaXTaXUabZaXVaXWaXXaXYaUVaUTaUTaXZaWGaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCyaYaaDyaYbaYcaYdaYeaYfaYgaYeaYhaYiaYeaYeaTNaYkaYlaYmaYnaYnaYnaYoaYnaYpaYqaySaYraYsaYtaYuaYvaYwaYxaYyaYzaYAaYBaYCaYDaYEaYFaYGaYHaYIaYJaYKaYHaYLaQaaQaaYMaQaaQaaQaaQaaYNaYOaQaaYPaWZaYQaSgaSlaYRaaaaaaaaaaaaaaaaaaaaaaaiaYSaYTaYUaYVaYWaYXaYYaYZaZaaZbaZcaaiaaaaaaaaaaaaaaaaaaaaaaEFaZdaSGaZeaaqaZfaXpaXtaXtaXtaXtaXtaZgaZhaXtaXtaXtaXwaZiaZiaZjaZkaZlaZmaZnaZoaZpaZqaaqaZraZsaZtaZuaZuaZtaZvaZwaaqaPxaZxaaqaZyaZzaNTaWqaWraNTaZAaZAaaqaaqaZBaaqaaqaZCaWxaWAaZDaZDaZEaWAaOgaaqaaqaZFaUTaZGaZGaZHaZGaUTaZIaWGaaaaaaaaaaZJaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDwaZKaZLaZKaZKaZKaZKaZKaZKaZLaZKaZKaZMaDyaZNaZOaDyaDyaZPaDyaZQaZRaZSaZTaZUaySaYsaYsaZVaYuaZWaYAaYAaYAaYAaYAaYBaZXaYAaYAaYAaYAaYHaZYaZZbaaaYHaYLbabbacbadbaebafaYPbagbahbaibajbakbalaYQaSgaSlaYRaaaaaaaaaaaaaaiaaiaaiaaibambanbaobapbaqbarbasbatbaubavbawaaiaaiaaiaaiaaaaaaaaaaaaaEFaZdaSGaSGbaxaXtbaybazbaAaXtbaBbaCaJcbaDbaEbaFaXtaXwaZiaZibaGbaHaZibaIbaJbaKbaLaZibaMbaNbaOaZtaZuaZuaZtbaPbaQaaqaPxbaRaaqaXJaNTaWqaWqaWraWqaNTaNTbaSbaTaNTbaUaaqbaVbaWbaXaZDaZDbaYbaXbaZaaqbbabbbaUTbbcbbcbbdbbcaUTaXZbbebbfbbgbbgbbhaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaayabbibbjbbjbbjbbjbbjbbjbbjaGjayaaySbbkbblaySbbmbbmbbmbbmbbmbbnaySaySaySaySaYsbbobbpaYubbqaYAaYAbbrbbsbbtbbubbraYAaYAaYAbbvaYHbbwbbxbbyaYHaYLbabbbzbbAbbBbbCaYPbbDbbEbbFbbGbbHbbIbbJbbKaSlbbLaoJaaiaaiaaiaaibbMbbNbbObbPbbQbbQbbRbbSbbQbbTbbQbbUbbVbbWbbXbbYbbZaaiaaiaaiaaiaXlbcaaZdaSGaSGaaqbcbbaybaEbaAaXtbccbcdaXtbcebcfbaFaXtaXwaZiaZibcgbchbcibcjbckbclbcmaZibcnbaNbcoaZtaZuaZubcpbcqbaQaaqaPxbcraaqbcsbctbcuaWqaWrbcvaNTaNTbcwaNTbcxbcyaaqbczbcAbcBaZDaZDbcCbcBbcDaaqbcEbbbaUTaUTaUTaUVaUTaUTbcFbcGbcHbcIbcJbcKaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLaabbcMaGeaDAbcNbbmbcObcPbcQbcRbcSbcTbcUbcVbbmbcWbcXbcYbcZaYubdaaYAaYAbbrbbtbdbbdcbbraYAaYAbddbdeaYHaYHaYHaYHaYHaYLbabbabbabbabbabaYPbdfbbGbdgbbGbdhbbIaYQbdiaSlaSmaSmbdjbdkbdlaaibdmbaobdnbbQbbQbbQbdobdpbdqbdpbdrbdsbdtbdpbdubdvbdwaaibdxbdkbdybdzbdAaZdaSGaSGbaxaXtbdBaXtaXtaXtbdCbdDaXtbcebdEbaFaXtaXwaZiaZibdFbdGbdHbdIbdJbdKbcmbdLaaqbdMbcoaZtaZuaZuaZtbcqbdNaaqbdOaaqaaqaaJaaqaaqbdPaWrbdQbdRaNTbdSbdTaRnbdUabZbdVbdWbdXbdYbdYbdZbeabebabZbecbedaUTbeeaUTaUVaUTaUTbefbegbbfbbgbbgbehaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbeibejbekaERaZNbbmbcObelbembcObenbeobepbeqbbmberbesbetbeuaYubevbewbexbeybezbeAbeBbeCbeCbeCbeDbeEaYubeFbcXbeGbeHbeIbbobbobeJbeubeKaYPbeLbeMbeNbeObePbeQaYQbdiaSgaSgaSgbeRbeSbeTbeUbeVbeWbbQbeXbeYbeZbfabfbbfcbfdbfebffbfgbfhbeVbfibfjbfkbflbfmbfnbfobfpbfqaSGbfraaqaXtbfsbftbaFaXtbfubfvaXtbfwbfxbaFaXtaXwaZiaZiaZiaZjaZibfyaZibdKbcmbfzaaqbfAbcoaZtaZuaZuaZtbcqbfBaaqbfCbfDbfDbfEbfFbfGbfHbfIbfJbfJbfJbfJbfJbfJbfKbfLbfMaZDaZDaZDaZDaZDaZDbfNbfObfPbbbaUTaUTaUTaUVaUTaUTbfQaWGbfRbfRbfRaWGaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLaabbcMaGeaDAbcNbbmbcObcPbcQbcRbcSbcTbcUbcVbbmbcWaUbaTXbcZaYubdaaYAaYAbbrbbtbdbbdcbbraYAaYAbddbdeaYHaYHaYHaYHaYHaYLbabbabbabbabbabaYPbdfbbGbdgbbGbdhbbIaYQbdiaSlaSmaSmbdjbdkbdlaaibdmbaobdnbbQbbQbbQbdobdpbdqbdpbdrbdsbdtbdpbdubdvbdwaaibdxbdkbdybdzbdAaZdaSGaSGbaxaXtbdBaXtaXtaXtbdCbdDaXtbcebdEbaFaXtaXwaZiaZibdFbdGbdHbdIbdJbdKbcmbdLaaqbdMbcoaZtaZuaZuaZtbcqbdNaaqbdOaaqaaqaaJaaqaaqbdPaWrbdQbdRaNTbdSbdTaRnbdUabZbdVbdWbdXbdYbdYbdZbeaaWKabZbecbedaUTbeeaUTaUVaUTaUTbefbegbbfbbgbbgbehaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbeibejbekaERaZNbbmbcObelbembcObenbeobepbeqbbmberbesbetbeuaYubevbewbexaYjbcYbcXbeybebbebbebbeDbeEaYubeFaUbbezbeBbeAbbobbobeJbeubeKaYPbeLbeMbeNbeObePbeQaYQbdiaSgaSgaSgbeRbeSbeTbeUbeVbeWbbQbeXbeYbeZbfabfbbfcbfdbfebffbfgbfhbeVbfibfjbfkbflbfmbfnbfobfpbfqaSGbfraaqaXtbfsbftbaFaXtbfubfvaXtbfwbfxbaFaXtaXwaZiaZiaZiaZjaZibfyaZibdKbcmbfzaaqbfAbcoaZtaZuaZuaZtbcqbfBaaqbfCbfDbfDbfEbfFbfGbfHbfIbfJbfJbfJbfJbfJbfJbfKbfLbfMaZDaZDaZDaZDaZDaZDbfNbfObfPbbbaUTaUTaUTaUVaUTaUTbfQaWGbfRbfRbfRaWGaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaabcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbfSbfTbfUbfVaZNbbmbfWbcObfXbfXbfXbfYbcObfZbbmbgabgbbetbgcbgcbgcbgcbgdbgcbgeaYAbgfbggbghbghbgibgjaYubgkbglbgmbgnbgobgpbgpbgqbgrbgrbgsbgsbgsbgsbgsbgtaWZaYQbgubgvbgwbgxbgybgzbgAacFbgBbfcbgCbgDaaiaaiaaiaaibgEaaibgFbgGbgHbgIbgCbgJbgKaaibgLbgMbgNbgObgPbgQaSGaSGbaxaXtbgRaXtaXtaXtaLMaXtaXtbgSbgSbgTbgTbgUaZiaZibgVbgWaZiaZiaZibgXbgYbgZaaqbaQbcoaZtaZtaZtaZtbcqaXHaaqbhabhbbhbbhcbhbbhdaWqaWqaWqaWqbheaWqaWqaWqbhfbfOaZDaZDaZDaZDaZDaZDaZDbfNbfObfPbbbaUTaZGaZGaZHaZGaUTbhgaWGbhhbhibhjaWGaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbhlbhmbekbhnaWKbhobcObhpbfXbfXbfXbfYbhpbcObbmbhqbhrbetbgcbhsbhtbhubhvbgcbhwbhxbhyaYubhzbhAbhBbhCaYubbobhDbhEbhEbhFbhEbhEbhEbhEbhGbhHbhHbhHbhIbhHbhJaWZbhKbhLbhMaaiaaiaaiaaiaaiaaiaaqbhNaaqaaiaaibhObhPbhQbhRbhSbhTbhOafaaaiaaibhUaaiaaiaaiaaiaaiaaiaaibgQaSGaSGaaqbhVbhWaXtbhXaXtbhYaXtbhZbiabibbgTbicaaqbidbieaaqaaqbifbigbihbiiaaqaaqaaqbijbikbilbilbilbilbikbimaaqbinbhbbhbbhcbioaaqbipbiqbirbisbitbiubivbiwbixaaqbiyaMwbizaZDaZDbizaMwbiAaaqbiBbbbaUTbbcbbcbbdbbcaUTbfQaWGbfRbfRbfRaWGaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbhlbhmbekbhnaTubhobcObhpbfXbfXbfXbfYbhpbcObbmbhqbhrbetbgcbhsbhtbhubhvbgcbhwbhxbhyaYubhzbhAbhBbhCaYubbobhDbhEbhEbhFbhEbhEbhEbhEbhGbhHbhHbhHbhIbhHbhJaWZbhKbhLbhMaaiaaiaaiaaiaaiaaiaaqbhNaaqaaiaaibhObhPbhQbhRbhSbhTbhOafaaaiaaibhUaaiaaiaaiaaiaaiaaiaaibgQaSGaSGaaqbhVbhWaXtbhXaXtbhYaXtbhZbiabibbgTbicaaqbidbieaaqaaqbifbihbihbihaaqaaqaaqbijbikbilbilbilbilbikbimaaqbinbhbbhbbhcbioaaqbipbiqbirbisbitbiubivbiwbixaaqbiyaMwbizaZDaZDbizaMwbiAaaqbiBbbbaUTbbcbbcbbdbbcaUTbfQaWGbfRbfRbfRaWGaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbcLbiCaDwbiDbiEbiFbbmbelbelbelbcObiGbiHbiIbiJbbmbiKbiLbetbgcbgcbgcbiMbiNbgcbiObiPbiQaYubhzbhAbhBbiRaYubbobhDbhEbiSbiTbiUbiVbiWbhEbiXbiYbiZbjabjbbjbbjbaWZbjcbjdbjeaaibjfbjgbjhbjibjjbjkbjlbjmaaibjnbhQbjobjpbjqbjpbjobhQbjraaibjsbjtbjubjvbjwbjxbjybjzaaibjAbjBbjBbjCaaqaaqaaqaaqbjDbaxbjDbjEaaqaosaaqaaqaaqaaqaaqaaqbjFbjGbjGbjGbjGbjHbjIaaqbjJbjKbjJbjLbjLbjJbjKbjJaaqbinbhbbhbbjMbioaaqaaqaaqaaqaaqaaJaaqaaqaaqaaqaaqaaJbjNaQEaQEaQEaQEaXCaaqaaqbjObjPaUTaUTaUTaUVaUTaUTbefbbebjQbbgbbgbjRaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGbayabjSaHcbekaySaySaySaySaySaySbjTbjUaySbbmbbmbbmbbmbbmbjVbbmbbmbbmbjWbjWbjXbgcbjYbjZbiMbkabgcbkbbkcbkbaYubhzbhAbhBbkdaYubbobhDbhEbkebkfbkgbiVbkgbhEbiXbkhbkibkjbkkbklbkmaWZbknbkobjebkpbkqbkrbksbktbktbksbkubkvaaibkwbhQbhQbkxbkybjpbjobhQbkzbgHbkAbkBbkCbkDbkEbkFbkCbkGaaibkHbkIbkJbkKbkLbkMbkNbkObkObkObkObkObkObkPbkQbkRbkSbkObkTbkObkObkObkObkObkObkObkObkUbkVbkWbkWbkWbkWbkWbkWbkXbkMbkYbkZbkZblablbblcblbbldblbbleblfblgblbblhblibljblkbllbllbllbllbllbllbllblmblnblobloblobloblpbloblqblrblsbltblubcJblvaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablwblwblwblwblwblwblwblwblwblwaaaaabblxaGeblyblzblAblBblBblBblBblBblCblDblEblFblGblHbjXbgcbgcbgcblIbiNbgcaYuaYuaYuaYubhzblJblKblLaYublMblNbhEblOblPbiVbkgblQbhEbiXblRbkibkjbkjblSblTaWZblUbkobjeblVblWblXblYblZbmabmbbkubmcaaibmdbkxbhQbmebmfbmebhQbkxbmgafabmhbkCbkCbkDbmibkFbkCbmjaaibmkbkJbkJbkKbkLbkMbkObkObkObkObkObkObkObmlbkObkObkObkObkObkObmmbmnbmnbmnbmnbmnbmnbmnbmnbmnbmnbmnbmnbmnbmnbmobmpbmqbllbllbmrbhbbhbbhbbhbbhbbhcbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbmsbhbbmtbmuaUTaUTaUTaUTaUTaUTaUTbmvbegbbfbbgbbgbbhaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGbayabjSaHcbekaySaySaySaySaySaySbjTbjUaySbbmbbmbbmbbmbbmbjVbbmbbmbbmbjWbjWbjXbgcbjYbjZbiMbkabgcbkbbkcbkbaYubhzbhAbhBbkdaYubbobhDbhEbkebkfbkgbiVbkgbhEbiXbkhbkibkjbkkbklbkmaWZbknbkobjebkpbkqbkrbksbktbktbksbkubkvaaibkwbhQbhQbkxbkybjpbjobhQbkzbgHbkAbkBbkCbkDbkEbkFbkCbkGaaibkHbkIbkJbkKbkLbkMbkNbkObkObkObkObkObkObkPbkQbkRbkSbkObkTbkObkObkObkObkObkObkObkObkUbkVbkWbkWbkWbkWbkWbkWbkXbkMbkYbkZbkZbeCblbblcblbbldblbbleblfblgblbblhblibljblkbllbllbllbllbllbllbllblmblnblobloblobloblpbloblqblrblsbltblubcJblvaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablwblwblwblwblwblwblwblwblwblwaaaaabblxaGeblyblzbeGbeHbeHbeHbeHbeHbeIblablEblFblGblHbjXbgcbgcbgcblIbiNbgcaYuaYuaYuaYubhzblJblKblLaYublMblNbhEblOblPbiVbkgblQbhEbiXblRbkibkjbkjblSblTaWZblUbkobjeblVblWblXblYblZbmabmbbkubmcaaibmdbkxbhQbmebmfbmebhQbkxbmgafabmhbkCbkCbkDbmibkFbkCbmjaaibmkbkJbkJbkKbkLbkMbkObkObkObkObkObkObkObmlbkObkObkObkObkObkObmmbmnbmnbmnbmnbmnbmnbmnbmnbmnbmnbmnbmnbmnbmnbmobmpbmqbllbllbmrbhbbhbbhbbhbbhbbhcbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbmsbhbbmtbmuaUTaUTaUTaUTaUTaUTaUTbmvbegbbfbbgbbgbbhaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablwblwblwblwblwblwblwblwblwblwblwbeibejbmwbmxbmyaySbmzbmzbmAbmzbmzbmzbmBbeubeubeubeubetbgcbhsbmCbmDbkabgcbmEbmFbmEaYuaYuaYuaYubmGaYubmHbhDbhEbmIbmJbkgbmKbmLbhEbiXbjbbmMbkjbkjbkjbmNaWZbmObkobjebmPbmQblXblYbmRbmSbmbbkubmTaaibmUbmVbhQbmWbmXbmYbjobmZbnabnbbncbndbnebnfbngbnhbkCbniaaibnjbnkbkJbkKbkLbkMbkObnlbkObkObkObkObnmbnnbnnbnnbnnbnobkObkObkObkObnpbkObnlbnqbkObnrbnsbntbkObnubnvbnvbnwbnxbnybnzbhbbhbbhbbhbbhbbhbbhbbnAbnBbnCbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbnDbnEbnEbnFbnGbnHbnIbnJbnJbnJbnJbnKbnLbnMaabaaaaaaaabaKQaKQaKQaKQaKQaKQaaaaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablwblwblwblwblwblwblwblwblwblwblwbnNbnObnPbnQbnRaySbnSbnTbnUbnUbnVbnWbnXbnYbnZbnZboabobbgcbgcbgcbiMbocbgcbeubeubeubeubodbbobboboebgpbofbogbohboibojbokbolbombhEbonbjbboobkjbkjbkjbopboqborbkobosaaibotboubksbksbksbksbkubovaaibowabtaaiaaiaaiaaiaaiaaiaaiafaaaiboxboybozboAboBboCboDaaiboEboFboFaaiaaiaaiaaiaaiaaiaaiaaqaaqboGboHboIboIboHboGaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqboJaaqaaqaaqaaqaaqaaiboKaosboLbhbbhbboMboMaaiaaiaaiaaiaaiboNbnEbnEbnDbnEbhbbnEbnEbnEbnEboOaaiaaiaaiaaiboPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaaaaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablwblwblwblwblwblwblwblwblwblwblwbhlbhmbmwbmxboQaySboRbmzboSboTbmzbmzbmzaZVboUboVboVboWbgcbhsboXbiMboYbgcboZbpabpbbpcbpdbpebpebpfbpebpgbphbhEbpibpjbiVbpkbplbohbpmbjbbpnbkjbkjbpobppbpqborbkobpraaibpsbptbpubpvbpwbpxbpyaaiaaibpzaaibpAbpBbpCbpBbpDaaiaaaafaaaibpEbpFbpGbpHboBbkCbpIaaibpJbpKbpLaaibpMbpNbpObpPbpQbpRbpSbpTbpUbpVbpWbpWbpVbpXbpYbXuaaqbWibXtbWXbXvaaqbqebqfbqgbqhbqibqjbqjbqkaaibqlabmaaibqmaaibqnbqnaaibqobqpbqqaaibqrbqsbqraaibqtbnEboOaaibqubqvbquaaibqwbqxaaibqybqzbqAaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaaaaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablwblwblwblwblwblwblwblwblwblwaaabqBaTBbqCbiEbqDaySbqEbmzbqFbqGbqHbqIbmzbqJbqKbqLbqMboWbgcbgcbgcbgcbgcbgcbqNbqObqPbqQbqRbhEbhEbhEbhEbhEbhEbhEbqSbhEbhEbhEbqTbhEbqUbqVbqWbkjbkjbkjbqXboqbqYbkobqZaaibraaaJaaqaaqaaqaaibrbaaibrcbrdacFbrebrfbrgbrhbriachbrjbrkaaibrlbkCbrmbrnboBbrobkCaaibrpbrqbrraaibrsbrtbrubrvbrwbrxbrybpWbpWbpWbpWbpWbpWbpWbrzbrAbWgbWfbWebWdbWhaaqbrGbrHbrIbrJbrKbrLbrHbqkaaibrMabmbrNbrObrPbrQbrQaaqbrRbrSbrTbrUbrVbrWbrXaaiaaqbrYalYaaibrZbsabsbbscbscbsdaaibsebsfbsgaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaaaaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGbayabjSaHcbhmbbjbbjbbjbshbbjbsiaERbsjbskaySbslbsmbsnbsobspbsqbsrbcZbbobbobbobssbnZbnZbnZbnZbnZbnZbstbsubsubsvbswbhEbsxbsybszbsAbsBbsCbsDbsEbsFbsGbsHbsIbpmboqbqWbkjbkjbsJbjbaWZbsKbsLbsMachbsNbsObsPbsQabJbsRbsSachbsTbsUachbsVbsWbsVbsWbsXachbrjbsYachbsZbtabtbbtcbtdbtebtfachbtgbpKbpKaaibthbtibtjbtkbtlaaibrybpWbpWbpWbpWbpWbpWbpWbtmcztcAzcAybZYbWfcypaaqbttbtubtvbrJbqkbrLbtwbtxaaibtybtzbtAbtBbtBbtCbtDbtEbtFbtGbtGbtGbtHbtGbtIbtJbtKbtLbtMbtJbtNbtObtPbtPbtPbtQaaibtRbsfbtSaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaaaaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaMJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtTbtUbtVbtWbtXbtYbtYbtZbuaaDyaySbubbucbsobudbmzbmzbmzbeubuebufbugbuhbugbugbugbuhbugbeubeubhEbhEbhEbuibhEbujbujbujbujbujbujbsDbukbulbumbunbuobupbuqburbusbutbuubuvbuwbuxbuybuzbuAbuBbuBbuCbuDabZbuEbuFacFbuGbuHaaibuIbrhbuJbrfbuKaaiaaabuLaaiabmbuMaaiaaiaaiaaibuNaaibuObpKbuPacFbuQbuRbuSbuTbuUaaibuVbuWbuXbuYbuZbvabvbbvcbrzbvdaaqcmxbZYcfhbZZaaqbvhbvibrIbrJbqkbrLbrHbqkaaibrMabmbvjbvkbvlbvmbvnaDpbvobvpbvqbvrbvsbvtbvuaaibvvbvwbvxaaibvybvzbvAbscbvBbvCaaibtRbsfbvDaaiaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaabtTbvEbvFbvGaDxaDxbvHbvIaDxbvJaySbvKbvLbvMbvNbmzaaaaaaaaaaabaabbvObvObvObvObvObvObvOaaaaaabvPbvQbvRbvSbvTbujbujbujbujbujbujbvUbvVbvWbvXbvYbvZbwabwbbjbbjbbwcbjbbjbbwdbwebwfbwgaaibwhaaqaaqaosaaqaaJbwiaaibwjbuHaaibwkbpBbpBbpBbwlaaiaaabuLaaibwmbwnbwobwpbwqabJbwrabJbwsbpKbwtaaibpMbwubwvbwwbwxbwybwzbwAbwBbwCbwDbwEbwFbwGbwHbwIboHbYPbZYbZcbXJaaqbwNbXKbwPbwQbXDbwSbwRbqkaaibwTbwUbwVbwWbwWbwXbwYbwZbxabxbbxcbxdbxebxfbxgaaibxhbvwbxiaaibxjbxkbxlbscbscbxmaaibsebsfbxnaaiaaaaaaaaaaaaaabbxobxpbxqbxpbxqbxpbxraabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxsaDwbxtbxtbxubbjbxvaGbayabxwbxvaySbxxbxybxzbxAbmzaaaaaaaaaaaaaaabvObvObvObvObvObvObvOaaaaaabxBbxCbujbxDbxEbxEbxEbxEbxEbxFbxGbxEbxHbxIbxJbxKbxLbxMbxNbjbbxObkjbxPbxQbxRbxSbxTbxUaaiaaiaaibxVbxWbxXbxYbxZaaibpzbuHaaibyabybbycbydbyeaaiaaabyfaaibygbyhbyiaaqbyjaaqbykaaqbylbpKbymaaiaXlbynbyobypbyqaaqbyrbysbytbyubyvbyvbywbyxbyybyzaaqaaJbXCbzVaaqaaqaaqaaJbyBaosaaqaaiaaiaaibyCbyDabmbyEbvkbvlbyFbwWbyGbyHbyIbyIbyJbrTbyKbyLbyMaaibrYbyNaaibyObyPbscbyQbyRbySaaibtRbyTaaiaaiaaaaaaaaaaaaaabbyUbyVbyWbyXbyXbyYbyUaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvObvObvObvObvObvObvObzbbzcbzdbzebujbzfbujbzgbzgbzgbzgbsDbukbujbujbulbzhbzibzjbzkbzlbzmbznbkjbkjbzobzpbxSbxTbzqbzrbzsbztbzubzvbzwbzxbzyaaibzzbzAacFbzBbzCbzDbzEbzFachbrjbzGaaibzHbzIbzJaaqbzKaaqbzLaaqbzMbpKbzNaaibzObzPbzQbzRbzSabJbzTbzUabJabJbzVbzWabJabJbzXbzYaxSaxVbOMbAabONbAbbOPbOObAfbAgbAhaaibAibAjbAkbAlabmbAmbAnbAobApbAqaaqbArbyIbyIbAsbAtbyKbAuaaibAvbAvbAwaaibAxbAybAzbAAbscbABaaibtRbACaaiaaaaaaaaaaaaaaaaabbADbAEbyWbyXbyWbAFbxqaabaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvObvObvObvObvObvObvObAGbAHbAGbAIbAJbzfbujbujbujbujbujbsDbukbAKbhEbhEbALbkjbunbzkbAMbANbAObAPbAPbAQbARbASbATbAUbAVbAWbAXbAYbAZbBabBbbBcaaibwjbuHaaibBdbBebBfbBgbBhaaiaaabyfaaiabmaaiaaiaaiaaiaaibBiaaibBjbpKbzNaaibBkbBlbBlbBmbBnaaqbBobBpbBqbOLbBsbBtbBubBqbBvbBwbOKbBybBzbBAbBBbBCbBDbBEbBFbBGbBHbBIbBJbBKbBLbBMbBNbBObBObBPbBQbBRaaqbBSbrTbrTbBTbBUbyKbBVbBWbBXbBYbBZaaqbCabCbaQFbCcbjJaaiaaibCdaaiaaibCebCfbCfbCfbCgaaibyUbyXbyWbyXbyXbChbyUaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaagaaaaaaaaabvObvObvObvObvObvObvObCibCjbCibCkbujbzfbujbzgbzgbzgbzgbsDbukbClbCmbhEbCnbkjbunbzkbCobCpbCqbkjblSbkjbCrbxSbpKbCsaYRbAWbCtbCubCvbCwbCxbCybowabtbCzaaiaaibCAbCBbCCaaiaaiaaabyfaaibCDbCEbCFbCGbCHbCIbCJachbCKbpKbzNbwybCLbCMbCNbCObCPaaqbCQbCRbCSbCTbCUbCVbCWbCXbCYbCZbNwbDbbDcbDdbDebDfbDgbDhbDibDjbDkaaibDlbDmbDnbDoaaibDpbDqbDrbDsbDsaaqbDtbDubDvaaqbDwbyKbDxaaqbDybDzbDAbDBbDCbDDbDEbDFbDGbDHbDIbDJbDKbDLbDMbDMbDNbDObDPbDQbDRbxpbxqbDSbxqbxpbDTaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvObvObvObvObvObvObvObDUbzcbDVbDWbujbzfbujbujbujbujbujbsDbukbClbDXbhEbDYbkjbDZbEabkjbEbbkibkjbkjbEcbxRbxSbpKbCsaYRbAWaaibEdbEebEfbEgbEhabmbEibEjbEkachachbElbEmachbrjbrjbEnaaibEobEpbEqbErbEsbEsbEtbEubEvbpKbEwaaiaaqbExbjJbEybEzaaqbCQbEAaaqbEBbECbEDbNvaaqbCQbEFbNuaaqaaqaaqaosaaqaaqaaqbEHamfaaqaaiaaibEIaaqaaqaaiaaiaaqaaJaaqaaqaaqaaqaaqaaqaaqbEJbEKbELaaqbEMbENbEObEPbEPbEQbERbESbETbEUbEVbEWbEXbEYbEZbEZbFabDCbFbaaibFcbFdbFebFfaaibFgaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvObvObvObvObvObvObvObCibCjbCibFhbFibFjbujbujbujbFibujbsDbukbClbFkbhEbFlbkjbunbzkbkjboqbFmbkjbkjbFnbzpbxSbpKbFobFpbFqaaibFrbFsbFtbFubFvabmbFwbFxbFybFzbFAbFBbFCaaqaaaaaaaaaaaibFDbFEbFFbFFbFGbFHbFIaaibFJbFKbzNbFLbFMbFNbFObFPbFQbFRbFSbCRbjJbFTbFUbFVbFWbjJbCQbEFbVTbVSbWcbWbbTlbTkaaqbUsbUubUtaaqbGgbGhbGibGjbGkbGlbGmbDHbGnbEPbEPbGobGpbEPbGqbGrbGsbGtbGubEPbGvbGwbGxbGybGzbGAaaiabmaaiaaiaaibCdaaiaaibCebCgaaibGBbGCbGDbGEbGFbGGbGHbGIaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvObvObvObvObvObvObvObGJbGKbGJbGLbGMbGNbGNbGNbGNbGNbGObGPbGQbClbGRbhEbGSbGTbGUbGVbGWbwabGXbGYbGZbjbbwdbHabpKbHbbHcbAWaaibHdbHebHfbEebHgabmbHhbHibHjaaqbHkbzDbHlaaqaaaaaaaaaaaibHmbHnbHobHpbFGbFHbFIaaibHqbHrbHsbHtbHubHvbHwbHxbHybHzbHAbHBaaqaaqbHCbHDaaqaaqbCQbEFbEGbTjbTibQubTgbTfaaqbRZbHHbThbHJbHKbHLbHMbHMbHNbHObHPbHQbHRbDCbDCbHSbDCbHTbDCbHUbDCbHVbHWbHWbHXbHYbHZbIabIbbIcbIdbIebIfbIgaaibIhbIiaaaaaaaaaaaibIjbIkbIlbImbInbIobIpaaiaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvObvObvObvObvObvObvObIqbIrbIsbhEbhEbItbzcbzcbzcbIubhEbhEbIvbIwbIxbhEbIybIybIybIzbIybIAbIBbICbIDbIEbwdbxSbpKbIFaaqaaqaaiaaiaaiaaiaaibIGabmaaibCzabmabZaosbIHaaqaaqaaiaaiaaiaaiabmaaiaaiaaiaaiaaiaaiaaibIIbpKbIJboHaaqbIKbILaaqaaqbCQbIMbINbIObIPbIQbIRbISbITbFSbRYbRVbRUbRXbRWbRRbQxbRTbRSbQwbIYbJcbJdbJebJfbGibJgaaiaaiaaiaaiaaiaaibJhaaiaaiaaiaaJbJiaaqaaqbJjbJkbJlbJmbIabJnbJobJpbJqbJrbJsaaibIhbJtaaaaaaaaaaaibJubJvaaibDQaaiaaibDQaaiaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvObvObvObvObvObvObvOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabJwaabaaaaaaaaaaaabIybJxbJybJzbJAbIAbJBbJCbJDbJEbwdbxSbpKbJFbJGbJHbJIbJJbJKbJLbJMbJNbJObJPbJQbJRbJSbJTbJUbJVbJWbJXbJYbJZbKabKbbKcbKdboFbKebpKbKfbKgbKhbpKbKiaaqbKjbKkbKlbKmbKnbCQbKobKpbKqbKrbKsbKtbKubKvbKwbKxbKyaaqbQvbQubQtbQsbQrbQqbKEbOQaaqbKGbGibGibGibKHaaibKIbKJbKKbKLbKMbKNbKObKPaaibKQbKRbKSaaqaaqbKTbJlbKUbKVbKWbKXbKYbKZbLabLbaaibLcaaiaaaaaaaaaaaiaaiaaiaaiaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMJaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvObvObvObvObvObvObvOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIybLdbLebLfbLgbLhbLibLjbLkbLlbwdbxSbLmbLnbpKbpKbzNbLoboFbKdbKcbLpbLqbLpbLrbLsbLsbLtbLubLvbLsbLsbLwbLsbLxbLsbKcbKdboFbLybLzbLAbLBbLCbLDbpKaaqbLEbKkbLFbLGbLHbCQbLIbLJbLKbLLbLMbLNbLObLPbCQbLQbLRaaqbEEbFXbFXbFYaosbFZbGabGbaaqbLZbMabGibMbbMcaaibKIbMdbMebMfbMgbMhbMibMjaaibMkbKRbMlbMlaaqbMmbMnbMobMpbMqbMrbMsbMtbMubMvaaibIhaaibMwaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablwblwblwblwblwblwblwblwblwblwblwbnNbnObnPbnQbnRaySbnSbnTbnUbnUbnVbnWblBblAblCblCbnXblDbgcbgcbgcbiMbocbgcbeubeubeubeubodbbobboboebgpbofbogbohboibojbokbolbombhEbonbjbboobkjbkjbkjbopboqborbkobosaaibotboubksbksbksbksbkubovaaibowabtaaiaaiaaiaaiaaiaaiaaiafaaaiboxboybozboAboBboCboDaaiboEboFboFaaiaaiaaiaaiaaiaaiaaiaaqaaqboGboHboIboIboHboGaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqboJaaqaaqaaqaaqaaqaaiboKaosboLbhbbhbboMboMaaiaaiaaiaaiaaiboNbnEbnEbnDbnEbhbbnEbnEbnEbnEboOaaiaaiaaiaaiboPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaaaaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablwblwblwblwblwblwblwblwblwblwblwbhlbhmbmwbmxboQaySboRbmzboSboTbmzbmzbmzaZVboUboVboVboWbgcbhsboXbiMboYbgcbnZbnYbobboabpaboZboZbpfboZbpbbpcbhEbpibpjbiVbpkbplbohbpmbjbbpnbkjbkjbpobppbpqborbkobpraaibpsbptbpubpvbpwbpxbpyaaiaaibpzaaibpAbpBbpCbpBbpDaaiaaaafaaaibpEbpFbpGbpHboBbkCbpIaaibpJbpKbpLaaibpMbpNbpObpPbpQbpRbpSbpTbpUbpVbpWbpWbpVbpXbpYbXDaaqbXtbXKbXubXJaaqbqebqfbqgbqhbqibqjbqjbqkaaibqlabmaaibqmaaibqnbqnaaibqobqpbqqaaibqrbqsbqraaibqtbnEboOaaibqubqvbquaaibqwbqxaaibqybqzbqAaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaaaaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablwblwblwblwblwblwblwblwblwblwaaabqBaTBbqCbiEbqDaySbqEbmzbqFbqGbqHbqIbmzbqJbqKbqLbqMboWbgcbgcbgcbgcbgcbgcbqNbqObqPbqQbqRbhEbhEbhEbhEbhEbhEbhEbqSbhEbhEbhEbqTbhEbqUbqVbqWbkjbkjbkjbqXboqbqYbkobqZaaibraaaJaaqaaqaaqaaibrbaaibrcbpdacFbrebrfbrgbrhbriachbrjbrkaaibrlbkCbrmbrnboBbrobkCaaibrpbrqbrraaibrsbrtbrubrvbrwbrxbrybpWbpWbpWbpWbpWbpWbpWbrzbrAbWibWhbWgbWfbWXaaqbrGbrHbrIbrJbrKbrLbrHbqkaaibrMabmbrNbrObrPbrQbrQaaqbrRbrSbrTbrUbrVbrWbrXaaiaaqbrYalYaaibrZbsabsbbscbscbsdaaibsebsfbsgaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaaaaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGbayabjSaHcbhmbbjbbjbbjbshbbjbsiaERbsjbskaySbslbsmbsnbsobspbsqbsrbcZbbobbobbobpeblCblCblCblCblCblCbpgbsubsubsvbswbhEbsxbsybszbsAbsBbsCbsDbsEbsFbsGbsHbsIbpmboqbqWbkjbkjbsJbjbaWZbphbsLbsMachbsNbsObsPbsQabJbsRbsSachbsTbsUachbsVbsWbsVbsWbsXachbrjbsYachbsZbtabtbbtcbtdbtebtfachbtgbpKbpKaaibthbtibtjbtkbtlaaibrybpWbpWbpWbpWbpWbpWbpWbtmcknckpckochYbWhckmaaqbttbtubtvbrJbqkbrLbtwbtxaaibtybtzbtAbtBbtBbtCbrdbtEbtFbtGbtGbtGbssbtGbtIbtJbstbtLbtMbtJbtNbtObtPbtPbtPbtQaaibtRbsfbtSaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaaaaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaMJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtTbtUbtVbtWbtXbtYbtYbtZbuaaDyaySbubckibsobudbmzbmzbmzbeubuebufbugbuhbugbugbugbuhbugbeubeubhEbhEbhEbuibhEbujbujbujbujbujbujbsDbukbulbumbunbuobupbuqburbusbutbuubuvbuwbuxbuybuzbuAbuBbuBbuCbuDabZbuEbuFacFbuGbuHaaibuIbrhbuJbrfbuKaaiaaabuLaaiabmbuMaaiaaiaaiaaibuNaaibuObpKbuPacFbuQbuRbuSbuTbuUaaibuVbuWbuXbuYbuZbvabvbbvcbrzbvdaaqcklchYckkckjaaqbvhbvibrIbrJbqkbrLbrHbqkaaibrMabmbvjbvkbvlbvmbvnaDpbvobvpbvqbvrbvsbvtbvuaaibvvbvwbvxaaibvybvzbvAbscbvBbvCaaibtRbsfbvDaaiaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaabtTbvEbvFbvGaDxaDxbvHbvIaDxbvJaySbvKbvLbvMbvNbmzaaaaaaaaaaabaabbvObvObvObvObvObvObvOaaaaaabvPbvQbvRbvSbvTbujbujbujbujbujbujbvUbvVbvWbvXbvYbvZbwabwbbjbbjbbwcbjbbjbbwdbwebsKbwgaaibwhaaqaaqaosaaqaaJbwiaaibwjbuHaaibwkbpBbpBbpBbwlaaiaaabuLaaibwmbwnbwobwpbwqabJbwrabJbwsbpKbwtaaibpMbwubwvbwwbwxbwybwzbwAbwBbwCbwDbwEbwFbwGbwHbwIboHbZZchYcfhbZcaaqbwNbZYbwPbwQbYPbwSbwRbqkaaibwTbwUbwVbwWbwWbwXbwYbwZbxabxbbxcbxdbxebxfbxgaaibxhbvwbxiaaibxjbxkbxlbscbscbxmaaibsebsfbxnaaiaaaaaaaaaaaaaabbxobxpbxqbxpbxqbxpbxraabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxsaDwbxtbxtbxubbjbxvaGbayabxwbxvaySbxxbxybxzbxAbmzaaaaaaaaaaaaaaabvObvObvObvObvObvObvOaaaaaabxBbxCbujbxDbxEbxEbxEbxEbxEbxFbxGbxEbxHbxIbxJbxKbxLbtDbxNbjbbxObkjbxPbxQbxRbxSbxTbxUaaiaaiaaibxVbxWbxXbxYbxZaaibpzbuHaaibyabybbycbydbyeaaiaaabyfaaibygbyhbyiaaqbyjaaqbykaaqbylbpKbymaaiaXlbynbyobypbyqaaqbyrbysbytbyubyvbyvbywbyxbyybyzaaqaaJchSbYGaaqaaqaaqaaJbyBaosaaqaaiaaiaaibyCbyDabmbyEbvkbvlbyFbwWbyGbyHbyIbyIbyJbrTbyKbyLbyMaaibrYbyNaaibyObyPbscbyQbyRbySaaibtRbyTaaiaaiaaaaaaaaaaaaaabbyUbyVbyWbyXbyXbyYbyUaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvObvObvObvObvObvObvObzbbzcbzdbzebujbzfbujbzgbzgbzgbzgbsDbukbujbujbulbzhbzibzjbzkbzlbzmbznbkjbkjbzobzpbxSbxTbzqbzrbzsbztbzubzvbzwbzxbzyaaibzzbzAacFbzBbzCbzDbzEbzFachbrjbzGaaibzHbzIbzJaaqbzKaaqbzLaaqbzMbpKbzNaaibzObzPbzQbzRbzSabJbzTbzUabJabJbzVbzWabJabJbzXbzYaxSaxVbOQbAabPobAbbQrbQqbAfbAgbAhaaibAibAjbAkbAlabmbAmbAnbAobApbAqaaqbArbyIbyIbAsbAtbyKbAuaaibAvbAvbAwaaibAxbAybAzbAAbscbABaaibtRbACaaiaaaaaaaaaaaaaaaaabbADbAEbyWbyXbyWbAFbxqaabaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvObvObvObvObvObvObvObAGbAHbAGbAIbAJbzfbujbujbujbujbujbsDbukbAKbhEbhEbALbkjbunbzkbAMbANbAObAPbAPbAQbARbASbATbAUbAVbAWbAXbAYbAZbBabBbbBcaaibwjbuHaaibBdbBebBfbBgbBhaaiaaabyfaaiabmaaiaaiaaiaaiaaibBiaaibBjbpKbzNaaibBkbBlbBlbBmbBnaaqbBobBpbBqbOPbBsbBtbBubBqbBvbBwbOObBybBzbBAbBCbBCbBDbBEbBFbBGbBHbBIbBJbBKbBLbBMbBNbBObBObBPbBQbBRaaqbBSbrTbrTbBTbBUbyKbBVbBWbBXbBYbBZaaqbCabCbaQFbCcbjJaaiaaibCdaaiaaibCebCfbCfbCfbCgaaibyUbyXbyWbyXbyXbChbyUaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaagaaaaaaaaabvObvObvObvObvObvObvObCibCjbCibCkbujbzfbujbzgbzgbzgbzgbsDbukbClbCmbhEbCnbkjbunbzkbCobCpbCqbkjblSbkjbCrbxSbpKbCsaYRbAWbCtbCubCvbCwbCxbCybowabtbCzaaiaaibCAbCBbCCaaiaaiaaabyfaaibCDbCEbCFbCGbCHbCIbCJachbCKbpKbzNbwybCLbCMbCNbCObCPaaqbCQbCRbCSbCTbCUbCVbCWbCXbCYbCZbONbDbbDcbDdbDebDfbDgbDhbDibDjbDkaaibDlbDmbDnbDoaaibDpbDqbDrbDsbDsaaqbDtbDubDvaaqbDwbyKbDxaaqbDybDzbDAbDBbDCbtHbDEbDFbDGbDHbDIbDJbDKbDLbDMbDMbDNbDObDPbDQbDRbxpbxqbDSbxqbxpbDTaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvObvObvObvObvObvObvObDUbzcbDVbDWbujbzfbujbujbujbujbujbsDbukbClbDXbhEbDYbkjbDZbtKbkjbEbbkibkjbkjbEcbxRbxSbpKbCsaYRbAWaaibEdbEebEfbEgbEhabmbEibEjbEkachachbElbEmachbrjbrjbEnaaibEobEpbEqbErbEsbEsbEtbEubEvbpKbEwaaiaaqbExbjJbEybEzaaqbCQbEAaaqbEBbECbEDbOMaaqbCQbEFbOLaaqaaqaaqaosaaqaaqaaqbEHamfaaqaaiaaibEIaaqaaqaaiaaiaaqaaJaaqaaqaaqaaqaaqaaqaaqbEJbEKbELaaqbEMbENbwfbEPbEPbEQbERbESbETbEUbEVbEWbEXbEYbEZbEZbFabDCbFbaaibFcbFdbFebFfaaibFgaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhkbhkbhkbhkbhkbhkbhkbhkbhkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvObvObvObvObvObvObvObCibCjbCibFhbFibFjbujbujbujbFibujbsDbukbClbFkbhEbFlbkjbunbzkbkjboqbFmbkjbkjbFnbzpbxSbpKbFobFpbFqaaibFrbFsbFtbFubFvabmbFwbFxbFybFzbFAbFBbFCaaqaaaaaaaaaaaibFDbFEbFFbFFbFGbFHbFIaaibFJbFKbzNbFLbFMbFNbFObFPbFQbFRbFSbCRbjJbTlbFUbFVbFWbjJbCQbEFbWcbWbbWebWdbUtbUsaaqbUubVTbVSaaqbGgbGhbGibGjbGkbGlbGmbDHbGnbEPbEPbGobGpbEPbGqbGrbGsbGtbGubEPbGvbGwbGxbGybGzbGAaaiabmaaiaaiaaibCdaaiaaibCebCgaaibGBbGCbGDbGEbGFbGGbGHbGIaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvObvObvObvObvObvObvObGJbGKbGJbGLbGMbGNbGNbGNbGNbGNbGObGPbGQbClbGRbhEbGSbGTbGUbGVbGWbwabGXbGYbGZbjbbwdbHabpKbHbbHcbAWaaibHdbHebHfbEebHgabmbHhbHibHjaaqbHkbzDbHlaaqaaaaaaaaaaaibHmbHnbHobHpbFGbFHbFIaaibHqbHrbHsbHtbHubHvbHwbHxbHybHzbHAbHBaaqaaqbHCbHDaaqaaqbCQbEFbEGbTkbTjbQxbThbTgaaqbXvbHHbTibHJbHKbHLbHMbHMbHNbHObHPbHQbHRbDCbDCbHSbDCbHTbDCbHUbDCbHVbHWbHWbHXbHYbHZbIabIbbIcbIdbIebIfbIgaaibIhbIiaaaaaaaaaaaibIjbIkbImbIlbInbIobIpaaiaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvObvObvObvObvObvObvObIqbIrbIsbhEbhEbItbzcbzcbzcbIubhEbhEbIvbIwbIxbhEbIybIybIybIzbIybIAbIBbICbIDbIEbwdbxSbpKbIFaaqaaqaaiaaiaaiaaiaaibIGabmaaibCzabmabZaosbIHaaqaaqaaiaaiaaiaaiabmaaiaaiaaiaaiaaiaaiaaibIIbpKbIJboHaaqbIKbILaaqaaqbCQbIMbINbIObIPbIQbxMbISbITbFSbSubRYbRXbSrbRZbRUbRTbRWbRVbBBbIYbJcbJdbJebJfbGibJgaaiaaiaaiaaiaaiaaibJhaaiaaiaaiaaJbJiaaqaaqbJjbJkbJlbJmbIabJnbJobJpbJqbJrbJsaaibIhbJtaaaaaaaaaaaibJubJvaaibDQaaiaaibDQaaiaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvObvObvObvObvObvObvOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabJwaabaaaaaaaaaaaabIybJxbJybJzbJAbIAbJBbJCbJDbJEbwdbxSbpKbJFbJGbJHbJIbJJbJKbJLbJMbJNbJObJPbJQbJRbJSbJTbJUbJVbJWbJXbJYbJZbKabKbbKcbKdboFbKebpKbKfbKgbKhbpKbKiaaqbKjbKkbKlbKmbKnbCQbKobKpbKqbKrbKsbKtbKubKvbKwbKxbKyaaqbRRbQxbQwbQvbQubQtbKEbQsaaqbKGbGibGibGibKHaaibKIbKJbKKbKLbKMbKNbKObKPaaibKQbKRbKSaaqaaqbKTbJlbKUbKVbKWbKXbKYbKZbLabLbaaibLcaaiaaaaaaaaaaaiaaiaaiaaiaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMJaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvObvObvObvObvObvObvOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIybLdbLebLfbLgbLhbLibLjbLkbLlbwdbxSbLmbLnbpKbpKbzNbLoboFbKdbKcbLpbLqbLpbLrbLsbLsbLtbLubLvbLsbLsbLwbLsbLxbLsbKcbKdboFbLybLzbLAbLBbLCbLDbpKaaqbLEbKkbLFbLGbLHbCQbLIbLJbLKbLLbLMbLNbLObLPbCQbLQbLRaaqbFYbFZbFZbGaaosbGbbGcbGdaaqbLZbMabGibMbbMcaaibKIbMdbMebMfbMgbMhbMibMjaaibMkbKRbMlbMlaaqbMmbMnbMobMpbMqbMrbMsbMtbMubMvaaibIhaaibMwaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvObvObvObvObvOaaaaaaaaaaaaaaaaaaaaaaaabMxbMybMzbMybMAaaaaaaaaabIybIybMBbMCbLfbMDbMEbMFbJDbMGbMHbwdbxSbMIbMJbMKbMLbMMbMNbMObMPbMQbMRbMSbMTbMUbMVbMVbMWbMXbMXbMXbMXbMXbMXbMYbMZbNabNbbNcbNdbMLbNebNfbNgbNhbNiaaqbNjbKkbKlbNkbLHbCQbLIbLJbNlbNmbNnbNobNpbNqbCYbNrbNsaaqaaqclTclUaaqaosaaqaPEbNxaaqbNybNzbNAbNBbNCaaibKIbNDbNEbKLbNFbNGbNHbNIaaibNJbKRbMlbMlaaqbNKbNLbNMacFbNNbNObNPbNQbNRbNSaaibIhaaibNTaaiaJmbNUaJmaJmaJmaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNVbNWbNXbNYbNVbNZbOabObbIybOcbOdbOebOfbOgbOhbOibOjbOjbOkbwdbOlbOmbOnaaqaaqbOobOpbOqaaqaaqaaqbOrbOsbOtaaqaaqbOubKcbKcbOvaaqaaqaaqaosbOwaaqaaqaaqbOxaaqaaqbOyaaqbOzaosaaqbOAbOBbOCaaqbODbOEbLIbOFaaibOGbOHbOIbOJaaibCQbLQbvgaaqbwJbwKbwLbwMbwObyAabJbORbOSbOTbOUbOVbOWbOXaaiaaiaaiaaiaaiaaiaaiaaiaaiaaibOYbOZbPabPaaaqbPbbPcbPdaaiaaiaaiaaiaaiaaiaaiaaibIhaaibPebPfbPgbPhbPhbPiaJmaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbPjbCfbCfbCgaaqaaqaaiaaiaaiaaibPkaabaabaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMzbPlbPmbPlbMzbPnbPobPpbPqbPrbPsbPtbPubPvbIAbPwbPxbPybPzbIAbOmbOmbPAaaqbPBbPCbPDbPEbPFaaqbPGbPHbPIbPJbPKaaqbPLbPMbPNaaqbPObPPbPQbPRbPSbPTbPUbPVbPWabZbPXbPYbPZbQabQbbQcbQdbQebQfbQgbQhbQibQjbLJbQkbQlbQmbQnbQobQpbCYbAebAcbAdbzZbwLbDabDabBrbBxaaqbQybQzbQAbQBbQCbQDbQEaaibQFbQGbQHbQIbQHbQHbQJacFacFbQKbQLbQMbQNaaqbQObQPbJmaaibsfbQQbQRbQSbQSbQRbQSbQTaaibQUbQVbPgbPhbQWbQXaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQYbQZbRabQZaaqaaiaaibRbbRcbRbbRdaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNVbPlbPlbPlbRebRfbMCbRgbRhbRibMCbPtbRjbRkbIAbIAbIAbIAbIAbIAbRlbOmbRmabZbRnbRobRobRobRpaaqbRqbRrbRrbRrbRsaRkbRtbRubRvabZbRwbRxbRybRzbRAbRBaaqaaqbRCaaqbRDbREbRFbRGbRHaaqbLEbKlbLFbLGbRIbRJbRKbRLacFbRMbRNbRObRPaaibRQbKDbKFabZbLSbLTbKzbKAbKBbKCaaqaaqaaqaaqaaqaaJazraugaaibSabQHbQHbSbbQHbScbSdaaiaaibSebKRbSfbSfaaqbJkbSgbJmaaiaaibShaaiaaiaaiaaiaaiaaiaaibSibSjaJmbSkbSlbSmaJmaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacbSnbQZbQZbSoaaiaaibRbbRbbSpbRbbRbaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMzbPmbPmbPmbMzbSqbSrbSsbStbSubMCbSvbSwbSxbSybSzbSzbSzbSAbOmbOmbOmbPAaaqbRpbRobSBbRobSCaaqbSDbRrbSEbRrbSFaaqbSGbSHbSIaaqbSJbSKbSLbSMbSNbSOabJbSPbSQabJbSRbSSbSTbSUbSVaaqbNjbKlbKlbSWbRIbRJbSXbSYbSZbQlbTabTbbTcbTdbTebLWbHEbNtbLXbLYbLVbLVbDabLUaaqbTmbTnbTobTpbTqbTrbTsaaibSabTtbQHbQHbQHbTubTvaaiaaibTwbKRbSfbSfaaqbTxbTybJmaaibTzbTAbTBaaibTCbTDbTEbTFbTGbTHbTIaJmbTJbTKbTLaJmaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabTMaaibSnaaiaaibRbbRbbRbbRbbRbbRbbRbaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaabNVbTNbTObTPbNVbTQbOabObbIybIybTRbTRbTRbIybIybOmbTSbTSbTTbTUbOmbTVbTWaaqbRpbRobRobRobTXaaqbSDbRrbRrbTYbTZabJbUabUbbUcaaqaaqaaqaaqaaqbUdaaqaaqbUebUfaaqaaqbUgaaqaosaaqaaqbUhbUibUiaaqaaqbUjbUkbUlbUmbUnbUobUpbUqbUraaqbIUbHEbHFbHGbHIbGcbGdbGebGfaaqbUvbUwbUxbUybUzbUAbUBaaibUCaaibUDbUEbUFaaiafaaaiaaibUGbUHbSfbSfaaqbUIbSgbJmbUJbUKbULbUMbUNbUObUPbUPbUQbURbUSbUTbUUbUVbUWbUXbUYbUZbVabVbachbVcbVdbVebVfaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaqaaibVgbVhbVhbRbbRbbRbbRbbRbbRbbRbbRbaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVibMybVjbMybVkbVlaabaaaaaabIybVmbVnbVobIyaaabOmbVpbVqbVrbVsbVtbVubVvaaqbVwbVxbVybRobRpaMhbVzbVAbVBbVCbVDaaqbVEbVFbVGbVHbVIbVIbVIbVIbVJbVKbVLbVMbVMbVNbVNbVObVPbVQaaqaaqbVRbIWbIVbVUbVVbRJbVWbUlbVXbVYaEmbVZbLObWaaEmbJbbJaaoaaoabIZaoaaoaaoabIXaaqbWjbWkbWlbWmbWnbWobWpaaibWqbWrbWsbWtbWubWrbWvbWwaaqbWxbWybKSaaqaaqbWzbWAbWBacFbWCbWDbWEacFbWFbWGbWHbWIbWJbWKbWLbWMbWNbWObWNbWPbWObWObWObWQbWRbWSbWTbWUaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaiaaibWVbRbbRbbRbbRbbRbbRbbRbbRbbRbbRbbRbaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabbWWbOmbOmbOmbtqbOmbOmbWYaaqbWZbXabXbbXcbXdaaJbXebXfbXgbXhbXiaMhbXjbXkbXlabJachachachachbnbbXmbowabZbXnabZabZbXobXpbXqbXrbXsbrBbqdbrCbXwbXxbXybXzbXAbXBbrDbrEbXEbXFbXGbXHbXIcagcagcagbrFbtnbtocdLbtpaaqaaqbXLaaqamfbXMbXNbXOaaibXPbXQbXRbXSbXRbXTbXUbXVaaqaaqbXWaaqaaqbXXbXYbSgbvwaaiaaibXZaaiaaibYabYbbYcbYdbYebWObYfbYgbYhbWHbYhbWHbYibWHbWHaaibYjbYkbYlbYmaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaibRbbRbbRbbRbbRbbRbbYnbRbbYobRbbRbbRbbRbbRbaaiaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWWbYpbYqbYrbOmbYsaaqbYtbYubYvbRpbYwaMibYxbSDbYybYzbYAaMibYBbYCbYDaaiaaibYEbYFbYGbYHbYIabmbYJbDmbYKaaqbYLbDmbDmbYMabZbYNbYObvebXwbYQbYRbYSbYTbYUbYVbYWbYXbYYbYVbYVbYZbZabZabZabZbbZabtsbZabtrbZdbZebZfbZgbZhbZibZjbZkaaibZlbZmbZnbZobZnbZpbZqbXRbZrbZsbZtbvwbZubvwbXYbSgbvwaaibZvbZwbZxaaiaaiaaiaaiaaibZybWHbZzbZAbYibWHbZBbWHbSibWHbZCaaibZDbZEbZFaaiaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaibZGbZGbZGbZGbZGbZGbZHbRbbZIbZGbYobRbbRbbRbbRbaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWWbZJbZKbZLbOmbYsaaiaaiaaiaaiaaiaaiaaqaaqaaqaaqaaqaaqaaqbZMbZNbZObZPbZQbZRbZSbZSbZTbZUabmbDmbDmbZVaaqbZWbDmbDmbDmbZXbqcbqbbqdcaaaEmcabbZacaccadcaebLIcadcafcagcagcagcagcagcagcadcagcagcagbLIcahcaicajcakcalcamcancaoaaicapcaqbXRcarbXRcascatcaucavcawcaxcaybvwcazbXYbSgcaAaaibyTcaBcaCcaDaaiaofaofaaicaEcaFcaGcaHcaIcaJcaKcaLcaMcaNcaOaaicaPcaQcaRcaSaacaacaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaacaTbQZbQZbQZbQZbQZbQZbQZcaUbRcbRbbRbbRbbRbcaVbRcaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWWbWWbWWbWWbOmbYsaaiaaaaaaaaaaaaaaicaWcaXcaYcaZcbacbbaaqcbccbdcbecbfcbgcbhcbicbicbjcbkabmaaiaaiaaiaaicblaaibDmbDmaaqcbmcbncbocbpcbqcbrcalcbscbtcbucbvcbwcbxcbycagcagcbzcbAcbBcbCcbBcbAaaiauiacFacFcbDcbEcbAaaqcbFcbGaaicbHcbIcbJcbKcbLcbMcbNaaiaaiaaiabmaaiaaiaaicbOcbPcbQaaibsfcaBcbRcbSaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaibVhbVhbVhbVhbVhbVhcbTbRbbVgbVhcbUbRbbRbbRbbRbaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbVaaaaabaabaaiaaiaaiaaiaaiaaiaaiaaiaaqbWYcbWaaacbXcbYcbZccaccbcccccdcceccfccgabZcchcciccjcckcclccmccnccoccpccqabmccrccsccsccscctaaibDmbDmaaqaaqaaqaaqaaJaaqccuccuccvaaqaaqaosaaqaNuccwccxccyccxachcczccAccBachbrjbrjachccCccDccEaaiccFccGbVQaaiaaiabmaaiccHaaiccIccJaaiccKccLccMbDmccNaaiabmccOafaaaibsfcaBccPbsfccQccRccSccTbsfbsfbsfbsfbsfbsfccUccVbIiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibRbbRbbRbbRbbRbbRbbYnbRbcbUbRbbRbbRbbRbbRbaaiaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccWccXccXccXccYccZcdacdbcdccddcdeaaqcdfbWYaEFaaacdgcdhcdicdjcdkccccdlcdmcdncdoaaqcdpbYCbUbcbfcdqbZScdrbZScdscdtcducdvcdwcdwcdwcdxaaibDmbDmaaqcdycdzcdAcdBcdCcdDcdDcdEcdFcdGcdHcdIcdJabZcdKcdLcdLacFcdMcdNcdOaaiaaaaaaaaicdPcdQcdRachcdScdTcdUcdVcdVcdWbBJcdXcdYcdZceacdYcdYcdYcebcdYcdYceccedceecefcegcehceicejbQScekbQSbQSbQSbQSbQScelcembQSbQScenbsfceoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaibWVbRbbRbbRbbRbbRbbRbbRbbRbbRbbRbbRbaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacepceqceqceqceqcercescetceucevcevcewaaqcexbYsaEFaaacdgceycezceAceBceCceDceEceBceBceFceGceHceIacFacFceJceKbZSceLceMceNcdwcdwcdwcdwceOaaibDmbDmaaqcePceQceRceSceTceUceUceVceWceXceYceZcfaaaqcfbcagcfcaaicfdcdNcfeaaiaaaaaaaaicffcfgbvfaaibDncficfjcfjcfjcfjcfjcfjcfkcflcfmcfnachachcfocfpachachcfqcfrcfsaaqaaicftcfucfvaaiaaiaaiaaicfwcfxcfvaaiaaibsfcfybsfbJtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTMaaiaaibZGbZGbRbbRbbRbbRbbRbbRbbRbbRbaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfzcfAasncfBasncfCcfDcfEcfFcfFcfGaaqcfHbWYaEFaaacdgcfIcfJaiVcfKccccfLcfMcfNcfOaaqcdpbYCbYDcfPaaicfQaaqcfRcfScfTcfUcfVcdwcdwcfWcfXaaibDmcfYaaqcfZcgacgbcgccgccgccgdcgecgccgccgfcgbcggaaicghcagcgiaaicgjcdNcgkaaiaaaaaaaaicglcgmcgnaaicgobDmcfYaaiaaiaaiaaiaaiaoHaoIaoJaaiaaicgpcgqcgrcgsaaicgtcguamdaaicgvcgwcgwcgwcgxcgycgzcgAcgBcgCcgDcgEaaicgFcgGcgHcgIcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgKcgLaaibSnaaibRbbRbbRbbRbbRbbRbbRbaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaacfzcgMcgNcgOcgPceucgQceucgRceucgScgTcgUcgVcgWaaacgXcbYcgYccacgZccccccchachbchcabJchdchechfchgaaichhchichjchkchlabmchmcdwcdwcdwchnaaibDmbDmaaqaaqaaJchochpchqchraaqchschtchuchvbUlaaJaaicfbcagcfcaaichwcdNcdOaaiaaaaaaaaichxchychzaaibDmbDmbDmaaiaabaaaaaaaabaaaaabaaaaaaaaichAchBchCchDchEchFchGchHchIchJchKchLchLchMchNchNchOchPchQchQchRaaiaaichSaamaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaichTchUchVaaiaaibRbbRbchWbRbbRbaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfzchXchYchZchYciacibciccidciecifaaqbYrcigaaiaaaaaaaaaaaaaaicihciicijcijcikcilaaqcimbYCbUbcinciocipciqcipcipcipcirciscdwcitcdwciuaaibDmbDmaaqcivciwcixciycizciAaaqcizciAciyciBciCciDaaicghciEcgiaaichwcdNciFaaiaaiaaiaaiaaiaaiaaiaaiciGbDmbDmaaiaabaaaaaaaaaaabaabaabaaaaaiciHciIciIciJciKciLciMciNciOciPciQciRciSciTciUciVchNchNchNciWciXaaiciYciZcjaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjbcjccjdbSoaaqaaiaaibRbbRcbRbaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOabAaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaqaaqaaqaaqaaqaaqcjecjfaaiaaiaaiaaiaaiaaiaaqaaqaaqaaqaaqaaqaaqcjgbYCbUbcjhcjicjjcjkcjlcjmcjncjocjpcjqcjrcjscjtaaibDmbDmaaqcjucjvcixciyciycjwaaqcjxciyciyciBcixcjyaaiaaiaaiaaiccIcjzcdNcjAaaicjBbDmbDmbDmbDmcjCbDmbDmbDmbDmaaiaaaaaaaaaaaaaaaaabaabaaaaaicjDcjEcjEcjFcjGcjHcjIcjJcjKcjLcjMchNchNchNcjNcjOchNcjPchNciWcjQaaicjRcjScjTaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjUbCfbCfbCgaaqaaqaaiaaiaaiaaibPkaabaabaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjVcjWcjXcjYcjZcjZckackbckcckdckeckfckgckhckickjckjckkcklckmckncknckockpckqckrcksckrckrckrckqckrckrcktckuckvckwbYCbUbckxckyckzafaaaicfUacFaujckAckBacFatEcblaaibDmbDmaaqckCckDckEckFckGckHaaqckIckGckJckKckEckLaaibDmbDmbDmckMchwcdNchwckNbDmbDmbDmbDmbDmbDmbDmbDmbDmbDmaaiaaaaaaaaaaaaaaaaabaabaabaaickOckPckPckPcbAaaickQafacbAckRckSckTckTckUcjLcjLckVckTckWckXckYaaickZclaclbaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjVcjWclccldclecldclfclgclhclicljclkcllclmclnbUcclnclnclobUcbUcbUcbUcclpclnclnclnclnclnclnclnclnclnclnclqclrclscltcluclvclwclxclyaaiclzclAclBclCclDclEclFclGachcfjclHabJclIclJclKclLciyclMaaqclMciyclLclNcixclOaaiclPachachbnbclQclRclSaaiclTaoIaoIclUaaiaaiaaiaoHaoIaoJaaiaaaaaaaaaaaaaaaaaaaabaabaaiclVclWclXclYaaiclZcmacmbaaicmccmdcmdcmdcmecmfcmgcmhcmdcmdcmdcmiaaiaDpcmjcmkaFRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjVcmlcldcmmcmncmocmpcmqcmrcmscmtcmucmvcmwcBKcBLcBJcmycmzabJcmAabJcmBcmCcmBcmBcmBcmBcmBcmBcmBcmBcmBcmBcmDclncmEcmFcmGcmHcmIcmJcmKcmLcmMcmNcmOcmPcmQcmRcmScmTacFbXpcmUcmVcmWciycixciyciycmXabZcmYciyciyciBcixcmZaaicnaaaiaaaafaaaicnbaaiaaiaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiaaiaaiaaicnccndcneaaiaaicnfcngcnhaaiaaiaaiaaicnfcngcnhaaiaaiaEFcniaEFaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOabAaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaicnjaaqaaqcnkaaqcnlaaqaaqcnmaoJaaqaaqaoHaoIaoJaaqaaqaaqaaqcnncnocnpcnqcnrcnscntcnucnvcnucnucnwcnucnxcnycnzcnAcnBaaibDmcnaaoscnCcnDcnEcnFcnGcnHaaqcnIcnGcnJciBcnKcnLaaicnaaaiaaaafacnMcnNcnOaaiaaaaaaaaaaaacnPaaaaaaaaaaaaaaaaaaaaaaaacnPaaaaaaaaicnQcnRcnScnTcnUcnVcnWaaqcnXcnYcnZacFcoaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaabcgWcobcgWaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuacuacuakqakqacuakqakqakqakUakqakqakqakUcocaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbWcodcoecofcogcohcoicojcokcolcomconcoocomcopcoqcorcorcosaaqcotcoucovcowbUbcoxcoycozcoAcoBcoCcoBcoDcoEcoFcoGcoHcoIaaiaaicnaaosaaiaaicoJaaiaaiabmccIachachachcoKachbgGachcoLaaiaaaafacoMcnNcoNaaicoOcoPcoPcoQaaiaaibowacFacFcoRacFacFcoRatEaaaaaaaaicoScoTcoScoUcoVcoWcoXaaqaaJcoYaaJaaiaaiaaaaaaaaaaabaabaaaaagaaaaaaaaaaaaaabaaacoZaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpaaaaaaaaaaaaaaaaaaaaaaaaaacuaaaaaaaabaabaaaaabaabaaaaaaaabaabaabaaacocaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEFcodcpbcpccpdcpecpfcpfcpfcpfcpgcphcpicorcpjcorcorcpkcorcplbUccpmcpncowbUbcpoaaqcppcoAcpqcprcpscoAcptcpucpvcpwcpxcpycpzcpAcpBcpCcpCcpDbSPcfjcpEcpFbDmcpGbXpcpHbDmbDmbVPbDmaaiaaaafacpIcnNcpJcmVcpKcpLcpMcpNcpOcpPcpQcpOcpPcpRcpOcpScpTabmaaaaaaaaicoScoScoScpUcpVcnVcpWcpXcpYcpZcqacqbaaiaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaabaaacqcaaaaabaabaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaaaaacuaaacqdcqecqfaaacqdcqecqfaaacqdcqecqfaabcqgaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEFcodcpbcqhcorcpkcqicorcorcorcqjcorcqhcqhcorcorcorcorcqkcqlbUccqmclncqnbUbaaqaaqcqocoAcqpcqqcqrcoAcqsclDcqtcqucqvcqwccJcpGbXqcqxcqxcmUbXpbXpbXqcqybXpabtaoHaoIaoIaoIaoJaaiaaiaaacqzcqAcqBcqCcqDcqEchwchwcqFcqGcqHcqIcqGcqHcqIcqGcqHcqIabmaaaaabaaiaaqaaqaaqaaqcqJcoWcqKcqLcqMcqNcqOcqPaaiaaaaaaaaaaaaaaacqQcqQcqQcocaabaabaabaabcqRaabaabaabaabaabakUcqQcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaacuaaacqdcqScqfaaacqdcqScqfaaacqdcqScqfaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaEFcodbQYcqhcqTcorcqUcqVcqWcqWcpjcorcqhcqXcorcorcorcorcqYcqZcracrbbSHcrccrdcrecrfcrgcoAcqpcrhcricoAcrjclDaaiauiacFcrkcrlabtaaicrmabmcrmaaiaaiaaiafaaaiaaiaaaaaaaaaaaaaaaaaaaabaaaafacrncnNcroaoscrpchwchwcqFcrqcrrcrscrtcrrcrscrtcrrcruabmaabaabaaicnQcnRcnScrvcrwcnVcrxcrycrzcrAcrBcrCaaiaaaaaaaaaaaaaaacqQaaaaabaaaaabaaaaaaaaacrDaaaaabaabaaaaaaaaaaaacqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaagaaaaaaaaaakqaabcqdcqScqfaaacqdcqScqfaabcqdcqScqfaabaaaaaaaabaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaacgWcodaaqcrEcorcrFcrGcrHcrIcrJcrIcrKcrIcrLcrMcomcrNcqhcqhcqlcrOcrPcrQcrRcrScrTcrUcrVcrWcrXcrYcrZcsacsbclDcsccsdcsecsfcsgcshcsicsjcskcslcsmcsncsocspcsqaabaaaaaaaaaaaaaaaaaaaabaabcqzcsrcsscstcsucsvchwchwchwcswchwchwchwchwchwchwchwcsxcsyaaaaaaaaicoScoScoScszcoVcoWcsAcsBcsCcsDcsEcsFaaiaaiaaiaaiaaaaaacqQaaacsGcsGcsGcsGcsGaabcsHaabcsGcsGcsGcsGcsGaaacqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNVbNWbNXbNYbNVbNZbOabObbIybOcbOdbOebDDbOgbOhbOibOjbOjbOkbwdbOlbOmbOnaaqaaqbOobOpbOqaaqaaqaaqbOrbOsbOtaaqaaqbOubKcbKcbOvaaqaaqaaqaosbOwaaqaaqaaqbOxaaqaaqbOyaaqbOzaosaaqbOAbOBbOCaaqbODbOEbLIbOFaaibOGbOHbOIbOJaaibCQbLQbwKaaqbwLbwMbwObyAbzZbAcabJbORbOSbOTbOUbOVbOWbOXaaiaaiaaiaaiaaiaaiaaiaaiaaiaaibOYbOZbPabPaaaqbPbbPcbPdaaiaaiaaiaaiaaiaaiaaiaaibIhaaibPebPfbPgbPhbPhbPiaJmaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbPjbCfbCfbCgaaqaaqaaiaaiaaiaaibPkaabaabaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMzbPlbPmbPlbMzbPnbAdbPpbPqbPrbPsbPtbPubPvbIAbPwbPxbPybPzbIAbOmbOmbPAaaqbPBbPCbPDbPEbPFaaqbPGbPHbPIbPJbPKaaqbPLbPMbPNaaqbPObEabPQbPRbPSbPTbPUbPVbPWabZbPXbPYbPZbQabQbbQcbQdbQebQfbQgbQhbQibQjbLJbQkbQlbQmbQnbQobQpbCYbDabBrbBxbAebwObFXbFXbEEbFTaaqbQybQzbQAbQBbQCbQDbQEaaibQFbQGbQHbQIbQHbQHbQJacFacFbQKbQLbQMbQNaaqbQObQPbJmaaibsfbQQbQRbQSbQSbQRbQSbQTaaibQUbQVbPgbPhbQWbQXaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQYbQZbRabQZaaqaaiaaibRbbRcbRbbRdaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNVbPlbPlbPlbRebRfbMCbRgbRhbRibMCbPtbRjbRkbIAbIAbIAbIAbIAbIAbRlbOmbEOabZbRnbRobRobRobRpaaqbRqbRrbRrbRrbRsaRkbRtbRubRvabZbRwbRxbRybRzbRAbRBaaqaaqbRCaaqbRDbREbRFbRGbRHaaqbLEbKlbLFbLGbRIbRJbRKbRLacFbRMbRNbRObRPaaibRQbLSbLUabZbTfbLVbKBbKCbKDbLTaaqaaqaaqaaqaaqaaJazraugaaibSabQHbQHbSbbQHbScbSdaaiaaibSebKRbSfbSfaaqbJkbSgbJmaaiaaibShaaiaaiaaiaaiaaiaaiaaibSibSjaJmbSkbSlbSmaJmaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacbSnbQZbQZbSoaaiaaibRbbRbbSpbRbbRbaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMzbPmbPmbPmbMzbSqbLXbSsbStbLWbMCbSvbSwbSxbSybSzbSzbSzbSAbOmbOmbOmbPAaaqbRpbRobSBbRobSCaaqbSDbRrbSEbRrbSFaaqbSGbSHbSIaaqbSJbSKbSLbSMbSNbSOabJbSPbSQabJbSRbSSbSTbSUbSVaaqbNjbKlbKlbSWbRIbRJbSXbSYbSZbQlbTabTbbTcbTdbTebNubHGbOKbNvbNwbNtbNtbFXbLYaaqbTmbTnbTobTpbTqbTrbTsaaibSabTtbQHbQHbQHbTubTvaaiaaibTwbKRbSfbSfaaqbTxbTybJmaaibTzbTAbTBaaibTCbTDbTEbTFbTGbTHbTIaJmbTJbTKbTLaJmaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabTMaaibSnaaiaaibRbbRbbRbbRbbRbbRbbRbaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaaaaaaaaaaabzabzabzabzabzabzabzabzabzabzabzabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaabNVbTNbTObTPbNVbTQbOabObbIybIybTRbTRbTRbIybIybOmbTSbTSbTTbTUbOmbTVbTWaaqbRpbRobRobRobTXaaqbSDbRrbRrbTYbTZabJbIRbUbbUcaaqaaqaaqaaqaaqbUdaaqaaqbUebUfaaqaaqbUgaaqaosaaqaaqbUhbUibUiaaqaaqbUjbUkbUlbUmbUnbUobUpbUqbUraaqbIWbHGbHIbIUbIVbGebGfbKFbHFaaqbUvbUwbUxbUybUzbUAbUBaaibUCaaibUDbUEbUFaaiafaaaiaaibUGbUHbSfbSfaaqbUIbSgbJmbUJbUKbULbUMbUNbUObUPbUPbUQbURbUSbUTbUUbUVbUWbUXbUYbUZbVabVbachbVcbVdbVebVfaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaqaaibVgbVhbVhbRbbRbbRbbRbbRbbRbbRbbRbaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyZbyZbyZbyZbyZbyZbyZbyZbyZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVibMybVjbMybVkbVlaabaaaaaabIybVmbVnbVobIyaaabOmbVpbVqbVrbVsbVtbVubVvaaqbVwbVxbVybRobRpaMhbVzbVAbVBbVCbVDaaqbVEbVFbVGbVHbVIbVIbVIbVIbVJbVKbVLbVMbVMbVNbVNbVObVPbVQaaqaaqbVRbIZbIXbVUbVVbRJbVWbUlbVXbVYaEmbVZbLObWaaEmbKAbKzaoaaoabJbaoaaoaaoabJaaaqbWjbWkbWlbWmbWnbWobWpaaibWqbWrbWsbWtbWubWrbWvbWwaaqbWxbWybKSaaqaaqbWzbWAbWBacFbWCbWDbWEacFbWFbWGbWHbWIbWJbWKbWLbWMbWNbWObWNbWPbWObWObWObWQbWRbWSbWTbWUaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaiaaibWVbRbbRbbRbbRbbRbbRbbRbbRbbRbbRbbRbaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabbWWbOmbOmbOmbtqbOmbOmbWYaaqbWZbXabXbbXcbXdaaJbXebXfbXgbXhbXiaMhbXjbXkbXlabJachachachachbnbbXmbowabZbXnabZabZbXobXpbXqbXrbXsbrCbrBbrDbXwbXxbXybXzbXAbXBbXCbrEbXEbXFbXGbXHbXIcagcagcagbrFbtnbtocdLbtpaaqaaqbXLaaqamfbXMbXNbXOaaibXPbXQbXRbXSbXRbXTbXUbXVaaqaaqbXWaaqaaqbXXbXYbSgbvwaaiaaibXZaaiaaibYabYbbYcbYdbYebWObYfbYgbYhbWHbYhbWHbYibWHbWHaaibYjbYkbYlbYmaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaibRbbRbbRbbRbbRbbRbbYnbRbbYobRbbRbbRbbRbbRbaaiaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWWbYpbYqbYrbOmbYsaaqbYtbYubYvbRpbYwaMibYxbSDbYybYzbYAaMibYBbYCbYDaaiaaibYEbYFbHEbYHbYIabmbYJbDmbYKaaqbYLbDmbDmbYMabZbYNbYObucbXwbYQbYRbYSbYTbYUbYVbYWbYXbYYbYVbYVbYZbZabZabZabZbbZabtsbZabtrbZdbZebZfbZgbZhbZibZjbZkaaibZlbZmbZnbZobZnbZpbZqbXRbZrbZsbZtbvwbZubvwbXYbSgbvwaaibZvbZwbZxaaiaaiaaiaaiaaibZybWHbZzbZAbYibWHbZBbWHbSibWHbZCaaibZDbZEbZFaaiaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaibZGbZGbZGbZGbZGbZGbZHbRbbZIbZGbYobRbbRbbRbbRbaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWWbZJbZKbZLbOmbYsaaiaaiaaiaaiaaiaaiaaqaaqaaqaaqaaqaaqaaqbZMbZNbZObZPbZQbZRbZSbZSbZTbZUabmbDmbDmbZVaaqbZWbDmbDmbDmbZXbqdbqcbrBcaaaEmcabbZacaccadcaebLIcadcafcagcagcagcagcagcagcadcagcagcagbLIcahcaicajcakcalcamcancaoaaicapcaqbXRcarbXRcascatcaucavcawcaxcaybvwcazbXYbSgcaAaaibyTcaBcaCcaDaaiaofaofaaicaEcaFcaGcaHcaIcaJcaKcaLcaMcaNcaOaaicaPcaQcaRcaSaacaacaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaacaTbQZbQZbQZbQZbQZbQZbQZcaUbRcbRbbRbbRbbRbcaVbRcaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWWbWWbWWbWWbOmbYsaaiaaaaaaaaaaaaaaicaWcaXcaYcaZcbacbbaaqcbccbdcbecbfcbgcbhcbicbicbjcbkabmaaiaaiaaiaaicblaaibDmbDmaaqcbmcbncbobOfcbqcbrcalcbscbtcbucbvcbwcbxcbycagcagcbzcbAcbBcbCcbBcbAaaiauiacFacFcbDcbEcbAaaqcbFcbGaaicbHcbIcbJcbKcbLcbMcbNaaiaaiaaiabmaaiaaiaaicbOcbPcbQaaibsfcaBcbRcbSaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaibVhbVhbVhbVhbVhbVhcbTbRbbVgbVhcbUbRbbRbbRbbRbaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbVaaaaabaabaaiaaiaaiaaiaaiaaiaaiaaiaaqbWYcbWaaacbXcbYcbZccaccbcccccdcceccfccgabZbPPcciccjcckcclccmccnccoccpccqabmccrccsccsccscctaaibDmbDmaaqaaqaaqaaqaaJaaqccuccuccvaaqaaqaosaaqaLUccwccxccyccxachcczccAccBachbrjbrjachccCccDccEaaiccFccGbVQaaiaaiabmaaiccHaaiccIccJaaiccKccLccMbDmccNaaiabmccOafaaaibsfcaBccPbsfccQccRccSccTbsfbsfbsfbsfbsfbsfccUccVbIiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibRbbRbbRbbRbbRbbRbbYnbRbcbUbRbbRbbRbbRbbRbaaiaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccWccXccXccXccYccZcdacdbcdccddcdeaaqcdfbWYaEFaaacdgcdhcdicdjcdkccccdlcdmcdncdoaaqcdpbYCbUbcbfcdqbZScdrbZScdscdtcducdvcdwcdwcdwcdxaaibDmbDmaaqcdycdzcdAcdBcdCcdDcdDcdEcdFcdGcdHcdIcdJabZcdKcdLcdLacFcdMcdNcdOaaiaaaaaaaaibRmcdQcdRachcdScdTcdUcdVcdVcdWbBJcdXcdYcdZceacdYcdYcdYcebcdYcdYceccedceebRScegcehbUacejbQScekbQSbQSbQSbQSbQScelcembQSbQScenbsfceoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaibWVbRbbRbbRbbRbbRbbRbbRbbRbbRbbRbbRbaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacepbvfbvfbvfbvfbvgcescetceucevcevcewaaqcexbYsaEFaaacdgceycezceAceBceCceDceEceBceBceFceGceHceIacFacFceJceKbZSceLceMceNcdwcdwcdwcdwceOaaibDmbDmaaqcePcbpceRceSceTceUceUceVceWceXceYceZcfaaaqcfbcagcfcaaicfdcdNcfeaaiaaaaaaaaicffcfgbveaaibDncficfjcfjcfjcfjcfjcfjcfkcflcfmcfnachachcfocfpachachcfqcfrcfsaaqaaicftcfucfvaaiaaiaaiaaicfwcfxcfvaaiaaibsfcfybsfbJtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTMaaiaaibZGbZGbRbbRbbRbbRbbRbbRbbRbbRbaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfzcfAbwJcfBbwJcfCcfDcfEcfFcfFcfGaaqcfHbWYaEFaaacdgcfIcfJaiVcfKccccfLcfMcfNcfOaaqcdpbYCbYDcfPaaicfQaaqcfRcfScfTcfUcfVcdwcdwcfWcfXaaibDmcfYaaqcfZcgacgbcgccgccgccgdcgecgccgccgfcgbcggaaicghcagcgiaaicgjcdNcgkaaiaaaaaaaaicglcgmcgnaaicgobDmcfYaaiaaiaaiaaiaaiaoHaoIaoJaaiaaicgpcgqcgrcgsaaicgtcguamdaaicgvcgwcgwcgwcgxcgycgzcgAcgBcgCcgDcgEaaicgFcgGcgHcgIcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgKcgLaaibSnaaibRbbRbbRbbRbbRbbRbbRbaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaacfzcgMcgNcgOcgPceucgQceucgRceucgScgTcgUcgVcgWaaacgXcbYcgYccacgZccccccchachbchcabJchdchecchchgaaichhchichjchkchlabmchmcdwcdwcdwchnaaibDmbDmaaqaaqaaJchochpchqchraaqchschtchuchvbUlaaJaaicfbcagcfcaaichwcdNcdOaaiaaaaaaaaichxchychzaaibDmbDmbDmaaiaabaaaaaaaabaaaaabaaaaaaaaichAchBchCchDchEchFchGchHchIchJchKchLchLchMchNchNchOchPchQchQchRaaiaaicELaamaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaichTchUchVaaiaaibRbbRbchWbRbbRbaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfzchXcACchZcACciacibciccidciecifaaqbYrcigaaiaaaaaaaaaaaaaaicihciicijcijcikcilaaqcimbYCbUbcinciocKKciqcipcipcipcircdPcdwcitcdwciuaaibDmbDmaaqcivciwcixciycizciAaaqcizciAciyciBciCciDaaicghciEcgiaaichwcdNciFaaiaaiaaiaaiaaiaaiaaiaaiciGbDmbDmaaiaabaaaaaaaaaaabaabaabaaaaaiciHciIciIciJciKciLciMciNciOciPciQciRciSciTciUciVchNchNchNciWciXaaiciYciZcjaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjbcjccjdbSoaaqaaiaaibRbbRcbRbaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOabAaaiaaiaaiaaiaaiaaiaaiaaiaJmaJmaJmaJmaJmaaiaaqaaqaaqaaqaaqaaqcjecjfaaiaaiaaiaaiaaiaaiaaqaaqaaqaaqaaqaaqaaqcjgbYCbUbcjhcjicjjcjkcjlcjmcjncjocjpcjqcjrcjscjtaaibDmbDmaaqcjucjvcixciyciycjwaaqcjxciyciyciBcixcjyaaiaaiaaiaaiccIcjzcdNcjAaaicjBbDmbDmbDmbDmcjCbDmbDmbDmbDmaaiaaaaaaaaaaaaaaaaabaabaaaaaicjDcjEcjEcjFcjGcjHcjIcjJcjKcjLcjMchNchNchNcjNcjOchNcjPchNciWcjQaaicjRcjScjTaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjUbCfbCfbCgaaqaaqaaiaaiaaiaaibPkaabaabaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjVcjWcjXcjYcjZcjZckackbckcckdckeckfckgckhcBIcBIcBIcBJcBKcBLcBGcBGcAKcAIcAEcADcBHcADcADcADcAEcADcADcAHcAGcAFcefbYCbUbckxceickzafaaaicfUacFaujckAckBacFatEcblaaibDmbDmaaqckCceQckEckFckGckHaaqckIckGckJckKckEchfaaibDmbDmbDmckMchwcdNchwckNbDmbDmbDmbDmbDmbDmbDmbDmbDmbDmaaiaaaaaaaaaaaaaaaaabaabaabaaickOckPckPckPcbAaaickQafacbAckRckSckTckTckUcjLcjLckVckTckWckXckYaaickZclaclbaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjVcjWclccldclecldclfclgclhclicljclkcllclmclnclnclnclnbYCbUcbUcbUcclnclpclnclnclnclnclnclnclnclnclnclnclqclrclscltcisclvckwclxclyaaiclzclAclBclCclDclEclFclGachcfjckyabJclIclJclKclLciyclMaaqclMciyclLclNcixclOaaiclPachachbnbclQclRclSaaiclTaoIaoIclUaaiaaiaaiaoHaoIaoJaaiaaaaaaaaaaaaaaaaaaaabaabaaiclVclWclXclYaaiclZcmacmbaaicmccmdcmdcmdcmecmfcmgcmhcmdcmdcmdcmiaaiaDpcmjcmkaFRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjVcmlcldcmmcmncmocmpcmqcmrcmscmtcmucmvcmwcmBcmxcmycmycmzabJcmAabJcmBcmCcmBcmBcmBcmBcmBcmBcmBcmBcmBcmBcBMclncmEcmFcmGcmHcmIcmJcmKcmLcmMcmNcmOcmPcmQcmRcmScmTacFbXpcmUcmVcmWciycixciyciycmXabZcmYciyciyciBcixcmZaaicnaaaiaaaafaaaicnbaaiaaiaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiaaiaaiaaicnccndcneaaiaaicnfcngcnhaaiaaiaaiaaicnfcngcnhaaiaaiaEFcniaEFaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOabAaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaicnjaaqaaqcnkaaqcnlaaqaaqcnmaoJaaqaaqaoHaoIaoJaaqaaqaaqaaqcBOcnocnpcnqcnrcnscntcnucnvcnucnucnwcnucnxcnycnzcnAcnBaaibDmcnaaoscnCcnDcnEcnFcnGcnHaaqcnIcnGcnJciBcnKcnLaaicnaaaiaaaafacnMcnNcnOaaiaaaaaaaaaaaacnPaaaaaaaaaaaaaaaaaaaaaaaacnPaaaaaaaaicnQcnRcnScnTcnUcnVcnWaaqcnXcnYcnZacFcoaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaabcgWcobcgWaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuacuacuakqakqacuakqakqakqakUakqakqakqakUcocaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbWcodcoecofcogcohcoicojcokcolcomconcoocomcopcoqcorcorcosaaqcBNcoucovcowbUbcoxcoycozcoAcoBcoCcoBcoDcoEcoFcoGcoHcoIaaiaaicnaaosaaiaaicoJaaiaaiabmccIachachachcoKachbgGachcoLaaiaaaafacoMcnNcoNaaicoOcoPcoPcoQaaiaaibowacFacFcrlacFacFcrlatEaaaaaaaaicoScoTcoScoUcoVcoWcoXaaqaaJcoYaaJaaiaaiaaaaaaaaaaabaabaaaaagaaaaaaaaaaaaaabaaacoZaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpaaaaaaaaaaaaaaaaaaaaaaaaaacuaaaaaaaabaabaaaaabaabaaaaaaaabaabaabaaacocaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEFcodcpbcpccpdcpecpfcpfcpfcpfcpgcphcpicorcpjcorcorcpkcorcplcAzcpmcpncowbUbcpoaaqcppcoAcpqcprcpscoAcptcpucpvcpwcpxcpycpzckDcpBcpCcpCckLbSPcfjcpEclubDmcpGbXpcpHbDmbDmbVPbDmaaiaaaafacpIcnNcpJcmVcpKcpLcpMcpNcpOcpPcpQcpOcpPcpRcpOcpScpTabmaaaaaaaaicoScoScoScpUcpVcnVcpWcpXcpYcpZcqacqbaaiaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaabaaacqcaaaaabaabaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaaaaacuaaacqdcqecqfaaacqdcqecqfaaacqdcqecqfaabcqgaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEFcodcpbcqhcorcpkcqicorcorcorcqjcorcqhcqhcorcorcorcorcqkcqlcAzcqmclncqnbUbaaqaaqcqocoAcqpcqqcqrcoAcqsclDcqtcqucqvcqwccJcpGbXqcqxcqxcmUbXpbXpbXqcqybXpabtaoHaoIaoIaoIaoJaaiaaiaaacqzcqAcqBcqCcqDclwchwchwcqFcqGcqHcqIcqGcqHcqIcqGcqHcqIabmaaaaabaaiaaqaaqaaqaaqcqJcoWcqKcqLcqMcqNcqOcqPaaiaaaaaaaaaaaaaaacqQcqQcqQcocaabaabaabaabcqRaabaabaabaabaabakUcqQcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaacuaaacqdcqScqfaaacqdcqScqfaaacqdcqScqfaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaEFcodbQYcqhcqTcorcqUcqVcqWcqWcpjcorcqhcqXcorcorcorcorcqYcqZcABcrbbSHcrccrdcrecrfcrgcoAcqpcrhcricoAcrjclDaaiauiacFcrkcrlabtaaicrmabmcrmaaiaaiaaiafaaaiaaiaaaaaaaaaaaaaaaaaaaabaaaafacrncnNcroaoscrpchwchwcqFcrqcrrcrscrtcrrcrscrtcrrcruabmaabaabaaicnQcnRcnScrvcrwcnVcrxcryclHcrAcrBcrCaaiaaaaaaaaaaaaaaacqQaaaaabaaaaabaaaaaaaaacrDaaaaabaabaaaaaaaaaaaacqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaagaaaaaaaaaakqaabcqdcqScqfaaacqdcqScqfaabcqdcqScqfaabaaaaaaaabaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaacgWcodaaqcrEcorcrFcrGcrHcrIcrJcrIcrKcrIcrLcrMcomcrNcqhcqhcqlcAAcrPcrQcrRcrScrTcrUcrVcrWcrXcrYcrZcsacsbclDcsccsdcsecsfcsgcshcsicsjcskcsmcslcsncsocspcsqaabaaaaaaaaaaaaaaaaaaaabaabcqzcsrcsscstcsucsvchwchwchwcswchwchwchwchwchwchwchwcsxcsyaaaaaaaaicoScoScoScszcoVcoWcsAcsBcsCcsDcsEcsFaaiaaiaaiaaiaaaaaacqQaaacsGcsGcsGcsGcsGaabcsHaabcsGcsGcsGcsGcsGaaacqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaaabaaacqdcqScqfaabcqdcqScqfaaacqdcqScqfaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaaaaabaabaaaaaaaaicsIaaqcsJcsKcsKcsLaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqcsMaaqaaJaaqaaicsNcsOcsPcsQcsRcsScsTcsUclDcsVcsdcsecsWcsXcsYcsZctactbctcctdctectfctgcthaabctictictictictiaaaaaaaabafactjcnNctkctlctmctnchwchwctochwchwchwchwchwctpchwctqctraaaaaaaaicoScoScoScrvctscnVcttctuctvctwctxctyctzctActBaaiaaaaaacqQaabctCctDctDctDctDctEctFctGctHctHctHctHctIaabcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaacuacuakqaabaaacqdcqScqfaabcqdcqScqfaaacqdcqScqfaabaaaaaaaaaaaaaaaaaaaaaaaaaabctJaaiaaiaaiaaiaaiaaicodaaqctKctLctLctMabJctNctOctOctOctOctPctQctRctQctQctSctSctQctTbEmccJaaiaaictUctVctWctXctYctZctZcuacfUcubcuccudcuecsXcufcsZcugcuhcuicujcukculcumcuncuocupcuqcurcusctiaaaaaacutafaaaqcuualYaaqcuvcuwcuxcuyabJcuzcuAcuBcuCcuDcuEcuFcuGabmaaaaaaaaiaaqaaqaaqaaqcuHcoWcsAcuIcuJcuKcsEcoWcuLcoWcuMaaiaaaaaacqQaabcuNcuNcuNcuNcuNaaacsHaaacuNcuNcuNcuNcuNaabcqQaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaacuaaaaabaaaaabaabcuOaabaabaabcuOaabaaaaabcuOaabaaaaaaaaaaaaaaaaaaaaaaaacuPbCfcuQcuRcuScuTcuUcuVcuWcuXaaqaaqcuYcuZaaqaaqcvaaaiaaiaaiaaiavfaaiafaaaiaaiaaiaaiaaiabmafacvbcvccvdctZcvectWctZctZctZctZcvfclDcvgcvhcuecuecsXcufcvicugcuhcvjcvkcvlcvmcvncvoaabcvpcvqcuscvrctiaaaaaaaaaafacvscvtcvuaaqcvvcvwcvxcvyaaqcqIcqHcvzcvAcvBcvCcqIcqHabmaaaaaaaaicnQcnRcnScvDcrwcnVcvEcvFcvGcvHcvIcvJcvKcvLcvMaaiaabaabcqQaaaaabaaaaabaabaabaaacsHaaaaabaaaaabaaaaabaaacqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaakqaabcvNcvOcvOcvPcvQcvRcvRcvRcvQcvRcvRcvRcvQcvRcvRcvScvOcvOcvOcvOcvOcvTcvUcvVcvWcvXcvYcvZcwacwbbYrcodcwcaaqaaqaaqaaqcwdcvaaaicwecwfcwgcwhcwicwjcwkcwlcwmcwncwocwpcwqcwrcwscwtcwucwvctWcwwctZctZctZcwxclDcwycwzcuecwAcwBcwCcwDcwEcwFcwGcwHcwIcwJcwKcuncwLcupcwMcuscusctiaaaaaaaabafacwNcvtcwOaaqcwPcwQctncwRaaqcwScwTcvzcwUcwVcvCcwScwWabmaaaaaaaaicoScoTcoScwXcoVcoWcwYcvFcwZcxacoWcxbaaqaaqaaqaaiaaaaaacqQaaacsGcsGcsGcsGcsGaabcsHaabcsGcsGcsGcsGcsGaabcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaacuaaaaabaaaaabaabcxcaabaaaaabcxcaabaaaaabcxcaabaaaaaaaaaaaaaaaaaaaaaaaacuPbCfcxdcxecxfcxgaaicxhbYrcxicuWcuWcuWcuWcuWcuWcxjaaicxkcxlcxmcxncxocxpcxqcxrcxscxtcxucxvcxwcxxcxycxzcxActVctWcxBcxCctZctZcxDclDcxEcxFcuecxGcsXcxHaaqcxIcxJcxKcxLcxMcxNcxMcxOaabctictictictictiaabaabaabcqzcxPcvtcwOaaqcxQcxRcxScxTcxUabsabZabZcxVabZcxWaAtaaqabmaaaaaaaaicoScoScoScvDcxXcxYcxZcqOcyactyctyctycybcyccydcyeaaaaaacqQaabctCctDctDctDctDctEctFctGctHctHctHctHcyfaabcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaacuacuakqaabaabcqdcygcqfaaacqdcygcqfaaacqdcygcqfaabaaaaaaaaaaaaaaaaaaaaaaabaabcyhaaiaaiaaiaaiaaqcfHcyibYrcyjbYrbYrbYrcykcylcymcyncyocyocAAcyqcyrcyscytcyucyvcywcyxcyycyzcyAcyBcyCcyDcyEcyFcyGcyHcyIcyJcyKcyLcwCcyMcyNcyOcyPcyQcyRcyScyTcyUcyVcyWcyXcuncuocupcyYcyZcyZctiaaaaaaaabafaczacvtczbaaqczcczdczdczeaaqczfczgczhcziczjczkczlczicsyaaacutaaiaaqaaqaaqaaqczmcoWczncnVczocnVczpcnVczqcnVczrczsaaaaaacqQaabcuNcuNcuNcuNcuNaaacsHaabcuNcuNcuNcuNcuNaaacqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaaaaaaacqdcygcqfaabcqdcygcqfaaacqdcygcqfaaaaaaaaaaabaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaqclTaoIaoIaFRaaqaaqaaqaaqcvaaaiczucxmcxmcxmczvczwczxczyczzaaiczAczBcwrczCczDaaiczEctZczFczGczHczIcyIczJczKczLczMczNczOczPczMczQczRczSczTcueczUczVczWcvoaabcvpczXczYczZctiaaaaaaaaaafaaaqcAaaosaaqcAbcAccAdcAecAfcvtcAgcAhczicAicAjcAkcAlcAmaabaaaaaaaaaaaaaaaaaicAncAocApcAqcArcAscAtcAucArcAscAvaaiaaaaabcocaaaaabaaaaabaaaaabaaacAwaaaaabaaaaabaabaabaabcqQaaaaaaaaaaaaaaaaaaaaaaaacAxaaaaaaaaacAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMJaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaakqaabcqdcygcqfaaacqdcygcqfaaacqdcygcqfaabaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcbWbZJcADaaqcvacACcxmcxmcxmcxmcxmcABcxmcxmcxmaaicALcAMcANcAOcAPceqaoacAQcercARcAScATcdjbXmcAUcAVcAWcAXcxGcsXcAYcAZcBacBbcBccueczUcBdcBecBfcBgcupcBhcyZcyZctiaabaaaaaacqzcBicBjcBkcBlcBmcBncBmcBmcBocBpcBqcBrcBrcBscBtcBucBvcBwaabaabaaaaaaaaaaaaaaicBxcBycBzaaqcBAcBBcBCaaqcBDcBEcBFaaiaaaaaacqQaaacsGcsGcsGcsGcsGaabcqRaabcsGcsGcsGcsGcsGaabcqQaaaaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaakqaabcqdcygcqfaaacqdcygcqfaabcqdcygcqfaabaabaabaaaaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaEFbYrbYrcAIcAKaaicAEcAFcAGcAHcBGcBTcBUcBVcBVcBVcBWcBXcxmcxmcxmcBYcBZcCaaaqcCbcCccCdcCecCfaaiaaiaaicCgcxGcsXcChcCicCjcCkcClcuecCmcCncCocCpcCqctictictictictiaaaaaaaaaafacCrcCscCtcCucCvcCwcCvcCvcCxcCycCzcCAcBvcCBcCCcAkczicCDaabaabaaaaaaaaaaaaaaicCEcoScoSaaqcCFcoScoSaaqcCFcoScoSaaiaaaaaacqQaabctCctDctDctDctDcCGcCHcCGctHctHctHctHcyfaabcqQaaacAxaaaaaacAxaaaaaacAxcAxcAxcAxcAxcAxcAxaaaaaacAxaaaaaacAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaakUaabcqdcCIcqfaaacqdcCIcqfaaacqdcCIcqfaabakqaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcgWbZLaaiaaibXmaaiaaiaaiaaicCNcCOcCPcCQcAJcAJcAJcCRcCScCTcAJcAJcAJcCScCUcCVcCWcCccCXcCYcCfcCZcDaacFcDbcDccDdcDecDfcBccDgcDhcDicDjcDkcDlcuncDmcupcDncDocDoctiaaaaaaaaaafacDpcDqcDrcDscDtcDucDvczicDwcDxcDycDzcDAcDBcDCcDDcDEcDFaaaaaaaaaaaaaaaaaaaaicDGcoScoSaaqcDHcoScoSaaqcDHcoScoSaaiaaaaaacqQaabcuNcuNcuNcuNcuNaaacqRaaacuNcuNcuNcuNcuNaaacqQaaacAxcAxcAxcAxaaacAxcAxcAxcAxcAxcAxcAxcAxcAxaaacAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaakqaaaaabaaaaaaaaaaabaabaabaaaaaaaabaabaaaakqaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaqcBHaaicDRcDScDTcDUcBIaaicDWcDXcDYcDZcxmcxmcEacEbcEccEdcEecEfcEgcEhaaicEicCWcCccEjcEkcCfaaicElaaicEmcEncuecDecDfcEocuecDhcDiczUczVcEpcvocEqcvpcErcEscEtctiaaaaaaaaabgFcEucEvcEvcEwachachbgHcExcEycEzcEzcEzcEAaaiaaiabmavfaaiaaaaaaaaaaaaaaaaaaaaicoScoScoSaaqcEBcoScoSaaqcEBcoScoSaaiaaaaabcqQaaaaaaaabaabaabaaaaaacqRaabaaaaaaaabaabaaaaaacqQaaacAxcAxcAxcAxaaacAxcAxcAxcAxcAxcAxcAxcAxcAxaaacAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaacuacuakqacuacuakUakqakqakqakqacuakqakqacucECaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaicEMcENcEOcEPcEQcERcEScETcEUcDZcxmcEVcEWacFcEXcEYcEZcFacFbaujcFccDYcDZcFdcFeaaqcFfaaiabmaaicFgcFhcuecDecDfcBccuecFicDiczUcFjcFkcBfcFlcupcFmcDocDoctiaaaaaaaaacFnaaaaaaaaaaaaaaaaaaafacFocziczicFpcFqcFraaiaaccFscFtcFuaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiaaiaaiaaicFvcFvcFvaaiaaaaaacqQcqQcqQcqQcqQaaaaaaaaacqRaaaaaaaaacqQcqQcqQcoccqQaaacAxcAxcAxcAxaaacAxcAxcAxcAxcAxcAxcAxcAxcAxaaacAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaicFxcFycFzcFzcFAcFBcAJcFCcFDcFEcFFcFGcFGcFHcFIcFJcFKcFLcFMcFHcFNcFOcFPcFQcxmcFRcFScFTcElaaicFUcFVcuecDecuecFWcuecDhcDiczUczVcFXcvocEqctictictictictiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafacFYcziczicAecFZcGaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFnaaaaaaaaaaaaaaaaaaaaaaaacGbcGbcGbaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaabcGcaabcqQaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaicGqcGrcFzcFzcGsaaicGtcGucGvcGwcGxcGycGzaaicGAcGBcGCcxmcGDaaicGEcGFcGGcGwcGwcGHcGIaaicGJaaicGKcGLcuecDecuecChcCicGMcGNcDjcGOcGPcuncGQcupcGRcGScGSctiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgFcGTcGUcGVcGWcGXcGYaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaaaaabaaacqQaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaicHkcGrcFzcFzcHlaaicHmcHnaaicHocHpcHpcHpaaicHqcHrcHscHtcHuaaicHpcHpcHpcHoaaicHvcHwaaicElaaicHxcHycHzcHAcHBcHCcHDcHEcyVcHFczVcHGcvocEqcvpcHHcHIcHJctiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaicHKcoPcoPcoPcoPcHLaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQcqQcqQcqQcqQaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHMaaaaaaaaacHMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaacaaicHUcHVcFzcFzcHWaaicHXcHYaaicHZcIacIbcIcaDpcIdcIecIfcIgcHuaDpcIacIacIacIhcIicIjcIkaaicElcIlcImcIncIocHDcIpcIqcIrcIscItcIucIvcIwcBfcFlcupcIxcGScGSctiaabaabaaaaaaaaaaaaaaaaaaaaaaaacFnaaaaaaaaaaaaaaaaaacFnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHMcHMcHMcHMcHMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaaicIBcFycFzcFzcICaaicCZcIDaaiaaiclTaoIcIEcIFcIGcGwcIHcGwcIIcIJcIEaoIaFRaaiaaicIKcILaaicElaaicIMcINcIocIOcuccuecuecIPczQcIOczVcIQcvocEqctictictictictiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHMaaaaaacHMaaaaaacHMcHMcHMcHMcHMcHMcHMaaaaaacHMaaaaaacHMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaicIXcIYcFzcFzcIZaaiaaicJaaaicJbcJccJccJdcJecJfcJfcJfcJfcJfcJecJgcJccJccJhaaicJiaaiaaicElaaicJjcHzcJkcJlcJmcJncJocJlcJpcJlcJqcHDcJrcEqaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHMcHMcHMcHMaaacHMcHMcHMcHMcHMcHMcHMcHMcHMaaacHMcHMcHMcHMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaicJBcJCcFzcFzcJDaaicJEcJFcJGcJHaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaabaaaaaacJIcJJcJKcJLaaicJMacFcJNcJOcJPcJQcJRcJScJTcJUcuecJVcJWcJXcJYcEqaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxaaaaaacAxcAxcAxcAxcAxcAxcAxaaaaaacAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHMcHMcHMcHMaaacHMcHMcHMcHMcHMcHMcHMcHMcHMaaacHMcHMcHMcHMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaicIBcFycFzcFzcKeaaicKfcKgcKgaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaaaaacKgcKgcKfaaicCZaaicKhcKicKjcKkcKlcKmcKncKkcKncKocKncKocKpcEqaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKqcKqcKqcKqcKqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHMcHMcHMcHMaaacHMcHMcHMcHMcHMcHMcHMcHMcHMaaacHMcHMcHMcHMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaicKBcKCcFzcFzcKDaaicKEcKFcKgaabaabaabcKGaaaaaaaaaaaacKGaaaaaacKGaabaabaabcKgcKHcKIaaicCZaaiaabcKJaabcKKcKLcKMcKNcKOcKNcKPcKNcKPcKQcKRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKqcKqcKqcKqcKqcKqcKqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaacuacuakqaabaaacqdcqScqfaabcqdcqScqfaaacqdcqScqfaabaaaaaaaaaaaaaaaaaaaaaaaaaabcbWaaiaaiaaiaaiaaiaaicodaaqctKctLctLctMabJctNctOctOctOctOctPctQctRctQctQctSctSctQctTbEmccJaaiaaictUctVctWctXctYctZctZcuacfUcubcuccudcuecsXcufcsZcugcuhcuicujcukculcumcuncuocupcuqcurcusctiaaaaaacutafaaaqcuualYaaqcuvcuwcuxcuyabJcuzcuAcuBcuCcuDcuEcuFcuGabmaaaaaaaaiaaqaaqaaqaaqcuHcoWcsAcuIcuJcuKcsEcoWcuLcoWcuMaaiaaaaaacqQaabcuNcuNcuNcuNcuNaaacsHaaacuNcuNcuNcuNcuNaabcqQaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaacuaaaaabaaaaabaabcuOaabaabaabcuOaabaaaaabcuOaabaaaaaaaaaaaaaaaaaaaaaaaaclTaoIaFOcuRcuScuTcuUcuVcuWcuXaaqaaqcuYcuZaaqaaqcvaaaiaaiaaiaaiavfaaiafaaaiaaiaaiaaiaaiabmafacvbcvccvdctZcvectWctZctZctZctZcvfclDcvgcvhcuecuecsXcufcvicugcuhcvjcvkcvlcvmcvncvoaabcvpcvqcuscvrctiaaaaaaaaaafacvscvtcvuaaqcvvcvwcvxcvyaaqcqIcqHcvzcvAcvBcvCcqIcqHabmaaaaaaaaicnQcnRcnScvDcrwcnVcvEcvFcvGcvHcvIcvJcvKcvLcvMaaiaabaabcqQaaaaabaaaaabaabaabaaacsHaaaaabaaaaabaaaaabaaacqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaakqaabcvNcvOcvOcvPcvQcvRcvRcvRcvQcvRcvRcvRcvQcvRcvRcvScvOcvOcvOcvOcvOcvTcvUcvVcvXcvWcvYcvZcEKcwbbYrcodcwcaaqaaqaaqaaqcwdcvaaaicwecwfcwgcwhcwicwjcwkcwlcwmcwncwocwpcwqcwrcwscwtcwucwvctWcwwctZctZctZcwxclDcwycwzcuecwAcwBcwCcwDcwEcwFcwGcwHcwIcoRcwKcuncwLcupcwMcuscusctiaaaaaaaabafacwNcvtcwOaaqcwPcwQctncwRaaqcwScwTcvzcwUcwVcvCcwScwWabmaaaaaaaaicoScoTcoScwXcoVcoWcwYcvFcwZcxacoWcxbaaqaaqaaqaaiaaaaaacqQaaacsGcsGcsGcsGcsGaabcsHaabcsGcsGcsGcsGcsGaabcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaacuaaaaabaaaaabaabcxcaabaaaaabcxcaabaaaaabcxcaabaaaaaaaaaaaaaaaaaaaaaaaaclTaoIaXmcxecxfcxgaaicxhbYrcxicuWcuWcuWcuWcBRcuWcwbaaicxkcxlcxmcxncxocxpcxqcxrcxscxtcxucxvcxwcxxcxycxzcxActVctWcxBcxCctZctZcxDclDcxEcxFcuecxGcsXcxHaaqcxIcpAcxKcpDcxMcxNcxMcxOaabctictictictictiaabaabaabcqzcxPcvtcwOaaqcxQcxRcxScxTcxUabsabZabZcxVabZcxWaAtaaqabmaaaaaaaaicoScoScoScvDcxXcxYcxZcqOcyactyctyctycybcyccydcyeaaaaaacqQaabctCctDctDctDctDctEctFctGctHctHctHctHcyfaabcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaacuacuakqaabaabcqdcygcqfaaacqdcygcqfaaacqdcygcqfaabaaaaaaaaaaaaaaaaaaaaaaabaabcgWaaiaaiaaiaaiaaqcfHcyibYrcyjbYrbYrcvacykbYraaicBScCJcyockqcyqcyrcyscytcyucyvcywcyxcyycyzcyAcyBcyCcyDcyEcyFcyGcyHcyIcyJcyKcyLcwCcyMcyNcyOcyPcyQcyRcyScyTcyUcyVcyWcyXcuncuocupcyYcyZcyZctiaaaaaaaabafaczacvtczbaaqczcczdczdczeaaqczfczgczhcziczjczkczlczicsyaaacutaaiaaiaaiaaiaaiczmcoWczncnVczocnVczpcnVczqcnVczrczsaaaaaacqQaabcuNcuNcuNcuNcuNaaacsHaabcuNcuNcuNcuNcuNaaacqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaaaaaaacqdcygcqfaabcqdcygcqfaaacqdcygcqfaaaaaaaaaaabaaaaaaaaaaaaaabaabaabaaaaaaaabaabcrOcrOcrOcrOcrOcrOcrOcCKcrOcrOaaiczucDZcxmcxmczvczwczxczyczzaaiczAczBcwrczCczDaaiczEctZczFczGczHczIcyIczJczKczLczMczNczOczPczMczQczRczSczTcueczUczVczWcvoaabcvpczXczYczZctiaaaaaaaaaafaaaqcAaaosaaqcAbcAccAdcAecAfcvtcAgcAhczicAicAjcpFcAlcAmaabaaaaaaaaaaaaaaaaaicAncAocApcAqcArcAscAtcAucArcAscAvaaiaaaaabcocaaaaabaaaaabaaaaabaaacAwaaaaabaaaaabaabaabaabcqQaaaaaaaaaaaaaaaaaaaaaaaacAxaaaaaaaaacAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMJaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaakqaabcqdcygcqfaaacqdcygcqfaaacqdcygcqfaabaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaabaabaabcrOcCLcCLcDIcCMcDJcDJcDMcDNcDKcDLcyockqcxmcxmcxmckrcxmcxmcxmaaicALcAMcANcAOcAPceqaoacAQcercARcAScATcdjbXmcAUcAVcAWcAXcxGcsXcAYcAZcBacBbcBccueczUcBdcBecBfcBgcupcBhcyZcyZctiaabaaaaaacqzcBicBjcBkcBlcBmcBncBmcBmcBocBpcBqcBrcBrcBscBtcqEcBvcBwaabaabaaaaaaaaaaaaaaicBxcBycBzaaqcBAcBBcBCaaqcBDcBEcBFaaiaaaaaacqQaaacsGcsGcsGcsGcsGaabcqRaabcsGcsGcsGcsGcsGaabcqQaaaaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaakqaabcqdcygcqfaaacqdcygcqfaabcqdcygcqfaabaabaabaaaaabaaaaaaaabaabaaaaaaaaaaabaaaaaacrOcCLcCLcDIcDQcDQcDQcDOcDOcDPaaickuckvclocmDcracBTcBUcBVcBVcBVcBWcBXcxmcxmcxmcBYcBZcCaaaqcCbcCccCdcCecCfaaiaaiaaicCgcxGcsXcChcCicHmcCkcClcuecCmcCncCocCjcCqctictictictictiaaaaaaaaaafacCrcCscCtcCucCvcCwcCvcCvcCxcCycCzcrzcBvcCBcCCcpFczicCDaabaabaaaaaaaaaaaaaaicCEcoScoSaaqcCFcoScoSaaqcCFcoScoSaaiaaaaaacqQaabctCctDctDctDctDcCGcCHcCGctHctHctHctHcyfaabcqQaaacAxaaaaaacAxaaaaaacAxcAxcAxcAxcAxcAxcAxaaaaaacAxaaaaaacAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaakUaabcqdcCIcqfaaacqdcCIcqfaaacqdcCIcqfaabakqaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaabcrOcEEcEDcDQcDQcDQcDVaaiaaibXmaaiaaiaaiaaicCNcCOcCPcCQcAJcAJcAJcCRcCScCTcAJcAJcAJcCScCUcCVcCWcCccCXcCYcCfcCZcDaacFcDbcDccwJcDecDfcBccDgcDhcDicDjcDkcDlcuncDmcupcDncDocDoctiaaaaaaaaaafacDpcDqcDrcDscDtcDucDvczicDwcDxcDycDzcDAcDBcDCcDDcDEcDFaaaaaaaaaaaaaaaaaaaaicDGcoScoSaaqcDHcoScoSaaqcDHcoScoSaaiaaaaaacqQaabcuNcuNcuNcuNcuNaaacqRaaacuNcuNcuNcuNcuNaaacqQaaacAxcAxcAxcAxaaacAxcAxcAxcAxcAxcAxcAxcAxcAxaaacAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaakqaaaaabaaaaaaaaaaabaabaabaaaaaaaabaabaaaakqaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabcrOcDQcDQcDQcDQcDQcDQaaicDRcDScDTcDUcypaaicDWcDXcDYcDZcxmcxmcEacEbcEccEdcEecEfcEgcEhaaicEicCWcCccEjcEkcCfaaicElaaicEmcEncuecDecDfcEocuecDhcDiczUczVcEpcvocEqcvpcErcEscEtctiaaaaaaaaabgFcEucEvcEvcEwachachbgHcExcEycEzcztcEzcEAaaiaaiabmavfaaiaaaaaaaaaaaaaaaaaaaaicoScoScoSaaqcEBcoScoSaaqcEBcoScoSaaiaaaaabcqQaaaaaaaabaabaabaaaaaacqRaabaaaaaaaabaabaaaaaacqQaaacAxcAxcAxcAxaaacAxcAxcAxcAxcAxcAxcAxcAxcAxaaacAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaacuacuakqacuacuakUakqakqakqakqacuakqakqacucECaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOcEFcDOcEHcEGcEJcEIaaicEMcENcEOcEPcEQcERcEScETcEUcDZcxmcEVcEWacFcEXcEYcEZcFacFbaujcFccDYcDZcFdcFeaaqcFfaaiabmaaicFgcFhcuecDecDfcBccuecFicDiczUcFjcFkcBfcFlcupcFmcDocDoctiaaaaaaaaacFnaaaaaaaaaaaaaaaaaaafacFocziczicFpcFqcFraaiaaccFscAycFuaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiaaiaaiaaicFvcFvcFvaaiaaaaaacqQcqQcqQcqQcqQaaaaaaaaacqRaaaaaaaaacqQcqQcqQcoccqQaaacAxcAxcAxcAxaaacAxcAxcAxcAxcAxcAxcAxcAxcAxaaacAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpacpacpacpacpacpacpacpacpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcrOcrOcrOcotcnncktcksaaicFxcFycFzcFzcFAcFBcAJcFCcFDcFEcFFcFGcFGcFHcFIcFJcFKcFLcFMcFHcFNcFOcFPcFQcxmcFRcFScFTcElaaicFUcFVcuecDecuecFWcuecDhcDiczUczVcFXcvocEqctictictictictiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafacFYcziczicAecFZcGaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFnaaaaaaaaaaaaaaaaaaaaaaaacGbcGbcGbaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaabcGcaabcqQaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabcwacuQcuPctJaabaabaaicGqcGrcFzcFzcGsaaicGtcGucGvcGwcGxcGycGzaaicGAcGBcGCcxmcGDaaicGEcGFcGGcGwcGwcGHcGIaaicGJaaicGKcGLcuecDecuecChcCicGMcGNcDjcGOcGPcuncGQcupcGRcGScGSctiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgFcGTcGUcGVcGWcGXcGYaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaaaaabaaacqQaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabcwacxdcyhcxjaabaaaaaicHkcGrcFzcFzcHlaaicCpcHnaaicHocHpcHpcHpaaicHqcHrcHscHtcHuaaicHpcHpcHpcHoaaicHvcGZaaicElaaicHxcHycHzcHAcHBcHCcHDcHEcyVcHFczVcHGcvocEqcvpcHHcHIcHJctiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaicHKcoPcoPcoPcoPcHLaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQcqQcqQcqQcqQaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHMaaaaaaaaacHMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcwacylcymcwacynaaaaaicHUcHVcFzcFzcHWaaicHXcHYaaicHZcIacIbcIcaDpcIdcIecIfcIgcHuaDpcIacIacIacIhcIicIjcHaaaicElcIlcImcIncIocHDcIpcIqcIrcIscItcIucIvcIwcBfcFlcupcIxcGScGSctiaabaabaaaaaaaaaaaaaaaaaaaaaaaacFnaaaaaaaaaaaaaaaaaacFnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHMcHMcHMcHMcHMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBQcBQcBQcBQcBQcBQcBQaaicIBcFycFzcFzcICaaicCZcIDaaiaaiclTaoIcIEcIFcIGcGwcIHcGwcIIcIJcIEaoIaFRaaiaaicIKcILaaicElaaicIMcINcIocIOcuccuecuecIPczQcIOczVcIQcvocEqctictictictictiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHMaaaaaacHMaaaaaacHMcHMcHMcHMcHMcHMcHMaaaaaacHMaaaaaacHMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBQcBQcBQcBQcBQcBQcBQaaicIXcIYcFzcFzcIZaaiaaicJaaaicJbcJccJccJdcJecJfcJfcJfcJfcJfcJecJgcJccJccJhaaicJiaaiaaicElaaicJjcHzcJkcJlcJmcJncJocJlcJocJlcJqcHDcJrcEqaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHMcHMcHMcHMaaacHMcHMcHMcHMcHMcHMcHMcHMcHMaaacHMcHMcHMcHMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBQcBQcBQcBQcBQcBQcBQaaicJBcJCcFzcFzcJDaaicJEcJFcJGcJHaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaabaaaaaacJIcJJcJKcJLaaicJMacFcJNcJOcJPcJQcJRcJScJTcJUcuecJVcJWcJXcJYcEqaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxaaaaaacAxcAxcAxcAxcAxcAxcAxaaaaaacAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHMcHMcHMcHMaaacHMcHMcHMcHMcHMcHMcHMcHMcHMaaacHMcHMcHMcHMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBQcBQcBQcBQcBQcBQcBQaaicIBcFycFzcFzcKeaaicKfcKgcKgaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaaaaacKgcKgcKfaaicCZaaicKhcKicKjcKkcHwcKmcKncKkcKncKocKncKocKpcEqaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKqcKqcKqcKqcKqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHMcHMcHMcHMaaacHMcHMcHMcHMcHMcHMcHMcHMcHMaaacHMcHMcHMcHMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBQcBQcBQcBQcBQcBQcBQaaicKBcKCcFzcFzcKDaaicKEcKFcKgaabaabaabcKGaaaaaaaaaaaacKGaaaaaacKGaabaabaabcKgcKHcKIaaicCZaaiaabcKJaabcPhcPecKMcKNcKOcKNcKPcKNcKPcKQcKRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKqcKqcKqcKqcKqcKqcKqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaicKVcKCcFzcFzcKeaaicKWcKgcKXaaaaaaaabaaaaaaaaaaaaaaacKYaaaaaaaaaaabaaaaaacKgcKgcKWaaicCZaaicticKZcvpcKZcticKZcvpcKZcticLacvpcLbctiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKqcKqcKqcKqcKqcKqcKqcKqcKqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaicLicFycFzcFzcLjaaicLkcLlcKgaaaaaaaabaaaaaaaabaabaabaabaabaaaaaaaabaaaaaacKgcLmcLnaaicLoaaicticLpcLqcLrcticLscLtcLucticLvcLwcLxctiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKqcKqcKqcKqcKqcKqcKqcKqcKqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMcHMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaiaaiaaiaaiaaiaaiaaiaaicKfcKgaaaaaaaabcKGaabaabaacaacaacaabcLzaaaaabaaaaaacKgcKfaaiaaicCZaaicticLAcLBcLActicLCcLDcLCcticLEcLFcLEctiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKqcKqcKqcKqcKqcKqcKqcKqcKqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAxcAxcAxcAxcAxcAxcAxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -12736,28 +12754,28 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaabaaqcNbcNccMXcMXcNdcNecNfaaiaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaqaaqaaJcMXcMXaaiabmaaiaaiaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaofaofaaaaabaaacNgcNhcMXcMXcNicNjcNgaabaabaabaofaofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuacucNkcNkacuacuaaacNlcNmcNncNocNpcNqcNlaaaacuacucNkcNkacuacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuacucNkcNkacuacuaaacNlcxJcNncNocNpcNqcNlaaaacuacucNkcNkacuacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQcLQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcNscNtcNuacuacucNvcNwcNxcNycMXcNzcNvacuacucNAcNBcNCcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXcLXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLQcLQcLQcLQcLQaaacLQcLQcLQcLQcLQaaacLQcLQcLQcLQcLQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcNscNCcNFcNGaaqaaqaaJcNHaaqcNIaosaaqaaqcNGcNJcNscNCcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLXcLXcLXcLXcLXaaacLXcLXcLXcLXcLXaaacLXcLXcLXcLXcLXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLQcLQcLQcLQcLQaaacLQcLQcLQcLQcLQaaacLQcLQcLQcLQcLQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcNKcNLcNMcNMcNNcNOcNPcNQcNRcNRcNScNTcNUcNVcNVcNWcNXcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLXcLXcLXcLXcLXaaacLXcLXcLXcLXcLXaaacLXcLXcLXcLXcLXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLQcLQcLQcLQcLQaaaaaaaaaaaaaaaaaaaaacLQcLQcLQcLQcLQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcNYcNZcOacOaaaqcObcOccOccOdcOccOccOeaaqcOacOacOfcOgcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLXcLXcLXcLXcLXaaaaaaaaaaaaaaaaaaaaacLXcLXcLXcLXcLXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcNYcNDaaaaaaaaqcOhcOicOjcOkcOlcOmcOnaaqaaaaaacNrcOgcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcOoaaqaaqaaqaaqcOpcOqcOccOccOrcOscOtaaqaaqaaqaaqcOucNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcNYcNDaaaaaaaaiafaaaiaiVcOvaaiaaiabmaaiaaaaaacNrcOgcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcNYcNDaaaaaaaaicOwcOxcOycOzcOAcOBcOCaaiaaaaaacNrcOgcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcNYcNDaaaaaiaaicODcOBbjobjobjocOBcOEaaiaaiaaacNrcOgcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcNYcNDaaaaaiaaicOFbjobjocOGbjobjocOHaaiaaiaaacNrcOgcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcOIaaqaaqaaiaaicOBbjocOJcOJcOJbjocOBaaiaaiaaqaaqcOKcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcNYcNDaaiaaicOLcOBcOMcOJcONcOJcOMcOBcOOaaiaaicNrcOgcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcNYcNDaaaaaiaaicOBbjocOPcOQcORbjocOBaaiaaicNGcOScOgcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcNYcNDaaaaaiaaicOFbjobjocOTbjobjocOHaaiaaicOUcOVcOgcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcNYcNDaaaaaiaaicOWcOXcOYcOZcPacPbcOWaaiaaicPccPdcPecNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcPfaaqaaqaaqaaiaaiaaiaaicPgaaiaaiaaiaaiaaqaaqaaqcPhcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcNYcNDaaaaaaaaaaaiaaiaaicPiaaiaaiaaiaaaaaaaaacNrcOgcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcNYcNDaaaaabaaaaaqcPjcPkbXmcPlcPmaaqaaaaaaaaacNrcOgcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcNYcPncNGcPocPoaaqcPpcPqcPrcPscPtaaqcNGcNGcNGcOScOgcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcPucNMcNMcNMcNMcPvcPwcPxcPycPzcPAcPBcPCcNVcNVcNVcPDcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEaaacNEcNEcNEcNEcNEaaacNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuaaacOacOacOacOacOaaaqcPEcPFcPGcPHcPIabZcPJcOacOacPKcPKaaaacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLQcLQcLQcLQcLQaaacLQcLQcLQcLQcLQaaacLQcLQcLQcLQcLQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcAkcxLcBucBucNNcNOcNPcNQcNRcNRcNScNTcNUcCAcCAcDdcJpcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLXcLXcLXcLXcLXaaacLXcLXcLXcLXcLXaaacLXcLXcLXcLXcLXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLQcLQcLQcLQcLQaaaaaaaaaaaaaaaaaaaaacLQcLQcLQcLQcLQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcKzcNZcOacOaaaqcObcOccOccOdcOccOccOeaaqcOacOacOfcKAcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLXcLXcLXcLXcLXaaaaaaaaaaaaaaaaaaaaacLXcLXcLXcLXcLXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcKzcNDaaaaaaaaqcKLcOicOjcOkcOlcOmcOnaaqaaaaaacNrcKAcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcKSaaqaaqaaqaaqcOpcOqcOccOccOrcOscOtaaqaaqaaqaaqcKTcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcKzcNDaaaaaaaaiafaaaiaiVcOvaaiaaiabmaaiaaaaaacNrcKAcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcKzcNDaaaaaaaaicOwcOxcOycOzcOAcOBcOCaaiaaaaaacNrcKAcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcKzcNDaaaaaiaaicODcOBbjobjobjocOBcOEaaiaaiaaacNrcKAcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcKzcNDaaaaaiaaicOFbjobjocOGbjobjocOHaaiaaiaaacNrcKAcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcKUaaqaaqaaiaaicOBbjocOJcOJcOJbjocOBaaiaaiaaqaaqcLccNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcKzcNDaaiaaicOLcOBcOMcOJcONcOJcOMcOBcOOaaiaaicNrcKAcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcKzcNDaaaaaiaaicOBbjocOPcOQcORbjocOBaaiaaicNGcOScKAcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcKzcNDaaaaaiaaicOFbjobjocOTbjobjocOHaaiaaicOUcOVcKAcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcKzcNDaaaaaiaaicOWcOXcOYcOZcPacPbcOWaaiaaicPccPdcLdcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcLeaaqaaqaaqaaiaaiaaiaaicPgaaiaaiaaiaaiaaqaaqaaqcLfcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcKzcNDaaaaaaaaaaaiaaiaaicPiaaiaaiaaiaaaaaaaaacNrcKAcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcKzcNDaaaaabaaaaaqcPjcPkbXmcPlcPmaaqaaaaaaaaacNrcKAcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcKzcPncNGcPocPoaaqcPpcPqcPrcPscPtaaqcNGcNGcNGcOScKAcNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucNrcLgcBucBucBucBucHScIkcHTcPycPzcPAcPBcLhcCAcCAcCAcLycNDacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEaaacNEcNEcNEcNEcNEaaacNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuaaacOacOacOacOacOaaaqcIycPFcPGcPHcLGabZcPJcOacOacPKcPKaaaacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEaaacNEcNEcNEcNEcNEaaacNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuacuacuacuacuacuacuaaqcPLcPMcPNcPOcPPaaqacuacuacuacuacuacuacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaacNEcNEcNEcNEcNEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaqaaqcPQcPRcPSaaqaaqaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -12787,8 +12805,8 @@ cQecQPcQXcQKcQLcQRcQOcQScQMcQUcQVcQWcQNcQYcQTcQQcQOcQRcQVcQXcQKcQScQWcQLcQYcQUcP cQhcQLcQUcQNcQScQTcQXcQOcQVcQRcQYcROcRPcRQcROcROcQXcQTcQYcQUcQNcQOcQMcQScQKcQRcPVcQZcRacRbcRccRgcRdcRecQwcQicQjcQkcQlcQmcQncQocQZcRacRbcRccRgcRdcRecRfcQicQjcQkcQlcQmcQncQocQZcQqcQEcQFcQLcQUcQNcQScQTcQXcQOcQVcQRcQYcQMcQQcQKcQWcQPcQXcQTcQYcQUcQNcQOcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRRcRRcRRcRRcRRcRRcRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRhcRScRicRicRicRicRkcRTcRUcRVcRUcRWcRkcRXcRYcRZcSacRXcRkcRpcRpcRBcRpcRpcRkcRqcRqcRqcRqcRqcRkcRrcRrcRrcRrcRrcRkcRDcREcREcREcRFcRv cPUcQScQRcQQcQOcQWcQUcQXcQYcQTcSbcRPcSccSdcSecSfcROcQWcQKcQRcQQcQXcQVcQOcQNcQTcQbcQkcQlcQmcQncQocQZcRacQrcRccRgcRdcRecRfcQicQjcQkcQlcQicQjcQkcQlcRacRbcRccRgcRdcRecRfcQicQjcQkcQAcQEcQFcQScQRcQQcQOcQWcQUcQXcQYcQTcQKcQVcQPcQNcQMcQQcQUcQWcQKcQRcQQcQXcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRRcRRcShcSicSjcSkcShcRRcRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRhcRicRScRicRicSlcRkcSmcRUcRVcRUcSncRkcRXcSocSpcSqcRXcRkcRpcRpcRBcRpcRpcRkcRqcRqcRqcRqcRqcRkcRrcRrcRrcRrcRrcRkcSrcREcREcREcSscRv cPXcQOcQTcQPcQXcQMcQRcQUcQKcStcSucSccSdcSecSvcSvcSwcSxcQNcQTcQPcQUcQYcQXcQQcQWcPYcRgcRdcRecRfcQicQjcQkcQAcQmcQncQocQZcRacRbcRccRgcSycSzcSAcSBcSCcSDcQlcQmcQncQocQZcRacRbcRccRgcQucQEcQFcQOcQTcQPcQXcQMcQRcQUcSbcStcSEcSFcSGcSHcSIcQScQRcQMcQNcQTcQPcQUcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSJcSKcSLcSgcSKcSMcSgcSKcSNcSgcSOcSPcSgcSKcSMcSgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRRcRRcShcShcSQcSRcSScShcShcRRcRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRhcRicRwcRScRicRJcRkcRLcRLcRLcRLcRLcRkcSTcSocSpcSqcSTcRkcRpcRpcRpcRpcRpcRkcRqcRqcRqcRqcRqcRkcRrcRrcRrcRrcRrcRkcSrcREcREcREcSscRv -cQacQXcQWcQLcQUcQVcQTcQRaaacSUcSVcSVcSWcSXcSccSYcSYcSxcQQcQWcQLcQRcQKcQUcQPcQMcQgcRfcQicQjcQkcQlcQmcQncQDcQZcRacRbcRccRgcRdcRecRfcSAcSZcTacTbcTccTdcQocQZcRacRbcRccRgcRdcRecRfcQxcQEcQFcQXcQWcQLcQUcQVcQTcSwcSxcTecTecTecTecTecSFcTfcQTcQVcQQcQWcQLcQRcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSgcTgcThcSgcTgcSPcSgcTgcTicSgcTgcSMcSgcTgcSLcSgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRRcShcShcSScSScTjcSScSScShcShcRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRhcRicRicRicRScRicRkcTkcTlcTkcTlcTkcRkcTmcSocSpcSqcTmcRkcRpcRpcRpcRpcRpcRkcRqcRqcRqcRqcRqcRkcRrcRrcRrcRrcRrcRkcSrcREcREcREcSscRv -cPZcQUcQMcQScQRcQYcQWcQTaaacTncSWcSWcTocTpcTqcSdcSdcTrcQPcQMcQScQTcQNcQRcQLcQVcQdcRbcRccRgcRdcRecRfcQicQycQkcQlcQmcQncQocQZcRacRbcTscTtcTucTvcSZcTwcQjcQkcQlcQmcQncQocQZcRacRbcQscQEcQFcQUcQMcQScQRcQYcStcSxcTecTecTecTecTecTecTecTxcStcQXcQPcQMcQScQTcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRRcShcSScSScSScSScSScSScSScShcRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRhcRicTycRicRicRScRkcRycRzcRycRzcRycRkcTmcSocSpcSqcTmcRkcRpcRBcRpcRBcRpcRkcRqcRqcRqcRqcRqcRkcRrcRCcRrcRCcRrcRkcSrcREcREcREcSscRv +cQacQXcQWcQLcQUcQVcQTcQRcQNcSUcSVcSVcSWcSXcSccSYcSYcSxcQQcQWcQLcQRcQKcQUcQPcQMcQgcRfcQicQjcQkcQlcQmcQncQDcQZcRacRbcRccRgcRdcRecRfcSAcSZcTacTbcTccTdcQocQZcRacRbcRccRgcRdcRecRfcQxcQEcQFcQXcQWcQLcQUcQVcQTcSwcSxcTecTecTecTecTecSFcTfcQTcQVcQQcQWcQLcQRcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSgcTgcThcSgcTgcSPcSgcTgcTicSgcTgcSMcSgcTgcSLcSgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRRcShcShcSScSScTjcSScSScShcShcRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRhcRicRicRicRScRicRkcTkcTlcTkcTlcTkcRkcTmcSocSpcSqcTmcRkcRpcRpcRpcRpcRpcRkcRqcRqcRqcRqcRqcRkcRrcRrcRrcRrcRrcRkcSrcREcREcREcSscRv +cPZcQUcQMcQScQRcQYcQWcQTcQQcTncSWcSWcTocTpcTqcSdcSdcTrcQPcQMcQScQTcQNcQRcQLcQVcQdcRbcRccRgcRdcRecRfcQicQycQkcQlcQmcQncQocQZcRacRbcTscTtcTucTvcSZcTwcQjcQkcQlcQmcQncQocQZcRacRbcQscQEcQFcQUcQMcQScQRcQYcStcSxcTecTecTecTecTecTecTecTxcStcQXcQPcQMcQScQTcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRRcShcSScSScSScSScSScSScSScShcRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRhcRicTycRicRicRScRkcRycRzcRycRzcRycRkcTmcSocSpcSqcTmcRkcRpcRBcRpcRBcRpcRkcRqcRqcRqcRqcRqcRkcRrcRCcRrcRCcRrcRkcSrcREcREcREcSscRv cPVcQRcQVcQOcQTcQKcQMcQWcSGcSvcSYcSYcTzcSecTocSWcSWcSYcTAcQVcQOcQWcQQcQTcQScQYcPTcQlcQmcQncQocQZcRacRbcQscRgcRdcRecRfcQicQjcQkcQlcSzcTucTvcSZcTacTBcRccRgcRdcRecRfcQicQjcQkcQlcQBcQEcQFcQRcQVcQOcQTcQKcSUcTecTecTecTecTecTecTecTecTecSUcQUcQLcQVcQOcQWcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSgcSKcThcSgcTCcSLcSgcSKcSLcSgcTDcSMcSgcSKcSPcSgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRRcTEcSScSScSScSScSScSScSScTEcRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRhcRJcRicTFcRicRwcRkcRlcRmcRlcRmcRlcRkcTGcTHcTIcTJcTGcRkcRpcRpcRpcRpcRpcRkcRqcRqcRqcRqcRqcRkcRrcRrcRrcRrcRrcRkcTKcTLcTLcTLcTMcRv cQbcQTcQYcQXcQWcQNcSGcSGcTNcSccTOcTOcTPcSXcTzcSWcSWcSYcTAcTAcTQcQMcQPcQWcQOcQKcQccRacRbcRccRgcRdcRecRfcQxcQjcQkcQlcQmcQncQocQZcRacTRcTScTTcTUcSzcTTcQicQjcQkcQlcQmcQncQocQZcRacQrcQEcQFcQTcQYcQXcQWcQNcSIcTecTecTecTecTecTecTecTecTecSbcQRcQScQYcQXcQMcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSgcTgcSLcSgcTgcSMcSgcTgcSMcSgcTgcTVcSgcTgcTWcSgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRRcShcTXcSScSScTYcSScSScTZcShcRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUacUbcUbcUbcUbcUbcRRcUbcUbcUbcUbcUbcRRcUbcUbcUbcUbcUbcRRcUccUccUccUccUccRRcUccUccUccUccUccRRcUccUccUccUccUccRRcUccUccUccUccUccUd cPYcQWcQKcQUcQMcQQcTQcSYcSVcUecSYcSVcUecSdcTPcSdcTPcTOcTpcTocTfcQVcQLcQMcQXcQNcQfcQjcQkcQlcQmcQncQocQZcQqcRbcRccRgcRdcRecRfcQicQjcQncQlcQmcQncQocRccRacRbcRccRgcRdcRecRfcQicQjcQzcQEcQFcQWcQKcQUcQMcQQcSFcTecTecTecTecTecTecTecTecTecSEcQTcQOcQKcQUcQVcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgcSgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRRcShcUfcSScSScSScSScSScUgcShcRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRhcUhcUicUjcUhcUicRkcUkcUkcUkcUkcUkcRkcUlcUlcUlcUlcUlcRkcUmcUmcUncUocUocRkcUpcUpcUpcUpcUpcRkcUqcUrcUrcUrcUscRkcUtcUucUucUucUvcRv @@ -12816,11 +12834,11 @@ cPWcQQcQOcQYcQPcQUcQScQLcQWcQXcQMcQTcQKcQVcQRcQNcQScQUcQMcQOcQYcQLcQTcQPcQVcQXcQ cQecQPcQXcQKcQLcQRcQOcQScQMcQUcQVcQWcQNcQYcQTcQQcQOcQRcQVcQXcQKcQScQWcQLcQYcQUcPZcQEcPXcQOcQTcQPcQXcQMcQRcQUcQKcQWcQNcQYcQLcQQcQVcQScQRcQMcQNcQTcQPcQUcQYcQXcQQcQWcPYcQEcQFcQOcQNcQTcQOcQTcQOcQNcQTcQOcQNcQTcQOcQNcQTcQOcQNcQTcQOcQNcQTcQOcQTcQOcQNcQTcQOcQNcQTcQOcQNcQTcQOcQNcQTaaacQOcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXZcYccYccYccYccYPcYPcXZcXZcYQcXZcXZaaaaaacYkcYGcYRcYRcYRcYGcYlcYScYTcYlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYycYzcYzcYAcYxaaacYycYKcYUcYVcYWcYKcYAaaacYxcYycYzcYzcYAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa cQhcQLcQUcQNcQScQTcQXcQOcQVcQRcQYcQMcQQcQKcQWcQPcQXcQTcQYcQUcQNcQOcQMcQScQKcQRcPVcQEcQacQXcQWcQLcQUcQVcQTcQRcYXcYYcYZcZacTNcRQcTrcZbcZccZdcZecQWcQLcQRcQKcQUcQPcQMcQgcQEcQFcQXcQQcQWcQXcQXcQQcQWcQXcQQcQWcQXcQQcQWcQXcQQcQWcQXcQXcQQcQWcQXcQQcQWcQXcQQcQWcQXcQQcQWcQXcQQcQWcQXcQXcQQaaacQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXZcZfcZfcYccZgcZhcZicXZcZjcYQcZkcXZaaaaaacYkcYGcZlcZmcZncYGcYlcYlcYlcYlcYlcYlcYlcYlcYlcYlcYlcYlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYKcZocZpcYKcYxcYycYKcZqcZrcZscZrcZqcYKcYAcYxcYKcZtcZucYKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa cPUcQScQRcQQcQOcQWcQUcQXcQYcQTcQKcQVcQPcQNcQMcQLcQUcQWcQKcQRcQQcQXcQVcQOcQNcQTcQbcQEcPZcQUcQMcQScQRcQYcQWcQTcZecZvcZwcZxcZycZzcZAcZBcZCcZDcZEcQMcQScQTcQNcQRcQLcQVcQdcQEcQFcQXcQPcQPcQVcQXcQPcQVcQXcQPcQVcQXcQPcQVcQXcQPcQVcQXcQXcQPcQPcQVcQXcQPcQVcQXcQPcQVcQXcQPcQVcQXcQPcQVcQXcQPcQPcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXZcYccYccYccZgcZFcZGcXZcZHcYQcZIcXZaaaaaacYkcYGcZlcZmcZncYGcZJcZKcZLcZMcZNcZOcZKcZPcZQcZRcZRcYlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYKcZScZTcYKcYzcZUcZVcZqcZrcZWcZrcZqcZVcZXcYzcYKcZYcZZcYKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cPXcQgcQfcPVcQdcQecQccPTcPXcPWcQacPUcQbcPZcQhcPYcQccQecQacQfcPVcPTcPUcQdcPZcPWcPYcQEcPVcQRcQVcQOcQTcQKcQMcQWcZEcZBcZCdaadabdaccZycZxdaddaedafcQVcQOcQWcQQcQTcQScQYcPTcQEcQFcQUcQLcQLcQYcQUcQLcQYcQUcQLcQYcQUcQLcQYcQUcQLcQYcQUcQUcQLcQLcQYcQUcQLcQYcQUcQLcQYcQUcQLcQYcQUcQLcQYcQUcQLcQLcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXZdagcYccYccYccYccXZcXZcXZcXZcXZcXZaaaaaacYkcYGcZlcZmcZncYGdahcZKcZOcZOcZNcZOcZKcZOcZRcZRcZRcYlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYKdaidajcYKcYzdakcZVcZqcZrcZqcZrcZqcZVdalcYzcYKdamdancYKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cQacQXcQWcQLcQUcQVcQTcQRcQNcQMcQQcQKcQScQPcQYcQOcQTcQVcQQcQWcQLcQRcQKcQUcQPcQMcQgcQEcQbcQTcQYcQXcQWcQNcQVcQMdafcZxdadcZDcZwcZvdabdaadaocZAdapcQYcQXcQMcQPcQWcQOcQKcQccQEcQFcQYcQTcQTcQScQYcQTcQScQYcQTcQScQYcQTcQScQYcQTcQScQYcQYcQTcQTcQScQYcQTcQScQYcQTcQScQYcQTcQScQYcQTcQScQYcQMcQTcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXZdaqdardasdatcYcdaudavdawdaxdaycXZaaaaaacYkcYGcZmcZmcZmdazdaAdaBcZOcZOcZNcZOcZKcZPcZQcZRcZRcYlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYKdaCdaDcYKcYKcYKcYKcYKcYKdaEcYKcYKcYKcYKcYKcYKdaFdaGcYKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cPZcQUcQMcQScQRcQYcQWcQTcQQcQVcQPcQNcQOcQLcQKcQXcQWcQYcQPcQMcQScQTcQNcQRcQLcQVcQdcQEcPYcQWcQKcQUcQMcQQcQYcQVdapdaadaodaecZCcZBcZwcZDcZzcZydaHcQKcQUcQVcQLcQMcQXcQNcQfcQEcQFcQKcQWcQWcQOcQKcQWcQOcQKcQWcQOcQKcQWcQOcQKcQWcQOcQKcQKcQWcQWcQOcQKcQWcQOcQKcQWcQOcQKcQWcQOcQKcQWcQOcQKcQWcQWcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXZdaIdaJdaKcYccYccYcdaLdaMdaNdaOcXZaaaaaacYkcYGcZmcZmcZmdazdaAdaBcZOcZOcZOcZOdaPcZOcZRcZRcZRcYlaaaaaaaaaaaaaaaaaaaaaaaaaaacYzdaQdaRdaSdaSdaSdaSdaSdaScYKdaScYKdaSdaSdaSdaSdaSdaSdaRdaTcYzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cPVcQRcQVcQOcQTcQKcQMcQWcQPcQYcQLcQQcQXcQScQNcQUcQMcQKcQLcQVcQOcQWcQQcQTcQScQYcPTcQEcQgcQMcQNcQRcQVcQPcQKcQYdaHcZDcZzcZAdadcZxcZCdaedacdabdaUcQNcQRcQYcQScQVcQUcQQcPWcQEcQFcQNcQMcQMcQXcQNcQMcQXcQNcQMcQXcQNcQMcQXcQNcQMcQXcQNcQNcQMcQMcQXcQNcQMcQXcQNcQMcQXcQNcQMcQXcQNcQMcQXcQNcQMcQMcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXZdaVdaJdaKcYccYccYcdaWdaXdaWdaXcXZaaaaaacYkcYGdaYcZmdaZcYGdahcZKcZOcZOcZNcZOcZKcZPcZQcZRcZRcYlaaaaaaaaaaaaaaaaaaaaaaaaaaacYzdbadbbdbcdbddbedbfcYKdaEcYKdaEcYKdaEcYKdbgdbhdbidbjdbbdbkcYzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cQbcQTcQYcQXcQWcQNcQVcQMcQLcQKcQScQPcQUcQOcQQcQRcQVcQNcQScQYcQXcQMcQPcQWcQOcQKcQccQEcQdcQVcQQcQTcQYcQLcQNcQKdaUcQUcQQcZydaodaadadcZAcQPcQMdblcQQcQTcQKcQOcQYcQRcQPcQecQEcQFcQQcQVcQVcQUcQQcQVcQUcQQcQVcQUcQQcQVcQUcQQdbmdblcZecZedbmdbmdblcQQcQVcQUcQQcQVcQUcQQcQVcQUcQQcQVcQUcQQcQVcQVcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXZdaIdbndbodagdbpdaudbqdaOdbrdbscXZaaaaaacYkdbtcYGdbucYGdbvcZJcZKcZOcZOcZNcZOcZKcZOcZRcZRcZRcYlaaaaaaaaaaaaaaaaaaaaaaaaaaacYzdbwdbbcZqcZqcZqdbxcYKcZqcZqcZqcZqcZqcYKcZqcZqdbycZqdbbdbzcYzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cPXcQgcQfcPVcQdcQecQccPTcPXcPWcQacPUcQbcPZcQhcPYcQccQecQacQfcPVcPTcPUcQdcPZcPWcPYcQEcPVcQRcQVcQOcQTcQKcQMcQWcZEcZBcZCdaadabdaccZycZxdaddaedafcQVcQOcQWcQQcQTcQScQYcPTcQEcQFcQUcQLcQLcQYcQUcQLcQYcQUcQLcQYcQUcQLcQYcQUcQLcQYcQUcQUcQLcQLcQYcQUcQLcQYcQUcQLcQYcQUcQLcQYcQUcQLcQYcQUcQLcQLcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXZdagcYccYccYccYccXZcXZcXZcXZcXZcXZaaaaaacYkcYGcZlcZmcZncYGdahcZKcZOcZOcZNcZOcZKcZOcZRcZRcZRcYlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYKcIzdajcYKcYzdakcZVcZqcZrcZqcZrcZqcZVdalcYzcYKdamcIAcYKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cQacQXcQWcQLcQUcQVcQTcQRcQNcQMcQQcQKcQScQPcQYcQOcQTcQVcQQcQWcQLcQRcQKcQUcQPcQMcQgcQEcQbcQTcQYcQXcQWcQNcQVcQMdafcZxdadcZDcZwcZvdabdaadaocZAdapcQYcQXcQMcQPcQWcQOcQKcQccQEcQFcQYcQTcQTcQScQYcQTcQScQYcQTcQScQYcQTcQScQYcQTcQScQYcQYcQTcQTcQScQYcQTcQScQYcQTcQScQYcQTcQScQYcQTcQScQYcQMcQTcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXZdaqdardasdatcYcdaudavdawdaxdaycXZaaaaaacYkcYGcZmcZmcZmdazdaAdaBcZOcZOcZNcZOcZKcZPcZQcZRcZRcYlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYKcIRdaDcYKcYKcYKcYKcYKcYKdaEcYKcYKcYKcYKcYKcYKdaFcIScYKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cPZcQUcQMcQScQRcQYcQWcQTcQQcQVcQPcQNcQOcQLcQKcQXcQWcQYcQPcQMcQScQTcQNcQRcQLcQVcQdcQEcPYcQWcQKcQUcQMcQQcQYcQVdapdaadaodaecZCcZBcZwcZDcZzcZydaHcQKcQUcQVcQLcQMcQXcQNcQfcQEcQFcQKcQWcQWcQOcQKcQWcQOcQKcQWcQOcQKcQWcQOcQKcQWcQOcQKcQKcQWcQWcQOcQKcQWcQOcQKcQWcQOcQKcQWcQOcQKcQWcQOcQKcQWcQWcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXZdaIdaJdaKcYccYccYcdaLdaMdaNdaOcXZaaaaaacYkcYGcZmcZmcZmdazdaAdaBcZOcZOcZOcZOdaPcZOcZRcZRcZRcYlaaaaaaaaaaaaaaaaaaaaaaaaaaacYzdaQcITdaSdaSdaSdaSdaSdaScYKdaScYKdaSdaSdaSdaSdaSdaScITdaTcYzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cPVcQRcQVcQOcQTcQKcQMcQWcQPcQYcQLcQQcQXcQScQNcQUcQMcQKcQLcQVcQOcQWcQQcQTcQScQYcPTcQEcQgcQMcQNcQRcQVcQPcQKcQYdaHcZDcZzcZAdadcZxcZCdaedacdabdaUcQNcQRcQYcQScQVcQUcQQcPWcQEcQFcQNcQMcQMcQXcQNcQMcQXcQNcQMcQXcQNcQMcQXcQNcQMcQXcQNcQNcQMcQMcQXcQNcQMcQXcQNcQMcQXcQNcQMcQXcQNcQMcQXcQNcQMcQMcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXZdaVdaJdaKcYccYccYcdaWdaXdaWdaXcXZaaaaaacYkcYGdaYcZmdaZcYGdahcZKcZOcZOcZNcZOcZKcZPcZQcZRcZRcYlaaaaaaaaaaaaaaaaaaaaaaaaaaacYzdbacIUdbcdbddbedbfcYKdaEcYKdaEcYKdaEcYKdbgdbhdbidbjcIUdbkcYzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cQbcQTcQYcQXcQWcQNcQVcQMcQLcQKcQScQPcQUcQOcQQcQRcQVcQNcQScQYcQXcQMcQPcQWcQOcQKcQccQEcQdcQVcQQcQTcQYcQLcQNcQKdaUcQUcQQcZydaodaadadcZAcQPcQMdblcQQcQTcQKcQOcQYcQRcQPcQecQEcQFcQQcQVcQVcQUcQQcQVcQUcQQcQVcQUcQQcQVcQUcQQdbmdblcZecZedbmdbmdblcQQcQVcQUcQQcQVcQUcQQcQVcQUcQQcQVcQUcQQcQVcQVcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXZdaIdbndbodagdbpdaudbqdaOdbrdbscXZaaaaaacYkdbtcYGdbucYGdbvcZJcZKcZOcZOcZNcZOcZKcZOcZRcZRcZRcYlaaaaaaaaaaaaaaaaaaaaaaaaaaacYzdbwcIUcZqcZqcZqdbxcYKcZqcZqcZqcZqcZqcYKcZqcZqdbycZqcIUdbzcYzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa cPYcQWcQKcQUcQMcQQcQYcQVcQScQNcQOcQLcQRcQXcQPcQTcQYcQQcQOcQKcQUcQVcQLcQMcQXcQNcQfcQEcPTcQYcQPcQWcQKcTNcYZcSudbAdbBcRQdabcZzcZDdaocZycQLcQVdbCcQPcQWcQNcQXcQKcQTcQLcQhcQEcQFcQPcQYcQYcQRcQPcQYcQRcQPcQYcQRcQPcQYcQRcQPdbDdbEcZEcZEdbDdbFdbCcQPcQYcQRcQPcQYcQRcQPcQYcQRcQPcQYcQRcQPcQYcQYcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXZcXZcXZcXZcXZcXZcXZcXZcXZcXZcXZcXZaaaaaacYkaaadbtdbGdbvaaacZJcZKcZOcZOcZNcZOcZKcZPcZQcZRcZRcYlaaaaaaaaaaaaaaaaaaaaaaaaaaacYycYKdbHdbIdbJdbKdbLcYKdbMcZqcZqcZqdbNcYKdbOdbPdbQdbRdbHcYKcYAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa cQgcQMcQNcQRcQVcQPcQKcQYcQOcQQcQXcQScQTcQUcQLcQWcQKcQPcQXcQNcQRcQYcQScQVcQUcQQcPWcQEcQccQKcQLcQMcQNdaHcZvdaccZAcZycZBcZwdacdaecZzdabcQScQYdbScQLcQMcQQcQUcQNcQWcQScPUcQEcQFcQLcQKcQKcQTcQLcQKcQTdafdbTdbSdafdbTdbSdafdbTdbUdbVdbVdbWdbWdbSdafdbTdbSdafdbTdbSdafcQKcQTcQLcQKcQTcQLcQKcQKcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYlcYlcYlcYlcYlcYlcYlcYlcYlcYlcYlcYlcYlcYlcYlcYlcYlcYlaaaaaaaaaaaaaaaaaaaaaaaaaaadbXcYKdbYdbYcYKcYKcYKcYKdbZcZqcZqcZqdcacYKcYKcYKcYKdbYdbYcYKdcbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa cQdcQVcQQcQTcQYcQLcQNcQKcQXcQPcQUcQOcQWcQRcQScQMcQNcQLcQUcQQcQTcQKcQOcQYcQRcQPcQecQEcQfcQNcQScQVcQQdaUcZBcZvcZydabcZxcZCcZvcZAdaccZwcZdcZdcZdcZddbmcQPcQRcQQcQMcQOcPXcQEcQFcQScQNcQNcQWcQScQNcQWdapdcccQWcQSdccdcddapdccdcedcfdcfdccdccdcedapcYXdcecQScQNdcedapcQNcQWcQScQNcQWcQScQNcQNcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbXdcgdcgdcbaaaaaacYKdchcZqcZqcZqdcicYKaaaaaadbXdcgdcgdcbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -12848,7 +12866,7 @@ cQVcQLcQUcQNcQScQTcQXcQOcQVcQRcQYcQMcQQcQKcQWcQPcQXcQTcQYcQUcQNcQOcQMcQScQKcQRcQ cQEcQEcQEcQEcQEcQEcQEcQEcQEcQEcQEcQEcQEcQEcQEcQEcQEcQEcQEcQEcQEcQEcQEcQEcQEcQEcQEcQEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQFcQXcQPcQPcQVcQXcQPcQVcQXcQPcQVcQXcQPcQVcQXcQPcQVcQXcQXcQPcQPcQVcQXcQPcQVcQXcQPcQVcQXcQPcQVcQXcQPcQVcQXcQPcQPcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcudcJddzdfOdfPdfQdfRdfSddzdfTddFddFddzdfUdfVdfWdfXdfYddzddKdcKdcJdcJddRdfZdfNdfNdfNdfNdfNdgadcuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQFcQUcQLcQLcQYcQUcQLcQYcQUcQLcQYcQUcQLcQYcQUcQLcQYcQUcQUcQLcQLcQYcQUcQLcQYcQUcQLcQYcQUcQLcQYcQUcQLcQYcQUcQLcQLcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcudcJddzddFddFddFdeQddFdgbddFddFddFdgcddFdeQddFdeQdgdddzddKddlddOdgedesdcudgfdgfdgfdgfdgfdggdcuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQFcQScQKcQRcQScQRcQScQKcQRcQScQKcQRcQScQKcQRcQScQKcQRcQScQKcQRcQScQRcQScQKcQRcQScQKcQRcQScQKcQRcQScQKcQRcQScQScQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcudcJddzdghdgiddFddFddFdgjddFddFddFdgkddFddFddFddFddFddzddKddRdcudcudcudcudcudcudcudcudcudcudcuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQFcQOcQNcQTcQOcQTcQOcQNcQTcQOcQNcQTcQOcQNcQTcQOcQNcQTcQOcQNcQTcQOcQTcQOcQNcQTcQOcQNcQTcQOcQNcQTcQOcQNcQTaaacQOcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcudcJddzdghdgiddFdgldgmddzdgndgodgnddzdgpdgqddFddFddFddzdgrdcJdcuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQFcQOcQNcQTcQOcQTcQOcQNcQTcQOcQNcQTcQOcQNcQTcQOcQNcQTcQOcQNcQTcQOcQTcQOcQNcQTcQOcQNcQTcQOcQNcQTcQOcQNcQTaaacQOcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcudcJddzdghdgiddFdgldgmddzdgndgodgnddzcIVdgqddFddFddFddzdgrdcJdcuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFcQFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcudcJddzddFddFddFddzddzddzddFdgsdgtddzddzddzddFddFddFddzddKdcJdcuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcudcJddzdgudgvdgwddzdcJddzdgxdgxdgxddzdcJddzddJdgydgzddzddKdcJdcuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa dgAdgAdgAdgAdgAdgAdgAdgAdgAdgAdgAdgAdgAdgAdgAdgAdgAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcudcJddzdgxdgxdgxddzdcJdeedgBdgCdgDdegdcJddzdgxdgxdgxddzddKdcJdcuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -13024,9 +13042,9 @@ aaaaaaaaaaaadwhdwVdwWdwXdwXdwXdwXdwXdwYdwZdwTdwTdwTdwTdwTdwTdwTdwTdwTdwTdwTdwTdw aaaaaaaaaaaadwhdwVdwWdwXdxedwXdxedwXdwYdwZdwTdwTdwTdwTdwTdwTdwTdwTdwTdwTdwTdwTdwUdxadwYdxbdxfdxbdxfdxbdwWdxcdwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduQdvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedveduQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtbdxgdtedtedtedxhdtbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaadwhdwVdwWdwXdwXdxidwXdwXdwYdwZdwTdwTdwTdwTdwTdxjdxkdxjdwTdwTdwTdwTdwUdxadwYdxbdxbdxldxbdxbdwWdxcdwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduQdvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedveduQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtcdtedtedtedtedtedtcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaadwhdwVdwWdwXdwXdwXdwXdwXdwYdwZdwTdwTdwTdwTdwTdxmdxndxmdwTdwTdwTdwTdwUdxadwYdxbdxbdxbdxbdxbdwWdxcdwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduQdvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedveduQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtcdxodtedtedtedxpdtcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaadwhdwVdwWdwXdxedwXdxedwXdwYdwZdwTdwTdwTdwTdwTdxqdxrdxsdwTdwTdwTdwTdwUdxadwYdxbdxfdxbdxfdxbdwWdxcdwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduQdvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedveduQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtcdxtdtedtedtedxudtcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaadwhdwhdwhdxvdxvdxvdxvdxvdwhdwSdwTdwTdwTdwTdwTdwTdxwdwTdwTdwTdwTdwTdwUdwSdwhdxvdxvdxvdxvdxvdwhaaadwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduQdvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedveduQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtWdtbdxxdxydxzdxAdxBdtbdtEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaadwhdxCdxCdxCdxCdxCdwhdxDdxEdxEdxEdxEdwPdxFdxGdxFdwMdwNdwNdwNdwOdwPdwhdxHdxHdxHdxHdxHdwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtWdsSdsTdsTdsTdsSdtEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaadwhdwVdwWdwXdxedwXdxedwXdwYdwZdwTdwTdwTdwTdwTcJscJtcIWdwTdwTdwTdwTdwUdxadwYdxbdxfdxbdxfdxbdwWdxcdwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduQdvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedveduQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtcdxtdtedtedtedxudtcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaadwhdwhdwhdxvdxvdxvdxvdxvdwhdwSdwTdwTdwTdwTdwTdwTcJudwTdwTdwTdwTdwTdwUdwSdwhdxvdxvdxvdxvdxvdwhaaadwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduQdvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedvedveduQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtWdtbdxxdxydxzdxAdxBdtbdtEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaadwhdxCdxCdxCdxCdxCdwhdxDdxEdxEdxEdxEdwPdxFcJvdxFdwMdwNdwNdwNdwOdwPdwhdxHdxHdxHdxHdxHdwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQduQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtWdsSdsTdsTdsTdsSdtEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaadwhdwhdwhdwhdwhdwhdwhdxIdxJdxJdxJdxJdxJdxKdxLdxIdxJdxJdxJdxJdxMdxIdwhdwhdwhdwhdwhdwhdwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtWaaaaaaaaadtEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwhdxIdxIdxNdxIdxNdxIdxIdxOdxPdxIdxNdxIdxNdxQdxIdwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwidxIdxIdxIdxRdxRdxRdxIdxIdxIdxRdxRdxRdxRdxRdxIdxSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -13150,16 +13168,16 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcLOcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQcqQaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaicqQcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQcqQaaiaaidAbdAbdAbdAbdAbdAbdAbdAbdAbaaiaaiaaiaaiaaiaaiaaiaaiaaidAcdAcdAcdAcdAcdAcdAcdAcaaicqQcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaaiaaidAbdAddAedAfdAgdAhdAidAjdAkdAbdAcdAcdAcdAcdAcdAcdAcdAcdAldAcdAmdAndAodApdAqdArdAcaaiaaicqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaaidAbdAddAddAddAsdAtdAudAvdAwdAxdAydAcdArdAzdAAdABdArdACdAcdADdAcdAEdArdArdArdArdArdAcaaiaaicqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaaiaaidAbdAddAedAfdAgdAhcJwdAjdAkdAbdAcdAcdAcdAcdAcdAcdAcdAcdAldAcdAmdAndAodApdAqdArdAcaaiaaicqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaaidAbdAddAddAddAsdAtdAudAvcJxdAxdAydAcdArdAzdAAdABdArdACdAcdADdAcdAEdArdArdArdArdArdAcaaiaaicqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaaidAbdAedAddAedAFdAGdAHdAvdAIdAJdAKdAcdALdArdAMdArdArdANdAcdADdAcdAOdArdAPdArdArdArdAcaaiaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaaidAbdAedAddAedAedAQdARdASdATdAUdAVdAWdAXdAYdAPdArdAZdBadAcdBbdAcdBcdBddArdBedBfdBgdAcaaiaaicqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaaidAbdAedAddAedAFdBhdBidBjdBkdBkdBkdBldBmdBndBodBpdBqdBrdBrdBrdAcdBsdBtdArdBudBvdBwdBxceqceqdBydBzdBAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQcqQcqQcqQcqQcqQcqQcqQcqQcoccqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQaaidAbdAedAddAedAFdBBdBCdBDdBEdBEdBEdAcdBFdBGdBHdArdBIdBJdBKdBrdAcdAcdBLdBMdAcdAcdAcdAcaaiaaicqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcoccqQcqQcqQcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcqQaaidAbdAddBNdAddBOdBBdAydBrdBrdBrdBrdBrdBPdBQdBRdBQdBSdBTdBUdBVdBrdBrdBWdBXdBYdAddBNdAddAbaaicqQcqQcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaabdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZaaaaaacqQaaidAbdAedAddAedAFdBZdCadBrdCbdCcdCbdCddCedCfdCgdCbdCbdChdCidCbdCbdBrdBWdBXdAKdAedAddAedAbaaicqQcqQaaaaabdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZaaacqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaabdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZaaaaaacqQaaidAbdAedAddAedAFdBZcNmdBrdCbdCcdCbdCddCedCfdCgdCbdCbdChdCidCbdCbdBrdBWdBXdAKdAedAddAedAbaaicqQcqQaaaaabdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZaaacqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaacqQaaidAbdAedAddAedAFdCjdCkdBrdCbdCidCidCidCldCidCmdCidCidCldCidCidCbdBrdBWdBXdAKdCndCodCpdAbaaiaaicqQaabaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaabcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaaadzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZaacaaacqQaaidAbdAedAddAedAFdCqdCrdBrdCbdCsdCtdCidCldCidCudCidCidCldCvdCwdCbdBrdBWdBXdAKdCxdCydCzdCAdAbaaicqQaaaaacdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZaaacqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaaadzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZaacaaacqQaaidAbdAedAddAedAFcNKdCrdBrdCbdCsdCtdCidCldCidCudCidCidCldCvdCwdCbdBrdBWdBXdAKdCxdCydCzdCAdAbaaicqQaaaaacdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZdzZaaacqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaacdCBcqQaaidAbdAedAddAedAFdCCdCDdBrdCbdCidCidCidCldCEdCudCFdCidCldCidCidCbdBrdCGdCHdCIdCJdCKdCLdCMdAbaaicqQdCNaacaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaacqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaacaofcLOaaidAbdAddAddAddBOdCOdCPdBrdCQdCRdCSdCTdChdCbdCUdCbdCbdCVdCWdCXdCYdBrdCZdDadDbdDcdCLdDddDedAbaaicLOaofaacaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaacqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaacaaacqQaaidAbdAedAddAedAFdCOdAKdBrdCbdDfdDgdCidCldDhdCudDidCidCldDjdDkdCbdBrdAFdCCdDldDmdCLdDndDodAbaaicqQaaaaacaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaacqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -13178,7 +13196,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQdEpdEpdERdESdETdEpdEpcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaacaaccqQcqQdEpdEpdEUdEVdEWdEIdEXdEpdEpcqQcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacdEpdEpdEYdEZdFadFbdEAdFbdFbdFcdEpcqQaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacdFddFedFfdFgdFhdFbdFbdFidFbdFbdFjdEpcqQaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacdFddFedFfcJycJzdFbdFbdFidFbdFbdFjdEpcqQaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacdFkdENdEpdEpdFldFmdFbdFbdFbdFbdFcdEpcqQcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQaacaaccqQcqQdEpdEpdFndFodFodFodFpdEpdEpcqQcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQcqQcqQcqQcqQcqQdEpdEpdFqdFrdFsdEpdEpcqQcqQcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -13408,16 +13426,16 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaaqaabaabaaqdGzdGzdGzdGzdGzdGzdKddGVdKedKfdGVdKgdKhdKidGzdKjdGqdGqdGqdGOaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaabaabdFLdIcdINdIOdIPdJlaabaaaaabaaaaabaabaabdINdJLdINdIPdIOdIOdIOdIOdIOdIOdIOdIOdIOdIOdIOdIOdINdJLdINaabaabaabaaaaabaaaaabdJldIOdIPdINdFNdFLaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabcLOcLOcLOdGzdGzdGVdKkdKldIwdHedHedKmdGzaaaaaaaaaaabaaqaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabdFLdIcdINdIOdIOdJlaabaaaaabaaaaabaaaaabdFLdFNdINdINdINdINdIOdIOdIOdIOdIOdIOdIOdINdINdINdINdFNdFLaabaaaaabaaaaabaaaaabdJldIOdIOdINdFNdFLaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabdGVdHedKndGVdKodKpdKqdGzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaabaabdFLdIcdINdIOdIPdJlaabaabaabaabaabaabaabdFLdFNdFNdFNdFNdINdINdINdIOdIOdIOdINdINdINdFNdFNdFNdFNdFLaabaabaabaabaabaabaabdJldIOdIPdINdFNdFLaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdKrdKsdKsdKsdKsdKsdKsdKtdKudGVdKvdKwdGzdGzdGzdGzdGzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaabaabdFLdIcdINdIPdIPdJlaabaaaaabaaaaabaaaaabdFLdFNdFNdFNdFNdFNdFNdINdIOdIOdIOdINdFNdFNdFNdFNdFNdFNdFLaabaaaaabaaaaabaaaaabdJldIOdIPdINdFNdFLaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKxdKydKzdKAdKzdKAdKBdKCdKDdGVdKEdKFdGzcLOcLOcLOcLOaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdFLdIcdINdIPdIPdJlaabaaaaabaaaaabaaaaabdFLdFLdFLdFLdFLdFLdFNdINdIOdIOdIOdINdFNdFLdFLdFLdFLdFLdFLaabaaaaabaaaaabaaaaabdJldIPdIPdINdFNdFLaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdKGdKHdKzdKAdKzdKAdKzdKAdKIdKJdKKdKLdGzcLOaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadFLdINdINdIPdIPdINdINaabaabaabaabaabaabaabaabaabaabaabdFLdFNdJLdIOdIOdIOdJLdFNdFLaabaabaabaabaabaabaabaabaabaabaabdINdINdIPdIPdINdINdFLaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdKMdKNdKzdKAdKzdKAdKzdKOdKPdGVdKQdKRdGzaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdINdIPdIPdIPdIPdINdJldJldJldJldJldJldJldJldJldJldJldINdINdINdIOdIOdIOdINdINdINdJldJldJldJldJldJldJldJldJldJldJldINdIOdIOdIOdIOdJlaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdKSdKsdKsdKsdKsdKsdKsdKtdKudGzdGzdGzdGzaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdINdIPdIPdIOdIPdIPdIPdIPdIPdIPdIPdIPdIPdIOdIOdIOdIPdIOdIOdIPdIOdIOdIOdIPdIPdIPdIOdIOdIOdIOdIPdIOdIPdIPdIOdIOdIOdIPdIOdIOdIOdIOdJlaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaabdKTaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdINdIPdIPdIPdIPdIPdIOdIOdIOdIOdIOdIOdIPdIOdIOdIOdIOdIPdIPdIOdIOdIOdIOdIPdIPdIOdIOdIPdIPdIPdIOdIOdIOdIOdIOdIOdIOdIOdIOdIOdIOdIOdJlaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdINdIPdIPdIPdIPdINdJldJldJldJldJldJldJldJldJldJldJldJldINdIOdIOdIPdIPdIOdINdJldJldJldJldJldJldJldJldJldJldJldJldINdIOdIOdIOdIOdJlaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdINdINdINdINdINdINdKUdKUdKUdKUdKVdKUdKWdKUdKWdKUdKWdKUdINdIOdIOdIOdIOdIPdINdKXdKXdKYdKYdKYdKYdKYdKYdKYdKYdKXdKXdINdINdIOdIOdINdINaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdINdIZdIZdINdKZdKZdKZdKUdKUdKVdKUdKUdKUdKUdKUdKUdKUdINdIPdIPdIPdIPdIPdINdKYdKYdKXdKXdKXdKYdKYdKYdKYdKYdKXdKXdKXdINdIOdIOdJlaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdINdIZdIZdINdKZdKZdKUdKZdKZdKVdKVdKVdKVdKVdKVdLadLadINdINdINdINdINdINdINdKYdKYdKXdKXdKXdKYdKYdKYdKYdKYdKXdKYdKXdINdIOdIOdJlaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdGVcHdcHedGzdGzdGzdGzdGzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaabaabdFLdIcdINdIPdIPdJlaabaaaaabaaaaabaaaaabdFLdFNdFNdFNdFNdFNdFNdINdIOdIOdIOdINdFNdFNdFNdFNdFNdFNdFLaabaaaaabaaaaabaaaaabdJldIOdIPdINdFNdFLaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdGVcHcdKFdGzcLOcLOcLOcLOaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdFLdIcdINdIPdIPdJlaabaaaaabaaaaabaaaaabdFLdFLdFLdFLdFLdFLdFNdINdIOdIOdIOdINdFNdFLdFLdFLdFLdFLdFLaabaaaaabaaaaabaaaaabdJldIPdIPdINdFNdFLaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdGVcJAcHbdGVcLOaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadFLdINdINdIPdIPdINdINaabaabaabaabaabaabaabaabaabaabaabdFLdFNdJLdIOdIOdIOdJLdFNdFLaabaabaabaabaabaabaabaabaabaabaabdINdINdIPdIPdINdINdFLaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdGVcJZcGpdGVaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdINdIPdIPdIPdIPdINdJldJldJldJldJldJldJldJldJldJldJldINdINdINdIOdIOdIOdINdINdINdJldJldJldJldJldJldJldJldJldJldJldINdIOdIOdIOdIOdJlaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdGVdKJcGodGVcGnaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdINdIPdIPdIOdIPdIPdIPdIPdIPdIPdIPdIPdIPdIOdIOdIOdIPdIOdIOdIPdIOdIOdIOdIPdIPdIPdIOdIOdIOdIOdIPdIOdIPdIPdIOdIOdIOdIPdIOdIOdIOdIOdJlaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGmcFtcFtcGlcFtcFtcGkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdINdIPdIPdIPdIPdIPdIOdIOdIOdIOdIOdIOdIPdIOdIOdIOdIOdIPdIPdIOdIOdIOdIOdIPdIPdIOdIOdIPdIPdIPdIOdIOdIOdIOdIOdIOdIOdIOdIOdIOdIOdIOdJlaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGgcGfdKAcGecGjdKydKxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdINdIPdIPdIPdIPdINdJldJldJldJldJldJldJldJldJldJldJldJldINdIOdIOdIPdIPdIOdINdJldJldJldJldJldJldJldJldJldJldJldJldINdIOdIOdIOdIOdJlaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGgcGfdKAcGecGecGhcGiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdINdINdINdINdINdINdKUdKUdKUdKUdKVdKUdKWdKUdKWdKUdKWdKUdINdIOdIOdIOdIOdIPdINdKXdKXdKYdKYdKYdKYdKYdKYdKYdKYdKXdKXdINdINdIOdIOdINdINaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGgcGfdKAcGedKAdKNdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdINdIZdIZdINdKZdKZdKZdKUdKUdKVdKUdKUdKUdKUdKUdKUdKUdINdIPdIPdIPdIPdIPdINdKYdKYdKXdKXdKXdKYdKYdKYdKYdKYdKXdKXdKXdINdIOdIOdJlaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFwcFtcFtcFtcFtcFtcGdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdINdIZdIZdINdKZdKZdKUdKZdKZdKVdKVdKVdKVdKVdKVdLadLadINdINdINdINdINdINdINdKYdKYdKXdKXdKXdKYdKYdKYdKYdKYdKXdKYdKXdINdIOdIOdJlaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdINdIZdIZdINdKZdKZdKZdKZdKZdKVdKUdKUdKZdKZdKZdKUdKUdKUdJldIPdIPdIPdJldKXdKXdKYdKYdKYdKYdKYdKYdKYdKXdKXdKXdKYdKXdINdIOdIOdJlaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdINdIZdIZdINdKZdKZdKZdKZdKZdKZdKUdKZdKZdKZdKZdKUdKZdKZdJldIPdIPdIPdJldKXdKXdKYdKYdKYdKYdKYdKYdKYdKXdKXdKXdKYdKXdINdIOdIOdJlaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdINdIZdIZdINdLbdLbdLbdKZdKZdKZdKZdKZdKZdKZdKZdKZdKZdKZdJldIPdIPdIPdJldKXdKXdKYdKYdKYdKYdKYdKYdKYdKYdKYdKYdKYdKXdINdIPdIPdJlaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -13436,7 +13454,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLfdLfdLfdLfdLcdLcdLcdLcdLcdKZdKZdKZdKZdKZdKZdLqdIOdIOdIOdIOdIOdIOdIOdIOdIOdLedKYdKYdKYdKYdKYdKYdKYdLrdLndLvdLwdINdIPdIPdJlaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLfdLfdLfdLfdLcdLcdLcdLcdLcdLcdLcdLcdLcdLbdLbdINdIOdIOdIOdIOdIOdIOdIOdIOdIOdINdKYdKYdKYdKYdKYdKYdKYdKYdLgdLgdLgdINdIPdIPdJlaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLxdLydLydLydLydLydLydLydLydLydLydLydLxdLbdLbdLbdLbdLbdINdIOdIOdIOdIOdIOdIOdIOdIOdIOdINdKYdKYdKYdKYdKYdKYdLrdLzdLjdLAdLBdINdIPdIPdJlaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLxdLCdLDdLCdLDdLCdLCdLCdLCdLCdLCdLDdLydLcdLbdLcdKZdKZdINdINdIOdIOdIOdIOdIOdIOdIOdINdINdLgdLgdKYdKYdLEdLrdKYdLrdLndLFdLGdINdIZdIZdJlaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLxdLCdLDdLCdLDdLCdLCdLCdLCdLCdLCdLDdLydLcdLbdLcdKZdKZdINdINdIOdIOdIOdIOdIOdIOdIOdINdINdLgdLgdKYdKYcKadLrdKYdLrdLndLFdLGdINdIZdIZdJlaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLxdLCdLCdLCdLCdLCdLDdLCdLDdLxdLDdLDdLyaaaaabaaadLDdLCdLDdINdINdINdIOdIOdIOdINdINdINaabaabdLgdLgdLgdLgdLgdLgdLgdLgdLgdLgdINdIPdIPdJlaacaabaacaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLxdLCdLDdLCdLDdLCdLCdLCdLCdLCdLCdLHdLyaabaabaabdLCdLCdLCdLCdLCdINdIOdIOdIOdINdLDdLDdLCdLCdLDdLCdLDdLCdLCdLCdLCdLDdLCdLDdIPdIZdIZdIPaabaabaabaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLxdLCdLCdLCdLCdLCdLHdLCdLCdLHdLHdLHdLyaaaaabaaadLDdLCdLDdLCdLDdINdIPdIOdIOdINdLDdLCdLCdLCdLxdLxdLxdLxdLxdLxdLxdLxdLxdLxdLxdLxdLxdLxdLxdLDdLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -13602,27 +13620,27 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNzaaaaaaaaaaaaaaaaaaaaaaaaaaadMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdNAdNAdMwdMwdNAdNAdNAdNAdMwdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaadMzdNBdMwdMwdMwdMwdNCdNCdNCdNCdNCdNDdNEdNFdNGdNHdNHdNHdNIdNJdNsdNKdNLdNMdNfdNfdNNdNLdNKdNeaabaabdNOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdNAdMwdMwdMwdMwdMwdMwdNAdNAdMwdMwdMwdMwdNAdNAdNAdNAdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwaaaaaaaaadNPdNQcMucMucMudNRdNSdMwdMwdMwdMwdNCdNCdNTdNUdNCdNVdNVdNVdNVdNWdNHdNXdNYdNZdNsdNsdNsdNsdOadObdOcdOcdOcdOcdOcdOddOedOfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOgdOhdOgaaaaaaaaaaaaaaadMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdNAdMwdMwdMwdNAdNAdMwdNAdNAdNAdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdNAaaaaaadOidNSaabaabaabaabaabdMwdMwdMwdMwdNCdOjdOkdOldOmdOndOodOpdOqdOrdOsdOtdOudOvdNsdOwdOxdNsdOydOzdOAdOBdOCdODdOEdOFdOGdOHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOIdOJdOIaabaaaaaaaaadMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwdNAdNAdNAdNAdNAdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaadNiaaaaaaaaaaaaaaaaaadMwdMwdMwdMwdNCdOKdOLdOMdNCdONdOndOOdOPdOQdORdOSdOTdOUdOVdOWdOXdOYdOZdPadOcdPbdPcdPddPedPfdPgdOHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPhdPidPjdPkaabaaaaaadMwdMwdMwdMwdMwdMwdMwdNAdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaadNiaaaaaaaaaaaaaaaaaadMwdMwdMwdMwdNCdOKdOLdPldNCdPmdOOdPndPodPpdPqdPrdPqdPsdPqdPqdPqdPqdPtdPudOcdPvdPcdPwdPxdPydOGdOHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOIdOJdOIaabaaaaaaaaadMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwdNAdNAdNAdNAdNAdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaadNiaaaaaaaaaaaaaaaaaadMwdMwdMwdMwdNCdOKdOLdOMdNCdONdOndOOdOPdOQdORdOSdOTdOUdOVdOWdOXdOYdOZdPadOcdPbcPfdPddPedPfdPgdOHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPhdPidPjdPkaabaaaaaadMwdMwdMwdMwdMwdMwdMwdNAdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaadNiaaaaaaaaaaaaaaaaaadMwdMwdMwdMwdNCdOKdOLdPldNCdPmdOOdPndPodPpdPqdPrdPqdPsdPqdPqdPqdPqdPtdPudOcdPvcPfdPwdPxdPydOGdOHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPzdPzdPAdPBdPCdOIaabaaaaaadMwdMwdMwdMwdNAdNAdNAdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdPDaabdNiaaaaaaaaaaaaaaaaaadMwdMwdMwdMwdNCdOKdPEdPFdNCdPGdPHdPIdPJdPKdPLdPMdPNdPOdPPdPQdPRdPqdPSdPTdOcdPUdPVdPWdPXdOcdPYdPZaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadQadQbdQcdQddQedQfdQgaabaabdNAdNAdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdQhdQhdQiaabdNiaaaaabaabaabaabaabdMwdNedNedNedNedNedQjdQkdNedNVdNVdQldQmdQndPqdQodQpdQqdQrdQsdQtdPqdQudQvdQwdQxdQydQzdQAdOcdQBdMwaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxaaadMxdMxdMxdMxdMxaaadMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadQCdPzdQDdQEdQFdPCdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdQhdQhdQhaaaaaadNidQHdQHdQHdQHdQHdQHdQHdNsdQIdQJdQKdQLdQMdQNdQOdQPdQQdQRdQSdQTdPqdQUdQVdQWdQXdQYdQZdRadRbdRcdRddRddRddRedRfdRgdRhdRidRidRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxaaadMxdMxdMxdMxdMxaaadMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadQCdPzdQDdQEdQFdPCdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdQhdQhdQhaaaaaadNidQHdQHdQHdQHdQHdQHdQHdNsdQIdQJdQKdQLdQMdQNdQOdQPdQQdQRdQScNLdPqdQUdQVdQWdQXdQYdQZdRadRbdRcdRddRddRddRedRfdRgcNVcNMcNMdRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxaaadMxdMxdMxdMxdMxaaadMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdRkdRldRmdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdQhaaaaaadNidQHdQHdQHdQHdQHdQHdQHdRndRodRpdRqdRrdRsdRtdRudRvdRwdRxdRydRzdRAdRBdRCdRDdREdRFdRGdRHdRIdRJdRddRKdRLdRMdRNdRddROdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdRPdRQdRRdRSdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaadNidQHdQHdQHdQHdQHdQHdQHdRTdRUdQJdRVdRWdRXdRYdRZdSadSbdNedScdSddSedSfdSgdShdSidSjdSkdPqdSldSmdSndSodSodSpdSqdSrdSsdStdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdSudSvdSwdQGdSxdSydQGdQGdQGdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaadNidQHdQHdQHdQHdQHdQHdQHdSzdRUdQJdRVdRWdSAdSBdRZdSCdSDdNedSEdSFdPqdSGdPqdPqdPqdPqdSHdPqdSIdSJdRddSKdSLdSMdSNdSOdQBdSPdMydMyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdSQdSRdSSdSTdSUdSVdOgdQfdSWdQGdSXdSYdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaadNidQHdQHdQHdQHdQHdQHdQHdNsdRUdQJdSZdRWdTadTbdRZdTcdTddNedTedTfdTgdThdTidTjdTkdPqdTldTmdTndTodTpdTqdTrdTsdTtdTudQBdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdTvdTwdSRdTxdTydTzdTAdTBdSWdTCdSYdSYdSXdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaadTDdTEdTFdTGdTHdTIdTFdTJdTKdTLdTMdNsdTNdTOdNedNedNedNedNedTPdTQdTRdThdTSdTjdTTdPqdTUdTVdTWdTXdTYdTZdUadUbdUcdUddUedUfdNedUgdNQcMucMucMucMucMucMudMUdUhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadUidTvdUjdTvdSSdSSdSxdUkdTydQGdRSdUldQGdSYdUmdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaadUndUodUpdUqdUrdUrdUsdUtdUudUvdUwdUxdUydUzdUAdUBdUCdUDdUEdUFdUGdUHdUIdUJdUKdULdPqdUMdUNdUOdUPdRddRddUQdRddRddRddURdUSdUTdUUdUVdUWdUWdUXdUWdUWdUWdUYcMMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdUZdVadSSdVbdVcdSSdRmdVddTzdVedVfdVgdQGdQGdQGdQGdQGdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaadVhdVidUrdUrdUrdUrdVjdVkdVldVmdVndVodVpdVqdUAdVrdVsdVtdVudVvdVwdVxdVydVzdVAdVBdVCdVDdVAdVEdVFdVGdVHdVIdVJdVGdVKdVGdVAdVLdVMdVNdVOdVPdVQdVRdVSdVTdUWdNOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdVUdVVdVWdSSdVcdVXdTxdVYdTydVZdQGdWadWbdQGdWcdSWdWddWedQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaadWfdWgdUrdUrdWhdUrdWidWjdWkdWldWmdWndWodWpdUAdWqdWrdWsdWtdWudWvdWwdWxdWydWzdWAdWBdWCdWDdWAdWEdWBdWFdWAdWBdWGdWHdWIdWJdWKdWLdWMdWNdWOdWPdWQdWQdWRdUWdNOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdUZdVadSSdVbdVcdSSdRmdVddTzdVedVfdVgdQGdQGdQGdQGdQGdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaadVhdVidUrdUrdUrdUrdVjdVkdVldVmdVndVodVpdVqdUAcNWdVsdVtdVudVvdVwdVxdVydVzdVAdVBdVCdVDdVAdVEdVFdVGdVHdVIdVJdVGdVKdVGdVAdVLdVMdVNdVOdVPdVQdVRdVSdVTdUWdNOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdVUdVVdVWdSSdVcdVXdTxdVYdTydVZdQGdWadWbdQGdWcdSWdWddWedQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaadWfdWgdUrdUrdWhdUrdWidWjdWkdWlcNXdWndWodWpdUAdWqdWrdWsdWtdWudWvdWwdWxdWydWzdWAdWBdWCdWDdWAdWEdWBdWFdWAdWBdWGdWHdWIdWJdWKdWLdWMdWNdWOdWPdWQdWQdWRdUWdNOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabdNAdNAdQGdSVdWSdWTdWUdVWdWVdTydTzdWWdOgdQfdWXdQGdWcdRSdSWdWedQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdWYdWYdWYdWYdWYdWYdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaadWZdXadUrdXbdXcdXddXedXfdXgdXhdXidXjdXkdXldUAdXmdXndXodXpdXpdXpdXpdXqdXrdXsdXtdXrdXudXvdXwdXudXxdXydXzdXxdXxdXAdXBdXCdXDdUWdXEdXFdUWdXGdWQdWQdXHdUWdNOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQGdQGdQGdQGdQGdQGdSUdTydXIdWSdTydVddXJdWWdWWdTBdSWdWadQGdWcdRmdXKdWedQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdWYdWYdWYdXLdXLdXLdXLdWYdWYdWYdMwdMwdMwdMwdXMdXNaaaaaaaaadXOdXPdTFdXQdXRdXRdXRdXRdXSdXTdXUdNsdXVdXVdUAdXWdXpdXXdXpdXYdXZdYadYbdXrdYcdYddYedXudYfdYgdYhdXxdYidYjdYkdXxdYldYmdXCdYndYodUWdUWdUWdYpdYqdYrdVTdUWdNOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQGdYsdQfdTzdYtdQGdYudYvdYwdQGdVedQGdYxdYydYzdQGdQfdYAdOJdYBdRmdRRdOJdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdWYdWYdXLdXLdXLdXLdXLdXLdXLdXLdWYdWYdMwdMwdYCdYDcMucMudMBcMudNRdNSaabaabdYEdYFdYGdYHdYIdYJdYKdYLdYMdYNdYOdYPdYQdYRdYSdYTdYUdYVdYWdXrdYXdYYdYZdXudZadZbdZcdXxdZddZedZfdXxdZgdZhdZidZjdZkdZldZmdUWdUWdUWdUWdUWdZndNBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQGdYsdQfdTzdYtdQGdYudYvdYwdQGdVedQGdYxdYydYzdQGdQfdYAdOJdYBdRmdRRdOJdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdWYdWYdXLdXLdXLdXLdXLdXLdXLdXLdWYdWYdMwdMwdYCdYDcMucMudMBcMudNRdNSaabaabdYEdYFdYGdYHdYIdYJdYKdYLdYMdYNdYOdYPdYQdYRdYSdYTdYUdYVdYWdXrcNYdYYdYZdXucOhdZbdZcdXxcOgdZedZfdXxdZgdZhdZidZjdZkdZldZmdUWdUWdUWdUWdUWdZndNBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdQGdYsdRmdQfdTxdVedYAdWSdQfdWSdRRdQfdQfdZodSWdQfdRmdRmdQGdOJdZpdRmdQfdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdWYdWYdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdWYdWYdZqdZrdZsdMwaaaaaaaaaaaaaaaaaaaabdYEdZtdZudZvdZwdZxdZydZzdXVdZAdZBdUAdXpdXXdXpdZCdXpdZDdZEdXrdZFdZGdZHdXudZIdZJdZKdXxdZLdZMdZNdXxdZOdZPdZQdZRdZSdZSdZTdYodZUdMAcMucMudZVdZWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdQGdYsdZXdRmdRmdVedRmdXKdSxdRmdZYdRRdXKdWXdOJdRmdZZdRSdQGdWSdOJdYAdQfdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdWYeaadXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLeabdWYeaceaddWYdWYaaaaaaaaaaaaaaaaaaaabdYEeaeeafeageaheageaieajdXVdXVeakdUAealeameaneaodXpeapeaqdXreareaseatdXueaueaveawdXxeaxeayeazdXxeaAeaBdYoeaCeaDeaEeaDdYoeaFeaGdNAaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdQGdYsdZXdRmdRmdVedRmdXKdSxdRmdZYdRRdXKdWXdOJdRmdZZdRSdQGdWSdOJdYAdQfdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdWYeaadXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLeabdWYeaceaddWYdWYaaaaaaaaaaaaaaaaaaaabdYEeaeeafeageaheageajeajdXVdXVeakdUAealeameaneaodXpeapeaqdXreareaseatdXueaueaveawdXxeaxeayeazdXxeaAeaBdYoeaCeaDeaEeaDdYoeaFeaGdNAaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdQGdYseaHdTxdSUdQGeaIdQGeaJeaKdQGdTzdQGeaJeaKdQGdTydYAdQGdZodVgdOJdWadQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdWYeaLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLeaMeaaeaNeaadWYaaaaaaaaaaaaaaaaaaaaaaabdYEeaOeajeajeaPeaQeaReajeaSdXVeaTdUAeaUeaUeaUeaUdXpeaVdYVdXreaWeaXeaYdXueaZebaebbdXxebcebdebedXxebfebgebhdYodYodYodYoebiebjdMwdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdQGdQGdQGdQGdQGdQGeaIdQGebkdSWdTzdWadRSdTydWVdTydVgdTxdQGeaJeblebmebndQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdWYeabdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLeboebpebqaaaaaaaaaaaaaaaaaaaaaaabaabdYEebrebrebsebtebuebvebwebxdXVebydUAdXLdXLdXLdXLdXpebzebAdXrebBebCebDdXuebEebFebGdXxebHebIebJdXxebKebLebhdMwdNAdMwebMebNebOdMwdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdQGeaIdQGdSWdWaebPdVddPCdTxdSWdQGdTydRSdQGebQebRebRebSdQGdMydNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdWYdWYdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLebTebUebVaaaaaaaaaaaaaaaaaaaabaabaabdYEdYEebWebXdYEdYEebYebZebYdYEecadXLdXLdXLdXLdXLdXpdXpdXpdXrdXrdXrdXrdXudXudXudXudXxdXxdXxdXxdXxebhebhecbeccdMCdMCecdeaGdMwdMwdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdQGeaIdQGdSWdWaebPdVddPCdTxdSWdQGdTydRSdQGebQebRebRebSdQGdMydNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdWYdWYdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLebTebUebVaaaaaaaaaaaaaaaaaaaabaabaabdYEdYEebWebXdYEdYEebYcOoebYdYEecadXLdXLdXLdXLdXLdXpdXpdXpdXrdXrdXrdXrdXudXudXudXudXxdXxdXxdXxdXxebhebhecbeccdMCdMCecdeaGdMwdMwdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdQGeaIdQGdWadQfdVgdSWdTydRSdVgdQGeaIdQGdQGdWcdOJebReceecfdMydMydNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdWYdWYdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLecgecheciaaaaaaaaaaaaaaaaabecjeckeclecmecnecoecpecqdYEecrecsectdYEecadXLdXLdXLdXLdXLecuecvecwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwecxecyeaGeczdMwdMwdMwdMwdMwdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdQGeaIdQGdQGdQGdQGdQGdQGdQGdQGdQGeaIdQGdWcdOJdWddOJebSecAdMydMydNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdWYdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLecBecCecDecEecEecEecEecEecEecFecGecHecIecIecJecKecLdYEecMecNecOdYEecadXLdXLdXLdXLdXLebTechecPdMwdMwdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwecxecyeaGecQdMyecQdMwdMwdMwdMwdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDaaaaaaaaaaaaaaadPDdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdQGeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIdQGdWcdWddWddWddWedQGdMydMydMydNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdWYdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLecRecSecSecSecSecSecSecSecSecRdXLdXLdXLdXLdXLdXLdYEebYecTebYdYEecUdXLdXLdXLdXLdXLecVecWecXdMCdMCdMCdMCecYdMCdMCdMCdMCdMCecZedaedbedceaGdMydMydMyecQdXMdMwdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -13636,23 +13654,23 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdP aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedBedBedBedBedBedBedBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdMydMydMydMyedCdMydMydMydMydMydNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdNAdNAaaaaaaaaaaaadMwdNAdNAaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdWYdXLdXLdXLedudXLdXLdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedxedBedBedBedBedBedBedBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMydMydMydMydMydMydMydMydMydMydNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaadNAdNAaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdWYdXLdXLdXLedudXLdXLdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedxedxedFedFedFedFedFedFedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMydMydMydMydMydMydMydMydMydNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdMwdMwdWYdXLdXLdXLedudXLdXLdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedFedFedFedFedFedFedGedHedIedJedFedBedBedBedBedBedBedBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMydMydMydMydMydMydNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdMwdMwdWYdXLdXLdXLedudXLdXLdXLdWYdWYdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdNAdNAdNAdNAdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedFedKedLedMedNedOedPedQedQedQedFeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaadNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMydMydMydNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdMwdMwdWYdWYdXLdXLedudXLdXLdXLdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdNAdNAdNAdNAdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedFedFedFedFedFedFedGedHedIcHOedFedBedBedBedBedBedBedBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMydMydMydMydMydMydNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdMwdMwdWYdXLdXLdXLedudXLdXLdXLdWYdWYdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdNAdNAdNAdNAdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedFedKedLedMcHNedOedPedQedQedQedFeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaadNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMydMydMydNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdMwdMwdWYdWYdXLdXLedudXLdXLdXLdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdNAdNAdNAdNAdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedFedRedSedTedUedOedVedQedWedXedYedZeeaeeaeaaeebeeceededBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaadMwaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdWYdXLdXLedudXLdXLdXLdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdNAdNAdNAdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedFedFedFedOeeeeefeeeedOeegeehedOedOedFedFedFeeiecweejeedeededBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaadNAdNAdNAaaaaaadNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdWYdXLdXLedDeekedEdXLdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdNAdNAdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDeeldPDdPDdPDdPDdPDedFeemeenedOeeoedQedPeepeeqedQeeredOeeseeseeseeaeeteeaeedeededBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaadNAdNAdNAaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdNAdMwdWYdXLdXLdXLdXLedudXLeeueaadMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDeeveeveeleeleeleeleeledFeeweexeeyeezeeAeeBedQeeoedQedQeeCeeseeseeaeeaeeaeeaeeDeededBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdNAdMwdWYdWYdXLdXLdXLedudXLdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDeeleeEeeEeeEeeEeeEedFeeFeeGeeHeeIeeAeeJedQeeoeeKedQedOeeLeeMeeMeeaeeaeebeebeedeededBedBedBdNAedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdMwdMwdWYdXLdXLeeNedkedldXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDeeleeEeeEeeEeeEeeOedFedOedOedOeePedQeeQeeAeeReeeeeSeeTeeUeeVeeWeeXeeaeebeebeeYeededBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdMwdMwdWYdXLdXLedgedqedidXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwaaadMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDeeleeEeeEeeEeeEeeEeeZefaefbefcefdedQeeoedQedQefeeffedOefgefhefieeaeeaeebeebefjeedefkedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdNAdMwdWYdXLdXLdXLedudXLdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDeeveeveeleeleeleeleeledFeeweexeeyeezeeAeeBedQeeoedQedQcHjeeseeseeaeeaeeaeeaeeDeededBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdNAdMwdWYdWYdXLdXLdXLedudXLdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDeeleeEeeEeeEeeEeeEedFeeFeeGeeHeeIeeAcHiedQeeoeeKedQedOeeLeeMeeMeeaeeaeebeebeedeededBedBedBdNAedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdMwdMwdWYdXLdXLeeNedkedldXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDeeleeEeeEeeEeeEeeOedFedOedOedOeePedQcHheeAeeReeeeeSeeTeeUeeVeeWeeXeeaeebeebeeYeededBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdMwdMwdWYdXLdXLedgedqedidXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwaaadMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDeeleeEeeEeeEeeEeeEeeZbiiefbcHgefdedQeeoedQedQefeeffedOcHfefhefieeaeeaeebeebefjeedefkedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdNAdMwdWYdXLdXLdXLedudXLdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDedxedxedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDeeleeEeeEeeEeeEeeEedFedFedFeflefmedQeeoeeeefnedOefoedOefpefqeeseebeebeebeebefredOedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaedxaaaaaadNAdNAdNAdNAdNAdNAdNAdNAdMwdWYdXLdXLdXLedudXLdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdNAdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDedxedxedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDeeleeEeeEeeEeeEeeEefseftefuefvedQedQeeoefwefxefyefzedOefAefBeebeebeebeebefCeedeededBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaadNAedxedxaaaaaadNAdNAdNAdNAdNAdNAdNAdMwdWYdXLdXLdXLedudXLdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdNAdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDeeleeEeeEeeEeeEeeEefDefDefDefEefFefGefHefIefIefIedOefIefIefJeebeeaeebeebefCeededBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaadNAdNAedxaaaaaaaaadNAdNAdNAdNAdNAdNAdMwdWYdWYdXLdXLedudXLdWYdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDeeleeEeeEeeEeeEeeEefKefLefMefNefOefPefQefRefSefTefUefVefWefXeeseebeebeebeedeededBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdMwdMwdWYdXLdXLedudXLdWYdWYdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDeeleeEeeEeeEeeEeeEefDefDefDefEefFbigefHefIefIefIedOefIefIefJeebeeaeebeebefCeededBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaadNAdNAedxaaaaaaaaadNAdNAdNAdNAdNAdNAdMwdWYdWYdXLdXLedudXLdWYdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDeeleeEeeEeeEeeEeeEefKefLefMefNefOefPefQefRefSefTcKbefVefWefXeeseebeebeebeedeededBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdMwdMwdWYdXLdXLedudXLdWYdWYdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDeeleeEeeEeeEeeEefYefDefIefIefHefZefHefIefIegaegbegcefIefIegdeeseebeebeedeededBedBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdMwdMwdWYdXLdXLedudXLdXLdWYdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDeeleeEeeEeeEeeEeeEefDegeegfeggeghegiegjegkeglegmegnegoegpegqegregseedeededBedBedBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaadQhdQhaaaaaaaaaaaaaaaaaadNAdNAdNAdMwdMwdWYdXLdXLedudXLdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxdPDdPDeeleeleeleeleeleeleelegteguegvegwegvegxefIegyegzegzegAegBefIeedeedeedeededBedBedBedBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaadQhdQhefkaaaaaaaaaaaaaaaaaadNAdNAdNAdMwdMwdWYdXLdXLedDedEdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDedxdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedxdPDdPDdPDeeldPDdPDdPDdPDdPDegCegDegEegFegGegHefIegIegJegKegLegBefIeededBedBedBedBedBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaefkaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdMwdMwdWYdXLdXLdXLedudXLdWYdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdNAdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDeeleeEeeEeeEeeEeeEefDegeegfeggeghcHQegjegkeglegmegnegoegpegqegregseedeededBedBedBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaadQhdQhaaaaaaaaaaaaaaaaaadNAdNAdNAdMwdMwdWYdXLdXLedudXLdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxdPDdPDeeleeleeleeleeleeleelegteguegvegwegvcHRefIegyegzegzegAegBefIeedeedeedeededBedBedBedBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaadQhdQhefkaaaaaaaaaaaaaaaaaadNAdNAdNAdMwdMwdWYdXLdXLedDedEdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDedxdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedxdPDdPDdPDeeldPDdPDdPDdPDdPDegCegDegEcHPegGegHefIegIegJegKcKcegBefIeededBedBedBedBedBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaefkaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdMwdMwdWYdXLdXLdXLedudXLdWYdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdNAdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDedxedxedxedxedxdPDdPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDegMegNegOefDefDefDefIefIefIefIefIefIefIeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaadNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdQhdQhdQhaabaabaabaabaabaabaabaabdQhdQhdNAdNAdMwdMwdWYeaaegPdXLedudXLdWYdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDedxedxedxedxedxedxdPDdPDdPDdPDdPDdPDedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedBedBedBedBedBedBedBedBedBedBedBedBedBedBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdQhdQhdQhaacaacaacaacaacaacaacaacdQhdQhdQhdNAdMwdMwdWYdWYdXLdXLedudXLdWYdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDdPDdPDedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedBedxedxedxedxedxedxedxedBedBedBedBedBedBedBedBedBedBedBedBedBedBedBedBedBedBedBdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdQhdQhaabaabaabaabaabaabaabaabdQhdNAdNAdNAdMwdMwdWYdXLdXLdXLedudXLdWYdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -13681,9 +13699,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdP aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedxdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdQhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXLdXLdXLdXLdXLdXLdXLegUegUdXLdXLdXLedDeekedEdXLdXLdWYdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaadNAdNAdNAdQhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXLdXLdXLdXLdXLdXLdXLegUegUdXLdXLdXLdXLdXLedudXLdXLdXLdWYdWYdWYdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAegVdNAegVegWegXegXegYegYegZehaehbehcehdeheeheeheehfehgeaaeaaeaaeaaehhehiehjehjehjehjehjehjehjehjehjehkdXLdXLdXLdXLdXLdXLegUegUdXLdXLdXLdXLdXLedudXLdXLdXLdXLdXLdWYdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDedxedxedxedxdPDdPDdPDdPDdPDdPDedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAegVegVegVegVehlehlehlehlehlehlehlehlehlehlehlehlehlehlehmehnehoehpehqehregUegUegUegUegUegUegUegUegUegUegUegUegUegUegUegUegUegUegUdXLdXLdXLdXLdXLedDeekeekedEdXLdXLdXLdWYdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDedxedxedxedxdPDdPDdPDdPDdPDedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAegVegVegVegVegVehlehlehlehlehlehlehlehsehsehlehlehlehlehlehteaaeaaeaaeaaehuegUegUegUegUegUegUegUegUegUegUegUegUegUegUegUegUegUegUegUdXLdXLdXLdXLdXLdXLdXLdXLedudXLdXLdXLdXLdWYdWYdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDedxedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAegVegVegVegVehlehlehlehlehlehlehvehwehxehyehlehlehlehlehzehAehBeaaeaaehCehDehEehFehFehFehGehHehHehHehHehHehHehHehHehIehJehIehIehIehIehIehIehIehIehIehIehIehKeekeekedEdXLdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDedxedxedxedxdPDdPDdPDdPDdPDdPDedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAegVegVegVegVehlehlehlehlehlehlehlehlehlehlehlehlehlehlcKlcKdehoehpehqehregUegUegUegUegUegUegUegUegUegUegUegUegUegUegUegUegUegUegUdXLdXLdXLdXLdXLedDeekeekedEdXLdXLdXLdWYdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDedxedxedxedxdPDdPDdPDdPDdPDedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAegVegVegVegVegVehlehlehlehlehlehlehlehsehsehlehlehlehlehlcKreaaeaaeaaeaaehuegUegUegUegUegUegUegUegUegUegUegUegUegUegUegUegUegUegUegUdXLdXLdXLdXLdXLdXLdXLdXLedudXLdXLdXLdXLdWYdWYdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDedxedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAegVegVegVegVehlehlehlehlehlehlehvehwehxehyehlehlehlehlcKsehAehBeaaeaaehCehDehEehFehFehFehGehHehHehHehHehHehHehHehHehIehJehIehIehIehIehIehIehIehIehIehIehIehKeekeekedEdXLdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedxdPDdPDdPDdPDdPDedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAegVdNAehLehlehlehMehNehlehOehPehwehyehlehQehRehlehlehlehSeaadQhaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXMdNAdNAdNAdNAdMwdMwdWYdWYdWYdWYdXLedwdXLdXLedudXLdXLdWYdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedxedxedxedxdPDdPDdPDdPDdPDdPDedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaehTehUehVehWehXeaadQhaabaabaaadNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdWYdWYeaadXLdXLedudXLdXLdXLdWYdWYdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedxedxdPDdPDedxdPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAeaaeaaeaaeaaeaaeaaeaadQhaabaaadMydNAdNAdNAdNAdMydMyaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdWYdWYdXLedDeekedEdXLdXLdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -13728,19 +13746,19 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdP aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDedxedxedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdXLdXLdXLdXLeaUeaUeaUeaUeiTeiTeiTdXLdXLdXLdWYdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAeiOdNAdNAeiAeiIeiJeiUeiGeiVdXLdXLdXLdXLdXLdXLdXLdXLdXLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMwdMwdMwdMwdMwdMweaaeiWeiXeiYeiYeiZdXLdXLedudXLdXLdXLdXLdXLdXLdXLdXLdMydWYdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDedxedxedxedxedxedxedxedxdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdXLdXLdXLdXLdXLdXLdXLdXLejaejbejcdXLdXLdXLdWYdMwdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdWYdWYdWYdWYdWYdWYdWYdMwdMwdMwdMwdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAeiAejdeiAeiAeiAeiAeiAeiAeiGejedXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLaaaaaaaaaaaaaaaaaaaaaaaaaaadMwdMwdMwdMwdMweaaejfejgejhejhejidXLeeNedkedldXLdXLdXLdXLdXLdXLdXLdMydMydWYdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDedxedxedxedxedxedxdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedxedxdPDdPDdPDdPDdXLdXLejjejjejjejjejjejjejkejlejmejjejjejjejjejjdXLdXLdXLdWYdMwdMwdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdWYdWYdXLdXLdXLdXLdXLdWYdWYdWYdWYdWYdMwdMwdMwdMwdMwdMwdMwdNAdNAdNAdNAeiAeiAeiAeiAejnejoejpeiAeiEejqeiAejreiAeiAeiAejsejtejueiAdXLdXLdXLdXLdXLdXLaaaaaaaaaaaaaaaaaaaaaaaaaaadMwdMwdMwdWYeaaejvejwejxejxejydXLedgedqedidXLdXLdXLdXLdXLdXLdXLdXLdXLdWYdWYdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDedxedxedxedxedxedxdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedxdPDdPDdWYdXLdXLdXLejjejzejAejBejCejDejEejFejGejHejIejJejKejLedldXLdXLdWYdWYdWYdWYdMwdMwdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdWYdWYdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdWYdWYdWYdWYdWYdMwdMwdMwdMwdNAdNAdNAeiAejMejNejOejPejNejNeiAeiIeiJejQeiGeiAejRejSejTejTejTeiRdXLdXLdXLdXLdXLdXLdXLaaaaaaaaaaaaaaaaaaaaaaaaaaadWYdWYdWYdXLdXLdXLdXLdXLdXLdXLdXLejUejVejWejXejVejVdXLdXLdXLdXLdXLdXLdWYdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDedxedxedxedxedxedxdPDdPDdPDdPDdPDdPDdPDedxedxedxedxedxdPDdPDdWYdXLdXLdXLejjejzejAejBejCejDcKtejFejGejHejIejJejKejLedldXLdXLdWYdWYdWYdWYdMwdMwdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdWYdWYdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdWYdWYdWYdWYdWYdMwdMwdMwdMwdNAdNAdNAeiAejMejNejOejPejNejNeiAeiIeiJejQeiGeiAejRejSejTejTejTeiRdXLdXLdXLdXLdXLdXLdXLaaaaaaaaaaaaaaaaaaaaaaaaaaadWYdWYdWYdXLdXLdXLdXLdXLdXLdXLdXLejUejVejWejXejVejVdXLdXLdXLdXLdXLdXLdWYdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDedxedxedxdPDdPDdMwdWYdXLdXLdXLejjejYejZekaekbejZekcejZejZekdekeekfejKekgekhdXLdXLdXLdXLdXLdWYdWYdWYdMwdMwdMwdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdWYdWYeaadXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdWYdWYdMwdMwdMwdMwdMwdMweiAekiejNekjekkeklekmeiAeiAeiAeiAeiGeiAejReknekneknekoeiVdXLdXLdXLdXLdXLdXLdXLaaaaaaaaaaaaaaaaaaaaaaaaaaadXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLejUekpekqekqekrejVdXLeksdXLdXLdXLeaMeaadWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDedxedxedxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdMwdWYdXLdXLdXLejjektejZejZekuejZekcekvejZejZekwekxekyejLedidXLdXLdXLdXLdXLdXLdXLdWYdWYdWYdWYdMwdMwdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdWYdWYdXLeiSdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdWYdWYdWYdWYdMwdMwdMweiAekzekAekBejNekCekDekEekoekFekGekHeiAekIeknekJekKekLejedXLdXLdXLdXLdXLdXLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXLdXLdXLdXLdXLekMekMekNekOejUekPekQekRekSejVejVejVejVdXLdXLdXLdXLdWYdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdNAdNAdWYdWYdXLdXLejjekTejZekUekVekWekXekYejZejjejjejjejjejjejjeeNedldXLdXLdXLdXLdXLdXLdXLdXLdWYdWYdWYdMwdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdWYdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLeeNedldXLdXLdXLdXLdXLdXLdXLdXLdXLdWYdWYdMwdMweiAeiAeiAeiAeiAeiAeiAekZelaelbekZelaeiAeiAeiAeiAeiAelceiAeiAeldeledXLdXLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXLdXLelfekOelgelhelieljelkellellelmelneloelpelqedldXLdXLdXLeabdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdNAdNAdMwdWYdXLdXLejjelrelseltekbeluelvelwelxelyelzelAelBelCelDegSegTeekeekeekeekeekedEdXLdXLdXLdXLdWYdWYdWYdMwdMwdMwdMwdMwdNAdNAdNAdMwdMwdMwdMwdWYdWYdXLdXLegQeekeekeekeekeekeekeekeekegSegTeekeekeekeekedEdXLdXLdXLdXLdXLdWYdMwdMwdMwdMwdMweiAelEelFelGeknekLelHekoekLekEelIelJelKekoekLeknelLelMelNejtejuelOelOelOelOelOelOelOelOelPelPelPelPelPelPelPekNelQelRelSelhelTelUelVelWellellelXelYelZemaembemcdXLdXLdXLeabdWYdMwdMwdNAdNAdNAdNAdNAdNAdMwdMwdMwdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdNAdNAdMwdWYdXLdXLejjejjejjejjejjemdemeemfejjejjemgejjejjejjejjedgedidXLdXLdXLdXLdXLedudXLdXLdXLdXLdWYdXLdWYdWYdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdWYdWYdXLdXLdXLedudXLdXLdXLdXLdXLdXLdXLdXLedgedidXLdXLdXLdXLedudXLdXLdXLdXLdXLdWYdWYeaadWYdWYdMweiAeiAeiAeiAeknekLemhemiemjekGemkemlemlemmemmemnemlemoempemlempemqemqemqemqemqemqemqemqemremremremremremremremsemtemsemuemtemvemwemxemyemzemAemBelqemCemDelqedidXLdXLdXLdXLdWYdWYdMwdMwdNAdNAdNAdNAdNAdMwdMwdMwdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdPDdPDdNAdNAdMwdWYdXLdXLejjejjejjejjejjemdemeemfejjejjemgejjejjejjejjedgedidXLdXLdXLdXLdXLedudXLdXLdXLdXLdWYdXLdWYdWYdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdWYdWYdXLdXLdXLedudXLdXLdXLdXLdXLdXLdXLdXLedgedidXLdXLdXLdXLedudXLdXLdXLdXLdXLdWYdWYeaadWYdWYdMweiAeiAeiAeiAeknekLemhemiemjekGemkemlemlemmemmemnemlemoempemlempemqemqemqemqemqemqemqemqemremremremremremremremsemtemsemuemtemvemwemxcBPemzemAemBelqemCemDelqedidXLdXLdXLdXLdWYdWYdMwdMwdNAdNAdNAdNAdNAdMwdMwdMwdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPDdPDdNAdNAdMwdWYdWYdXLdXLdXLdXLdXLejjemEemFemGemHejjemIemJeaUdXLdXLdXLdXLdXLedwdXLdXLdXLedDeekeekedEdXLdXLdXLdXLdWYdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdWYdXLdXLegQeekegRdXLdXLdXLdXLdWYdXLdXLedwdXLdXLdXLdXLdXLdXLedudXLdXLdXLdXLdXLdXLdXLeiSdXLdWYdWYdWYdWYdWYeiAeknemKemLemMemMemLemNemOemPemMemMemQemLemRemSemTemUemVemVemVemVemVemVemVemVemWemWemWemWemWemWemXemYemZenaenbencendeneenfekMekMekMekMekMekMekMekMengenhenienheaUeabdWYdMwdMwdNAdNAdNAdNAdMwdMwdMwdMwdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdMwdWYdWYdXLdXLdXLdXLejjenjenkenlenmejjdXLdXLdXLdXLdXLdXLdWYdWYeaadWYdXLdXLdXLdXLdXLedudXLdXLdXLdXLdXLdWYdMwdMwdMwdMwdMwdWYdWYdWYdWYdWYdXLegQegRdXLdXLdXLdWYdWYdWYdWYdWYdWYeaadXLdXLdXLdXLdXLdXLedudXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdWYdWYeiAeiAennenoenneiAeiAenpenqenreiAeiAeiAensenneiAentdXLdXLdXLaaaaaaaaaaaaaabaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaenuekOelhenvenwenxenyenzenzenAekMenBenCenDenEenEenFenEeaUdXLdWYdMwdMwdNAdNAdNAdNAdMwdMwdMwdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdMwdWYdWYdXLdXLdXLejjejjejjejjejjejjdXLdXLdWYdWYdWYdWYdWYdMwdMwdWYdWYdXLdXLdXLdXLedudXLdXLdXLdXLdXLdXLdWYdWYdWYdWYdWYdWYdXLdXLdXLdXLdXLedudXLdXLdWYdWYdWYdMwdMwdMwdMwdMwdWYdXLdXLdXLdXLdXLdXLedudXLdXLdXLeeNedldXLdXLdXLdXLdXLdXLdXLdWYeiAenGenHenIenJeiAenKenLenMenNenOeiAeiAenPenQeiAdXLdXLdXLdXLdXLdXLaaaaaaaabaaaaaaaaaaabaabaabaabaabaabaabaabaabekMenRenSemwekMekMekMekMenTekMenUekMekMeaUeaUenVeaUeaUdXLdWYdMwdMwdNAdNAdNAdMwdMwdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdMwdMwdWYdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdWYdMwdMwdMwdMwdMwdMwdMwdWYdWYdXLdXLdXLedDeekeekeekedEdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLedudXLdWYdWYdMwdMwdMwdMwdMwdMwdMwdWYdWYdXLdXLdXLdXLdXLedDeekeekeekegSegTeekeekeekedEdXLdXLdXLdXLeiAenWenXenYenZeiAeoaeobeobeoceodeiAeiAeoeeofeiAdXLdXLdXLdXLdXLdXLaabaabaabaabaabaabaabeogeogeogeogeogaabaaaaaaekMeoheoiemweojeokeolenzenzeomenzenAekMdXLdXLeondXLdXLdWYdWYdMwdMwdNAdNAdMwdMwdMwdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdMwdWYdXLdXLdXLdXLdXLdXLdXLdXLdXLdWYdWYdWYdMwdMwdMwdMwdMwdMwdMwdMwdWYdWYdWYdXLdXLdXLdXLdXLedDedEdXLdXLeeNedldXLdXLegQeekeekeekeekeekegRdXLdWYdMwdMwdMwdMwdNAdNAdNAdMwdMwdWYdWYdWYdXLdXLdXLdXLdXLdXLdXLedgedidXLdXLdXLedudXLdXLdXLdXLeiAeiAeiAeiAeiAeiAeooeopeoqeoreodeiAeiAeosenneiAdXLdXLdXLdXLdXLdXLaaaaaaaabaaaaaaaaaaabeogeogeogeogeogaabaaaelfekOeoteoueovekMekMekMekMekMekMeoweoxekMdXLdXLdXLdXLdXLdWYdMwdMwdNAdNAdNAdMwdMwdMwdMwdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdWYdWYdWYdWYdXLdXLdXLdXLdWYdWYdWYdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdWYdWYdWYdXLedwdXLdXLedDeekeekegSegTeekeekegRdXLdXLdXLdXLdXLdXLdXLdWYdMwdMwdMwdNAdNAdNAdNAdNAdMwdMwdMwdWYdWYdWYdWYdXLdXLdXLdXLdXLdXLdXLdXLdXLedDeekeekedEdXLdXLdXLdXLdXLdXLeiAeiAeiAeiAeiAeiAeiAeoyeozeoAeoBdXLdXLdXLdXLdXLaaaaaaaaaaabaaaaaaaaaaabeogeogeogeogeogeoCelQeoDeoEelheoFemweoGeoHeoIeoJeoKeoLeoMeoxekMdXLdXLdXLdXLdWYdWYdMwdMwdNAdNAdMwdMwdMwdMwdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdMwdWYdWYdWYdWYdWYdWYdMwdMwdMwdMwdMwdMwdMwdNAdNAdNAdNAdMwdMwdMwdMwdMwdWYdWYeaadWYdXLdXLdXLdXLedgedidXLdXLdXLdXLedwdXLdWYdWYdWYdWYdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdWYdWYdWYdWYdWYdWYdWYdWYdXLdXLdXLdXLdXLedudXLdXLdXLdXLdXLdXLdXLdXLedgeoNeoOeoOeoOeoOeoPedidXLdXLdXLdXLdXLdXLaabaabaabaabaabaabaabaabeogeogeogeogeogeoQeoReoSeoTelheoFemwelhelheoUelheoVeoWeoXeoYekMdXLdXLdXLdXLdWYdMwdMwdMwdNAdNAdMwdMwdMwdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdMwdWYdWYdWYdWYdWYdWYdMwdMwdMwdMwdMwdMwdMwdNAdNAdNAdNAdMwdMwdMwdMwdMwdWYdWYeaadWYdXLdXLdXLdXLedgedidXLdXLdXLdXLedwdXLdWYdWYdWYdWYdWYdMwdMwdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdWYdWYdWYdWYdWYdWYdWYdWYdXLdXLdXLdXLdXLedudXLdXLdXLdXLdXLdXLdXLdXLedgeoNeoOeoOeoOeoOeoPedidXLdXLdXLdXLdXLdXLaabaabaabaabaabaabaabaabeogeogeogeogeogeoQeoRcKucKvelheoFemwelhelheoUelheoVeoWeoXeoYekMdXLdXLdXLdXLdWYdMwdMwdMwdNAdNAdMwdMwdMwdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdWYdWYdXLdXLdXLdXLdXLdXLdXLdXLdXLeaadWYdWYdMwdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdWYdWYdXLdXLdXLdXLedudXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLaaaaaaaaaaaaaaaaaaaabeogeogeogeogeogekNelQeoZepaelheoFepbencencepcencencepdepeepfekMdXLdXLdXLeeueaadMwdMwdMwdNAdMwdMwdMwdMwdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdMwdNAdNAdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdWYdWYdWYdXLdXLdXLdWYdWYdWYdWYdWYdMwdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdWYdXLdXLdXLdXLedDeekeekeekeekeekeekeekeekeekeekeekeekeekeekeekeekeekedEdXLdXLdXLdXLdXLdXLaaaaaaaaaaaaaaaaabeogeogeogeogeogepgaaaenuekOepheoFemwelhelhepiepjelhelheowepkekMdXLdXLdXLdXLdWYdMwdMwdMwdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdWYdWYdWYdWYdWYdMwdMwdMwdMwdMwdMwdMwdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdWYdWYdWYdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLedudXLeeNedldXLdXLdXLecwecwaaaaaaaaaaabeogeogeogeogeogaabaaaaaaeplepleoFepmencepnepoeppepqepreoXeoxekMdXLdXLdXLdXLdWYdMwdMwdMwdMwdNAdMwdMwdNAdNAdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -14214,19 +14232,19 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeDUeDVeDVeDWaaiaaiaaiaaieDXeDYeDZaaieEaeEbeEceEdeEeaaieCUeEfeEgeEheCUaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaieDXeDYeEiaaiaaieCIeCJeCKaaiaaiaaieCIeCJeCKaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCMeCJeCJeCJeCJeCKaaiaaiaaieDXeEjeEkaaieEleEmeEmeEmeEmeEneEmeEmeEmeEoeEpaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCVeEqeEqeEqeEqeEreEseEtaaieEueEveEwaaieEmeExeExeEyeEyeEmeEzeEAeEBeECeEDeEEeEFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCVeEqeEqeEqeEqeEreEseEtaaieEueEveEwaaieEmeExeExeEyeEyeEmeEzeEAeEBeECeEDcOueEFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCVeEqeEqeEqeEqeEqeEqeEGaaieDXeDYeEHaaieEIeExeExeEyeEyeEmeEJeEKeELeEMeEmeCVaaaeENeENeENeENeENaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCVeEqeEreEOeEreEPeEQeEQeEReESeETeEUeEVeEWeEXeEXeEXeEXeEYeEzeEZeELeFaeFbeFceFdeFeeFfeFgeFheENaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCVeEqeEreEOeEreEPeEQeEQeEReESeETcOIeEVeEWeEXeEXeEXeEXeEYeEzeEZeELeFaeFbeFceFdeFeeFfeFgeFheENaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCVeEqeFieEOeEreFjeFkeFleFmeFneFoeFpeFqeFreEmeFseFteFueEmeEmeEmeFveEmeFwaEFeFxeFyeFzeFAeFheFBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCVeEqeEqeEqeEqeEqeEqeFCaaieFDeFEeFFeFGeFHeFIeFIeFIeFIeFJeEAeEzeFKeFLeFMeFNeFOeFPeFQeFReFheENaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCVeEqeEqeEqeEqeEqeFSeFTceqeDdeFUeFVaaieFWeFXeFYeFZeFZeEmeGaeFueGbeFbeGceCVaaaeENeENeENeENeENaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeDUeDVeDVeDVeDVeDWaaiaaiaaieGdeGeeGfaaieGgeFXeFYeFZeFZeEmeEZeEzeGheFbeGieGjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeDUeDVeDVeDVeDVeDWaaiaaiaaieGdeGeeGfaaieGgeFXeFYeFZeFZeEmeEZeEzcKweFbeGieGjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaieGkeDYeGlaaieEmeGmeEmeEmeEmeEmeEmeEmeEmeGmeEmaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCMeCJeCJeCKaaiaaiaaiaaieFDeGneGlaaiaaiaaiaaiaaieCIeCJeCJeCJeCKaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCVeGoeGoeGoeFDeFDeFDeGpeFDeEjeFFeGqeDseGreGseGteGueGueGveGweGxeGyeGzaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCVeGoeGAeGBeDseDseDseDseDseGCeGDeGEeGEeFqeGFeGGeGFeGFeGFeGFeGHeGIeGJaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCVeGoeGoeGKeGLeEReEReEReGMeGNeGOeEReEReGPeGQeGReGSeGTeGSeGUeGVeGWeGXaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeDUeDVeDVeDWaaiaaiaaiaaieGYeGZeHaaaiaaiaaiaaieHbeHceHdeGSeHeeHfeHgeHhaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCVeGoeGoeGKeGLeEReEReERcOKeGNeGOeEReEReGPeGQeGReGSeGTeGSeGUcKxeGWeGXaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeDUeDVeDVeDWaaiaaiaaiaaieGYeGZeHaaaiaaiaaiaaicKyeHceHdeGSeHeeHfeHgeHhaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaieHieHjeHkeHleHmeHneHoeHpeHqaaieGWeHreGWeHseGWeHfeGWeGWaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaieHteHjeHueHveHweHxeHyeHjeHzaaiaaieHAaaiaaiaaieHAaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaieHBeHjeHCeHDeHEeHFeHGeHjeHHaaieHIeHJeHIaaieHIeHJeHIaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/paradise.dme b/paradise.dme index 2f4360872a8..63a6b923471 100644 --- a/paradise.dme +++ b/paradise.dme @@ -241,6 +241,7 @@ #include "code\defines\obj.dm" #include "code\defines\vox_sounds.dm" #include "code\defines\obj\weapon.dm" +#include "code\defines\procs\admin.dm" #include "code\defines\procs\AStar.dm" #include "code\defines\procs\captain_announce.dm" #include "code\defines\procs\command_alert.dm" @@ -985,6 +986,7 @@ #include "code\modules\events\communications_blackout.dm" #include "code\modules\events\electrical_storm.dm" #include "code\modules\events\event.dm" +#include "code\modules\events\event_container.dm" #include "code\modules\events\event_dynamic.dm" #include "code\modules\events\event_manager.dm" #include "code\modules\events\grid_check.dm" @@ -994,7 +996,6 @@ #include "code\modules\events\money_hacker.dm" #include "code\modules\events\money_lotto.dm" #include "code\modules\events\money_spam.dm" -#include "code\modules\events\organ_failure.dm" #include "code\modules\events\prison_break.dm" #include "code\modules\events\radiation_storm.dm" #include "code\modules\events\rogue_drones.dm" @@ -1005,7 +1006,6 @@ #include "code\modules\events\viral_outbreak.dm" #include "code\modules\events\wallrot.dm" #include "code\modules\events\sayuevents\meaty_ores.dm" -#include "code\modules\events\sayuevents\spooky.dm" #include "code\modules\events\sayuevents\undead.dm" #include "code\modules\events\sayuevents\wormholes.dm" #include "code\modules\events\tgevents\alien_infestation.dm"