diff --git a/code/ATMOSPHERICS/components/unary/outlet_injector.dm b/code/ATMOSPHERICS/components/unary/outlet_injector.dm index c821b629e04..a7705f7f11c 100644 --- a/code/ATMOSPHERICS/components/unary/outlet_injector.dm +++ b/code/ATMOSPHERICS/components/unary/outlet_injector.dm @@ -51,6 +51,7 @@ var/datum/gas_mixture/removed = air_contents.remove(transfer_moles) loc.assume_air(removed) + air_update_turf() if(network) network.update = 1 diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index 4c6a529e3bb..b9bbbdc82e5 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -148,6 +148,7 @@ var/datum/gas_mixture/removed = air_contents.remove(transfer_moles) loc.assume_air(removed) + air_update_turf() if(network) network.update = 1 @@ -168,6 +169,7 @@ return air_contents.merge(removed) + air_update_turf() if(network) network.update = 1 diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm index 23b1f7899de..b5596305577 100644 --- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm +++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm @@ -178,6 +178,7 @@ air_contents.merge(filtered_out) loc.assume_air(removed) + air_update_turf() if(network) network.update = 1 @@ -191,6 +192,7 @@ var/datum/gas_mixture/removed = loc.remove_air(transfer_moles) air_contents.merge(removed) + air_update_turf() if(network) network.update = 1 diff --git a/code/ATMOSPHERICS/datum_pipe_network.dm b/code/ATMOSPHERICS/datum_pipe_network.dm index 044d16b6c25..3b4cbb996e4 100644 --- a/code/ATMOSPHERICS/datum_pipe_network.dm +++ b/code/ATMOSPHERICS/datum_pipe_network.dm @@ -135,8 +135,6 @@ datum/pipe_network gas.trace_gases += corresponding corresponding.moles = trace_gas.moles*gas.volume/air_transient.volume - gas.update_values() - air_transient.update_values() return 1 proc/equalize_gases(datum/gas_mixture/list/gases) @@ -199,6 +197,5 @@ proc/equalize_gases(datum/gas_mixture/list/gases) gas.trace_gases += corresponding corresponding.moles = trace_gas.moles*gas.volume/total_volume - gas.update_values() return 1 \ No newline at end of file diff --git a/code/ATMOSPHERICS/datum_pipeline.dm b/code/ATMOSPHERICS/datum_pipeline.dm index d7d24080816..18a27f9c18d 100644 --- a/code/ATMOSPHERICS/datum_pipeline.dm +++ b/code/ATMOSPHERICS/datum_pipeline.dm @@ -52,7 +52,6 @@ datum/pipeline member.air_temporary.trace_gases += corresponding corresponding.moles = trace_gas.moles*member.volume/air.volume - member.air_temporary.update_values() proc/build_pipeline(obj/machinery/atmospherics/pipe/base) air = new @@ -130,27 +129,16 @@ datum/pipeline var/datum/gas_mixture/air_sample = air.remove_ratio(mingle_volume/air.volume) air_sample.volume = mingle_volume - if(istype(target) && target.zone) - //Have to consider preservation of group statuses - var/datum/gas_mixture/turf_copy = new + var/datum/gas_mixture/turf_air = target.return_air() - turf_copy.copy_from(target.zone.air) - turf_copy.volume = target.zone.air.volume //Copy a good representation of the turf from parent group - - equalize_gases(list(air_sample, turf_copy)) - air.merge(air_sample) - - turf_copy.subtract(target.zone.air) - - target.zone.air.merge(turf_copy) - - else - var/datum/gas_mixture/turf_air = target.return_air() - - equalize_gases(list(air_sample, turf_air)) - air.merge(air_sample) - //turf_air already modified by equalize_gases() + equalize_gases(list(air_sample, turf_air)) + air.merge(air_sample) + //turf_air already modified by equalize_gases() + if(istype(target)) + if(target.air) + if(target.air.check_tile_graphic()) + target.update_visuals(target.air) if(network) network.update = 1 @@ -176,12 +164,8 @@ datum/pipeline var/delta_temperature = 0 var/sharer_heat_capacity = 0 - if(modeled_location.zone) - delta_temperature = (air.temperature - modeled_location.zone.air.temperature) - sharer_heat_capacity = modeled_location.zone.air.heat_capacity() - else - delta_temperature = (air.temperature - modeled_location.air.temperature) - sharer_heat_capacity = modeled_location.air.heat_capacity() + delta_temperature = (air.temperature - modeled_location.air.temperature) + sharer_heat_capacity = modeled_location.air.heat_capacity() var/self_temperature_delta = 0 var/sharer_temperature_delta = 0 @@ -197,10 +181,7 @@ datum/pipeline air.temperature += self_temperature_delta - if(modeled_location.zone) - modeled_location.zone.air.temperature += sharer_temperature_delta/modeled_location.zone.air.group_multiplier - else - modeled_location.air.temperature += sharer_temperature_delta + modeled_location.air.temperature += sharer_temperature_delta else @@ -211,12 +192,5 @@ datum/pipeline (partial_heat_capacity*target.heat_capacity/(partial_heat_capacity+target.heat_capacity)) air.temperature -= heat/total_heat_capacity - if(network) - network.update = 1 - - proc/radiate_heat(surface, thermal_conductivity) - var/total_heat_capacity = air.heat_capacity() - var/heat = STEFAN_BOLTZMANN_CONSTANT * surface * air.temperature ** 4 * thermal_conductivity - air.temperature = max(0, air.temperature - heat / total_heat_capacity) if(network) network.update = 1 \ No newline at end of file diff --git a/code/ATMOSPHERICS/he_pipes.dm b/code/ATMOSPHERICS/he_pipes.dm index 0f9a38b09b3..ab6e2e2c8eb 100644 --- a/code/ATMOSPHERICS/he_pipes.dm +++ b/code/ATMOSPHERICS/he_pipes.dm @@ -21,11 +21,12 @@ 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) else - parent.radiate_heat(surface, 1) + environment_temperature = loc: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) + // BubbleWrap diff --git a/code/FEA/DEBUG_REMOVE_BEFORE_RELEASE.dm b/code/FEA/DEBUG_REMOVE_BEFORE_RELEASE.dm deleted file mode 100644 index 4c173b7b7ea..00000000000 --- a/code/FEA/DEBUG_REMOVE_BEFORE_RELEASE.dm +++ /dev/null @@ -1,645 +0,0 @@ -#define DEBUG - -datum/air_group/var/marker -datum/air_group/var/debugging = 0 -datum/pipe_network/var/marker - -datum/gas_mixture - var/turf/parent - -/* -turf/simulated - New() - ..() - - if(air) - air.parent = src -*/ -obj/machinery/door - verb - toggle_door() - set src in world - if(density) - open() - else - close() - -turf/space - verb - create_floor() - set src in world - new /turf/simulated/floor(src) - - create_meteor(direction as num) - set src in world - - var/obj/effect/meteor/M = new( src ) - walk(M, direction,10) - - -turf/simulated/wall - verb - create_floor() - set src in world - new /turf/simulated/floor(src) - -obj/item/weapon/tank - verb - adjust_mixture(temperature as num, target_toxin_pressure as num, target_oxygen_pressure as num) - set src in world - if(!air_contents) - usr << "\red ERROR: no gas_mixture associated with this tank" - return null - - air_contents.temperature = temperature - air_contents.oxygen = target_oxygen_pressure*air_contents.volume/(R_IDEAL_GAS_EQUATION*air_contents.temperature) - air_contents.toxins = target_toxin_pressure*air_contents.volume/(R_IDEAL_GAS_EQUATION*air_contents.temperature) - -turf/simulated/floor - verb - parent_info() - set src in world - if(parent) - usr << "[x],[y] parent: Processing: [parent.group_processing]" - if(parent.members) - usr << "Members: [parent.members.len]" - else - usr << "Members: None?" - if(parent.borders) - usr << "Borders: [parent.borders.len]" - else - usr << "Borders: None" - if(parent.length_space_border) - usr << "Space Borders: [parent.space_borders.len], Space Length: [parent.length_space_border]" - else - usr << "Space Borders: None" - else - usr << "\blue [x],[y] has no parent air group." - - verb - create_wall() - set src in world - new /turf/simulated/wall(src) - verb - adjust_mixture(temp as num, tox as num, oxy as num) - set src in world - var/datum/gas_mixture/stuff = return_air() - stuff.temperature = temp - stuff.toxins = tox - stuff.oxygen = oxy - - verb - boom(inner_range as num, middle_range as num, outer_range as num) - set src in world - explosion(src,inner_range,middle_range,outer_range,outer_range) - - verb - flag_parent() - set src in world - if(parent) - parent.debugging = !parent.debugging - usr << "[parent.members.len] set to [parent.debugging]" - verb - small_explosion() - set src in world - explosion(src, 1, 2, 3, 3) - - verb - large_explosion() - set src in world - explosion(src, 3, 5, 7, 5) - -obj/machinery/portable_atmospherics/canister - verb/test_release() - set src in world - set category = "Minor" - - valve_open = 1 - release_pressure = 1000 -/* -obj/machinery/atmospherics - unary - heat_reservoir - verb - toggle_power() - set src in world - set category = "Minor" - - on = !on - - update_icon() - adjust_temp(temp as num) - set src in world - set category = "Minor" - - current_temperature = temp - cold_sink - verb - toggle_power() - set src in world - set category = "Minor" - - on = !on - - update_icon() - adjust_temp(temp as num) - set src in world - set category = "Minor" - - current_temperature = temp - vent_pump - verb - toggle_power() - set src in world - set category = "Minor" - - on = !on - - update_icon() - - toggle_direction() - set src in world - set category = "Minor" - - pump_direction = !pump_direction - - update_icon() - - change_pressure_parameters() - set src in world - set category = "Minor" - - usr << "current settings: PC=[pressure_checks], EB=[external_pressure_bound], IB=[internal_pressure_bound]" - - var/mode = input(usr, "Select an option:") in list("Bound External", "Bound Internal", "Bound Both") - - switch(mode) - if("Bound External") - pressure_checks = 1 - external_pressure_bound = input(usr, "External Pressure Bound?") as num - if("Bound Internal") - pressure_checks = 2 - internal_pressure_bound = input(usr, "Internal Pressure Bound?") as num - else - pressure_checks = 3 - external_pressure_bound = input(usr, "External Pressure Bound?") as num - internal_pressure_bound = input(usr, "Internal Pressure Bound?") as num - - outlet_injector - verb - toggle_power() - set src in world - set category = "Minor" - - on = !on - - update_icon() - verb - trigger_inject() - set src in world - set category = "Minor" - - inject() - - vent_scrubber - verb - toggle_power() - set src in world - set category = "Minor" - - on = !on - - update_icon() - - toggle_scrubbing() - set src in world - set category = "Minor" - - scrubbing = !scrubbing - - update_icon() - - change_rate(amount as num) - set src in world - set category = "Minor" - - volume_rate = amount - - mixer - verb - toggle() - set src in world - set category = "Minor" - - on = !on - - update_icon() - - change_pressure(amount as num) - set src in world - set category = "Minor" - - target_pressure = amount - - change_ratios() - set src in world - set category = "Minor" - - if(node_in1) - var/node_ratio = input(usr, "Node 1 Ratio? ([dir2text(get_dir(src, node_in1))])") as num - node_ratio = min(max(0,node_ratio),1) - - node1_concentration = node_ratio - node2_concentration = 1-node_ratio - else - node2_concentration = 1 - node1_concentration = 0 - - usr << "Node 1: [node1_concentration], Node 2: [node2_concentration]" - - - filter - verb - toggle() - set src in world - set category = "Minor" - - on = !on - - update_icon() - - change_pressure(amount as num) - set src in world - set category = "Minor" - - target_pressure = amount - - unary/oxygen_generator - verb - toggle() - set src in world - set category = "Minor" - - on = !on - - update_icon() - - change_rate(amount as num) - set src in world - set category = "Minor" - - oxygen_content = amount - binary/pump - verb - debug() - set src in world - set category = "Minor" - - world << "Debugging: [x],[y]" - - if(node1) - world << "Input node: [node1.x],[node1.y] [network1]" - if(node2) - world << "Output node: [node2.x],[node2.y] [network2]" - - toggle() - set src in world - set category = "Minor" - - on = !on - - update_icon() - change_pressure(amount as num) - set src in world - set category = "Minor" - - target_pressure = amount - - valve - verb - toggle() - set src in world - set category = "Minor" - - if(open) - close() - else - open() - network_data() - set src in world - set category = "Minor" - - world << "\blue [x],[y]" - world << "network 1: [network_node1.normal_members.len], [network_node1.line_members.len]" - for(var/obj/O in network_node1.normal_members) - world << "member: [O.x], [O.y]" - world << "network 2: [network_node2.normal_members.len], [network_node2.line_members.len]" - for(var/obj/O in network_node2.normal_members) - world << "member: [O.x], [O.y]" - pipe - verb - destroy() - set src in world - set category = "Minor" - - del(src) - - pipeline_data() - set src in world - set category = "Minor" - - if(parent) - usr << "[x],[y] is in a pipeline with [parent.members.len] members ([parent.edges.len] edges)! Volume: [parent.air.volume]" - usr << "Pressure: [parent.air.return_pressure()], Temperature: [parent.air.temperature]" - usr << "[parent.air.oxygen], [parent.air.toxins], [parent.air.nitrogen], [parent.air.carbon_dioxide] .. [parent.alert_pressure]" -*/ -mob - verb - flag_all_pipe_networks() - set category = "Debug" - - for(var/datum/pipe_network/network in pipe_networks) - network.update = 1 - - mark_pipe_networks() - set category = "Debug" - - for(var/datum/pipe_network/network in pipe_networks) - network.marker = rand(1,4) - - for(var/obj/machinery/atmospherics/pipe/P in world) - P.overlays.Cut() - - var/datum/pipe_network/master = P.return_network() - if(master) - P.overlays += icon('icons/Testing/atmos_testing.dmi',"marker[master.marker]") - else - world << "error" - P.overlays += icon('icons/Testing/atmos_testing.dmi',"marker0") - - for(var/obj/machinery/atmospherics/valve/V in world) - V.overlays.Cut() - - if(V.network_node1) - V.overlays += icon('icons/Testing/atmos_testing.dmi',"marker[V.network_node1.marker]") - else - V.overlays += icon('icons/Testing/atmos_testing.dmi',"marker0") - - if(V.network_node2) - V.overlays += icon('icons/Testing/atmos_testing.dmi',"marker[V.network_node2.marker]") - else - V.overlays += icon('icons/Testing/atmos_testing.dmi',"marker0") - -turf/simulated - var/fire_verbose = 0 - - verb - mark_direction() - set src in world - overlays.Cut() - for(var/direction in list(NORTH,SOUTH,EAST,WEST)) - if(group_border&direction) - overlays += icon('icons/Testing/turf_analysis.dmi',"red_arrow",direction) - else if(air_check_directions&direction) - overlays += icon('icons/Testing/turf_analysis.dmi',"arrow",direction) - air_status() - set src in world - set category = "Minor" - var/datum/gas_mixture/GM = return_air() - usr << "\blue @[x],[y] ([GM.group_multiplier]): O:[GM.oxygen] T:[GM.toxins] N:[GM.nitrogen] C:[GM.carbon_dioxide] w [GM.temperature] Kelvin, [GM.return_pressure()] kPa [(active_hotspot)?("\red BURNING"):(null)]" - for(var/datum/gas/trace_gas in GM.trace_gases) - usr << "[trace_gas.type]: [trace_gas.moles]" - - force_temperature(temp as num) - set src in world - set category = "Minor" - if(parent&&parent.group_processing) - parent.suspend_group_processing() - - air.temperature = temp - - spark_temperature(temp as num, volume as num) - set src in world - set category = "Minor" - - hotspot_expose(temp, volume) - - fire_verbose() - set src in world - set category = "Minor" - - fire_verbose = !fire_verbose - usr << "[x],[y] now [fire_verbose]" - - add_sleeping_agent(amount as num) - set src in world - set category = "Minor" - - if(amount>1) - var/datum/gas_mixture/adding = new - var/datum/gas/sleeping_agent/trace_gas = new - - trace_gas.moles = amount - adding.trace_gases += trace_gas - adding.temperature = T20C - - assume_air(adding) - -obj/indicator - icon = 'icons/Testing/air_meter.dmi' - var/measure = "temperature" - anchored = 1 - - process() - icon_state = measurement() - - proc/measurement() - var/turf/T = loc - if(!isturf(T)) return - var/datum/gas_mixture/GM = T.return_air() - switch(measure) - if("temperature") - if(GM.temperature < 0) - return "error" - return "[round(GM.temperature/100+0.5)]" - if("oxygen") - if(GM.oxygen < 0) - return "error" - return "[round(GM.oxygen/MOLES_CELLSTANDARD*10+0.5)]" - if("plasma") - if(GM.toxins < 0) - return "error" - return "[round(GM.toxins/MOLES_CELLSTANDARD*10+0.5)]" - if("nitrogen") - if(GM.nitrogen < 0) - return "error" - return "[round(GM.nitrogen/MOLES_CELLSTANDARD*10+0.5)]" - else - return "[round((GM.total_moles())/MOLES_CELLSTANDARD*10+0.5)]" - - - Click() - process() - - -obj/window - verb - destroy() - set category = "Minor" - set src in world - del(src) - -mob - sight = SEE_OBJS|SEE_TURFS - - verb - update_indicators() - set category = "Debug" - if(!air_master) - usr << "Cannot find air_system" - return - - for(var/obj/indicator/T in world) - T.process() - change_indicators() - set category = "Debug" - if(!air_master) - usr << "Cannot find air_system" - return - - var/str = input("Select") in list("oxygen", "nitrogen","plasma","all","temperature") - - for(var/obj/indicator/T in world) - T.measure = str - T.process() - - fire_report() - set category = "Debug" - usr << "\b \red Fire Report" - for(var/obj/effect/hotspot/flame in world) - usr << "[flame.x],[flame.y]: [flame.temperature]K, [flame.volume] L - [flame.loc:air:temperature]" - - process_cycle() - set category = "Debug" - if(!master_controller) - usr << "Cannot find master_controller" - return - - master_controller.process() - update_indicators() - - process_cycles(amount as num) - set category = "Debug" - if(!master_controller) - usr << "Cannot find master_controller" - return - - var/start_time = world.timeofday - - for(var/i=1; i<=amount; i++) - master_controller.process() - - world << "Ended [amount] cycles in [(world.timeofday-start_time)/10] seconds. [(world.timeofday-start_time)/10-amount] calculation lag" - - update_indicators() - - process_updates_early() - set category = "Debug" - if(!air_master) - usr << "Cannot find air_system" - return - - air_master.process_update_tiles() - air_master.process_rebuild_select_groups() - - mark_group_delay() - set category = "Debug" - if(!air_master) - usr << "Cannot find air_system" - return - - for(var/datum/air_group/group in air_master.air_groups) - group.marker = 0 - - for(var/turf/simulated/floor/S in world) - S.icon = 'icons/Testing/turf_analysis.dmi' - if(S.parent) - if(S.parent.group_processing) - if (S.parent.check_delay < 2) - S.parent.marker=1 - else if (S.parent.check_delay < 5) - S.parent.marker=2 - else if (S.parent.check_delay < 15) - S.parent.marker=3 - else if (S.parent.check_delay < 30) - S.parent.marker=4 - else - S.parent.marker=5 - if(S.parent.borders && S.parent.borders.Find(S)) - S.icon_state = "on[S.parent.marker]_border" - else - S.icon_state = "on[S.parent.marker]" - - else - if (S.check_delay < 2) - S.icon_state= "on1_border" - else if (S.check_delay < 5) - S.icon_state= "on2_border" - else if (S.check_delay < 15) - S.icon_state= "on3_border" - else if (S.check_delay < 30) - S.icon_state= "on4_border" - else - S.icon_state = "suspended" - else - if(S.processing) - S.icon_state = "individual_on" - else - S.icon_state = "individual_off" - - - mark_groups() - set category = "Debug" - if(!air_master) - usr << "Cannot find air_system" - return - - for(var/datum/air_group/group in air_master.air_groups) - group.marker = 0 - - for(var/turf/simulated/floor/S in world) - S.icon = 'icons/Testing/turf_analysis.dmi' - if(S.parent) - if(S.parent.group_processing) - if(S.parent.marker == 0) - S.parent.marker = rand(1,5) - if(S.parent.borders && S.parent.borders.Find(S)) - S.icon_state = "on[S.parent.marker]_border" - else - S.icon_state = "on[S.parent.marker]" - - else - S.icon_state = "suspended" - else - if(S.processing) - S.icon_state = "individual_on" - else - S.icon_state = "individual_off" - - get_broken_icons() - set category = "Debug" - getbrokeninhands() - - -/* jump_to_dead_group() Currently in the normal admin commands but fits here - set category = "Debug" - if(!air_master) - usr << "Cannot find air_system" - return - - var/datum/air_group/dead_groups = list() - for(var/datum/air_group/group in air_master.air_groups) - if (!group.group_processing) - dead_groups += group - var/datum/air_group/dest_group = pick(dead_groups) - usr.loc = pick(dest_group.members)*/ diff --git a/code/FEA/FEA_airgroup.dm b/code/FEA/FEA_airgroup.dm deleted file mode 100644 index 94c51102b27..00000000000 --- a/code/FEA/FEA_airgroup.dm +++ /dev/null @@ -1,286 +0,0 @@ -datum/air_group - var/group_processing = 1 //Processing all tiles as one large tile if 1 - - var/datum/gas_mixture/air = new - - var/current_cycle = 0 //cycle that oxygen value represents - var/archived_cycle = 0 //cycle that oxygen_archived value represents - //The use of archived cycle saves processing power by permitting the archiving step of FET - // to be rolled into the updating step - - //optimization vars - var/next_check = 0 //number of ticks before this group updates - var/check_delay = 10 //number of ticks between updates, starts fairly high to get boring groups out of the way - - proc/members() - //Returns the members of the group - proc/process_group() - - - var/list/borders //Tiles that connect this group to other groups/individual tiles - var/list/members //All tiles in this group - - var/list/space_borders - var/length_space_border = 0 - - - proc/suspend_group_processing() - group_processing = 0 - update_tiles_from_group() - check_delay=0 - next_check=0 - - - //Copy group air information to individual tile air - //Used right before turning on group processing - proc/update_group_from_tiles() - var/sample_member = pick(members) - var/datum/gas_mixture/sample_air = sample_member:air - - air.copy_from(sample_air) - air.group_multiplier = members.len - return 1 - - - //Copy group air information to individual tile air - //Used right before turning off group processing - proc/update_tiles_from_group() - for(var/member in members) - member:air.copy_from(air) - if (istype(member,/turf/simulated)) - var/turf/simulated/turfmem=member - turfmem.reset_delay() - - - proc/archive() - air.archive() - archived_cycle = air_master.current_cycle - - - //If individually processing tiles, checks all member tiles to see if they are close enough that the group may resume group processing - //Warning: Do not call, called by air_master.process() - proc/check_regroup() - //Purpose: Checks to see if group processing should be turned back on - //Returns: group_processing - if(prevent_airgroup_regroup) - return 0 - - if(group_processing) return 1 - - var/turf/simulated/sample = pick(members) - for(var/member in members) - if(member:active_hotspot) - return 0 - if(member:air.compare(sample.air)) continue - else - return 0 - - update_group_from_tiles() - group_processing = 1 - return 1 - - -//Look into this - turf/process_group() - current_cycle = air_master.current_cycle - if(!group_processing) //Revert to individual processing then end - for(var/T in members) - var/turf/simulated/member = T - member.process_cell() - return - - //check if we're skipping this tick - if (next_check > 0) - next_check-- - return 1 - var/player_count = max(player_list.len, 3) / 3 - next_check += check_delay + rand(player_count, player_count * 1.5) - check_delay++ - - var/turf/simulated/list/border_individual = list() - var/datum/air_group/list/border_group = list() - - var/turf/simulated/list/enemies = list() //used to send the appropriate border tile of a group to the group proc - var/turf/simulated/list/self_group_borders = list() - var/turf/simulated/list/self_tile_borders = list() - - if(archived_cycle < air_master.current_cycle) - archive() - //Archive air data for use in calculations - //But only if another group didn't store it for us - - for(var/turf/simulated/border_tile in src.borders) - for(var/direction in cardinal) //Go through all border tiles and get bordering groups and individuals - if(border_tile.group_border&direction) - var/turf/simulated/enemy_tile = get_step(border_tile, direction) //Add found tile to appropriate category - if(istype(enemy_tile) && enemy_tile.parent && enemy_tile.parent.group_processing) - border_group += enemy_tile.parent - enemies += enemy_tile - self_group_borders += border_tile - else - border_individual += enemy_tile - self_tile_borders += border_tile - - var/abort_group = 0 - - // Process connections to adjacent groups - var/border_index = 1 - for(var/datum/air_group/AG in border_group) - if(AG.archived_cycle < archived_cycle) //archive other groups information if it has not been archived yet this cycle - AG.archive() - if(AG.current_cycle < current_cycle) - //This if statement makes sure two groups only process their individual connections once! - //Without it, each connection would be processed a second time as the second group is evaluated - - var/connection_difference = 0 - var/turf/simulated/floor/self_border = self_group_borders[border_index] - var/turf/simulated/floor/enemy_border = enemies[border_index] - - var/result = air.check_gas_mixture(AG.air) - if(result == 1) - connection_difference = air.share(AG.air) - else if(result == -1) - AG.suspend_group_processing() - connection_difference = air.share(enemy_border.air) - else - abort_group = 1 - break - - if(connection_difference) - if(connection_difference > 0) - self_border.consider_pressure_difference(connection_difference, get_dir(self_border,enemy_border)) - else - var/turf/enemy_turf = enemy_border - if(!isturf(enemy_turf)) - enemy_turf = enemy_border.loc - enemy_turf.consider_pressure_difference(-connection_difference, get_dir(enemy_turf,self_border)) - - border_index++ - - // Process connections to adjacent tiles - border_index = 1 - if(!abort_group) - for(var/atom/enemy_tile in border_individual) - var/connection_difference = 0 - var/turf/simulated/floor/self_border = self_tile_borders[border_index] - - if(istype(enemy_tile, /turf/simulated)) - if(enemy_tile:archived_cycle < archived_cycle) //archive tile information if not already done - enemy_tile:archive() - if(enemy_tile:current_cycle < current_cycle) - if(air.check_gas_mixture(enemy_tile:air)) - connection_difference = air.share(enemy_tile:air) - else - abort_group = 1 - break - else if(isturf(enemy_tile)) - if(air.check_turf(enemy_tile)) - connection_difference = air.mimic(enemy_tile) - else - abort_group = 1 - break - - if(connection_difference) - if(connection_difference > 0) - self_border.consider_pressure_difference(connection_difference, get_dir(self_border,enemy_tile)) - else - var/turf/enemy_turf = enemy_tile - if(!isturf(enemy_turf)) - enemy_turf = enemy_tile.loc - enemy_turf.consider_pressure_difference(-connection_difference, get_dir(enemy_tile,enemy_turf)) - - // Process connections to space - border_index = 1 - if(!abort_group) - if(length_space_border > 0) - var/turf/space/sample = locate() - var/connection_difference = 0 - - if(air.check_turf(sample)) - connection_difference = air.mimic(sample, length_space_border) - else - abort_group = 1 - - if(connection_difference) - for(var/turf/simulated/self_border in space_borders) - self_border.consider_pressure_difference_space(connection_difference) - - if(abort_group) - suspend_group_processing() - else - if(air.check_tile_graphic()) - for(var/T in members) - var/turf/simulated/member = T - member.update_visuals(air) - - - if(air.temperature > FIRE_MINIMUM_TEMPERATURE_TO_EXIST) - for(var/T in members) - var/turf/simulated/member = T - member.hotspot_expose(air.temperature, CELL_VOLUME) - member.consider_superconductivity(starting=1) - - air.react() - return - - - - object/process_group() - current_cycle = air_master.current_cycle - - if(!group_processing) return //See if processing this group as a group - - var/turf/simulated/list/border_individual = list() - var/datum/air_group/list/border_group = list() - - var/turf/simulated/list/enemies = list() //used to send the appropriate border tile of a group to the group proc - var/enemy_index = 1 - - if(archived_cycle < air_master.current_cycle) - archive() - //Archive air data for use in calculations - //But only if another group didn't store it for us - - enemy_index = 1 - var/abort_group = 0 - for(var/datum/air_group/AG in border_group) - if(AG.archived_cycle < archived_cycle) //archive other groups information if it has not been archived yet this cycle - AG.archive() - if(AG.current_cycle < current_cycle) - //This if statement makes sure two groups only process their individual connections once! - //Without it, each connection would be processed a second time as the second group is evaluated - - var/result = air.check_gas_mixture(AG.air) - if(result == 1) - air.share(AG.air) - else if(result == -1) - AG.suspend_group_processing() - var/turf/simulated/floor/enemy_border = enemies[enemy_index] - air.share(enemy_border.air) - else - abort_group = 0 - break - enemy_index++ - - if(!abort_group) - for(var/enemy_tile in border_individual) - if(istype(enemy_tile, /turf/simulated)) - if(enemy_tile:archived_cycle < archived_cycle) //archive tile information if not already done - enemy_tile:archive() - if(enemy_tile:current_cycle < current_cycle) - if(air.check_gas_mixture(enemy_tile:air)) - air.share(enemy_tile:air) - else - abort_group = 1 - break - else - if(air.check_turf(enemy_tile)) - air.mimic(enemy_tile) - else - abort_group = 1 - break - - if(abort_group) - suspend_group_processing() - - return \ No newline at end of file diff --git a/code/FEA/FEA_group_helpers.dm b/code/FEA/FEA_group_helpers.dm deleted file mode 100644 index c803d6ef95e..00000000000 --- a/code/FEA/FEA_group_helpers.dm +++ /dev/null @@ -1,101 +0,0 @@ -/turf/simulated/proc/find_group() - //Basically, join any nearby valid groups - // If more than one, pick one with most members at my borders - // If can not find any but there was an ungrouped at border with me, call for group assembly - - var/turf/simulated/floor/north = get_step(src,NORTH) - var/turf/simulated/floor/south = get_step(src,SOUTH) - var/turf/simulated/floor/east = get_step(src,EAST) - var/turf/simulated/floor/west = get_step(src,WEST) - - //Clear those we do not have access to - if(!CanPass(null, north, null, 1) || !istype(north)) - north = null - if(!CanPass(null, south, null, 1) || !istype(south)) - south = null - if(!CanPass(null, east, null, 1) || !istype(east)) - east = null - if(!CanPass(null, west, null, 1) || !istype(west)) - west = null - - var/new_group_possible = 0 - - var/north_votes = 0 - var/south_votes = 0 - var/east_votes = 0 - - if(north) - if(north.parent) - north_votes = 1 - - if(south && (south.parent == north.parent)) - north_votes++ - south = null - - if(east && (east.parent == north.parent)) - north_votes++ - east = null - - if(west && (west.parent == north.parent)) - north_votes++ - west = null - else - new_group_possible = 1 - - if(south) - if(south.parent) - south_votes = 1 - - if(east && (east.parent == south.parent)) - south_votes++ - east = null - - if(west && (west.parent == south.parent)) - south_votes++ - west = null - else - new_group_possible = 1 - - if(east) - if(east.parent) - east_votes = 1 - - if(west && (west.parent == east.parent)) - east_votes++ - west = null - else - new_group_possible = 1 - -// world << "[north_votes], [south_votes], [east_votes]" - - var/datum/air_group/group_joined = null - - if(west) - if(west.parent) - group_joined = west.parent - else - new_group_possible = 1 - - if(north_votes && (north_votes >= south_votes) && (north_votes >= east_votes)) - group_joined = north.parent - else if(south_votes && (south_votes >= east_votes)) - group_joined = south.parent - else if(east_votes) - group_joined = east.parent - - if (istype(group_joined)) - if (group_joined.group_processing) - group_joined.suspend_group_processing() - group_joined.members += src - parent=group_joined - - air_master.tiles_to_update += group_joined.members - return 1 - - else if(new_group_possible) - air_master.assemble_group_turf(src) - return 1 - - else - air_master.active_singletons += src - return 1 \ No newline at end of file diff --git a/code/FEA/FEA_system.dm b/code/FEA/FEA_system.dm deleted file mode 100644 index 574fd1ba268..00000000000 --- a/code/FEA/FEA_system.dm +++ /dev/null @@ -1,335 +0,0 @@ -/* -Overview: - The air_master global variable is the workhorse for the system. - -Why are you archiving data before modifying it? - The general concept with archiving data and having each tile keep track of when they were last updated is to keep everything symmetric - and totally independent of the order they are read in an update cycle. - This prevents abnormalities like air/fire spreading rapidly in one direction and super slowly in the other. - -Why not just archive everything and then calculate? - Efficiency. While a for-loop that goes through all tiles and groups to archive their information before doing any calculations seems simple, it is - slightly less efficient than the archive-before-modify/read method. - -Why is there a cycle check for calculating data as well? - This ensures that every connection between group-tile, tile-tile, and group-group is only evaluated once per loop. - - - - -Important variables: - air_master.groups_to_rebuild (list) - A list of air groups that have had their geometry occluded and thus may need to be split in half. - A set of adjacent groups put in here will join together if validly connected. - This is done before air system calculations for a cycle. - air_master.tiles_to_update (list) - Turfs that are in this list have their border data updated before the next air calculations for a cycle. - Place turfs in this list rather than call the proc directly to prevent race conditions - - turf/simulated.archive() and datum/air_group.archive() - This stores all data for. - If you modify, make sure to update the archived_cycle to prevent race conditions and maintain symmetry - - atom/CanPass(atom/movable/mover, turf/target, height, air_group) - returns 1 for allow pass and 0 for deny pass - Turfs automatically call this for all objects/mobs in its turf. - This is called both as source.CanPass(target, height, air_group) - and target.CanPass(source, height, air_group) - - Cases for the parameters - 1. This is called with args (mover, location, height>0, air_group=0) for normal objects. - 2. This is called with args (null, location, height=0, air_group=0) for flowing air. - 3. This is called with args (null, location, height=?, air_group=1) for determining group boundaries. - - Cases 2 and 3 would be different for doors or other objects open and close fairly often. - (Case 3 would return 0 always while Case 2 would return 0 only when the door is open) - This prevents the necessity of re-evaluating group geometry every time a door opens/closes. - - -Important Procedures - air_master.process() - This first processes the air_master update/rebuild lists then processes all groups and tiles for air calculations - - -*/ - -var/kill_air = 0 - -atom/proc/CanPass(atom/movable/mover, turf/target, height=1.5, air_group = 0) - return (!density || !height || air_group) - -turf - CanPass(atom/movable/mover, turf/target, height=1.5,air_group=0) - if(!target) return 0 - - if(istype(mover)) // turf/Enter(...) will perform more advanced checks - return !density - - else // Now, doing more detailed checks for air movement and air group formation - if(target.blocks_air||blocks_air) - return 0 - - for(var/obj/obstacle in src) - if(!obstacle.CanPass(mover, target, height, air_group)) - return 0 - for(var/obj/obstacle in target) - if(!obstacle.CanPass(mover, src, height, air_group)) - return 0 - - return 1 - - -var/global/datum/controller/air_system/air_master - -datum - controller - air_system - //Geoemetry lists - var/list/datum/air_group/air_groups = list() - var/list/turf/simulated/active_singletons = list() - - //Special functions lists - var/list/turf/simulated/active_super_conductivity = list() - var/list/turf/simulated/high_pressure_delta = list() - - //Geometry updates lists - var/list/turf/simulated/tiles_to_update = list() - var/list/turf/simulated/groups_to_rebuild = list() - - var/current_cycle = 0 - - proc - setup() - //Call this at the start to setup air groups geometry - //Warning: Very processor intensive but only must be done once per round - - assemble_group_turf(turf/simulated/base) - //Call this to try to construct a group starting from base and merging with neighboring unparented tiles - //Expands the group until all valid borders explored - -// assemble_group_object(obj/movable/floor/base) - - process() - //Call this to process air movements for a cycle - - process_groups() - //Used by process() - //Warning: Do not call this - - process_singletons() - //Used by process() - //Warning: Do not call this - - process_high_pressure_delta() - //Used by process() - //Warning: Do not call this - - process_super_conductivity() - //Used by process() - //Warning: Do not call this - - process_update_tiles() - //Used by process() - //Warning: Do not call this - - process_rebuild_select_groups() - //Used by process() - //Warning: Do not call this - - rebuild_group(datum/air_group) - //Used by process_rebuild_select_groups() - //Warning: Do not call this, add the group to air_master.groups_to_rebuild instead - - add_singleton(turf/simulated/T) - if(!active_singletons.Find(T)) - active_singletons += T - - setup() - set background = 1 - world << "\red \b Processing Geometry..." - sleep(1) - - var/start_time = world.timeofday - - for(var/turf/simulated/S in world) - if(!S.blocks_air && !S.parent) - assemble_group_turf(S) - S.update_air_properties() - - world << "\red \b Geometry processed in [(world.timeofday-start_time)/10] seconds!" - - assemble_group_turf(turf/simulated/base) - - var/list/turf/simulated/members = list(base) //Confirmed group members - var/list/turf/simulated/possible_members = list(base) //Possible places for group expansion - var/list/turf/simulated/possible_borders = list() - var/list/turf/simulated/possible_space_borders = list() - var/possible_space_length = 0 - - while(possible_members.len>0) //Keep expanding, looking for new members - for(var/turf/simulated/test in possible_members) - test.length_space_border = 0 - for(var/direction in cardinal) - var/turf/T = get_step(test,direction) - if(T && !members.Find(T) && test.CanPass(null, T, null,1)) - if(istype(T,/turf/simulated) && !T:parent) - possible_members += T - members += T - else if(istype(T,/turf/space)) - possible_space_borders -= test - possible_space_borders += test - test.length_space_border++ - else - possible_borders -= test - possible_borders += test - if(test.length_space_border > 0) - possible_space_length += test.length_space_border - possible_members -= test - - if(members.len > 1) - var/datum/air_group/turf/group = new - if(possible_borders.len>0) - group.borders = possible_borders - if(possible_space_borders.len>0) - group.space_borders = possible_space_borders - group.length_space_border = possible_space_length - - for(var/turf/simulated/test in members) - test.parent = group - test.processing = 0 - active_singletons -= test - - group.members = members - air_groups += group - - group.update_group_from_tiles() //Initialize air group variables - return group - else - base.processing = 0 //singletons at startup are technically unconnected anyway - base.parent = null - - if(base.air.check_tile_graphic()) - base.update_visuals(base.air) - - return null -/* - assemble_group_object(obj/movable/floor/base) - - var/list/obj/movable/floor/members = list(base) //Confirmed group members - var/list/obj/movable/floor/possible_members = list(base) //Possible places for group expansion - var/list/obj/movable/floor/possible_borders = list() - - while(possible_members.len>0) //Keep expanding, looking for new members - for(var/obj/movable/floor/test in possible_members) - for(var/direction in list(NORTH, SOUTH, EAST, WEST)) - var/turf/T = get_step(test.loc,direction) - if(T && test.loc.CanPass(null, T, null, 1)) - var/obj/movable/floor/O = locate(/obj/movable/floor) in T - if(istype(O) && !O.parent) - if(!members.Find(O)) - possible_members += O - members += O - else - possible_borders -= test - possible_borders += test - possible_members -= test - - if(members.len > 1) - var/datum/air_group/object/group = new - if(possible_borders.len>0) - group.borders = possible_borders - - for(var/obj/movable/floor/test in members) - test.parent = group - test.processing = 0 - active_singletons -= test - - group.members = members - air_groups += group - - group.update_group_from_tiles() //Initialize air group variables - return group - else - base.processing = 0 //singletons at startup are technically unconnected anyway - base.parent = null - - return null -*/ - process() - if(kill_air) - return 1 - current_cycle++ - if(groups_to_rebuild.len > 0) process_rebuild_select_groups() - if(tiles_to_update.len > 0) process_update_tiles() - - process_groups() - process_singletons() - - process_super_conductivity() - process_high_pressure_delta() - - if(current_cycle%10==5) //Check for groups of tiles to resume group processing every 10 cycles - for(var/datum/air_group/AG in air_groups) - AG.check_regroup() - - return 1 - - process_update_tiles() - for(var/turf/simulated/T in tiles_to_update) - T.update_air_properties() -/* - for(var/obj/movable/floor/O in tiles_to_update) - O.update_air_properties() -*/ - tiles_to_update.len = 0 - - process_rebuild_select_groups() - var/turf/list/turfs = list() - - for(var/datum/air_group/turf/turf_AG in groups_to_rebuild) //Deconstruct groups, gathering their old members - for(var/turf in turf_AG.members) - var/turf/simulated/T = turf - T.parent = null - turfs += T - del(turf_AG) - - for(var/turf/simulated/S in turfs) //Have old members try to form new groups - if(!S.parent) - assemble_group_turf(S) - for(var/turf/simulated/S in turfs) - S.update_air_properties() - -// var/obj/movable/list/movable_objects = list() - -// for(var/datum/air_group/object/object_AG in groups_to_rebuild) //Deconstruct groups, gathering their old members -/* - for(var/obj/movable/floor/OM in object_AG.members) - OM.parent = null - movable_objects += OM - del(object_AG) - - for(var/obj/movable/floor/OM in movable_objects) //Have old members try to form new groups - if(!OM.parent) - assemble_group_object(OM) - for(var/obj/movable/floor/OM in movable_objects) - OM.update_air_properties() -*/ - groups_to_rebuild.len = 0 - - process_groups() - for(var/datum/air_group/AG in air_groups) - AG.process_group() - - process_singletons() - for(var/item in active_singletons) - item:process_cell() - - process_super_conductivity() - for(var/turf/simulated/hot_potato in active_super_conductivity) - hot_potato.super_conduct() - - process_high_pressure_delta() - for(var/turf/pressurized in high_pressure_delta) - pressurized.high_pressure_movements() - - high_pressure_delta.len = 0 diff --git a/code/FEA/FEA_turf_tile.dm b/code/FEA/FEA_turf_tile.dm deleted file mode 100644 index de3901b910d..00000000000 --- a/code/FEA/FEA_turf_tile.dm +++ /dev/null @@ -1,592 +0,0 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 - -atom/movable/var/pressure_resistance = 5 -atom/movable/var/last_forced_movement = 0 - -atom/movable/proc/experience_pressure_difference(pressure_difference, direction) - if(last_forced_movement >= air_master.current_cycle) - return 0 - else if(!anchored) - if(pressure_difference > pressure_resistance) - last_forced_movement = air_master.current_cycle - spawn step(src, direction) - return 1 - -turf - assume_air(datum/gas_mixture/giver) //use this for machines to adjust air - del(giver) - return 0 - - return_air() - //Create gas mixture to hold data for passing - var/datum/gas_mixture/GM = new - - GM.oxygen = oxygen - GM.carbon_dioxide = carbon_dioxide - GM.nitrogen = nitrogen - GM.toxins = toxins - - GM.temperature = temperature - - return GM - - remove_air(amount as num) - var/datum/gas_mixture/GM = new - - var/sum = oxygen + carbon_dioxide + nitrogen + toxins - if(sum>0) - GM.oxygen = (oxygen/sum)*amount - GM.carbon_dioxide = (carbon_dioxide/sum)*amount - GM.nitrogen = (nitrogen/sum)*amount - GM.toxins = (toxins/sum)*amount - - GM.temperature = temperature - - return GM - -turf - var/pressure_difference = 0 - var/pressure_direction = 0 - var/reporting_pressure_difference - - //optimization vars - var/next_check = 0 //number of ticks before this tile updates - var/check_delay = 0 //number of ticks between updates - - proc/high_pressure_movements() - if(reporting_pressure_difference) - world << "pressure_difference = [pressure_difference]; pressure_direction = [pressure_direction]" - for(var/atom/movable/in_tile in src) - in_tile.experience_pressure_difference(pressure_difference, pressure_direction) - - pressure_difference = 0 - - proc/consider_pressure_difference(connection_difference, connection_direction) - if(connection_difference < 0) - connection_difference = -connection_difference - connection_direction = turn(connection_direction,180) - - if(connection_difference > pressure_difference) - if(!pressure_difference) - air_master.high_pressure_delta += src - pressure_difference = connection_difference - pressure_direction = connection_direction - -turf/simulated/proc/consider_pressure_difference_space(connection_difference) - for(var/direction in cardinal) - if(direction&group_border) - if(istype(get_step(src,direction),/turf/space)) - if(!pressure_difference) - air_master.high_pressure_delta += src - pressure_direction = direction - pressure_difference = connection_difference - - - return 1 - - -turf/simulated - - var/current_graphic = null - - var/tmp/datum/gas_mixture/air - - var/tmp/processing = 1 - var/tmp/datum/air_group/turf/parent - var/tmp/group_border = 0 - var/tmp/length_space_border = 0 - - var/tmp/air_check_directions = 0 //Do not modify this, just add turf to air_master.tiles_to_update - - var/tmp/archived_cycle = 0 - var/tmp/current_cycle = 0 - - var/tmp/obj/effect/hotspot/active_hotspot - - var/tmp/temperature_archived //USED ONLY FOR SOLIDS - var/tmp/being_superconductive = 0 - - proc/update_visuals(datum/gas_mixture/model) - overlays.Cut() - - var/siding_icon_state = return_siding_icon_state() - if(siding_icon_state) - overlays += image('icons/turf/floors.dmi',siding_icon_state) - - switch(model.graphic) - if("plasma") - overlays.Add(plmaster) - if("sleeping_agent") - overlays.Add(slmaster) - - if(model.graphics & GRAPHICS_COLD) - if(!was_icy) - wet=3 // Custom ice - was_icy=1 - var/o="" - //if(is_plating()) - // o="snowfloor_s" - //else - if(is_plasteel_floor()) - o="snowfloor" - if(o!="") - overlays += image('icons/turf/overlays.dmi',o) - else - if(was_icy) - wet=0 - was_icy=0 - if(prob(10)) - wet = 1 - if(wet_overlay) - overlays -= wet_overlay - wet_overlay = null - wet_overlay = image('icons/effects/water.dmi',src,"wet_floor") - overlays += wet_overlay - - spawn(800) - if (!istype(src)) return - if(wet >= 2) return - wet = 0 - if(wet_overlay) - overlays -= wet_overlay - wet_overlay = null - - - - New() - ..() - - if(!blocks_air) - air = new - - air.oxygen = oxygen - air.carbon_dioxide = carbon_dioxide - air.nitrogen = nitrogen - air.toxins = toxins - - air.temperature = temperature - - if(air_master) - air_master.tiles_to_update.Add(src) - - find_group() - -// air.parent = src //TODO DEBUG REMOVE - - else - if(air_master) - for(var/direction in cardinal) - var/turf/simulated/floor/target = get_step(src,direction) - if(istype(target)) - air_master.tiles_to_update.Add(target) - - Del() - if(air_master) - if(parent) - air_master.groups_to_rebuild.Add(parent) - parent.members.Remove(src) - else - air_master.active_singletons.Remove(src) - if(active_hotspot) - active_hotspot.Kill() - if(blocks_air) - for(var/direction in list(NORTH, SOUTH, EAST, WEST)) - var/turf/simulated/tile = get_step(src,direction) - if(istype(tile) && !tile.blocks_air) - air_master.tiles_to_update.Add(tile) - ..() - - assume_air(datum/gas_mixture/giver) - if(!giver) return 0 - var/datum/gas_mixture/receiver = air - if(istype(receiver)) - if(parent&&parent.group_processing) - if(!parent.air.check_then_merge(giver)) - parent.suspend_group_processing() - air.merge(giver) - else - if (giver.total_moles() > MINIMUM_AIR_TO_SUSPEND) - reset_delay() - - air.merge(giver) - - if(!processing) - if(air.check_tile_graphic()) - update_visuals(air) - - return 1 - - else return ..() - - proc/archive() - if(air) //For open space like floors - air.archive() - - temperature_archived = temperature - archived_cycle = air_master.current_cycle - - proc/share_air_with_tile(turf/simulated/T) - return air.share(T.air) - - proc/mimic_air_with_tile(turf/T) - return air.mimic(T) - - return_air() - if(air) - if(parent&&parent.group_processing) - return parent.air - else return air - - else - return ..() - - remove_air(amount as num) - if(air) - var/datum/gas_mixture/removed = null - - if(parent&&parent.group_processing) - removed = parent.air.check_then_remove(amount) - if(!removed) - parent.suspend_group_processing() - removed = air.remove(amount) - else - removed = air.remove(amount) - - if(!processing) - if(air.check_tile_graphic()) - update_visuals(air) - - return removed - - else - return ..() - - proc/update_air_properties()//OPTIMIZE - air_check_directions = 0 - - for(var/direction in cardinal) - if(CanPass(null, get_step(src,direction), 0, 0)) - air_check_directions |= direction - - if(parent) - if(parent.borders) - parent.borders -= src - if(length_space_border > 0) - parent.length_space_border -= length_space_border - length_space_border = 0 - - group_border = 0 - for(var/direction in cardinal) - if(air_check_directions&direction) - var/turf/simulated/T = get_step(src,direction) - - //See if actually a border - if(!istype(T) || (T.parent!=parent)) - - //See what kind of border it is - if(istype(T,/turf/space)) - if(parent.space_borders) - parent.space_borders -= src - parent.space_borders += src - else - parent.space_borders = list(src) - length_space_border++ - - else - if(parent.borders) - parent.borders -= src - parent.borders += src - else - parent.borders = list(src) - - group_border |= direction - - parent.length_space_border += length_space_border - - if(air_check_directions) - processing = 1 - if(!parent) - air_master.add_singleton(src) - else - processing = 0 - - proc/process_cell() - //this proc does all the heavy lifting for individual tile processing - //it shares with all of its neighbors, spreads fire, calls superconduction - //and doesn't afraid of anything - //Comment by errorage: In other words, this is the proc that lags the game. - - //check if we're skipping this tick - if (next_check > 0) - next_check-- - return 1 - var/player_count = max(player_list.len, 3) / 3 - next_check += check_delay + rand(player_count, player_count * 1.5) - check_delay++ - - var/turf/simulated/list/possible_fire_spreads = list() - if(processing) - if(archived_cycle < air_master.current_cycle) //archive self if not already done - archive() - current_cycle = air_master.current_cycle - - for(var/direction in cardinal) - if(air_check_directions&direction) //Grab all valid bordering tiles - var/turf/simulated/enemy_tile = get_step(src, direction) - var/connection_difference = 0 - - if(istype(enemy_tile)) //enemy_tile == neighbor, btw - if(enemy_tile.archived_cycle < archived_cycle) //archive bordering tile information if not already done - enemy_tile.archive() - - if (air && enemy_tile.air) - var/delay_trigger = air.compare(enemy_tile.air) - if (!delay_trigger) //if compare() didn't return 1, air is different enough to trigger processing - reset_delay() - enemy_tile.reset_delay() - - if(enemy_tile.parent && enemy_tile.parent.group_processing) //apply tile to group sharing - if(enemy_tile.parent.current_cycle < current_cycle) //if the group hasn't been archived, it could just be out of date - if(enemy_tile.parent.air.check_gas_mixture(air)) - connection_difference = air.share(enemy_tile.parent.air) - else - enemy_tile.parent.suspend_group_processing() - connection_difference = air.share(enemy_tile.air) - //group processing failed so interact with individual tile - - else - if(enemy_tile.current_cycle < current_cycle) - connection_difference = air.share(enemy_tile.air) - - if(active_hotspot) - possible_fire_spreads += enemy_tile - else -/* var/obj/movable/floor/movable_on_enemy = locate(/obj/movable/floor) in enemy_tile - - if(movable_on_enemy) - if(movable_on_enemy.parent && movable_on_enemy.parent.group_processing) //apply tile to group sharing - if(movable_on_enemy.parent.current_cycle < current_cycle) - if(movable_on_enemy.parent.air.check_gas_mixture(air)) - connection_difference = air.share(movable_on_enemy.parent.air) - - else - movable_on_enemy.parent.suspend_group_processing() - - if(movable_on_enemy.archived_cycle < archived_cycle) //archive bordering tile information if not already done - movable_on_enemy.archive() - connection_difference = air.share(movable_on_enemy.air) - //group processing failed so interact with individual tile - else - if(movable_on_enemy.archived_cycle < archived_cycle) //archive bordering tile information if not already done - movable_on_enemy.archive() - - if(movable_on_enemy.current_cycle < current_cycle) - connection_difference = share_air_with_tile(movable_on_enemy) - - else*/ - connection_difference = mimic_air_with_tile(enemy_tile) - //bordering a tile with fixed air properties - - if(connection_difference) - if(connection_difference > 0) - consider_pressure_difference(connection_difference, direction) - else - enemy_tile.consider_pressure_difference(connection_difference, direction) - else - air_master.active_singletons -= src //not active if not processing! - - air.react() - - if(active_hotspot) - if (!active_hotspot.process(possible_fire_spreads)) - return 0 - - if(air.temperature > MINIMUM_TEMPERATURE_START_SUPERCONDUCTION) - consider_superconductivity(starting = 1) - - if(air.check_tile_graphic()) - update_visuals(air) - - if(air.temperature > FIRE_MINIMUM_TEMPERATURE_TO_EXIST) - reset_delay() //hotspots always process quickly - hotspot_expose(air.temperature, CELL_VOLUME) - for(var/atom/movable/item in src) - item.temperature_expose(air, air.temperature, CELL_VOLUME) - temperature_expose(air, air.temperature, CELL_VOLUME) - - return 1 - - proc/super_conduct() - var/conductivity_directions = 0 - if(blocks_air) - //Does not participate in air exchange, so will conduct heat across all four borders at this time - conductivity_directions = NORTH|SOUTH|EAST|WEST - - if(archived_cycle < air_master.current_cycle) - archive() - - else - //Does particate in air exchange so only consider directions not considered during process_cell() - conductivity_directions = ~air_check_directions & (NORTH|SOUTH|EAST|WEST) - - if(conductivity_directions>0) - //Conduct with tiles around me - for(var/direction in cardinal) - if(conductivity_directions&direction) - var/turf/neighbor = get_step(src,direction) - - if(istype(neighbor, /turf/simulated)) //anything under this subtype will share in the exchange - var/turf/simulated/modeled_neighbor = neighbor - - if(modeled_neighbor.archived_cycle < air_master.current_cycle) - modeled_neighbor.archive() - - if(modeled_neighbor.air) - if(air) //Both tiles are open - - if(modeled_neighbor.parent && modeled_neighbor.parent.group_processing) - if(parent && parent.group_processing) - //both are acting as a group - //modified using construct developed in datum/air_group/share_air_with_group(...) - - var/result = parent.air.check_both_then_temperature_share(modeled_neighbor.parent.air, WINDOW_HEAT_TRANSFER_COEFFICIENT) - if(result==0) - //have to deconstruct parent air group - - parent.suspend_group_processing() - if(!modeled_neighbor.parent.air.check_me_then_temperature_share(air, WINDOW_HEAT_TRANSFER_COEFFICIENT)) - //may have to deconstruct neighbors air group - - modeled_neighbor.parent.suspend_group_processing() - air.temperature_share(modeled_neighbor.air, WINDOW_HEAT_TRANSFER_COEFFICIENT) - else if(result==-1) - // have to deconstruct neightbors air group but not mine - - modeled_neighbor.parent.suspend_group_processing() - parent.air.temperature_share(modeled_neighbor.air, WINDOW_HEAT_TRANSFER_COEFFICIENT) - else - air.temperature_share(modeled_neighbor.air, WINDOW_HEAT_TRANSFER_COEFFICIENT) - else - if(parent && parent.group_processing) - if(!parent.air.check_me_then_temperature_share(air, WINDOW_HEAT_TRANSFER_COEFFICIENT)) - //may have to deconstruct neighbors air group - - parent.suspend_group_processing() - air.temperature_share(modeled_neighbor.air, WINDOW_HEAT_TRANSFER_COEFFICIENT) - - else - air.temperature_share(modeled_neighbor.air, WINDOW_HEAT_TRANSFER_COEFFICIENT) - // world << "OPEN, OPEN" - - else //Solid but neighbor is open - if(modeled_neighbor.parent && modeled_neighbor.parent.group_processing) - if(!modeled_neighbor.parent.air.check_me_then_temperature_turf_share(src, modeled_neighbor.thermal_conductivity)) - - modeled_neighbor.parent.suspend_group_processing() - modeled_neighbor.air.temperature_turf_share(src, modeled_neighbor.thermal_conductivity) - else - modeled_neighbor.air.temperature_turf_share(src, modeled_neighbor.thermal_conductivity) - // world << "SOLID, OPEN" - - else - if(air) //Open but neighbor is solid - if(parent && parent.group_processing) - if(!parent.air.check_me_then_temperature_turf_share(modeled_neighbor, modeled_neighbor.thermal_conductivity)) - parent.suspend_group_processing() - air.temperature_turf_share(modeled_neighbor, modeled_neighbor.thermal_conductivity) - else - air.temperature_turf_share(modeled_neighbor, modeled_neighbor.thermal_conductivity) - // world << "OPEN, SOLID" - - else //Both tiles are solid - share_temperature_mutual_solid(modeled_neighbor, modeled_neighbor.thermal_conductivity) - // world << "SOLID, SOLID" - - modeled_neighbor.consider_superconductivity() - - else - if(air) //Open - if(parent && parent.group_processing) - if(!parent.air.check_me_then_temperature_mimic(neighbor, neighbor.thermal_conductivity)) - parent.suspend_group_processing() - air.temperature_mimic(neighbor, neighbor.thermal_conductivity) - else - air.temperature_mimic(neighbor, neighbor.thermal_conductivity) - else - mimic_temperature_solid(neighbor, neighbor.thermal_conductivity) - - //Radiate excess tile heat to space - if(temperature > T0C) - // Is there a pre-defined Space Tile? - if(!Space_Tile) - Space_Tile = locate(/turf/space) // Define one - //Considering 0 degC as te break even point for radiation in and out - mimic_temperature_solid(Space_Tile, FLOOR_HEAT_TRANSFER_COEFFICIENT) - - //Conduct with air on my tile if I have it - if(air) - if(parent && parent.group_processing) - if(!parent.air.check_me_then_temperature_turf_share(src, thermal_conductivity)) - parent.suspend_group_processing() - air.temperature_turf_share(src, thermal_conductivity) - else - air.temperature_turf_share(src, thermal_conductivity) - - - //Make sure still hot enough to continue conducting heat - if(air) - if(air.temperature < MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION) - being_superconductive = 0 - air_master.active_super_conductivity -= src - return 0 - - else - if(temperature < MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION) - being_superconductive = 0 - air_master.active_super_conductivity -= src - return 0 - - proc/mimic_temperature_solid(turf/model, conduction_coefficient) - var/delta_temperature = (temperature_archived - model.temperature) - if((heat_capacity > 0) && (abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER)) - - var/heat = conduction_coefficient*delta_temperature* \ - (heat_capacity*model.heat_capacity/(heat_capacity+model.heat_capacity)) - temperature -= heat/heat_capacity - - proc/share_temperature_mutual_solid(turf/simulated/sharer, conduction_coefficient) - var/delta_temperature = (temperature_archived - sharer.temperature_archived) - if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER && heat_capacity && sharer.heat_capacity) - - var/heat = conduction_coefficient*delta_temperature* \ - (heat_capacity*sharer.heat_capacity/(heat_capacity+sharer.heat_capacity)) - - temperature -= heat/heat_capacity - sharer.temperature += heat/sharer.heat_capacity - - proc/consider_superconductivity(starting) - - if(being_superconductive || !thermal_conductivity) - return 0 - - if(air) - if(air.temperature < (starting?MINIMUM_TEMPERATURE_START_SUPERCONDUCTION:MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION)) - return 0 - if(air.heat_capacity() < MOLES_CELLSTANDARD*0.1*0.05) - return 0 - else - if(temperature < (starting?MINIMUM_TEMPERATURE_START_SUPERCONDUCTION:MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION)) - return 0 - - being_superconductive = 1 - - air_master.active_super_conductivity += src - - proc/reset_delay() - //sets this turf to process quickly again - next_check=0 - check_delay= -5 //negative numbers mean a mandatory quick-update period - - //if this turf has a parent air group, suspend its processing - if (parent && parent.group_processing) - parent.suspend_group_processing() diff --git a/code/FEA/FEA_fire.dm b/code/LINDA/LINDA_fire.dm similarity index 83% rename from code/FEA/FEA_fire.dm rename to code/LINDA/LINDA_fire.dm index bb71f31d47f..0f173f97fda 100644 --- a/code/FEA/FEA_fire.dm +++ b/code/LINDA/LINDA_fire.dm @@ -1,178 +1,177 @@ - -/atom/proc/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) - return null - - - -/turf/proc/hotspot_expose(exposed_temperature, exposed_volume, soh = 0) - - - -/turf/simulated/hotspot_expose(exposed_temperature, exposed_volume, soh) - var/datum/gas_mixture/air_contents = return_air() - if(!air_contents) - return 0 - if(active_hotspot) - if(soh) - if(air_contents.toxins > 0.5 && air_contents.oxygen > 0.5) - if(active_hotspot.temperature < exposed_temperature) - active_hotspot.temperature = exposed_temperature - if(active_hotspot.volume < exposed_volume) - active_hotspot.volume = exposed_volume - return 1 - - var/igniting = 0 - - if((exposed_temperature > PLASMA_MINIMUM_BURN_TEMPERATURE) && air_contents.toxins > 0.5) - igniting = 1 - - if(igniting) - if(air_contents.oxygen < 0.5 || air_contents.toxins < 0.5) - return 0 - - if(parent&&parent.group_processing) - parent.suspend_group_processing() - - active_hotspot = new(src) - active_hotspot.temperature = exposed_temperature - active_hotspot.volume = exposed_volume - - active_hotspot.just_spawned = (current_cycle < air_master.current_cycle) - //remove just_spawned protection if no longer processing this cell - - //start processing quickly if we aren't already - reset_delay() - - return igniting - -//This is the icon for fire on turfs, also helps for nurturing small fires until they are full tile -/obj/effect/hotspot - anchored = 1 - mouse_opacity = 0 - unacidable = 1//So you can't melt fire with acid. - icon = 'icons/effects/fire.dmi' - icon_state = "1" - layer = TURF_LAYER - luminosity = 3 - - var/volume = 125 - var/temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST - var/just_spawned = 1 - var/bypassing = 0 - - -/obj/effect/hotspot/proc/perform_exposure() - var/turf/simulated/floor/location = loc - if(!istype(location)) return 0 - - if(volume > CELL_VOLUME*0.95) bypassing = 1 - else bypassing = 0 - - if(bypassing) - if(!just_spawned) - volume = location.air.fuel_burnt*FIRE_GROWTH_RATE - temperature = location.air.temperature - else - var/datum/gas_mixture/affected = location.air.remove_ratio(volume/location.air.volume) - affected.temperature = temperature - affected.react() - temperature = affected.temperature - volume = affected.fuel_burnt*FIRE_GROWTH_RATE - location.assume_air(affected) - - for(var/atom/item in loc) - if(!bypassing) - item.temperature_expose(null, temperature, volume) - if(item) // It's possible that the item is deleted in temperature_expose - item.fire_act(null, temperature, volume) - - return 0 - - -/obj/effect/hotspot/process(turf/simulated/list/possible_spread) - if(just_spawned) - just_spawned = 0 - return 0 - - var/turf/simulated/floor/location = loc - if(!istype(location)) - Kill() - return - - if((temperature < FIRE_MINIMUM_TEMPERATURE_TO_EXIST) || (volume <= 1)) - Kill() - return - - if(location.air.toxins < 0.5 || location.air.oxygen < 0.5) - Kill() - return - - perform_exposure() - - if(location.wet) location.wet = 0 - - if(bypassing) - icon_state = "3" - location.burn_tile() - - //Possible spread due to radiated heat - if(location.air.temperature > FIRE_MINIMUM_TEMPERATURE_TO_SPREAD) - var/radiated_temperature = location.air.temperature*FIRE_SPREAD_RADIOSITY_SCALE - - for(var/turf/simulated/possible_target in possible_spread) - if(!possible_target.active_hotspot) - possible_target.hotspot_expose(radiated_temperature, CELL_VOLUME/4) - - else - if(volume > CELL_VOLUME*0.4) - icon_state = "2" - else - icon_state = "1" - - if(temperature > location.max_fire_temperature_sustained) - location.max_fire_temperature_sustained = temperature - - if(location.heat_capacity && temperature > location.heat_capacity) - location.to_be_destroyed = 1 - /*if(prob(25)) - location.ReplaceWithSpace() - return 0*/ - return 1 - -// Garbage collect itself by nulling reference to it - -/obj/effect/hotspot/proc/Kill() - DestroyTurf() - if(istype(loc, /turf/simulated)) - var/turf/simulated/T = loc - if(T.active_hotspot == src) - T.active_hotspot = null - loc = null - -/obj/effect/hotspot/proc/DestroyTurf() - - if(istype(loc, /turf/simulated)) - var/turf/simulated/T = loc - if(T.to_be_destroyed) - var/chance_of_deletion - if (T.heat_capacity) //beware of division by zero - chance_of_deletion = T.max_fire_temperature_sustained / T.heat_capacity * 8 //there is no problem with prob(23456), min() was redundant --rastaf0 - else - chance_of_deletion = 100 - if(prob(chance_of_deletion)) - T.ChangeTurf(/turf/space) - else - T.to_be_destroyed = 0 - T.max_fire_temperature_sustained = 0 - -/obj/effect/hotspot/New() - ..() - dir = pick(cardinal) - return - -/* -/obj/effect/hotspot/Del() - if (istype(loc, /turf/simulated)) - DestroyTurf() - ..() -*/ \ No newline at end of file + +/atom/proc/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + return null + + + +/turf/proc/hotspot_expose(exposed_temperature, exposed_volume, soh = 0) + return + + +/turf/simulated/hotspot_expose(exposed_temperature, exposed_volume, soh) + var/datum/gas_mixture/air_contents = return_air() + if(!air_contents) + return 0 + if(active_hotspot) + if(soh) + if(air_contents.toxins > 0.5 && air_contents.oxygen > 0.5) + if(active_hotspot.temperature < exposed_temperature) + active_hotspot.temperature = exposed_temperature + if(active_hotspot.volume < exposed_volume) + active_hotspot.volume = exposed_volume + return 1 + + var/igniting = 0 + + if((exposed_temperature > PLASMA_MINIMUM_BURN_TEMPERATURE) && air_contents.toxins > 0.5) + igniting = 1 + + if(igniting) + if(air_contents.oxygen < 0.5 || air_contents.toxins < 0.5) + return 0 + + active_hotspot = new(src) + active_hotspot.temperature = exposed_temperature + active_hotspot.volume = exposed_volume + + active_hotspot.just_spawned = (current_cycle < air_master.current_cycle) + //remove just_spawned protection if no longer processing this cell + air_master.add_to_active(src, 0) + return igniting + +//This is the icon for fire on turfs, also helps for nurturing small fires until they are full tile +/obj/effect/hotspot + anchored = 1 + mouse_opacity = 0 + unacidable = 1//So you can't melt fire with acid. + icon = 'icons/effects/fire.dmi' + icon_state = "1" + layer = TURF_LAYER + luminosity = 3 + + var/volume = 125 + var/temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST + var/just_spawned = 1 + var/bypassing = 0 + +/obj/effect/hotspot/New() + ..() + air_master.hotspots += src + +/obj/effect/hotspot/proc/perform_exposure() + var/turf/simulated/floor/location = loc + if(!istype(location) || !(location.air)) return 0 + + if(volume > CELL_VOLUME*0.95) bypassing = 1 + else bypassing = 0 + + if(bypassing) + if(!just_spawned) + volume = location.air.fuel_burnt*FIRE_GROWTH_RATE + temperature = location.air.temperature + else + var/datum/gas_mixture/affected = location.air.remove_ratio(volume/location.air.volume) + affected.temperature = temperature + affected.react() + temperature = affected.temperature + volume = affected.fuel_burnt*FIRE_GROWTH_RATE + location.assume_air(affected) + + for(var/atom/item in loc) + if(item) // It's possible that the item is deleted in temperature_expose + item.fire_act(null, temperature, volume) + + return 0 + + +/obj/effect/hotspot/process() + if(just_spawned) + just_spawned = 0 + return 0 + + var/turf/simulated/floor/location = loc + if(!istype(location)) + Kill() + return + + if(location.excited_group) + location.excited_group.reset_cooldowns() + + if((temperature < FIRE_MINIMUM_TEMPERATURE_TO_EXIST) || (volume <= 1)) + Kill() + return + + if((!(location.air) || location.air.toxins < 0.5 || location.air.oxygen < 0.5)) + Kill() + return + + perform_exposure() + + if(location.wet) location.wet = 0 + + if(bypassing) + icon_state = "3" + location.burn_tile() + + //Possible spread due to radiated heat + if(location.air.temperature > FIRE_MINIMUM_TEMPERATURE_TO_SPREAD) + var/radiated_temperature = location.air.temperature*FIRE_SPREAD_RADIOSITY_SCALE + for(var/direction in cardinal) + if(!(location.atmos_adjacent_turfs & direction)) + continue + var/turf/simulated/T = get_step(src, direction) + if(istype(T) && T.active_hotspot) + T.hotspot_expose(radiated_temperature, CELL_VOLUME/4) + + else + if(volume > CELL_VOLUME*0.4) + icon_state = "2" + else + icon_state = "1" + + if(temperature > location.max_fire_temperature_sustained) + location.max_fire_temperature_sustained = temperature + + if(location.heat_capacity && temperature > location.heat_capacity) + location.to_be_destroyed = 1 + /*if(prob(25)) + location.ReplaceWithSpace() + return 0*/ + return 1 + +// Garbage collect itself by nulling reference to it + +/obj/effect/hotspot/proc/Kill() + air_master.hotspots -= src + DestroyTurf() + qdel(src) + +/obj/effect/hotspot/Destroy() + if(istype(loc, /turf/simulated)) + var/turf/simulated/T = loc + if(T.active_hotspot == src) + T.active_hotspot = null + loc = null + +/obj/effect/hotspot/proc/DestroyTurf() + + if(istype(loc, /turf/simulated)) + var/turf/simulated/T = loc + if(T.to_be_destroyed) + var/chance_of_deletion + if (T.heat_capacity) //beware of division by zero + chance_of_deletion = T.max_fire_temperature_sustained / T.heat_capacity * 8 //there is no problem with prob(23456), min() was redundant --rastaf0 + else + chance_of_deletion = 100 + if(prob(chance_of_deletion)) + T.ChangeTurf(/turf/space) + else + T.to_be_destroyed = 0 + T.max_fire_temperature_sustained = 0 + +/obj/effect/hotspot/New() + ..() + dir = pick(cardinal) + air_update_turf() + return + diff --git a/code/LINDA/LINDA_system.dm b/code/LINDA/LINDA_system.dm new file mode 100644 index 00000000000..faa86e46754 --- /dev/null +++ b/code/LINDA/LINDA_system.dm @@ -0,0 +1,275 @@ +var/kill_air = 0 + +var/global/datum/controller/air_system/air_master + +datum/controller/air_system + var/list/excited_groups = list() + var/list/active_turfs = list() + var/list/hotspots = list() + var/speed = 1 + + //Special functions lists + var/list/turf/simulated/active_super_conductivity = list() + var/list/turf/simulated/high_pressure_delta = list() + + var/current_cycle = 0 + var/update_delay = 5 + var/failed_ticks = 0 + var/tick_progress = 0 + + +/datum/controller/air_system/proc/Setup() + set background = 1 + world << "\red \b Processing Geometry..." + sleep(1) + + var/start_time = world.timeofday + + setup_allturfs() + + setup_overlays() + + world << "\red \b Geometry processed in [(world.timeofday-start_time)/10] seconds!" + +/datum/controller/air_system/proc/process() + if(kill_air) + return 1 + + for(var/i=0,i 20) + EG.dismantle() + +/datum/controller/air_system/proc/setup_overlays() + plmaster = new /obj/effect/overlay() + plmaster.icon = 'icons/effects/tile_effects.dmi' + plmaster.icon_state = "plasma" + plmaster.layer = FLY_LAYER + plmaster.mouse_opacity = 0 + + slmaster = new /obj/effect/overlay() + slmaster.icon = 'icons/effects/tile_effects.dmi' + slmaster.icon_state = "sleeping_agent" + slmaster.layer = FLY_LAYER + slmaster.mouse_opacity = 0 + +/turf/proc/CanAtmosPass(var/turf/T) + if(!istype(T)) return 0 + var/R + if(blocks_air || T.blocks_air) + R = 1 + + for(var/obj/O in contents) + if(!O.CanAtmosPass(T)) + R = 1 + if(O.BlockSuperconductivity()) //the direction and open/closed are already checked on CanAtmosPass() so there are no arguments + var/D = get_dir(src, T) + atmos_supeconductivity |= D + D = get_dir(T, src) + T.atmos_supeconductivity |= D + return 0 //no need to keep going, we got all we asked + + for(var/obj/O in T.contents) + if(!O.CanAtmosPass(src)) + R = 1 + if(O.BlockSuperconductivity()) + var/D = get_dir(src, T) + atmos_supeconductivity |= D + D = get_dir(T, src) + T.atmos_supeconductivity |= D + return 0 + + var/D = get_dir(src, T) + atmos_supeconductivity &= ~D + D = get_dir(T, src) + T.atmos_supeconductivity &= ~D + + if(!R) + return 1 + +atom/movable/proc/CanAtmosPass() + return 1 + +atom/proc/CanPass(atom/movable/mover, turf/target, height=1.5, air_group = 0) + return (!density || !height || air_group) + +turf/CanPass(atom/movable/mover, turf/target, height=1.5,air_group=0) + if(!target) return 0 + + if(istype(mover)) // turf/Enter(...) will perform more advanced checks + return !density + + else // Now, doing more detailed checks for air movement and air group formation + if(target.blocks_air||blocks_air) + return 0 + + for(var/obj/obstacle in src) + if(!obstacle.CanPass(mover, target, height, air_group)) + return 0 + for(var/obj/obstacle in target) + if(!obstacle.CanPass(mover, src, height, air_group)) + return 0 + + return 1 + +/atom/movable/proc/BlockSuperconductivity() // objects that block air and don't let superconductivity act. Only firelocks atm. + return 0 + +/turf/proc/CalculateAdjacentTurfs() + atmos_adjacent_turfs_amount = 0 + for(var/direction in cardinal) + var/turf/T = get_step(src, direction) + if(!istype(T)) + continue + var/counterdir = get_dir(T, src) + if(CanAtmosPass(T)) + atmos_adjacent_turfs_amount += 1 + atmos_adjacent_turfs |= direction + if(!(T.atmos_adjacent_turfs & counterdir)) + T.atmos_adjacent_turfs_amount += 1 + T.atmos_adjacent_turfs |= counterdir + else + atmos_adjacent_turfs &= ~direction + if(T.atmos_adjacent_turfs & counterdir) + T.atmos_adjacent_turfs_amount -= 1 + T.atmos_adjacent_turfs &= ~counterdir + +/atom/movable/proc/air_update_turf(var/command = 0) + if(!istype(loc,/turf) && command) + return + for(var/turf/T in locs) // used by double wide doors and other nonexistant multitile structures + T.air_update_turf(command) + +/turf/proc/air_update_turf(var/command = 0) + if(command) + CalculateAdjacentTurfs() + if(air_master) + air_master.add_to_active(src,command) + +/atom/movable/proc/move_update_air(var/turf/T) + if(istype(T,/turf)) + T.air_update_turf(1) + air_update_turf(1) + + + +/atom/movable/proc/atmos_spawn_air(var/text, var/amount) //because a lot of people loves to copy paste awful code lets just make a easy proc to spawn your plasma fires + var/turf/simulated/T = get_turf(src) + if(!istype(T)) + return + T.atmos_spawn_air(text, amount) + +var/const/SPAWN_HEAT = 1 + +var/const/SPAWN_TOXINS = 4 +var/const/SPAWN_OXYGEN = 8 +var/const/SPAWN_CO2 = 16 +var/const/SPAWN_NITROGEN = 32 + +var/const/SPAWN_N2O = 64 + +var/const/SPAWN_AIR = 256 + +/turf/simulated/proc/atmos_spawn_air(var/flag, var/amount) + if(!text || !amount || !air) + return + + var/datum/gas_mixture/G = new + + if(flag & SPAWN_HEAT) + G.temperature += 1000 + + if(flag & SPAWN_TOXINS) + G.toxins += amount + if(flag & SPAWN_OXYGEN) + G.oxygen += amount + if(flag & SPAWN_CO2) + G.carbon_dioxide += amount + if(flag & SPAWN_NITROGEN) + G.nitrogen += amount + + if(flag & SPAWN_N2O) + var/datum/gas/sleeping_agent/T = new + T.moles += amount + G.trace_gases += T + + if(flag & SPAWN_AIR) + G.oxygen += MOLES_O2STANDARD * amount + G.nitrogen += MOLES_N2STANDARD * amount + + air.merge(G) + air_master.add_to_active(src, 0) \ No newline at end of file diff --git a/code/LINDA/LINDA_turf_tile.dm b/code/LINDA/LINDA_turf_tile.dm new file mode 100644 index 00000000000..e90fd803661 --- /dev/null +++ b/code/LINDA/LINDA_turf_tile.dm @@ -0,0 +1,462 @@ + + +turf + var/pressure_difference = 0 + var/pressure_direction = 0 + var/atmos_adjacent_turfs = 0 + var/atmos_adjacent_turfs_amount = 0 + var/atmos_supeconductivity = 0 + +turf/assume_air(datum/gas_mixture/giver) //use this for machines to adjust air + del(giver) + return 0 + +turf/return_air() + //Create gas mixture to hold data for passing + var/datum/gas_mixture/GM = new + + GM.oxygen = oxygen + GM.carbon_dioxide = carbon_dioxide + GM.nitrogen = nitrogen + GM.toxins = toxins + + GM.temperature = temperature + + return GM + +turf/remove_air(amount as num) + var/datum/gas_mixture/GM = new + + var/sum = oxygen + carbon_dioxide + nitrogen + toxins + if(sum>0) + GM.oxygen = (oxygen/sum)*amount + GM.carbon_dioxide = (carbon_dioxide/sum)*amount + GM.nitrogen = (nitrogen/sum)*amount + GM.toxins = (toxins/sum)*amount + + GM.temperature = temperature + + return GM + + +turf/simulated + var/datum/excited_group/excited_group + var/excited = 0 + var/recently_active = 0 + var/datum/gas_mixture/air + var/archived_cycle = 0 + var/current_cycle = 0 + + var/obj/effect/hotspot/active_hotspot + + var/temperature_archived //USED ONLY FOR SOLIDS + +turf/simulated/New() + ..() + + if(!blocks_air) + air = new + + air.oxygen = oxygen + air.carbon_dioxide = carbon_dioxide + air.nitrogen = nitrogen + air.toxins = toxins + + air.temperature = temperature + +turf/simulated/Destroy() + if(active_hotspot) + qdel(active_hotspot) + ..() + +turf/simulated/assume_air(datum/gas_mixture/giver) + if(!giver) return 0 + var/datum/gas_mixture/receiver = air + if(istype(receiver)) + + air.merge(giver) + + if(air.check_tile_graphic()) + update_visuals(air) + + return 1 + + else return ..() + +turf/simulated/proc/copy_air_with_tile(turf/simulated/T) + if(istype(T) && T.air && air) + air.copy_from(T.air) + +turf/simulated/proc/copy_air(datum/gas_mixture/copy) + if(air && copy) + air.copy_from(copy) + +turf/simulated/return_air() + if(air) + return air + + else + return ..() + +turf/simulated/remove_air(amount as num) + if(air) + var/datum/gas_mixture/removed = null + + removed = air.remove(amount) + + if(air.check_tile_graphic()) + update_visuals(air) + + return removed + + else + return ..() + +turf/simulated/proc/mimic_temperature_solid(turf/model, conduction_coefficient) + var/delta_temperature = (temperature_archived - model.temperature) + if((heat_capacity > 0) && (abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER)) + + var/heat = conduction_coefficient*delta_temperature* \ + (heat_capacity*model.heat_capacity/(heat_capacity+model.heat_capacity)) + temperature -= heat/heat_capacity + +turf/simulated/proc/share_temperature_mutual_solid(turf/simulated/sharer, conduction_coefficient) + var/delta_temperature = (temperature_archived - sharer.temperature_archived) + if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER && heat_capacity && sharer.heat_capacity) + + var/heat = conduction_coefficient*delta_temperature* \ + (heat_capacity*sharer.heat_capacity/(heat_capacity+sharer.heat_capacity)) + + temperature -= heat/heat_capacity + sharer.temperature += heat/sharer.heat_capacity + + + + + + + + +/turf/simulated/proc/process_cell() + if(archived_cycle < air_master.current_cycle) //archive self if not already done + archive() + current_cycle = air_master.current_cycle + + var/remove = 1 //set by non simulated turfs who are sharing with this turf + + for(var/direction in cardinal) + if(!(atmos_adjacent_turfs & direction)) + continue + + var/turf/enemy_tile = get_step(src, direction) + + if(istype(enemy_tile,/turf/simulated)) + var/turf/simulated/enemy_simulated = enemy_tile + + if(current_cycle > enemy_simulated.current_cycle) + enemy_simulated.archive() + + /******************* GROUP HANDLING START *****************************************************************/ + + if(enemy_simulated.excited) + if(excited_group) + if(enemy_simulated.excited_group) + if(excited_group != enemy_simulated.excited_group) + excited_group.merge_groups(enemy_simulated.excited_group) //combine groups + share_air(enemy_simulated) //share + else + if((recently_active == 1 && enemy_simulated.recently_active == 1) || !air.compare(enemy_simulated.air)) + excited_group.add_turf(enemy_simulated) //add enemy to our group + share_air(enemy_simulated) //share + else + if(enemy_simulated.excited_group) + if((recently_active == 1 && enemy_simulated.recently_active == 1) || !air.compare(enemy_simulated.air)) + enemy_simulated.excited_group.add_turf(src) //join self to enemy group + share_air(enemy_simulated) //share + else + if((recently_active == 1 && enemy_simulated.recently_active == 1) || !air.compare(enemy_simulated.air)) + var/datum/excited_group/EG = new //generate new group + EG.add_turf(src) + EG.add_turf(enemy_simulated) + share_air(enemy_simulated) //share + else + if(!air.compare(enemy_simulated.air)) //compare if + air_master.add_to_active(enemy_simulated) //excite enemy + if(excited_group) + excited_group.add_turf(enemy_simulated) //add enemy to group + else + var/datum/excited_group/EG = new //generate new group + EG.add_turf(src) + EG.add_turf(enemy_simulated) + share_air(enemy_simulated) //share + + /******************* GROUP HANDLING FINISH *********************************************************************/ + + else + if(!air.check_turf(enemy_tile, atmos_adjacent_turfs_amount)) + var/difference = air.mimic(enemy_tile,,atmos_adjacent_turfs_amount) + if(difference) + if(difference > 0) + consider_pressure_difference(enemy_tile, difference) + else + enemy_tile.consider_pressure_difference(src, difference) + remove = 0 + if(excited_group) + last_share_check() + + air.react() + + if(air.check_tile_graphic()) + update_visuals(air) + + if(air.temperature > FIRE_MINIMUM_TEMPERATURE_TO_EXIST) + hotspot_expose(air.temperature, CELL_VOLUME) + for(var/atom/movable/item in src) + item.temperature_expose(air, air.temperature, CELL_VOLUME) + temperature_expose(air, air.temperature, CELL_VOLUME) + + if(air.temperature > MINIMUM_TEMPERATURE_START_SUPERCONDUCTION) + if(consider_superconductivity(starting = 1)) + remove = 0 + + if(!excited_group && remove == 1) + air_master.remove_from_active(src) + + +/turf/simulated/proc/archive() + if(air) //For open space like floors + air.archive() + temperature_archived = temperature + archived_cycle = air_master.current_cycle + +/turf/simulated/proc/update_visuals(datum/gas_mixture/model) + overlays.Cut() + var/siding_icon_state = return_siding_icon_state() + if(siding_icon_state) + overlays += image('icons/turf/floors.dmi',siding_icon_state) + switch(model.graphic) + if("plasma") + overlays.Add(plmaster) + if("sleeping_agent") + overlays.Add(slmaster) + +/turf/simulated/proc/share_air(var/turf/simulated/T) + if(T.current_cycle < current_cycle) + var/difference + difference = air.share(T.air, atmos_adjacent_turfs_amount) + if(difference) + if(difference > 0) + consider_pressure_difference(T, difference) + else + T.consider_pressure_difference(src, difference) + last_share_check() + +/turf/proc/consider_pressure_difference(var/turf/simulated/T, var/difference) + air_master.high_pressure_delta |= src + if(difference > pressure_difference) + pressure_direction = get_dir(src, T) + pressure_difference = difference + +/turf/simulated/proc/last_share_check() + if(air.last_share > MINIMUM_AIR_TO_SUSPEND) + excited_group.reset_cooldowns() + +/turf/proc/high_pressure_movements() + for(var/atom/movable/M in src) + M.experience_pressure_difference(pressure_difference, pressure_direction) + + + + +atom/movable/var/pressure_resistance = 5 +atom/movable/var/last_forced_movement = 0 + +atom/movable/proc/experience_pressure_difference(pressure_difference, direction) + if(last_forced_movement >= air_master.current_cycle+2) + return 0 + else if(!anchored) + if(pressure_difference > pressure_resistance) + last_forced_movement = air_master.current_cycle + spawn step(src, direction) + return 1 + + + + +/datum/excited_group + var/list/turf_list = list() + var/breakdown_cooldown = 0 + +/datum/excited_group/New() + if(air_master) + air_master.excited_groups += src + +/datum/excited_group/proc/add_turf(var/turf/simulated/T) + turf_list += T + T.excited_group = src + T.recently_active = 1 + reset_cooldowns() + +/datum/excited_group/proc/merge_groups(var/datum/excited_group/E) + if(turf_list.len > E.turf_list.len) + air_master.excited_groups -= E + for(var/turf/simulated/T in E.turf_list) + T.excited_group = src + turf_list += T + reset_cooldowns() + else + air_master.excited_groups -= src + for(var/turf/simulated/T in turf_list) + T.excited_group = E + E.turf_list += T + E.reset_cooldowns() + +/datum/excited_group/proc/reset_cooldowns() + breakdown_cooldown = 0 + +/datum/excited_group/proc/self_breakdown() + var/datum/gas_mixture/A = new + var/datum/gas/sleeping_agent/S = new + A.trace_gases += S + for(var/turf/simulated/T in turf_list) + if(T == null || !istype(T)) return + A.oxygen += T.air.oxygen + A.carbon_dioxide+= T.air.carbon_dioxide + A.nitrogen += T.air.nitrogen + A.toxins += T.air.toxins + + if(T.air.trace_gases.len) + for(var/datum/gas/N in T.air.trace_gases) + S.moles += N.moles + + for(var/turf/simulated/T in turf_list) + T.air.oxygen = A.oxygen/turf_list.len + T.air.carbon_dioxide= A.carbon_dioxide/turf_list.len + T.air.nitrogen = A.nitrogen/turf_list.len + T.air.toxins = A.toxins/turf_list.len + + if(S.moles > 0) + if(T.air.trace_gases.len) + for(var/datum/gas/G in T.air.trace_gases) + G.moles = S.moles/turf_list.len + else + var/datum/gas/sleeping_agent/G = new + G.moles = S.moles/turf_list.len + T.air.trace_gases += G + + if(T.air.check_tile_graphic()) + T.update_visuals(T.air) + + +/datum/excited_group/proc/dismantle() + for(var/turf/simulated/T in turf_list) + T.excited = 0 + T.recently_active = 0 + air_master.active_turfs -= T + air_master.excited_groups -= src + +/datum/excited_group/proc/garbage_collect() + for(var/turf/simulated/T in turf_list) + T.excited_group = null + turf_list.Cut() + air_master.excited_groups -= src + + + + + + + + + + +turf/simulated/proc/super_conduct() + var/conductivity_directions = 0 + if(blocks_air) + //Does not participate in air exchange, so will conduct heat across all four borders at this time + conductivity_directions = NORTH|SOUTH|EAST|WEST + + if(archived_cycle < air_master.current_cycle) + archive() + else + //Does particate in air exchange so only consider directions not considered during process_cell() + for(var/direction in cardinal) + if(!(atmos_adjacent_turfs & direction) && !(atmos_supeconductivity & direction)) + conductivity_directions += direction + + if(conductivity_directions>0) + //Conduct with tiles around me + for(var/direction in cardinal) + if(conductivity_directions&direction) + var/turf/neighbor = get_step(src,direction) + + if(!neighbor.thermal_conductivity) + continue + + if(istype(neighbor, /turf/simulated)) //anything under this subtype will share in the exchange + var/turf/simulated/T = neighbor + + if(T.archived_cycle < air_master.current_cycle) + T.archive() + + if(T.air) + if(air) //Both tiles are open + air.temperature_share(T.air, WINDOW_HEAT_TRANSFER_COEFFICIENT) + else //Solid but neighbor is open + T.air.temperature_turf_share(src, T.thermal_conductivity) + air_master.add_to_active(T, 0) + else + if(air) //Open but neighbor is solid + air.temperature_turf_share(T, T.thermal_conductivity) + else //Both tiles are solid + share_temperature_mutual_solid(T, T.thermal_conductivity) + T.temperature_expose(null, T.temperature, null) + + T.consider_superconductivity() + + else + if(air) //Open + air.temperature_mimic(neighbor, neighbor.thermal_conductivity) + else + mimic_temperature_solid(neighbor, neighbor.thermal_conductivity) + + radiate_to_spess() + + //Conduct with air on my tile if I have it + if(air) + air.temperature_turf_share(src, thermal_conductivity) + + //Make sure still hot enough to continue conducting heat + if(air.temperature < MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION) + air_master.active_super_conductivity -= src + return 0 + + else + if(temperature < MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION) + air_master.active_super_conductivity -= src + return 0 + +turf/simulated/proc/consider_superconductivity(starting) + if(!thermal_conductivity) + return 0 + + if(air) + if(air.temperature < (starting?MINIMUM_TEMPERATURE_START_SUPERCONDUCTION:MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION)) + return 0 + if(air.heat_capacity() < M_CELL_WITH_RATIO) // Was: MOLES_CELLSTANDARD*0.1*0.05 Since there are no variables here we can make this a constant. + return 0 + else + if(temperature < (starting?MINIMUM_TEMPERATURE_START_SUPERCONDUCTION:MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION)) + return 0 + + air_master.active_super_conductivity |= src + return 1 + +turf/simulated/proc/radiate_to_spess() //Radiate excess tile heat to space + if(temperature > T0C) //Considering 0 degC as te break even point for radiation in and out + var/delta_temperature = (temperature_archived - 2.7) //hardcoded space temperature + if((heat_capacity > 0) && (abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER)) + + var/heat = thermal_conductivity*delta_temperature* \ + (heat_capacity*700000/(heat_capacity+700000)) //700000 is the heat_capacity from a space turf, hardcoded here + temperature -= heat/heat_capacity \ No newline at end of file diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 43f4808a076..c269df248b5 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -967,13 +967,11 @@ proc/anim(turf/location as turf,target as mob|obj,a_icon,a_icon_state as text,fl X.icon_state = old_icon_state1 X.icon = old_icon1 //Shuttle floors are in shuttle.dmi while the defaults are floors.dmi - var/turf/simulated/ST = T - if(istype(ST) && ST.zone) - var/turf/simulated/SX = X - if(!SX.air) - SX.make_air() - SX.air.copy_from(ST.zone.air) - ST.zone.remove(ST) + // Give the new turf our air, if simulated + if(istype(X, /turf/simulated) && istype(T, /turf/simulated)) + var/turf/simulated/sim = X + sim.copy_air_with_tile(T) + /* Quick visual fix for some weird shuttle corner artefacts when on transit space tiles */ if(direction && findtext(X.icon_state, "swall_s")) @@ -1034,28 +1032,16 @@ proc/anim(turf/location as turf,target as mob|obj,a_icon,a_icon_state as text,fl refined_trg -= B continue moving - var/list/doors = new/list() - if(toupdate.len) for(var/turf/simulated/T1 in toupdate) - for(var/obj/machinery/door/D2 in T1) - doors += D2 - /*if(T1.parent) - air_master.groups_to_rebuild += T1.parent - else - air_master.tiles_to_update += T1*/ + T1.CalculateAdjacentTurfs() + air_master.add_to_active(T1,1) if(fromupdate.len) for(var/turf/simulated/T2 in fromupdate) - for(var/obj/machinery/door/D2 in T2) - doors += D2 - /*if(T2.parent) - air_master.groups_to_rebuild += T2.parent - else - air_master.tiles_to_update += T2*/ + T2.CalculateAdjacentTurfs() + air_master.add_to_active(T2,1) - for(var/obj/O in doors) - O:update_nearby_tiles(1) @@ -1199,22 +1185,10 @@ proc/DuplicateObject(obj/original, var/perfectcopy = 0 , var/sameloc = 0) - - var/list/doors = new/list() - if(toupdate.len) for(var/turf/simulated/T1 in toupdate) - for(var/obj/machinery/door/D2 in T1) - doors += D2 - /*if(T1.parent) - air_master.groups_to_rebuild += T1.parent - else - air_master.tiles_to_update += T1*/ - - for(var/obj/O in doors) - O:update_nearby_tiles(1) - - + T1.CalculateAdjacentTurfs() + air_master.add_to_active(T1,1) return copiedobjs diff --git a/code/controllers/Processes/air.dm b/code/controllers/Processes/air.dm index d8ca38844a0..3d45fa77b76 100644 --- a/code/controllers/Processes/air.dm +++ b/code/controllers/Processes/air.dm @@ -8,7 +8,7 @@ /datum/controller/process/air/doWork() if(!air_processing_killed) - if(!air_master.Tick()) //Runtimed. + if(!air_master.process()) //Runtimed. air_master.failed_ticks++ if(air_master.failed_ticks > 5) diff --git a/code/controllers/Processes/mob.dm b/code/controllers/Processes/mob.dm index b3765b0cf9c..9eff6b9c007 100644 --- a/code/controllers/Processes/mob.dm +++ b/code/controllers/Processes/mob.dm @@ -5,6 +5,9 @@ name = "mob" schedule_interval = 20 // every 2 seconds updateQueueInstance = new + if(!mob_master) + mob_master = new + mob_master.Setup() /datum/controller/process/mob/started() ..() @@ -18,3 +21,17 @@ if(updateQueueInstance) updateQueueInstance.init(mob_list, "Life") updateQueueInstance.Run() + mob_master.process() + +var/global/datum/controller/mob_system/mob_master + +/datum/controller/mob_system + var/current_cycle + var/starttime + +/datum/controller/mob_system/proc/Setup() + world << "\red Mob ticker starting up." + starttime = world.timeofday + +/datum/controller/mob_system/proc/process() + current_cycle++ \ No newline at end of file diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index 963e01b7260..c1f46efe5ad 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -152,13 +152,13 @@ datum/controller/game_controller/proc/process() air_master.current_cycle++ // if(!air_master.tick()) Runtimed. - if(!air_master.Tick()) + if(!air_master.process()) air_master.failed_ticks++ if(air_master.failed_ticks > 5) world << "RUNTIMES IN ATMOS TICKER. Killing air simulation!" - world.log << "### ZAS SHUTDOWN" - message_admins("ZASALERT: unable to run [air_master.tick_progress], shutting down!") - log_admin("ZASALERT: unable run zone/process() -- [air_master.tick_progress]") + world.log << "### LINDA SHUTDOWN" + message_admins("LINDAALERT: unable to run [air_master.tick_progress], shutting down!") + log_admin("LINDAALERT: unable run zone/process() -- [air_master.tick_progress]") air_processing_killed = 1 air_master.failed_ticks = 0 air_cost = (world.timeofday - timer) / 10 diff --git a/code/FEA/FEA_gas_mixture.dm b/code/datums/gas_mixture.dm similarity index 93% rename from code/FEA/FEA_gas_mixture.dm rename to code/datums/gas_mixture.dm index 6beeffc1870..7bdd0cf0abc 100644 --- a/code/FEA/FEA_gas_mixture.dm +++ b/code/datums/gas_mixture.dm @@ -1,933 +1,961 @@ -/* -What are the archived variables for? - Calculations are done using the archived variables with the results merged into the regular variables. - This prevents race conditions that arise based on the order of tile processing. -*/ - -#define SPECIFIC_HEAT_TOXIN 200 -#define SPECIFIC_HEAT_AIR 20 -#define SPECIFIC_HEAT_CDO 30 -#define HEAT_CAPACITY_CALCULATION(oxygen,carbon_dioxide,nitrogen,toxins) \ - (carbon_dioxide*SPECIFIC_HEAT_CDO + (oxygen+nitrogen)*SPECIFIC_HEAT_AIR + toxins*SPECIFIC_HEAT_TOXIN) - -#define MINIMUM_HEAT_CAPACITY 0.0003 -#define QUANTIZE(variable) (round(variable,0.0001)) - -/datum/gas - sleeping_agent - specific_heat = 40 - - oxygen_agent_b - specific_heat = 300 - - volatile_fuel - specific_heat = 30 - - var/moles = 0 - var/specific_heat = 0 - - var/moles_archived = 0 - - -/datum/gas_mixture - var/oxygen = 0 - var/carbon_dioxide = 0 - var/nitrogen = 0 - var/toxins = 0 - - var/volume = CELL_VOLUME - - var/temperature = 0 //in Kelvin, use calculate_temperature() to modify - - var/group_multiplier = 1 - //Size of the group this gas_mixture is representing. - //=1 for singletons - - var/graphic - - var/list/datum/gas/trace_gases = list() - - - var/tmp/oxygen_archived - var/tmp/carbon_dioxide_archived - var/tmp/nitrogen_archived - var/tmp/toxins_archived - - var/tmp/temperature_archived - - var/tmp/graphic_archived - var/tmp/fuel_burnt = 0 - - //PV=nRT - related procedures - proc/heat_capacity() - var/heat_capacity = HEAT_CAPACITY_CALCULATION(oxygen,carbon_dioxide,nitrogen,toxins) - - if(trace_gases.len) - for(var/datum/gas/trace_gas in trace_gases) - heat_capacity += trace_gas.moles*trace_gas.specific_heat - return heat_capacity - - - proc/heat_capacity_archived() - var/heat_capacity_archived = HEAT_CAPACITY_CALCULATION(oxygen_archived,carbon_dioxide_archived,nitrogen_archived,toxins_archived) - - if(trace_gases.len) - for(var/datum/gas/trace_gas in trace_gases) - heat_capacity_archived += trace_gas.moles_archived*trace_gas.specific_heat - return heat_capacity_archived - - - proc/total_moles() - var/moles = oxygen + carbon_dioxide + nitrogen + toxins - - if(trace_gases.len) - for(var/datum/gas/trace_gas in trace_gases) - moles += trace_gas.moles - return moles - - - proc/return_pressure() - if(volume>0) - return total_moles()*R_IDEAL_GAS_EQUATION*temperature/volume - return 0 - - - proc/return_temperature() - return temperature - - - proc/return_volume() - return max(0, volume) - - - proc/thermal_energy() - return temperature*heat_capacity() - - - //Procedures used for very specific events - proc/check_tile_graphic() - //returns 1 if graphic changed - graphic = null - if(toxins > MOLES_PLASMA_VISIBLE) - graphic = "plasma" - else - var/datum/gas/sleeping_agent = locate(/datum/gas/sleeping_agent) in trace_gases - if(sleeping_agent && (sleeping_agent.moles > 1)) - graphic = "sleeping_agent" - else - graphic = null - - return graphic != graphic_archived - - proc/react(atom/dump_location) - var/reacting = 0 //set to 1 if a notable reaction occured (used by pipe_network) - - if(trace_gases.len > 0) - if(temperature > 900) - if(toxins > MINIMUM_HEAT_CAPACITY && carbon_dioxide > MINIMUM_HEAT_CAPACITY) - var/datum/gas/oxygen_agent_b/trace_gas = locate(/datum/gas/oxygen_agent_b/) in trace_gases - if(trace_gas) - var/reaction_rate = min(carbon_dioxide*0.75, toxins*0.25, trace_gas.moles*0.05) - - carbon_dioxide -= reaction_rate - oxygen += reaction_rate - - trace_gas.moles -= reaction_rate*0.05 - - temperature -= (reaction_rate*20000)/heat_capacity() - - reacting = 1 - - fuel_burnt = 0 - if(temperature > FIRE_MINIMUM_TEMPERATURE_TO_EXIST) - //world << "pre [temperature], [oxygen], [toxins]" - if(fire() > 0) - reacting = 1 - //world << "post [temperature], [oxygen], [toxins]" - - return reacting - - proc/fire() - var/energy_released = 0 - var/old_heat_capacity = heat_capacity() - - var/datum/gas/volatile_fuel/fuel_store = locate(/datum/gas/volatile_fuel/) in trace_gases - if(fuel_store) //General volatile gas burn - var/burned_fuel = 0 - - if(oxygen < fuel_store.moles) - burned_fuel = oxygen - fuel_store.moles -= burned_fuel - oxygen = 0 - else - burned_fuel = fuel_store.moles - oxygen -= fuel_store.moles - trace_gases -= fuel_store - fuel_store = null - - energy_released += FIRE_CARBON_ENERGY_RELEASED * burned_fuel - carbon_dioxide += burned_fuel - fuel_burnt += burned_fuel - - //Handle plasma burning - if(toxins > MINIMUM_HEAT_CAPACITY) - var/plasma_burn_rate = 0 - var/oxygen_burn_rate = 0 - //more plasma released at higher temperatures - var/temperature_scale - if(temperature > PLASMA_UPPER_TEMPERATURE) - temperature_scale = 1 - else - temperature_scale = (temperature-PLASMA_MINIMUM_BURN_TEMPERATURE)/(PLASMA_UPPER_TEMPERATURE-PLASMA_MINIMUM_BURN_TEMPERATURE) - if(temperature_scale > 0) - oxygen_burn_rate = 1.4 - temperature_scale - if(oxygen > toxins*PLASMA_OXYGEN_FULLBURN) - plasma_burn_rate = (toxins*temperature_scale)/4 - else - plasma_burn_rate = (temperature_scale*(oxygen/PLASMA_OXYGEN_FULLBURN))/4 - if(plasma_burn_rate > MINIMUM_HEAT_CAPACITY) - toxins -= plasma_burn_rate - oxygen -= plasma_burn_rate*oxygen_burn_rate - carbon_dioxide += plasma_burn_rate - - energy_released += FIRE_PLASMA_ENERGY_RELEASED * (plasma_burn_rate) - - fuel_burnt += (plasma_burn_rate)*(1+oxygen_burn_rate) - - if(energy_released > 0) - var/new_heat_capacity = heat_capacity() - if(new_heat_capacity > MINIMUM_HEAT_CAPACITY) - temperature = (temperature*old_heat_capacity + energy_released)/new_heat_capacity - - return fuel_burnt - - proc/archive() - //Update archived versions of variables - //Returns: 1 in all cases - - proc/merge(datum/gas_mixture/giver) - //Merges all air from giver into self. Deletes giver. - //Returns: 1 on success (no failure cases yet) - - proc/check_then_merge(datum/gas_mixture/giver) - //Similar to merge(...) but first checks to see if the amount of air assumed is small enough - // that group processing is still accurate for source (aborts if not) - //Returns: 1 on successful merge, 0 if the check failed - - proc/remove(amount) - //Proportionally removes amount of gas from the gas_mixture - //Returns: gas_mixture with the gases removed - - proc/remove_ratio(ratio) - //Proportionally removes amount of gas from the gas_mixture - //Returns: gas_mixture with the gases removed - - proc/subtract(datum/gas_mixture/right_side) - //Subtracts right_side from air_mixture. Used to help turfs mingle - - proc/check_then_remove(amount) - //Similar to remove(...) but first checks to see if the amount of air removed is small enough - // that group processing is still accurate for source (aborts if not) - //Returns: gas_mixture with the gases removed or null - - proc/copy_from(datum/gas_mixture/sample) - //Copies variables from sample - - proc/share(datum/gas_mixture/sharer) - //Performs air sharing calculations between two gas_mixtures assuming only 1 boundary length - //Return: amount of gas exchanged (+ if sharer received) - - proc/mimic(turf/model) - //Similar to share(...), except the model is not modified - //Return: amount of gas exchanged - - proc/check_gas_mixture(datum/gas_mixture/sharer) - //Returns: 0 if the self-check failed then -1 if sharer-check failed then 1 if both checks pass - - proc/check_turf(turf/model) - //Returns: 0 if self-check failed or 1 if check passes - - // check_me_then_share(datum/gas_mixture/sharer) - //Similar to share(...) but first checks to see if amount of air moved is small enough - // that group processing is still accurate for source (aborts if not) - //Returns: 1 on successful share, 0 if the check failed - - // check_me_then_mimic(turf/model) - //Similar to mimic(...) but first checks to see if amount of air moved is small enough - // that group processing is still accurate (aborts if not) - //Returns: 1 on successful mimic, 0 if the check failed - - // check_both_then_share(datum/gas_mixture/sharer) - //Similar to check_me_then_share(...) but also checks to see if amount of air moved is small enough - // that group processing is still accurate for the sharer (aborts if not) - //Returns: 0 if the self-check failed then -1 if sharer-check failed then 1 if successful share - - - proc/temperature_mimic(turf/model, conduction_coefficient) - - proc/temperature_share(datum/gas_mixture/sharer, conduction_coefficient) - - proc/temperature_turf_share(turf/simulated/sharer, conduction_coefficient) - - - proc/check_me_then_temperature_mimic(turf/model, conduction_coefficient) - - proc/check_me_then_temperature_share(datum/gas_mixture/sharer, conduction_coefficient) - - proc/check_both_then_temperature_share(datum/gas_mixture/sharer, conduction_coefficient) - - proc/check_me_then_temperature_turf_share(turf/simulated/sharer, conduction_coefficient) - - proc/compare(datum/gas_mixture/sample) - //Compares sample to self to see if within acceptable ranges that group processing may be enabled - - archive() - oxygen_archived = oxygen - carbon_dioxide_archived = carbon_dioxide - nitrogen_archived = nitrogen - toxins_archived = toxins - - if(trace_gases.len) - for(var/datum/gas/trace_gas in trace_gases) - trace_gas.moles_archived = trace_gas.moles - - temperature_archived = temperature - - graphic_archived = graphic - - return 1 - - check_then_merge(datum/gas_mixture/giver) - if(!giver) - return 0 - if(((giver.oxygen > MINIMUM_AIR_TO_SUSPEND) && (giver.oxygen >= oxygen*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ - || ((giver.carbon_dioxide > MINIMUM_AIR_TO_SUSPEND) && (giver.carbon_dioxide >= carbon_dioxide*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ - || ((giver.nitrogen > MINIMUM_AIR_TO_SUSPEND) && (giver.nitrogen >= nitrogen*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ - || ((giver.toxins > MINIMUM_AIR_TO_SUSPEND) && (giver.toxins >= toxins*MINIMUM_AIR_RATIO_TO_SUSPEND))) - return 0 - if(abs(giver.temperature - temperature) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) - return 0 - - if(giver.trace_gases.len) - for(var/datum/gas/trace_gas in giver.trace_gases) - var/datum/gas/corresponding = locate(trace_gas.type) in trace_gases - if((trace_gas.moles > MINIMUM_AIR_TO_SUSPEND) && (!corresponding || (trace_gas.moles >= corresponding.moles*MINIMUM_AIR_RATIO_TO_SUSPEND))) - return 0 - - return merge(giver) - - merge(datum/gas_mixture/giver) - if(!giver) - return 0 - - if(abs(temperature-giver.temperature)>MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) - var/self_heat_capacity = heat_capacity()*group_multiplier - var/giver_heat_capacity = giver.heat_capacity()*giver.group_multiplier - var/combined_heat_capacity = giver_heat_capacity + self_heat_capacity - if(combined_heat_capacity != 0) - temperature = (giver.temperature*giver_heat_capacity + temperature*self_heat_capacity)/combined_heat_capacity - - if((group_multiplier>1)||(giver.group_multiplier>1)) - oxygen += giver.oxygen*giver.group_multiplier/group_multiplier - carbon_dioxide += giver.carbon_dioxide*giver.group_multiplier/group_multiplier - nitrogen += giver.nitrogen*giver.group_multiplier/group_multiplier - toxins += giver.toxins*giver.group_multiplier/group_multiplier - else - oxygen += giver.oxygen - carbon_dioxide += giver.carbon_dioxide - nitrogen += giver.nitrogen - toxins += giver.toxins - - if(giver.trace_gases.len) - for(var/datum/gas/trace_gas in giver.trace_gases) - var/datum/gas/corresponding = locate(trace_gas.type) in trace_gases - if(!corresponding) - corresponding = new trace_gas.type() - trace_gases += corresponding - corresponding.moles += trace_gas.moles*giver.group_multiplier/group_multiplier - - // del(giver) - return 1 - - remove(amount) - - var/sum = total_moles() - amount = min(amount,sum) //Can not take more air than tile has! - if(amount <= 0) - return null - - var/datum/gas_mixture/removed = new - - - removed.oxygen = QUANTIZE((oxygen/sum)*amount) - removed.nitrogen = QUANTIZE((nitrogen/sum)*amount) - removed.carbon_dioxide = QUANTIZE((carbon_dioxide/sum)*amount) - removed.toxins = QUANTIZE((toxins/sum)*amount) - - oxygen -= removed.oxygen/group_multiplier - nitrogen -= removed.nitrogen/group_multiplier - carbon_dioxide -= removed.carbon_dioxide/group_multiplier - toxins -= removed.toxins/group_multiplier - - if(trace_gases.len) - for(var/datum/gas/trace_gas in trace_gases) - var/datum/gas/corresponding = new trace_gas.type() - removed.trace_gases += corresponding - - corresponding.moles = (trace_gas.moles/sum)*amount - trace_gas.moles -= corresponding.moles/group_multiplier - - removed.temperature = temperature - - return removed - - remove_ratio(ratio) - - if(ratio <= 0) - return null - - ratio = min(ratio, 1) - - var/datum/gas_mixture/removed = new - - removed.oxygen = QUANTIZE(oxygen*ratio) - removed.nitrogen = QUANTIZE(nitrogen*ratio) - removed.carbon_dioxide = QUANTIZE(carbon_dioxide*ratio) - removed.toxins = QUANTIZE(toxins*ratio) - - oxygen -= removed.oxygen/group_multiplier - nitrogen -= removed.nitrogen/group_multiplier - carbon_dioxide -= removed.carbon_dioxide/group_multiplier - toxins -= removed.toxins/group_multiplier - - if(trace_gases.len) - for(var/datum/gas/trace_gas in trace_gases) - var/datum/gas/corresponding = new trace_gas.type() - removed.trace_gases += corresponding - - corresponding.moles = trace_gas.moles*ratio - trace_gas.moles -= corresponding.moles/group_multiplier - - removed.temperature = temperature - - return removed - - check_then_remove(amount) - - //Since it is all proportional, the check may be done on the gas as a whole - var/sum = total_moles() - amount = min(amount,sum) //Can not take more air than tile has! - - if((amount > MINIMUM_AIR_RATIO_TO_SUSPEND) && (amount > sum*MINIMUM_AIR_RATIO_TO_SUSPEND)) - return 0 - - return remove(amount) - - copy_from(datum/gas_mixture/sample) - oxygen = sample.oxygen - carbon_dioxide = sample.carbon_dioxide - nitrogen = sample.nitrogen - toxins = sample.toxins - - trace_gases.len=null - if(sample.trace_gases.len > 0) - for(var/datum/gas/trace_gas in sample.trace_gases) - var/datum/gas/corresponding = new trace_gas.type() - trace_gases += corresponding - - corresponding.moles = trace_gas.moles - - temperature = sample.temperature - - return 1 - - subtract(datum/gas_mixture/right_side) - oxygen -= right_side.oxygen - carbon_dioxide -= right_side.carbon_dioxide - nitrogen -= right_side.nitrogen - toxins -= right_side.toxins - - if((trace_gases.len > 0)||(right_side.trace_gases.len > 0)) - for(var/datum/gas/trace_gas in right_side.trace_gases) - var/datum/gas/corresponding = locate(trace_gas.type) in trace_gases - if(!corresponding) - corresponding = new trace_gas.type() - trace_gases += corresponding - - corresponding.moles -= trace_gas.moles - - return 1 - - check_gas_mixture(datum/gas_mixture/sharer) - if(!sharer) return 0 - var/delta_oxygen = (oxygen_archived - sharer.oxygen_archived)/5 - var/delta_carbon_dioxide = (carbon_dioxide_archived - sharer.carbon_dioxide_archived)/5 - var/delta_nitrogen = (nitrogen_archived - sharer.nitrogen_archived)/5 - var/delta_toxins = (toxins_archived - sharer.toxins_archived)/5 - - var/delta_temperature = (temperature_archived - sharer.temperature_archived) - - if(((abs(delta_oxygen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_oxygen) >= oxygen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ - || ((abs(delta_carbon_dioxide) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_carbon_dioxide) >= carbon_dioxide_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ - || ((abs(delta_nitrogen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_nitrogen) >= nitrogen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ - || ((abs(delta_toxins) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_toxins) >= toxins_archived*MINIMUM_AIR_RATIO_TO_SUSPEND))) - return 0 - - if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) - return 0 - - if(sharer.trace_gases.len) - for(var/datum/gas/trace_gas in sharer.trace_gases) - if(trace_gas.moles_archived > MINIMUM_AIR_TO_SUSPEND*4) - var/datum/gas/corresponding = locate(trace_gas.type) in trace_gases - if(corresponding) - if(trace_gas.moles_archived >= corresponding.moles_archived*MINIMUM_AIR_RATIO_TO_SUSPEND*4) - return 0 - else - return 0 - - if(trace_gases.len) - for(var/datum/gas/trace_gas in trace_gases) - if(trace_gas.moles_archived > MINIMUM_AIR_TO_SUSPEND*4) - if(!locate(trace_gas.type) in sharer.trace_gases) - return 0 - - if(((abs(delta_oxygen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_oxygen) >= sharer.oxygen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ - || ((abs(delta_carbon_dioxide) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_carbon_dioxide) >= sharer.carbon_dioxide_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ - || ((abs(delta_nitrogen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_nitrogen) >= sharer.nitrogen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ - || ((abs(delta_toxins) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_toxins) >= sharer.toxins_archived*MINIMUM_AIR_RATIO_TO_SUSPEND))) - return -1 - - if(trace_gases.len) - for(var/datum/gas/trace_gas in trace_gases) - if(trace_gas.moles_archived > MINIMUM_AIR_TO_SUSPEND*4) - var/datum/gas/corresponding = locate(trace_gas.type) in sharer.trace_gases - if(corresponding) - if(trace_gas.moles_archived >= corresponding.moles_archived*MINIMUM_AIR_RATIO_TO_SUSPEND*4) - return -1 - else - return -1 - - return 1 - - check_turf(turf/model) - var/delta_oxygen = (oxygen_archived - model.oxygen)/5 - var/delta_carbon_dioxide = (carbon_dioxide_archived - model.carbon_dioxide)/5 - var/delta_nitrogen = (nitrogen_archived - model.nitrogen)/5 - var/delta_toxins = (toxins_archived - model.toxins)/5 - - var/delta_temperature = (temperature_archived - model.temperature) - - if(((abs(delta_oxygen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_oxygen) >= oxygen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ - || ((abs(delta_carbon_dioxide) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_carbon_dioxide) >= carbon_dioxide_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ - || ((abs(delta_nitrogen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_nitrogen) >= nitrogen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ - || ((abs(delta_toxins) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_toxins) >= toxins_archived*MINIMUM_AIR_RATIO_TO_SUSPEND))) - return 0 - if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) - return 0 - - if(trace_gases.len) - for(var/datum/gas/trace_gas in trace_gases) - if(trace_gas.moles_archived > MINIMUM_AIR_TO_SUSPEND*4) - return 0 - - return 1 - - share(datum/gas_mixture/sharer) - if(!sharer) return 0 - var/delta_oxygen = QUANTIZE(oxygen_archived - sharer.oxygen_archived)/5 - var/delta_carbon_dioxide = QUANTIZE(carbon_dioxide_archived - sharer.carbon_dioxide_archived)/5 - var/delta_nitrogen = QUANTIZE(nitrogen_archived - sharer.nitrogen_archived)/5 - var/delta_toxins = QUANTIZE(toxins_archived - sharer.toxins_archived)/5 - - var/delta_temperature = (temperature_archived - sharer.temperature_archived) - - var/old_self_heat_capacity = 0 - var/old_sharer_heat_capacity = 0 - - var/heat_capacity_self_to_sharer = 0 - var/heat_capacity_sharer_to_self = 0 - - if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) - - var/delta_air = delta_oxygen+delta_nitrogen - if(delta_air) - var/air_heat_capacity = SPECIFIC_HEAT_AIR*delta_air - if(delta_air > 0) - heat_capacity_self_to_sharer += air_heat_capacity - else - heat_capacity_sharer_to_self -= air_heat_capacity - - if(delta_carbon_dioxide) - var/carbon_dioxide_heat_capacity = SPECIFIC_HEAT_CDO*delta_carbon_dioxide - if(delta_carbon_dioxide > 0) - heat_capacity_self_to_sharer += carbon_dioxide_heat_capacity - else - heat_capacity_sharer_to_self -= carbon_dioxide_heat_capacity - - if(delta_toxins) - var/toxins_heat_capacity = SPECIFIC_HEAT_TOXIN*delta_toxins - if(delta_toxins > 0) - heat_capacity_self_to_sharer += toxins_heat_capacity - else - heat_capacity_sharer_to_self -= toxins_heat_capacity - - old_self_heat_capacity = heat_capacity()*group_multiplier - old_sharer_heat_capacity = sharer.heat_capacity()*sharer.group_multiplier - - oxygen -= delta_oxygen/group_multiplier - sharer.oxygen += delta_oxygen/sharer.group_multiplier - - carbon_dioxide -= delta_carbon_dioxide/group_multiplier - sharer.carbon_dioxide += delta_carbon_dioxide/sharer.group_multiplier - - nitrogen -= delta_nitrogen/group_multiplier - sharer.nitrogen += delta_nitrogen/sharer.group_multiplier - - toxins -= delta_toxins/group_multiplier - sharer.toxins += delta_toxins/sharer.group_multiplier - - var/moved_moles = (delta_oxygen + delta_carbon_dioxide + delta_nitrogen + delta_toxins) - - var/list/trace_types_considered = list() - - if(trace_gases.len) - for(var/datum/gas/trace_gas in trace_gases) - - var/datum/gas/corresponding = locate(trace_gas.type) in sharer.trace_gases - var/delta = 0 - - if(corresponding) - delta = QUANTIZE(trace_gas.moles_archived - corresponding.moles_archived)/5 - else - corresponding = new trace_gas.type() - sharer.trace_gases += corresponding - - delta = trace_gas.moles_archived/5 - - trace_gas.moles -= delta/group_multiplier - corresponding.moles += delta/sharer.group_multiplier - - if(delta) - var/individual_heat_capacity = trace_gas.specific_heat*delta - if(delta > 0) - heat_capacity_self_to_sharer += individual_heat_capacity - else - heat_capacity_sharer_to_self -= individual_heat_capacity - - moved_moles += delta - - trace_types_considered += trace_gas.type - - - if(sharer.trace_gases.len) - for(var/datum/gas/trace_gas in sharer.trace_gases) - if(trace_gas.type in trace_types_considered) continue - else - var/datum/gas/corresponding - var/delta = 0 - - corresponding = new trace_gas.type() - trace_gases += corresponding - - delta = trace_gas.moles_archived/5 - - trace_gas.moles -= delta/sharer.group_multiplier - corresponding.moles += delta/group_multiplier - - //Guaranteed transfer from sharer to self - var/individual_heat_capacity = trace_gas.specific_heat*delta - heat_capacity_sharer_to_self += individual_heat_capacity - - moved_moles += -delta - - if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) - var/new_self_heat_capacity = old_self_heat_capacity + heat_capacity_sharer_to_self - heat_capacity_self_to_sharer - var/new_sharer_heat_capacity = old_sharer_heat_capacity + heat_capacity_self_to_sharer - heat_capacity_sharer_to_self - - if(new_self_heat_capacity > MINIMUM_HEAT_CAPACITY) - temperature = (old_self_heat_capacity*temperature - heat_capacity_self_to_sharer*temperature_archived + heat_capacity_sharer_to_self*sharer.temperature_archived)/new_self_heat_capacity - - if(new_sharer_heat_capacity > MINIMUM_HEAT_CAPACITY) - sharer.temperature = (old_sharer_heat_capacity*sharer.temperature-heat_capacity_sharer_to_self*sharer.temperature_archived + heat_capacity_self_to_sharer*temperature_archived)/new_sharer_heat_capacity - - if(abs(old_sharer_heat_capacity) > MINIMUM_HEAT_CAPACITY) - if(abs(new_sharer_heat_capacity/old_sharer_heat_capacity - 1) < 0.10) // <10% change in sharer heat capacity - temperature_share(sharer, OPEN_HEAT_TRANSFER_COEFFICIENT) - - if((delta_temperature > MINIMUM_TEMPERATURE_TO_MOVE) || abs(moved_moles) > MINIMUM_MOLES_DELTA_TO_MOVE) - var/delta_pressure = temperature_archived*(total_moles() + moved_moles) - sharer.temperature_archived*(sharer.total_moles() - moved_moles) - return delta_pressure*R_IDEAL_GAS_EQUATION/volume - - else - return 0 - - mimic(turf/model, border_multiplier) - var/delta_oxygen = QUANTIZE(oxygen_archived - model.oxygen)/5 - var/delta_carbon_dioxide = QUANTIZE(carbon_dioxide_archived - model.carbon_dioxide)/5 - var/delta_nitrogen = QUANTIZE(nitrogen_archived - model.nitrogen)/5 - var/delta_toxins = QUANTIZE(toxins_archived - model.toxins)/5 - - var/delta_temperature = (temperature_archived - model.temperature) - - var/heat_transferred = 0 - var/old_self_heat_capacity = 0 - var/heat_capacity_transferred = 0 - - if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) - - var/delta_air = delta_oxygen+delta_nitrogen - if(delta_air) - var/air_heat_capacity = SPECIFIC_HEAT_AIR*delta_air - heat_transferred -= air_heat_capacity*model.temperature - heat_capacity_transferred -= air_heat_capacity - - if(delta_carbon_dioxide) - var/carbon_dioxide_heat_capacity = SPECIFIC_HEAT_CDO*delta_carbon_dioxide - heat_transferred -= carbon_dioxide_heat_capacity*model.temperature - heat_capacity_transferred -= carbon_dioxide_heat_capacity - - if(delta_toxins) - var/toxins_heat_capacity = SPECIFIC_HEAT_TOXIN*delta_toxins - heat_transferred -= toxins_heat_capacity*model.temperature - heat_capacity_transferred -= toxins_heat_capacity - - old_self_heat_capacity = heat_capacity()*group_multiplier - - if(border_multiplier) - oxygen -= delta_oxygen*border_multiplier/group_multiplier - carbon_dioxide -= delta_carbon_dioxide*border_multiplier/group_multiplier - nitrogen -= delta_nitrogen*border_multiplier/group_multiplier - toxins -= delta_toxins*border_multiplier/group_multiplier - else - oxygen -= delta_oxygen/group_multiplier - carbon_dioxide -= delta_carbon_dioxide/group_multiplier - nitrogen -= delta_nitrogen/group_multiplier - toxins -= delta_toxins/group_multiplier - - var/moved_moles = (delta_oxygen + delta_carbon_dioxide + delta_nitrogen + delta_toxins) - - if(trace_gases.len) - for(var/datum/gas/trace_gas in trace_gases) - var/delta = 0 - - delta = trace_gas.moles_archived/5 - - if(border_multiplier) - trace_gas.moles -= delta*border_multiplier/group_multiplier - else - trace_gas.moles -= delta/group_multiplier - - var/heat_cap_transferred = delta*trace_gas.specific_heat - heat_transferred += heat_cap_transferred*temperature_archived - heat_capacity_transferred += heat_cap_transferred - moved_moles += delta - - if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) - var/new_self_heat_capacity = old_self_heat_capacity - heat_capacity_transferred - if(new_self_heat_capacity > MINIMUM_HEAT_CAPACITY) - if(border_multiplier) - temperature = (old_self_heat_capacity*temperature - heat_capacity_transferred*border_multiplier*temperature_archived)/new_self_heat_capacity - else - temperature = (old_self_heat_capacity*temperature - heat_capacity_transferred*border_multiplier*temperature_archived)/new_self_heat_capacity - - temperature_mimic(model, model.thermal_conductivity, border_multiplier) - - if((delta_temperature > MINIMUM_TEMPERATURE_TO_MOVE) || abs(moved_moles) > MINIMUM_MOLES_DELTA_TO_MOVE) - var/delta_pressure = temperature_archived*(total_moles() + moved_moles) - model.temperature*(model.oxygen+model.carbon_dioxide+model.nitrogen+model.toxins) - return delta_pressure*R_IDEAL_GAS_EQUATION/volume - else - return 0 - - check_both_then_temperature_share(datum/gas_mixture/sharer, conduction_coefficient) - var/delta_temperature = (temperature_archived - sharer.temperature_archived) - - var/self_heat_capacity = heat_capacity_archived() - var/sharer_heat_capacity = sharer.heat_capacity_archived() - - var/self_temperature_delta = 0 - var/sharer_temperature_delta = 0 - - if((sharer_heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY)) - var/heat = conduction_coefficient*delta_temperature* \ - (self_heat_capacity*sharer_heat_capacity/(self_heat_capacity+sharer_heat_capacity)) - - self_temperature_delta = -heat/(self_heat_capacity*group_multiplier) - sharer_temperature_delta = heat/(sharer_heat_capacity*sharer.group_multiplier) - else - return 1 - - if((abs(self_temperature_delta) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) \ - && (abs(self_temperature_delta) > MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND*temperature_archived)) - return 0 - - if((abs(sharer_temperature_delta) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) \ - && (abs(sharer_temperature_delta) > MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND*sharer.temperature_archived)) - return -1 - - temperature += self_temperature_delta - sharer.temperature += sharer_temperature_delta - - return 1 - //Logic integrated from: temperature_share(sharer, conduction_coefficient) for efficiency - - check_me_then_temperature_share(datum/gas_mixture/sharer, conduction_coefficient) - var/delta_temperature = (temperature_archived - sharer.temperature_archived) - - var/self_heat_capacity = heat_capacity_archived() - var/sharer_heat_capacity = sharer.heat_capacity_archived() - - var/self_temperature_delta = 0 - var/sharer_temperature_delta = 0 - - if((sharer_heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY)) - var/heat = conduction_coefficient*delta_temperature* \ - (self_heat_capacity*sharer_heat_capacity/(self_heat_capacity+sharer_heat_capacity)) - - self_temperature_delta = -heat/(self_heat_capacity*group_multiplier) - sharer_temperature_delta = heat/(sharer_heat_capacity*sharer.group_multiplier) - else - return 1 - - if((abs(self_temperature_delta) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) \ - && (abs(self_temperature_delta) > MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND*temperature_archived)) - return 0 - - temperature += self_temperature_delta - sharer.temperature += sharer_temperature_delta - - return 1 - //Logic integrated from: temperature_share(sharer, conduction_coefficient) for efficiency - - check_me_then_temperature_turf_share(turf/simulated/sharer, conduction_coefficient) - var/delta_temperature = (temperature_archived - sharer.temperature) - - var/self_temperature_delta = 0 - var/sharer_temperature_delta = 0 - - if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) - var/self_heat_capacity = heat_capacity_archived() - - if((sharer.heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY)) - var/heat = conduction_coefficient*delta_temperature* \ - (self_heat_capacity*sharer.heat_capacity/(self_heat_capacity+sharer.heat_capacity)) - - self_temperature_delta = -heat/(self_heat_capacity*group_multiplier) - sharer_temperature_delta = heat/sharer.heat_capacity - else - return 1 - - if((abs(self_temperature_delta) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) \ - && (abs(self_temperature_delta) > MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND*temperature_archived)) - return 0 - - temperature += self_temperature_delta - sharer.temperature += sharer_temperature_delta - - return 1 - //Logic integrated from: temperature_turf_share(sharer, conduction_coefficient) for efficiency - - check_me_then_temperature_mimic(turf/model, conduction_coefficient) - var/delta_temperature = (temperature_archived - model.temperature) - var/self_temperature_delta = 0 - - if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) - var/self_heat_capacity = heat_capacity_archived() - - if((model.heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY)) - var/heat = conduction_coefficient*delta_temperature* \ - (self_heat_capacity*model.heat_capacity/(self_heat_capacity+model.heat_capacity)) - - self_temperature_delta = -heat/(self_heat_capacity*group_multiplier) - - if((abs(self_temperature_delta) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) \ - && (abs(self_temperature_delta) > MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND*temperature_archived)) - return 0 - - temperature += self_temperature_delta - - return 1 - //Logic integrated from: temperature_mimic(model, conduction_coefficient) for efficiency - - temperature_share(datum/gas_mixture/sharer, conduction_coefficient) - - var/delta_temperature = (temperature_archived - sharer.temperature_archived) - if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) - var/self_heat_capacity = heat_capacity_archived() - var/sharer_heat_capacity = sharer.heat_capacity_archived() - - if((sharer_heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY)) - var/heat = conduction_coefficient*delta_temperature* \ - (self_heat_capacity*sharer_heat_capacity/(self_heat_capacity+sharer_heat_capacity)) - - temperature -= heat/(self_heat_capacity*group_multiplier) - sharer.temperature += heat/(sharer_heat_capacity*sharer.group_multiplier) - - temperature_mimic(turf/model, conduction_coefficient, border_multiplier) - var/delta_temperature = (temperature - model.temperature) - if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) - var/self_heat_capacity = heat_capacity()//_archived() - - if((model.heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY)) - var/heat = conduction_coefficient*delta_temperature* \ - (self_heat_capacity*model.heat_capacity/(self_heat_capacity+model.heat_capacity)) - - if(border_multiplier) - temperature -= heat*border_multiplier/(self_heat_capacity*group_multiplier) - else - temperature -= heat/(self_heat_capacity*group_multiplier) - - temperature_turf_share(turf/simulated/sharer, conduction_coefficient) - var/delta_temperature = (temperature_archived - sharer.temperature) - if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) - var/self_heat_capacity = heat_capacity() - - if((sharer.heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY)) - var/heat = conduction_coefficient*delta_temperature* \ - (self_heat_capacity*sharer.heat_capacity/(self_heat_capacity+sharer.heat_capacity)) - - temperature -= heat/(self_heat_capacity*group_multiplier) - sharer.temperature += heat/sharer.heat_capacity - - compare(datum/gas_mixture/sample) - if((abs(oxygen-sample.oxygen) > MINIMUM_AIR_TO_SUSPEND) && \ - ((oxygen < (1-MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.oxygen) || (oxygen > (1+MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.oxygen))) - return 0 - if((abs(nitrogen-sample.nitrogen) > MINIMUM_AIR_TO_SUSPEND) && \ - ((nitrogen < (1-MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.nitrogen) || (nitrogen > (1+MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.nitrogen))) - return 0 - if((abs(carbon_dioxide-sample.carbon_dioxide) > MINIMUM_AIR_TO_SUSPEND) && \ - ((carbon_dioxide < (1-MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.carbon_dioxide) || (oxygen > (1+MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.carbon_dioxide))) - return 0 - if((abs(toxins-sample.toxins) > MINIMUM_AIR_TO_SUSPEND) && \ - ((toxins < (1-MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.toxins) || (toxins > (1+MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.toxins))) - return 0 - - if(total_moles() > MINIMUM_AIR_TO_SUSPEND) - if((abs(temperature-sample.temperature) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) && \ - ((temperature < (1-MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND)*sample.temperature) || (temperature > (1+MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND)*sample.temperature))) - //world << "temp fail [temperature] & [sample.temperature]" - return 0 - - if(sample.trace_gases.len) - for(var/datum/gas/trace_gas in sample.trace_gases) - if(trace_gas.moles_archived > MINIMUM_AIR_TO_SUSPEND) - var/datum/gas/corresponding = locate(trace_gas.type) in trace_gases - if(corresponding) - if((abs(trace_gas.moles - corresponding.moles) > MINIMUM_AIR_TO_SUSPEND) && \ - ((corresponding.moles < (1-MINIMUM_AIR_RATIO_TO_SUSPEND)*trace_gas.moles) || (corresponding.moles > (1+MINIMUM_AIR_RATIO_TO_SUSPEND)*trace_gas.moles))) - return 0 - else - return 0 - - if(trace_gases.len) - for(var/datum/gas/trace_gas in trace_gases) - if(trace_gas.moles > MINIMUM_AIR_TO_SUSPEND) - var/datum/gas/corresponding = locate(trace_gas.type) in sample.trace_gases - if(corresponding) - if((abs(trace_gas.moles - corresponding.moles) > MINIMUM_AIR_TO_SUSPEND) && \ - ((trace_gas.moles < (1-MINIMUM_AIR_RATIO_TO_SUSPEND)*corresponding.moles) || (trace_gas.moles > (1+MINIMUM_AIR_RATIO_TO_SUSPEND)*corresponding.moles))) - return 0 - else - return 0 + /* +What are the archived variables for? + Calculations are done using the archived variables with the results merged into the regular variables. + This prevents race conditions that arise based on the order of tile processing. +*/ + +#define SPECIFIC_HEAT_TOXIN 200 +#define SPECIFIC_HEAT_AIR 20 +#define SPECIFIC_HEAT_CDO 30 +#define HEAT_CAPACITY_CALCULATION(oxygen,carbon_dioxide,nitrogen,toxins) \ + (carbon_dioxide*SPECIFIC_HEAT_CDO + (oxygen+nitrogen)*SPECIFIC_HEAT_AIR + toxins*SPECIFIC_HEAT_TOXIN) + +#define MINIMUM_HEAT_CAPACITY 0.0003 +#define QUANTIZE(variable) (round(variable,0.0001)) + +/datum/gas + sleeping_agent + specific_heat = 40 + + oxygen_agent_b + specific_heat = 300 + + volatile_fuel + specific_heat = 30 + + var/moles = 0 + var/specific_heat = 0 + + var/moles_archived = 0 + + +/datum/gas_mixture + var/oxygen = 0 + var/carbon_dioxide = 0 + var/nitrogen = 0 + var/toxins = 0 + + var/volume = CELL_VOLUME + + var/temperature = 0 //in Kelvin, use calculate_temperature() to modify + + var/last_share + + var/group_multiplier = 1 + //Size of the group this gas_mixture is representing. + //=1 for singletons + + var/graphic + + var/list/datum/gas/trace_gases = list() + + + var/tmp/oxygen_archived + var/tmp/carbon_dioxide_archived + var/tmp/nitrogen_archived + var/tmp/toxins_archived + + var/tmp/temperature_archived + + var/tmp/graphic_archived + var/tmp/fuel_burnt = 0 + + //PV=nRT - related procedures + proc/heat_capacity() + var/heat_capacity = HEAT_CAPACITY_CALCULATION(oxygen,carbon_dioxide,nitrogen,toxins) + + if(trace_gases.len) + for(var/datum/gas/trace_gas in trace_gases) + heat_capacity += trace_gas.moles*trace_gas.specific_heat + return heat_capacity + + + proc/heat_capacity_archived() + var/heat_capacity_archived = HEAT_CAPACITY_CALCULATION(oxygen_archived,carbon_dioxide_archived,nitrogen_archived,toxins_archived) + + if(trace_gases.len) + for(var/datum/gas/trace_gas in trace_gases) + heat_capacity_archived += trace_gas.moles_archived*trace_gas.specific_heat + return heat_capacity_archived + + + proc/total_moles() + var/moles = oxygen + carbon_dioxide + nitrogen + toxins + + if(trace_gases.len) + for(var/datum/gas/trace_gas in trace_gases) + moles += trace_gas.moles + return moles + + + proc/return_pressure() + if(volume>0) + return total_moles()*R_IDEAL_GAS_EQUATION*temperature/volume + return 0 + + + proc/return_temperature() + return temperature + + + proc/return_volume() + return max(0, volume) + + + proc/thermal_energy() + return temperature*heat_capacity() + + + //Procedures used for very specific events + proc/check_tile_graphic() + //returns 1 if graphic changed + graphic = null + if(toxins > MOLES_PLASMA_VISIBLE) + graphic = "plasma" + else + var/datum/gas/sleeping_agent = locate(/datum/gas/sleeping_agent) in trace_gases + if(sleeping_agent && (sleeping_agent.moles > 1)) + graphic = "sleeping_agent" + else + graphic = null + + return graphic != graphic_archived + + proc/react(atom/dump_location) + var/reacting = 0 //set to 1 if a notable reaction occured (used by pipe_network) + + if(trace_gases.len > 0) + if(temperature > 900) + if(toxins > MINIMUM_HEAT_CAPACITY && carbon_dioxide > MINIMUM_HEAT_CAPACITY) + var/datum/gas/oxygen_agent_b/trace_gas = locate(/datum/gas/oxygen_agent_b/) in trace_gases + if(trace_gas) + var/reaction_rate = min(carbon_dioxide*0.75, toxins*0.25, trace_gas.moles*0.05) + + carbon_dioxide -= reaction_rate + oxygen += reaction_rate + + trace_gas.moles -= reaction_rate*0.05 + + temperature -= (reaction_rate*20000)/heat_capacity() + + reacting = 1 + + fuel_burnt = 0 + if(temperature > FIRE_MINIMUM_TEMPERATURE_TO_EXIST) + //world << "pre [temperature], [oxygen], [toxins]" + if(fire() > 0) + reacting = 1 + //world << "post [temperature], [oxygen], [toxins]" + + return reacting + + proc/fire() + var/energy_released = 0 + var/old_heat_capacity = heat_capacity() + + var/datum/gas/volatile_fuel/fuel_store = locate(/datum/gas/volatile_fuel/) in trace_gases + if(fuel_store) //General volatile gas burn + var/burned_fuel = 0 + + if(oxygen < fuel_store.moles) + burned_fuel = oxygen + fuel_store.moles -= burned_fuel + oxygen = 0 + else + burned_fuel = fuel_store.moles + oxygen -= fuel_store.moles + trace_gases -= fuel_store + fuel_store = null + + energy_released += FIRE_CARBON_ENERGY_RELEASED * burned_fuel + carbon_dioxide += burned_fuel + fuel_burnt += burned_fuel + + //Handle plasma burning + if(toxins > MINIMUM_HEAT_CAPACITY) + var/plasma_burn_rate = 0 + var/oxygen_burn_rate = 0 + //more plasma released at higher temperatures + var/temperature_scale + if(temperature > PLASMA_UPPER_TEMPERATURE) + temperature_scale = 1 + else + temperature_scale = (temperature-PLASMA_MINIMUM_BURN_TEMPERATURE)/(PLASMA_UPPER_TEMPERATURE-PLASMA_MINIMUM_BURN_TEMPERATURE) + if(temperature_scale > 0) + oxygen_burn_rate = 1.4 - temperature_scale + if(oxygen > toxins*PLASMA_OXYGEN_FULLBURN) + plasma_burn_rate = (toxins*temperature_scale)/4 + else + plasma_burn_rate = (temperature_scale*(oxygen/PLASMA_OXYGEN_FULLBURN))/4 + if(plasma_burn_rate > MINIMUM_HEAT_CAPACITY) + toxins -= plasma_burn_rate + oxygen -= plasma_burn_rate*oxygen_burn_rate + carbon_dioxide += plasma_burn_rate + + energy_released += FIRE_PLASMA_ENERGY_RELEASED * (plasma_burn_rate) + + fuel_burnt += (plasma_burn_rate)*(1+oxygen_burn_rate) + + if(energy_released > 0) + var/new_heat_capacity = heat_capacity() + if(new_heat_capacity > MINIMUM_HEAT_CAPACITY) + temperature = (temperature*old_heat_capacity + energy_released)/new_heat_capacity + + return fuel_burnt + + proc/archive() + //Update archived versions of variables + //Returns: 1 in all cases + + proc/merge(datum/gas_mixture/giver) + //Merges all air from giver into self. Deletes giver. + //Returns: 1 on success (no failure cases yet) + + proc/check_then_merge(datum/gas_mixture/giver) + //Similar to merge(...) but first checks to see if the amount of air assumed is small enough + // that group processing is still accurate for source (aborts if not) + //Returns: 1 on successful merge, 0 if the check failed + + proc/remove(amount) + //Proportionally removes amount of gas from the gas_mixture + //Returns: gas_mixture with the gases removed + + proc/remove_ratio(ratio) + //Proportionally removes amount of gas from the gas_mixture + //Returns: gas_mixture with the gases removed + + proc/subtract(datum/gas_mixture/right_side) + //Subtracts right_side from air_mixture. Used to help turfs mingle + + proc/check_then_remove(amount) + //Similar to remove(...) but first checks to see if the amount of air removed is small enough + // that group processing is still accurate for source (aborts if not) + //Returns: gas_mixture with the gases removed or null + + proc/copy_from(datum/gas_mixture/sample) + //Copies variables from sample + + proc/share(datum/gas_mixture/sharer) + //Performs air sharing calculations between two gas_mixtures assuming only 1 boundary length + //Return: amount of gas exchanged (+ if sharer received) + + proc/mimic(turf/model) + //Similar to share(...), except the model is not modified + //Return: amount of gas exchanged + + proc/check_gas_mixture(datum/gas_mixture/sharer) + //Returns: 0 if the self-check failed then -1 if sharer-check failed then 1 if both checks pass + + proc/check_turf(turf/model) + //Returns: 0 if self-check failed or 1 if check passes + + // check_me_then_share(datum/gas_mixture/sharer) + //Similar to share(...) but first checks to see if amount of air moved is small enough + // that group processing is still accurate for source (aborts if not) + //Returns: 1 on successful share, 0 if the check failed + + // check_me_then_mimic(turf/model) + //Similar to mimic(...) but first checks to see if amount of air moved is small enough + // that group processing is still accurate (aborts if not) + //Returns: 1 on successful mimic, 0 if the check failed + + // check_both_then_share(datum/gas_mixture/sharer) + //Similar to check_me_then_share(...) but also checks to see if amount of air moved is small enough + // that group processing is still accurate for the sharer (aborts if not) + //Returns: 0 if the self-check failed then -1 if sharer-check failed then 1 if successful share + + + proc/temperature_mimic(turf/model, conduction_coefficient) + + proc/temperature_share(datum/gas_mixture/sharer, conduction_coefficient) + + proc/temperature_turf_share(turf/simulated/sharer, conduction_coefficient) + + + proc/check_me_then_temperature_mimic(turf/model, conduction_coefficient) + + proc/check_me_then_temperature_share(datum/gas_mixture/sharer, conduction_coefficient) + + proc/check_both_then_temperature_share(datum/gas_mixture/sharer, conduction_coefficient) + + proc/check_me_then_temperature_turf_share(turf/simulated/sharer, conduction_coefficient) + + proc/compare(datum/gas_mixture/sample) + //Compares sample to self to see if within acceptable ranges that group processing may be enabled + + archive() + oxygen_archived = oxygen + carbon_dioxide_archived = carbon_dioxide + nitrogen_archived = nitrogen + toxins_archived = toxins + + if(trace_gases.len) + for(var/datum/gas/trace_gas in trace_gases) + trace_gas.moles_archived = trace_gas.moles + + temperature_archived = temperature + + graphic_archived = graphic + + return 1 + + check_then_merge(datum/gas_mixture/giver) + if(!giver) + return 0 + if(((giver.oxygen > MINIMUM_AIR_TO_SUSPEND) && (giver.oxygen >= oxygen*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ + || ((giver.carbon_dioxide > MINIMUM_AIR_TO_SUSPEND) && (giver.carbon_dioxide >= carbon_dioxide*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ + || ((giver.nitrogen > MINIMUM_AIR_TO_SUSPEND) && (giver.nitrogen >= nitrogen*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ + || ((giver.toxins > MINIMUM_AIR_TO_SUSPEND) && (giver.toxins >= toxins*MINIMUM_AIR_RATIO_TO_SUSPEND))) + return 0 + if(abs(giver.temperature - temperature) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) + return 0 + + if(giver.trace_gases.len) + for(var/datum/gas/trace_gas in giver.trace_gases) + var/datum/gas/corresponding = locate(trace_gas.type) in trace_gases + if((trace_gas.moles > MINIMUM_AIR_TO_SUSPEND) && (!corresponding || (trace_gas.moles >= corresponding.moles*MINIMUM_AIR_RATIO_TO_SUSPEND))) + return 0 + + return merge(giver) + + merge(datum/gas_mixture/giver) + if(!giver) + return 0 + + if(abs(temperature-giver.temperature)>MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) + var/self_heat_capacity = heat_capacity()*group_multiplier + var/giver_heat_capacity = giver.heat_capacity()*giver.group_multiplier + var/combined_heat_capacity = giver_heat_capacity + self_heat_capacity + if(combined_heat_capacity != 0) + temperature = (giver.temperature*giver_heat_capacity + temperature*self_heat_capacity)/combined_heat_capacity + + if((group_multiplier>1)||(giver.group_multiplier>1)) + oxygen += giver.oxygen*giver.group_multiplier/group_multiplier + carbon_dioxide += giver.carbon_dioxide*giver.group_multiplier/group_multiplier + nitrogen += giver.nitrogen*giver.group_multiplier/group_multiplier + toxins += giver.toxins*giver.group_multiplier/group_multiplier + else + oxygen += giver.oxygen + carbon_dioxide += giver.carbon_dioxide + nitrogen += giver.nitrogen + toxins += giver.toxins + + if(giver.trace_gases.len) + for(var/datum/gas/trace_gas in giver.trace_gases) + var/datum/gas/corresponding = locate(trace_gas.type) in trace_gases + if(!corresponding) + corresponding = new trace_gas.type() + trace_gases += corresponding + corresponding.moles += trace_gas.moles*giver.group_multiplier/group_multiplier + + // del(giver) + return 1 + + remove(amount) + + var/sum = total_moles() + amount = min(amount,sum) //Can not take more air than tile has! + if(amount <= 0) + return null + + var/datum/gas_mixture/removed = new + + + removed.oxygen = QUANTIZE((oxygen/sum)*amount) + removed.nitrogen = QUANTIZE((nitrogen/sum)*amount) + removed.carbon_dioxide = QUANTIZE((carbon_dioxide/sum)*amount) + removed.toxins = QUANTIZE((toxins/sum)*amount) + + oxygen -= removed.oxygen/group_multiplier + nitrogen -= removed.nitrogen/group_multiplier + carbon_dioxide -= removed.carbon_dioxide/group_multiplier + toxins -= removed.toxins/group_multiplier + + if(trace_gases.len) + for(var/datum/gas/trace_gas in trace_gases) + var/datum/gas/corresponding = new trace_gas.type() + removed.trace_gases += corresponding + + corresponding.moles = (trace_gas.moles/sum)*amount + trace_gas.moles -= corresponding.moles/group_multiplier + + removed.temperature = temperature + + return removed + + remove_ratio(ratio) + + if(ratio <= 0) + return null + + ratio = min(ratio, 1) + + var/datum/gas_mixture/removed = new + + removed.oxygen = QUANTIZE(oxygen*ratio) + removed.nitrogen = QUANTIZE(nitrogen*ratio) + removed.carbon_dioxide = QUANTIZE(carbon_dioxide*ratio) + removed.toxins = QUANTIZE(toxins*ratio) + + oxygen -= removed.oxygen/group_multiplier + nitrogen -= removed.nitrogen/group_multiplier + carbon_dioxide -= removed.carbon_dioxide/group_multiplier + toxins -= removed.toxins/group_multiplier + + if(trace_gases.len) + for(var/datum/gas/trace_gas in trace_gases) + var/datum/gas/corresponding = new trace_gas.type() + removed.trace_gases += corresponding + + corresponding.moles = trace_gas.moles*ratio + trace_gas.moles -= corresponding.moles/group_multiplier + + removed.temperature = temperature + + return removed + + check_then_remove(amount) + + //Since it is all proportional, the check may be done on the gas as a whole + var/sum = total_moles() + amount = min(amount,sum) //Can not take more air than tile has! + + if((amount > MINIMUM_AIR_RATIO_TO_SUSPEND) && (amount > sum*MINIMUM_AIR_RATIO_TO_SUSPEND)) + return 0 + + return remove(amount) + + copy_from(datum/gas_mixture/sample) + oxygen = sample.oxygen + carbon_dioxide = sample.carbon_dioxide + nitrogen = sample.nitrogen + toxins = sample.toxins + + trace_gases.len=null + if(sample.trace_gases.len > 0) + for(var/datum/gas/trace_gas in sample.trace_gases) + var/datum/gas/corresponding = new trace_gas.type() + trace_gases += corresponding + + corresponding.moles = trace_gas.moles + + temperature = sample.temperature + + return 1 + + subtract(datum/gas_mixture/right_side) + oxygen -= right_side.oxygen + carbon_dioxide -= right_side.carbon_dioxide + nitrogen -= right_side.nitrogen + toxins -= right_side.toxins + + if((trace_gases.len > 0)||(right_side.trace_gases.len > 0)) + for(var/datum/gas/trace_gas in right_side.trace_gases) + var/datum/gas/corresponding = locate(trace_gas.type) in trace_gases + if(!corresponding) + corresponding = new trace_gas.type() + trace_gases += corresponding + + corresponding.moles -= trace_gas.moles + + return 1 + + check_gas_mixture(datum/gas_mixture/sharer) + if(!sharer) return 0 + var/delta_oxygen = (oxygen_archived - sharer.oxygen_archived)/5 + var/delta_carbon_dioxide = (carbon_dioxide_archived - sharer.carbon_dioxide_archived)/5 + var/delta_nitrogen = (nitrogen_archived - sharer.nitrogen_archived)/5 + var/delta_toxins = (toxins_archived - sharer.toxins_archived)/5 + + var/delta_temperature = (temperature_archived - sharer.temperature_archived) + + if(((abs(delta_oxygen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_oxygen) >= oxygen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ + || ((abs(delta_carbon_dioxide) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_carbon_dioxide) >= carbon_dioxide_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ + || ((abs(delta_nitrogen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_nitrogen) >= nitrogen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ + || ((abs(delta_toxins) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_toxins) >= toxins_archived*MINIMUM_AIR_RATIO_TO_SUSPEND))) + return 0 + + if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) + return 0 + + if(sharer.trace_gases.len) + for(var/datum/gas/trace_gas in sharer.trace_gases) + if(trace_gas.moles_archived > MINIMUM_AIR_TO_SUSPEND*4) + var/datum/gas/corresponding = locate(trace_gas.type) in trace_gases + if(corresponding) + if(trace_gas.moles_archived >= corresponding.moles_archived*MINIMUM_AIR_RATIO_TO_SUSPEND*4) + return 0 + else + return 0 + + if(trace_gases.len) + for(var/datum/gas/trace_gas in trace_gases) + if(trace_gas.moles_archived > MINIMUM_AIR_TO_SUSPEND*4) + if(!locate(trace_gas.type) in sharer.trace_gases) + return 0 + + if(((abs(delta_oxygen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_oxygen) >= sharer.oxygen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ + || ((abs(delta_carbon_dioxide) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_carbon_dioxide) >= sharer.carbon_dioxide_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ + || ((abs(delta_nitrogen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_nitrogen) >= sharer.nitrogen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ + || ((abs(delta_toxins) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_toxins) >= sharer.toxins_archived*MINIMUM_AIR_RATIO_TO_SUSPEND))) + return -1 + + if(trace_gases.len) + for(var/datum/gas/trace_gas in trace_gases) + if(trace_gas.moles_archived > MINIMUM_AIR_TO_SUSPEND*4) + var/datum/gas/corresponding = locate(trace_gas.type) in sharer.trace_gases + if(corresponding) + if(trace_gas.moles_archived >= corresponding.moles_archived*MINIMUM_AIR_RATIO_TO_SUSPEND*4) + return -1 + else + return -1 + + return 1 + + check_turf(turf/model, atmos_adjacent_turfs = 4) + var/delta_oxygen = (oxygen_archived - model.oxygen)/(atmos_adjacent_turfs+1) + var/delta_carbon_dioxide = (carbon_dioxide_archived - model.carbon_dioxide)/(atmos_adjacent_turfs+1) + var/delta_nitrogen = (nitrogen_archived - model.nitrogen)/(atmos_adjacent_turfs+1) + var/delta_toxins = (toxins_archived - model.toxins)/(atmos_adjacent_turfs+1) + + var/delta_temperature = (temperature_archived - model.temperature) + + if(((abs(delta_oxygen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_oxygen) >= oxygen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ + || ((abs(delta_carbon_dioxide) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_carbon_dioxide) >= carbon_dioxide_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ + || ((abs(delta_nitrogen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_nitrogen) >= nitrogen_archived*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ + || ((abs(delta_toxins) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_toxins) >= toxins_archived*MINIMUM_AIR_RATIO_TO_SUSPEND))) + return 0 + if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) + return 0 + + if(trace_gases.len) + for(var/datum/gas/trace_gas in trace_gases) + if(trace_gas.moles_archived > MINIMUM_AIR_TO_SUSPEND*4) + return 0 + + return 1 + + proc/check_turf_total(turf/model) + var/delta_oxygen = (oxygen - model.oxygen) + var/delta_carbon_dioxide = (carbon_dioxide - model.carbon_dioxide) + var/delta_nitrogen = (nitrogen - model.nitrogen) + var/delta_toxins = (toxins - model.toxins) + + var/delta_temperature = (temperature - model.temperature) + + if(((abs(delta_oxygen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_oxygen) >= oxygen*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ + || ((abs(delta_carbon_dioxide) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_carbon_dioxide) >= carbon_dioxide*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ + || ((abs(delta_nitrogen) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_nitrogen) >= nitrogen*MINIMUM_AIR_RATIO_TO_SUSPEND)) \ + || ((abs(delta_toxins) > MINIMUM_AIR_TO_SUSPEND) && (abs(delta_toxins) >= toxins*MINIMUM_AIR_RATIO_TO_SUSPEND))) + return 0 + if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) + return 0 + + if(trace_gases.len) + for(var/datum/gas/trace_gas in trace_gases) + if(trace_gas.moles > MINIMUM_AIR_TO_SUSPEND*4) + return 0 + + return 1 + + share(datum/gas_mixture/sharer, var/atmos_adjacent_turfs = 4) + if(!sharer) return 0 + var/delta_oxygen = QUANTIZE(oxygen_archived - sharer.oxygen_archived)/(atmos_adjacent_turfs+1) + var/delta_carbon_dioxide = QUANTIZE(carbon_dioxide_archived - sharer.carbon_dioxide_archived)/(atmos_adjacent_turfs+1) + var/delta_nitrogen = QUANTIZE(nitrogen_archived - sharer.nitrogen_archived)/(atmos_adjacent_turfs+1) + var/delta_toxins = QUANTIZE(toxins_archived - sharer.toxins_archived)/(atmos_adjacent_turfs+1) + + var/delta_temperature = (temperature_archived - sharer.temperature_archived) + + var/old_self_heat_capacity = 0 + var/old_sharer_heat_capacity = 0 + + var/heat_capacity_self_to_sharer = 0 + var/heat_capacity_sharer_to_self = 0 + + if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) + + var/delta_air = delta_oxygen+delta_nitrogen + if(delta_air) + var/air_heat_capacity = SPECIFIC_HEAT_AIR*delta_air + if(delta_air > 0) + heat_capacity_self_to_sharer += air_heat_capacity + else + heat_capacity_sharer_to_self -= air_heat_capacity + + if(delta_carbon_dioxide) + var/carbon_dioxide_heat_capacity = SPECIFIC_HEAT_CDO*delta_carbon_dioxide + if(delta_carbon_dioxide > 0) + heat_capacity_self_to_sharer += carbon_dioxide_heat_capacity + else + heat_capacity_sharer_to_self -= carbon_dioxide_heat_capacity + + if(delta_toxins) + var/toxins_heat_capacity = SPECIFIC_HEAT_TOXIN*delta_toxins + if(delta_toxins > 0) + heat_capacity_self_to_sharer += toxins_heat_capacity + else + heat_capacity_sharer_to_self -= toxins_heat_capacity + + old_self_heat_capacity = heat_capacity()*group_multiplier + old_sharer_heat_capacity = sharer.heat_capacity()*sharer.group_multiplier + + oxygen -= delta_oxygen/group_multiplier + sharer.oxygen += delta_oxygen/sharer.group_multiplier + + carbon_dioxide -= delta_carbon_dioxide/group_multiplier + sharer.carbon_dioxide += delta_carbon_dioxide/sharer.group_multiplier + + nitrogen -= delta_nitrogen/group_multiplier + sharer.nitrogen += delta_nitrogen/sharer.group_multiplier + + toxins -= delta_toxins/group_multiplier + sharer.toxins += delta_toxins/sharer.group_multiplier + + var/moved_moles = (delta_oxygen + delta_carbon_dioxide + delta_nitrogen + delta_toxins) + last_share = abs(delta_oxygen) + abs(delta_carbon_dioxide) + abs(delta_nitrogen) + abs(delta_toxins) + + var/list/trace_types_considered = list() + + if(trace_gases.len) + for(var/datum/gas/trace_gas in trace_gases) + + var/datum/gas/corresponding = locate(trace_gas.type) in sharer.trace_gases + var/delta = 0 + + if(corresponding) + delta = QUANTIZE(trace_gas.moles_archived - corresponding.moles_archived)/(atmos_adjacent_turfs+1) + else + corresponding = new trace_gas.type() + sharer.trace_gases += corresponding + + delta = trace_gas.moles_archived/(atmos_adjacent_turfs+1) + + trace_gas.moles -= delta/group_multiplier + corresponding.moles += delta/sharer.group_multiplier + + if(delta) + var/individual_heat_capacity = trace_gas.specific_heat*delta + if(delta > 0) + heat_capacity_self_to_sharer += individual_heat_capacity + else + heat_capacity_sharer_to_self -= individual_heat_capacity + + moved_moles += delta + last_share += abs(delta) + + trace_types_considered += trace_gas.type + + + if(sharer.trace_gases.len) + for(var/datum/gas/trace_gas in sharer.trace_gases) + if(trace_gas.type in trace_types_considered) continue + else + var/datum/gas/corresponding + var/delta = 0 + + corresponding = new trace_gas.type() + trace_gases += corresponding + + delta = trace_gas.moles_archived/5 + + trace_gas.moles -= delta/sharer.group_multiplier + corresponding.moles += delta/group_multiplier + + //Guaranteed transfer from sharer to self + var/individual_heat_capacity = trace_gas.specific_heat*delta + heat_capacity_sharer_to_self += individual_heat_capacity + + moved_moles += -delta + last_share += abs(delta) + + if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) + var/new_self_heat_capacity = old_self_heat_capacity + heat_capacity_sharer_to_self - heat_capacity_self_to_sharer + var/new_sharer_heat_capacity = old_sharer_heat_capacity + heat_capacity_self_to_sharer - heat_capacity_sharer_to_self + + if(new_self_heat_capacity > MINIMUM_HEAT_CAPACITY) + temperature = (old_self_heat_capacity*temperature - heat_capacity_self_to_sharer*temperature_archived + heat_capacity_sharer_to_self*sharer.temperature_archived)/new_self_heat_capacity + + if(new_sharer_heat_capacity > MINIMUM_HEAT_CAPACITY) + sharer.temperature = (old_sharer_heat_capacity*sharer.temperature-heat_capacity_sharer_to_self*sharer.temperature_archived + heat_capacity_self_to_sharer*temperature_archived)/new_sharer_heat_capacity + + if(abs(old_sharer_heat_capacity) > MINIMUM_HEAT_CAPACITY) + if(abs(new_sharer_heat_capacity/old_sharer_heat_capacity - 1) < 0.10) // <10% change in sharer heat capacity + temperature_share(sharer, OPEN_HEAT_TRANSFER_COEFFICIENT) + + if((delta_temperature > MINIMUM_TEMPERATURE_TO_MOVE) || abs(moved_moles) > MINIMUM_MOLES_DELTA_TO_MOVE) + var/delta_pressure = temperature_archived*(total_moles() + moved_moles) - sharer.temperature_archived*(sharer.total_moles() - moved_moles) + return delta_pressure*R_IDEAL_GAS_EQUATION/volume + + mimic(turf/model, border_multiplier, var/atmos_adjacent_turfs = 4) + var/delta_oxygen = QUANTIZE(oxygen_archived - model.oxygen)/(atmos_adjacent_turfs+1) + var/delta_carbon_dioxide = QUANTIZE(carbon_dioxide_archived - model.carbon_dioxide)/(atmos_adjacent_turfs+1) + var/delta_nitrogen = QUANTIZE(nitrogen_archived - model.nitrogen)/(atmos_adjacent_turfs+1) + var/delta_toxins = QUANTIZE(toxins_archived - model.toxins)/(atmos_adjacent_turfs+1) + + var/delta_temperature = (temperature_archived - model.temperature) + + var/heat_transferred = 0 + var/old_self_heat_capacity = 0 + var/heat_capacity_transferred = 0 + + if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) + + var/delta_air = delta_oxygen+delta_nitrogen + if(delta_air) + var/air_heat_capacity = SPECIFIC_HEAT_AIR*delta_air + heat_transferred -= air_heat_capacity*model.temperature + heat_capacity_transferred -= air_heat_capacity + + if(delta_carbon_dioxide) + var/carbon_dioxide_heat_capacity = SPECIFIC_HEAT_CDO*delta_carbon_dioxide + heat_transferred -= carbon_dioxide_heat_capacity*model.temperature + heat_capacity_transferred -= carbon_dioxide_heat_capacity + + if(delta_toxins) + var/toxins_heat_capacity = SPECIFIC_HEAT_TOXIN*delta_toxins + heat_transferred -= toxins_heat_capacity*model.temperature + heat_capacity_transferred -= toxins_heat_capacity + + old_self_heat_capacity = heat_capacity()*group_multiplier + + if(border_multiplier) + oxygen -= delta_oxygen*border_multiplier/group_multiplier + carbon_dioxide -= delta_carbon_dioxide*border_multiplier/group_multiplier + nitrogen -= delta_nitrogen*border_multiplier/group_multiplier + toxins -= delta_toxins*border_multiplier/group_multiplier + else + oxygen -= delta_oxygen/group_multiplier + carbon_dioxide -= delta_carbon_dioxide/group_multiplier + nitrogen -= delta_nitrogen/group_multiplier + toxins -= delta_toxins/group_multiplier + + var/moved_moles = (delta_oxygen + delta_carbon_dioxide + delta_nitrogen + delta_toxins) + last_share = abs(delta_oxygen) + abs(delta_carbon_dioxide) + abs(delta_nitrogen) + abs(delta_toxins) + + if(trace_gases.len) + for(var/datum/gas/trace_gas in trace_gases) + var/delta = 0 + + delta = trace_gas.moles_archived/(atmos_adjacent_turfs+1) + + if(border_multiplier) + trace_gas.moles -= delta*border_multiplier/group_multiplier + else + trace_gas.moles -= delta/group_multiplier + + var/heat_cap_transferred = delta*trace_gas.specific_heat + heat_transferred += heat_cap_transferred*temperature_archived + heat_capacity_transferred += heat_cap_transferred + moved_moles += delta + moved_moles += abs(delta) + + if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) + var/new_self_heat_capacity = old_self_heat_capacity - heat_capacity_transferred + if(new_self_heat_capacity > MINIMUM_HEAT_CAPACITY) + if(border_multiplier) + temperature = (old_self_heat_capacity*temperature - heat_capacity_transferred*border_multiplier*temperature_archived)/new_self_heat_capacity + else + temperature = (old_self_heat_capacity*temperature - heat_capacity_transferred*border_multiplier*temperature_archived)/new_self_heat_capacity + + temperature_mimic(model, model.thermal_conductivity, border_multiplier) + + if((delta_temperature > MINIMUM_TEMPERATURE_TO_MOVE) || abs(moved_moles) > MINIMUM_MOLES_DELTA_TO_MOVE) + var/delta_pressure = temperature_archived*(total_moles() + moved_moles) - model.temperature*(model.oxygen+model.carbon_dioxide+model.nitrogen+model.toxins) + return delta_pressure*R_IDEAL_GAS_EQUATION/volume + else + return 0 + + check_both_then_temperature_share(datum/gas_mixture/sharer, conduction_coefficient) + var/delta_temperature = (temperature_archived - sharer.temperature_archived) + + var/self_heat_capacity = heat_capacity_archived() + var/sharer_heat_capacity = sharer.heat_capacity_archived() + + var/self_temperature_delta = 0 + var/sharer_temperature_delta = 0 + + if((sharer_heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY)) + var/heat = conduction_coefficient*delta_temperature* \ + (self_heat_capacity*sharer_heat_capacity/(self_heat_capacity+sharer_heat_capacity)) + + self_temperature_delta = -heat/(self_heat_capacity*group_multiplier) + sharer_temperature_delta = heat/(sharer_heat_capacity*sharer.group_multiplier) + else + return 1 + + if((abs(self_temperature_delta) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) \ + && (abs(self_temperature_delta) > MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND*temperature_archived)) + return 0 + + if((abs(sharer_temperature_delta) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) \ + && (abs(sharer_temperature_delta) > MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND*sharer.temperature_archived)) + return -1 + + temperature += self_temperature_delta + sharer.temperature += sharer_temperature_delta + + return 1 + //Logic integrated from: temperature_share(sharer, conduction_coefficient) for efficiency + + check_me_then_temperature_share(datum/gas_mixture/sharer, conduction_coefficient) + var/delta_temperature = (temperature_archived - sharer.temperature_archived) + + var/self_heat_capacity = heat_capacity_archived() + var/sharer_heat_capacity = sharer.heat_capacity_archived() + + var/self_temperature_delta = 0 + var/sharer_temperature_delta = 0 + + if((sharer_heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY)) + var/heat = conduction_coefficient*delta_temperature* \ + (self_heat_capacity*sharer_heat_capacity/(self_heat_capacity+sharer_heat_capacity)) + + self_temperature_delta = -heat/(self_heat_capacity*group_multiplier) + sharer_temperature_delta = heat/(sharer_heat_capacity*sharer.group_multiplier) + else + return 1 + + if((abs(self_temperature_delta) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) \ + && (abs(self_temperature_delta) > MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND*temperature_archived)) + return 0 + + temperature += self_temperature_delta + sharer.temperature += sharer_temperature_delta + + return 1 + //Logic integrated from: temperature_share(sharer, conduction_coefficient) for efficiency + + check_me_then_temperature_turf_share(turf/simulated/sharer, conduction_coefficient) + var/delta_temperature = (temperature_archived - sharer.temperature) + + var/self_temperature_delta = 0 + var/sharer_temperature_delta = 0 + + if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) + var/self_heat_capacity = heat_capacity_archived() + + if((sharer.heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY)) + var/heat = conduction_coefficient*delta_temperature* \ + (self_heat_capacity*sharer.heat_capacity/(self_heat_capacity+sharer.heat_capacity)) + + self_temperature_delta = -heat/(self_heat_capacity*group_multiplier) + sharer_temperature_delta = heat/sharer.heat_capacity + else + return 1 + + if((abs(self_temperature_delta) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) \ + && (abs(self_temperature_delta) > MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND*temperature_archived)) + return 0 + + temperature += self_temperature_delta + sharer.temperature += sharer_temperature_delta + + return 1 + //Logic integrated from: temperature_turf_share(sharer, conduction_coefficient) for efficiency + + check_me_then_temperature_mimic(turf/model, conduction_coefficient) + var/delta_temperature = (temperature_archived - model.temperature) + var/self_temperature_delta = 0 + + if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) + var/self_heat_capacity = heat_capacity_archived() + + if((model.heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY)) + var/heat = conduction_coefficient*delta_temperature* \ + (self_heat_capacity*model.heat_capacity/(self_heat_capacity+model.heat_capacity)) + + self_temperature_delta = -heat/(self_heat_capacity*group_multiplier) + + if((abs(self_temperature_delta) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) \ + && (abs(self_temperature_delta) > MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND*temperature_archived)) + return 0 + + temperature += self_temperature_delta + + return 1 + //Logic integrated from: temperature_mimic(model, conduction_coefficient) for efficiency + + temperature_share(datum/gas_mixture/sharer, conduction_coefficient) + + var/delta_temperature = (temperature_archived - sharer.temperature_archived) + if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) + var/self_heat_capacity = heat_capacity_archived() + var/sharer_heat_capacity = sharer.heat_capacity_archived() + + if((sharer_heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY)) + var/heat = conduction_coefficient*delta_temperature* \ + (self_heat_capacity*sharer_heat_capacity/(self_heat_capacity+sharer_heat_capacity)) + + temperature -= heat/(self_heat_capacity*group_multiplier) + sharer.temperature += heat/(sharer_heat_capacity*sharer.group_multiplier) + + temperature_mimic(turf/model, conduction_coefficient, border_multiplier) + var/delta_temperature = (temperature - model.temperature) + if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) + var/self_heat_capacity = heat_capacity()//_archived() + + if((model.heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY)) + var/heat = conduction_coefficient*delta_temperature* \ + (self_heat_capacity*model.heat_capacity/(self_heat_capacity+model.heat_capacity)) + + if(border_multiplier) + temperature -= heat*border_multiplier/(self_heat_capacity*group_multiplier) + else + temperature -= heat/(self_heat_capacity*group_multiplier) + + temperature_turf_share(turf/simulated/sharer, conduction_coefficient) + var/delta_temperature = (temperature_archived - sharer.temperature) + if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER) + var/self_heat_capacity = heat_capacity() + + if((sharer.heat_capacity > MINIMUM_HEAT_CAPACITY) && (self_heat_capacity > MINIMUM_HEAT_CAPACITY)) + var/heat = conduction_coefficient*delta_temperature* \ + (self_heat_capacity*sharer.heat_capacity/(self_heat_capacity+sharer.heat_capacity)) + + temperature -= heat/(self_heat_capacity*group_multiplier) + sharer.temperature += heat/sharer.heat_capacity + + compare(datum/gas_mixture/sample) + if(!istype(sample)) return //fix for this.. randomly runtiming + if((abs(oxygen-sample.oxygen) > MINIMUM_AIR_TO_SUSPEND) && \ + ((oxygen < (1-MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.oxygen) || (oxygen > (1+MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.oxygen))) + return 0 + if((abs(nitrogen-sample.nitrogen) > MINIMUM_AIR_TO_SUSPEND) && \ + ((nitrogen < (1-MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.nitrogen) || (nitrogen > (1+MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.nitrogen))) + return 0 + if((abs(carbon_dioxide-sample.carbon_dioxide) > MINIMUM_AIR_TO_SUSPEND) && \ + ((carbon_dioxide < (1-MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.carbon_dioxide) || (oxygen > (1+MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.carbon_dioxide))) + return 0 + if((abs(toxins-sample.toxins) > MINIMUM_AIR_TO_SUSPEND) && \ + ((toxins < (1-MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.toxins) || (toxins > (1+MINIMUM_AIR_RATIO_TO_SUSPEND)*sample.toxins))) + return 0 + + if(total_moles() > MINIMUM_AIR_TO_SUSPEND) + if((abs(temperature-sample.temperature) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) && \ + ((temperature < (1-MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND)*sample.temperature) || (temperature > (1+MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND)*sample.temperature))) + //world << "temp fail [temperature] & [sample.temperature]" + return 0 + + if(sample.trace_gases.len) + for(var/datum/gas/trace_gas in sample.trace_gases) + if(trace_gas.moles_archived > MINIMUM_AIR_TO_SUSPEND) + var/datum/gas/corresponding = locate(trace_gas.type) in trace_gases + if(corresponding) + if((abs(trace_gas.moles - corresponding.moles) > MINIMUM_AIR_TO_SUSPEND) && \ + ((corresponding.moles < (1-MINIMUM_AIR_RATIO_TO_SUSPEND)*trace_gas.moles) || (corresponding.moles > (1+MINIMUM_AIR_RATIO_TO_SUSPEND)*trace_gas.moles))) + return 0 + else + return 0 + + if(trace_gases.len) + for(var/datum/gas/trace_gas in trace_gases) + if(trace_gas.moles > MINIMUM_AIR_TO_SUSPEND) + var/datum/gas/corresponding = locate(trace_gas.type) in sample.trace_gases + if(corresponding) + if((abs(trace_gas.moles - corresponding.moles) > MINIMUM_AIR_TO_SUSPEND) && \ + ((trace_gas.moles < (1-MINIMUM_AIR_RATIO_TO_SUSPEND)*corresponding.moles) || (trace_gas.moles > (1+MINIMUM_AIR_RATIO_TO_SUSPEND)*corresponding.moles))) + return 0 + else + return 0 return 1 \ No newline at end of file diff --git a/code/game/atoms.dm b/code/game/atoms.dm index e647c5a5e5a..108c4c8b2f6 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -247,6 +247,9 @@ its easier to just keep the beam vertical. /atom/proc/blob_act() return +/atom/proc/fire_act() + return + /atom/proc/emag_act() return diff --git a/code/game/dna/genes/goon_powers.dm b/code/game/dna/genes/goon_powers.dm index 687bf9c1bb1..a98313eefdb 100644 --- a/code/game/dna/genes/goon_powers.dm +++ b/code/game/dna/genes/goon_powers.dm @@ -534,9 +534,11 @@ "their hair","what to do next","their job","space","amusing things","sad things", "annoying things","happy things","something incoherent","something they did wrong") var/thoughts = "thinking about [pick(randomthoughts)]" - if (M.fire_stacks) + + if(M.fire_stacks) pain_condition -= 50 thoughts = "preoccupied with the fire" + if (M.radiation) pain_condition -= 25 diff --git a/code/game/machinery/Freezer.dm b/code/game/machinery/Freezer.dm index 68c47360599..9c1bd3fdafc 100644 --- a/code/game/machinery/Freezer.dm +++ b/code/game/machinery/Freezer.dm @@ -33,7 +33,7 @@ component_parts += new /obj/item/weapon/stock_parts/console_screen(src) component_parts += new /obj/item/stack/cable_coil(src, 1) RefreshParts() - + /obj/machinery/atmospherics/unary/cold_sink/freezer/RefreshParts() var/H var/T @@ -58,7 +58,7 @@ if (istype(I, /obj/item/weapon/wrench)) if(!panel_open) user << "Open the maintenance panel first." - return + return playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) dir = pick(WEST,EAST,SOUTH,NORTH) var/node_connect = dir @@ -88,7 +88,7 @@ /obj/machinery/atmospherics/unary/cold_sink/freezer/attack_hand(mob/user as mob) if(panel_open) user << "Close the maintenance panel first." - return + return src.ui_interact(user) /obj/machinery/atmospherics/unary/cold_sink/freezer/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) @@ -98,13 +98,13 @@ data["gasPressure"] = round(air_contents.return_pressure()) data["gasTemperature"] = round(air_contents.temperature) data["gasTemperatureCelsius"] = round(air_contents.temperature - T0C,1) - if(air_contents.total_moles == 0 && air_contents.temperature == 0) + if(air_contents.total_moles() == 0 && air_contents.temperature == 0) data["gasTemperatureCelsius"] = 0 data["minGasTemperature"] = round(min_temperature) data["maxGasTemperature"] = round(T20C) data["targetGasTemperature"] = round(current_temperature) data["targetGasTemperatureCelsius"] = round(current_temperature - T0C,1) - + var/temp_class = "good" if (air_contents.temperature > (T0C - 20)) temp_class = "bad" @@ -175,7 +175,7 @@ component_parts += new /obj/item/weapon/stock_parts/console_screen(src) component_parts += new /obj/item/stack/cable_coil(src, 1) RefreshParts() - + /obj/machinery/atmospherics/unary/heat_reservoir/heater/upgraded/New() ..() var/obj/item/weapon/circuitboard/thermomachine/H = new /obj/item/weapon/circuitboard/thermomachine(null) @@ -215,7 +215,7 @@ if (istype(I, /obj/item/weapon/wrench)) if(!panel_open) user << "Open the maintenance panel first." - return + return playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) dir = pick(WEST,EAST,SOUTH,NORTH) var/node_connect = dir @@ -245,7 +245,7 @@ /obj/machinery/atmospherics/unary/heat_reservoir/heater/attack_hand(mob/user as mob) if(panel_open) user << "Close the maintenance panel first." - return + return src.ui_interact(user) /obj/machinery/atmospherics/unary/heat_reservoir/heater/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) @@ -255,13 +255,13 @@ data["gasPressure"] = round(air_contents.return_pressure()) data["gasTemperature"] = round(air_contents.temperature) data["gasTemperatureCelsius"] = round(air_contents.temperature - T0C,1) - if(air_contents.total_moles == 0 && air_contents.temperature == 0) + if(air_contents.total_moles() == 0 && air_contents.temperature == 0) data["gasTemperatureCelsius"] = 0 data["minGasTemperature"] = round(T20C) data["maxGasTemperature"] = round(T20C+max_temperature) data["targetGasTemperature"] = round(current_temperature) data["targetGasTemperatureCelsius"] = round(current_temperature - T0C,1) - + var/temp_class = "normal" if (air_contents.temperature > (T20C+40)) temp_class = "bad" diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 528283098f3..917a2212365 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -202,7 +202,7 @@ if(target_temperature < T0C + MIN_TEMPERATURE) target_temperature = T0C + MIN_TEMPERATURE - var/datum/gas_mixture/gas = location.remove_air(0.25*environment.total_moles) + var/datum/gas_mixture/gas = location.remove_air(0.25*environment.total_moles()) var/heat_capacity = gas.heat_capacity() var/energy_used = max( abs( heat_capacity*(gas.temperature - target_temperature) ), MAX_ENERGY_CHANGE) @@ -1099,7 +1099,7 @@ FIRE ALARM else icon_state = "fire0" -/obj/machinery/firealarm/fire_act(datum/gas_mixture/air, temperature, volume) +/obj/machinery/firealarm/temperature_expose(datum/gas_mixture/air, temperature, volume) if(src.detecting) if(temperature > T0C+200) src.alarm() // added check of detector status here @@ -1200,7 +1200,7 @@ FIRE ALARM src.updateDialog() last_process = world.timeofday - if(locate(/obj/fire) in loc) + if(locate(/obj/effect/hotspot) in loc) alarm() return diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 4140d7cdcfe..99782c1b022 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -34,7 +34,7 @@ list("name" = "\[Air\]", "icon" = "grey-c-2"), list("name" = "\[CAUTION\]", "icon" = "yellow-c-2") ) - + possibledecals = list( //var that stores all possible decals, used by ui list("name" = "Low temperature canister", "icon" = "cold"), list("name" = "High temperature canister", "icon" = "hot"), @@ -50,24 +50,24 @@ var/datum/canister_icons/canister_icon_container = new() density = 1 var/health = 100.0 flags = CONDUCT - + var/menu = 0 //used by nanoui: 0 = main menu, 1 = relabel - + var/valve_open = 0 var/release_pressure = ONE_ATMOSPHERE - + var/list/_color //variable that stores colours var/list/decals //list that stores the decals - + //lists for check_change() var/list/oldcolor var/list/olddecals - + //passed to the ui to render the color lists var/list/colorcontainer var/list/possibledecals - + var/can_label = 1 var/filled = 0.5 pressure_resistance = 7*ONE_ATMOSPHERE @@ -77,7 +77,7 @@ var/datum/canister_icons/canister_icon_container = new() var/release_log = "" var/busy = 0 var/update_flag = 0 - + New() ..() _color = list( @@ -90,7 +90,7 @@ var/datum/canister_icons/canister_icon_container = new() colorcontainer = new /list(4) possibledecals = new /list(3) update_icon() - + /obj/machinery/portable_atmospherics/canister/proc/init_data_vars() //passed to the ui to render the color lists colorcontainer = list( @@ -111,7 +111,7 @@ var/datum/canister_icons/canister_icon_container = new() "name" = "Quaternary color", ) ) - + //var/anycolor used by the nanoUI, 0: no color applied. 1: color applied for(var/C in colorcontainer) if(C == "prim") continue @@ -121,9 +121,9 @@ var/datum/canister_icons/canister_icon_container = new() else L.Add(list("anycolor" = 1)) colorcontainer[C] = L - + possibledecals = new /list(3) - + var/i var/list/L = canister_icon_container.possibledecals for(i=1;i<=L.len;i++) @@ -153,11 +153,11 @@ var/datum/canister_icons/canister_icon_container = new() if(list2params(oldcolor) != list2params(_color)) update_flag |= 64 oldcolor = _color.Copy() - + if(list2params(olddecals) != list2params(decals)) update_flag |= 128 olddecals = decals.Copy() - + if(update_flag == old_flag) return 1 else @@ -188,12 +188,12 @@ update_flag return overlays.Cut() - + for(var/C in _color) if(C == "prim") continue if(_color[C] == "none") continue overlays.Add(_color[C]) - + for(var/D in decals) if(decals[D]) overlays.Add("decal-" + D) @@ -210,12 +210,12 @@ update_flag overlays += "can-o2" else if(update_flag & 32) overlays += "can-o3" - + update_flag &= ~196 //the flags 128 and 64 represent change, not states. As such, we have to reset them to be able to detect a change on the next go. return //template modification exploit prevention, used in Topic() -/obj/machinery/portable_atmospherics/canister/proc/is_a_color(var/inputVar, var/checkColor = "all") +/obj/machinery/portable_atmospherics/canister/proc/is_a_color(var/inputVar, var/checkColor = "all") if (checkColor == "prim" || checkColor == "all") for(var/list/L in canister_icon_container.possiblemaincolor) if (L["icon"] == inputVar) @@ -240,7 +240,7 @@ update_flag return 1 return 0 -/obj/machinery/portable_atmospherics/canister/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) +/obj/machinery/portable_atmospherics/canister/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature > temperature_resistance) health -= 5 healthcheck() @@ -294,15 +294,16 @@ update_flag environment.merge(removed) else loc.assume_air(removed) + air_update_turf() src.update_icon() + if(air_contents.return_pressure() < 1) can_label = 1 else can_label = 0 - if(air_contents.temperature > PLASMA_FLASHPOINT) - air_contents.zburn() + src.updateDialog() return /obj/machinery/portable_atmospherics/canister/return_air() @@ -389,7 +390,7 @@ update_flag return init_data_vars() //set up var/colorcontainer and var/possibledecals - + // this is the data which will be sent to the ui var/data[0] data["name"] = name @@ -421,7 +422,7 @@ update_flag ui.open() // auto update every Master Controller tick ui.set_auto_update(1) - + //Disregard these, avoid cluttering up the VV window colorcontainer = new /list(4) possibledecals = new /list(3) @@ -436,7 +437,7 @@ update_flag usr << browse(null, "window=canister") onclose(usr, "canister") return - + if (href_list["choice"] == "menu") menu = text2num(href_list["mode_target"]) @@ -467,7 +468,7 @@ update_flag release_pressure = min(10*ONE_ATMOSPHERE, release_pressure+diff) else release_pressure = max(ONE_ATMOSPHERE/10, release_pressure+diff) - + if (href_list["rename"]) if (can_label) var/T = sanitize(copytext(input("Choose canister label", "Name", name) as text|null,1,MAX_NAME_LEN)) @@ -497,11 +498,11 @@ update_flag _color["quart"] = "none" else if (is_a_color(href_list["icon"],"quart")) _color["quart"] = href_list["icon"] - + if (href_list["choice"] == "decals") if (is_a_decal(href_list["icon"])) decals[href_list["icon"]] = (decals[href_list["icon"]] == 0) - + src.add_fingerprint(usr) update_icon() @@ -540,11 +541,10 @@ update_flag /obj/machinery/portable_atmospherics/canister/toxins/New() ..() - + _color["prim"] = "orange" decals["plasma"] = 1 src.air_contents.toxins = (src.maximum_pressure*filled)*air_contents.volume/(R_IDEAL_GAS_EQUATION*air_contents.temperature) - air_contents.update_values() src.update_icon() return 1 @@ -554,18 +554,17 @@ update_flag _color["prim"] = "blue" src.air_contents.oxygen = (src.maximum_pressure*filled)*air_contents.volume/(R_IDEAL_GAS_EQUATION*air_contents.temperature) - air_contents.update_values() + src.update_icon() return 1 /obj/machinery/portable_atmospherics/canister/sleeping_agent/New() ..() - + _color["prim"] = "redws" var/datum/gas/sleeping_agent/trace_gas = new air_contents.trace_gases += trace_gas trace_gas.moles = (src.maximum_pressure*filled)*air_contents.volume/(R_IDEAL_GAS_EQUATION*air_contents.temperature) - air_contents.update_values() src.update_icon() return 1 @@ -591,17 +590,15 @@ update_flag _color["prim"] = "red" src.air_contents.nitrogen = (src.maximum_pressure*filled)*air_contents.volume/(R_IDEAL_GAS_EQUATION*air_contents.temperature) - air_contents.update_values() src.update_icon() return 1 /obj/machinery/portable_atmospherics/canister/carbon_dioxide/New() ..() - + _color["prim"] = "black" src.air_contents.carbon_dioxide = (src.maximum_pressure*filled)*air_contents.volume/(R_IDEAL_GAS_EQUATION*air_contents.temperature) - air_contents.update_values() src.update_icon() return 1 @@ -609,11 +606,10 @@ update_flag /obj/machinery/portable_atmospherics/canister/air/New() ..() - + _color["prim"] = "grey" src.air_contents.oxygen = (O2STANDARD*src.maximum_pressure*filled)*air_contents.volume/(R_IDEAL_GAS_EQUATION*air_contents.temperature) src.air_contents.nitrogen = (N2STANDARD*src.maximum_pressure*filled)*air_contents.volume/(R_IDEAL_GAS_EQUATION*air_contents.temperature) - air_contents.update_values() src.update_icon() return 1 diff --git a/code/game/machinery/atmoalter/pump.dm b/code/game/machinery/atmoalter/pump.dm index 4c86909c05e..aec5d82c346 100644 --- a/code/game/machinery/atmoalter/pump.dm +++ b/code/game/machinery/atmoalter/pump.dm @@ -66,6 +66,7 @@ environment.merge(removed) else loc.assume_air(removed) + air_update_turf() else var/pressure_delta = target_pressure - air_contents.return_pressure() //Can not have a pressure delta that would cause environment pressure > tank pressure @@ -80,6 +81,7 @@ removed = environment.remove(transfer_moles) else removed = loc.remove_air(transfer_moles) + air_update_turf() air_contents.merge(removed) //src.update_icon() diff --git a/code/game/machinery/atmoalter/zvent.dm b/code/game/machinery/atmoalter/zvent.dm index 163e86a74da..2e7ce0ac9b7 100644 --- a/code/game/machinery/atmoalter/zvent.dm +++ b/code/game/machinery/atmoalter/zvent.dm @@ -20,10 +20,8 @@ if (istype(zvent_conn)) //both floors have simulated turfs, share() var/turf/simulated/myturf = loc - var/datum/gas_mixture/conn_air = zturf_conn.zone.air //TODO: pop culture reference + var/datum/gas_mixture/conn_air = zturf_conn.air //TODO: pop culture reference var/datum/gas_mixture/my_air = myturf.air if (istype(conn_air) && istype(my_air)) -// if (!my_air.compare(conn_air)) -// myturf.reset_delay() -// zturf_conn.reset_delay() my_air.share(conn_air) + air_update_turf() diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 48ff9d2bd16..cb00c9cacc0 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -400,7 +400,7 @@ expel_gas = air_contents.remove(remove_amount) expel_gas.temperature = T20C // Lets expel hot gas and see if that helps people not die as they are removed loc.assume_air(expel_gas) - update_nearby_tiles() + air_update_turf(1) /obj/machinery/atmospherics/unary/cryo_cell/proc/go_out() if(!( occupant )) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index abf40d8de10..64f9bc02add 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -232,37 +232,27 @@ return /obj/machinery/door/airlock/plasma - name = "Plasma Airlock" + name = "plasma airlock" desc = "No way this can end badly." icon = 'icons/obj/doors/Doorplasma.dmi' mineral = "plasma" - autoignition_temperature = 300 +/obj/machinery/door/airlock/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 300) + PlasmaBurn(exposed_temperature) -/obj/machinery/door/airlock/plasma/ignite(temperature) - PlasmaBurn(temperature) +/obj/machinery/door/airlock/plasma/proc/ignite(exposed_temperature) + if(exposed_temperature > 300) + PlasmaBurn(exposed_temperature) /obj/machinery/door/airlock/plasma/proc/PlasmaBurn(temperature) - for(var/turf/simulated/floor/target_tile in range(2,loc)) -// if(target_tile.parent && target_tile.parent.group_processing) // THESE PROBABLY DO SOMETHING IMPORTANT BUT I DON'T KNOW HOW TO FIX IT - Erthilo -// target_tile.parent.suspend_group_processing() - var/datum/gas_mixture/napalm = new - var/toxinsToDeduce = 35 - napalm.toxins = toxinsToDeduce - napalm.temperature = 400+T0C - target_tile.assume_air(napalm) - spawn (0) target_tile.hotspot_expose(temperature, 400) - for(var/obj/structure/falsewall/plasma/F in range(3,src))//Hackish as fuck, but until temperature_expose works, there is nothing I can do -Sieve - var/turf/T = get_turf(F) - T.ChangeTurf(/turf/simulated/wall/mineral/plasma/) - del (F) - for(var/turf/simulated/wall/mineral/plasma/W in range(3,src)) - W.ignite((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame - for(var/obj/machinery/door/airlock/plasma/D in range(3,src)) - D.ignite(temperature/4) + atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, 500) new/obj/structure/door_assembly( src.loc ) del (src) +/obj/machinery/door/airlock/plasma/BlockSuperconductivity() //we don't stop the heat~ + return 0 + /obj/machinery/door/airlock/clown name = "Bananium Airlock" icon = 'icons/obj/doors/Doorbananium.dmi' @@ -918,10 +908,9 @@ About the new airlock wires panel: // Do nothing else playsound(src.loc, 'sound/machines/airlock.ogg', 30, 1) - for(var/turf/turf in locs) - var/obj/structure/window/killthis = (locate(/obj/structure/window) in turf) - if(killthis) - killthis.ex_act(2)//Smashin windows + var/obj/structure/window/killthis = (locate(/obj/structure/window) in get_turf(src)) + if(killthis) + killthis.ex_act(2)//Smashin windows if(density) return 1 @@ -937,14 +926,11 @@ About the new airlock wires panel: if(visible && !glass) SetOpacity(1) operating = 0 - update_nearby_tiles() + air_update_turf(1) + update_freelok_sight() if(locate(/mob/living) in get_turf(src)) open() - //I shall not add a check every x ticks if a door has closed over some fire. - var/obj/fire/fire = locate() in loc - if(fire) - del fire return /obj/machinery/door/airlock/proc/lock(var/forced=0) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index b94fd17c30e..6588131ac9f 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -33,7 +33,6 @@ . = ..() if(density) layer = closed_layer - update_heat_protection(get_turf(src)) else layer = open_layer @@ -46,14 +45,16 @@ bound_width = world.icon_size bound_height = width * world.icon_size - update_nearby_tiles(need_rebuild=1) + air_update_turf(1) + update_freelok_sight() airlocks += src return /obj/machinery/door/Destroy() density = 0 - update_nearby_tiles() + air_update_turf(1) + update_freelok_sight() airlocks -= src ..() return @@ -95,11 +96,13 @@ /obj/machinery/door/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) - if(air_group) return !block_air_zones + if(air_group) return 0 if(istype(mover) && mover.checkpass(PASSGLASS)) return !opacity return !density +/obj/machinery/door/CanAtmosPass() + return !density //used in the AStar algorithm to determinate if the turf the door is on is passable /obj/machinery/door/proc/CanAStarPass(var/obj/item/weapon/card/id/ID) @@ -107,9 +110,9 @@ /obj/machinery/door/proc/bumpopen(mob/user as mob) if(operating) return - if(user.last_airflow > world.time - vsc.airflow_delay) //Fakkit +// if(user.last_airflow > world.time) //Fakkit //remind me to figure out the linda equiv // if(user.last_airflow > world.time - zas_settings.Get("airflow_delay")) //Fakkit - return +// return src.add_fingerprint(user) if(!src.requiresID()) user = null @@ -240,7 +243,8 @@ update_icon() SetOpacity(0) operating = 0 - update_nearby_tiles() + air_update_turf(1) + update_freelok_sight() if(autoclose && normalspeed) spawn(150) @@ -267,12 +271,13 @@ if(visible && !glass) SetOpacity(1) //caaaaarn! operating = 0 - update_nearby_tiles() + air_update_turf(1) + update_freelok_sight() //I shall not add a check every x ticks if a door has closed over some fire. - var/obj/fire/fire = locate() in loc + var/obj/effect/hotspot/fire = locate() in loc if(fire) - del fire + qdel(fire) return /obj/machinery/door/proc/crush() @@ -296,14 +301,6 @@ /obj/machinery/door/proc/requiresID() return 1 - -/obj/machinery/door/proc/update_heat_protection(var/turf/simulated/source) - if(istype(source)) - if(src.density && (src.opacity || src.heat_proof)) - source.thermal_conductivity = DOOR_HEAT_TRANSFER_COEFFICIENT - else - source.thermal_conductivity = initial(source.thermal_conductivity) - /obj/machinery/door/proc/autoclose() var/obj/machinery/door/airlock/A = src if(!A.density && !A.operating && !A.locked && !A.welded && A.autoclose) @@ -311,7 +308,10 @@ return /obj/machinery/door/Move(new_loc, new_dir) - update_nearby_tiles() + var/turf/T = loc + ..() + move_update_air(T) + . = ..() if(width > 1) if(dir in list(EAST, WEST)) @@ -321,7 +321,10 @@ bound_width = world.icon_size bound_height = width * world.icon_size - update_nearby_tiles() +/obj/machinery/door/BlockSuperconductivity() + if(opacity || heat_proof) + return 1 + return 0 /obj/machinery/door/morgue icon = 'icons/obj/doors/doormorgue.dmi' diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 43c392bdde8..afe8fe92580 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -1,85 +1,23 @@ /var/const/OPEN = 1 /var/const/CLOSED = 2 -/proc/convert_k2c(var/temp) - return ((temp - T0C)) // * 1.8) + 32 - -/proc/convert_c2k(var/temp) - return ((temp + T0C)) // * 1.8) + 32 - -/proc/getCardinalAirInfo(var/turf/loc, var/list/stats=list("temperature")) - var/list/temps = new/list(4) - for(var/dir in cardinal) - var/direction - switch(dir) - if(NORTH) - direction = 1 - if(SOUTH) - direction = 2 - if(EAST) - direction = 3 - if(WEST) - direction = 4 - var/turf/simulated/T=get_turf(get_step(loc,dir)) - var/list/rstats = new /list(stats.len) - if(T && istype(T) && T.zone) - var/datum/gas_mixture/environment = T.return_air() - for(var/i=1;i<=stats.len;i++) - if(stats[i] == "pressure") - rstats[i] = environment.return_pressure() - else - rstats[i] = environment.vars[stats[i]] - else if(istype(T, /turf/simulated)) - rstats = null // Exclude zone (wall, door, etc). - else if(istype(T, /turf)) - // Should still work. (/turf/return_air()) - var/datum/gas_mixture/environment = T.return_air() - for(var/i=1;i<=stats.len;i++) - if(stats[i] == "pressure") - continue - else - rstats[i] = environment.vars[stats[i]] - temps[direction] = rstats - return temps - -#define FIREDOOR_MAX_PRESSURE_DIFF 25 // kPa -#define FIREDOOR_MAX_TEMP 50 // Celsius -#define FIREDOOR_MIN_TEMP 0 - -// Bitflags -#define FIREDOOR_ALERT_HOT 1 -#define FIREDOOR_ALERT_COLD 2 -// Not used #define FIREDOOR_ALERT_LOWPRESS 4 - /obj/machinery/door/firedoor - name = "\improper Emergency Shutter" - desc = "Emergency air-tight shutter, capable of sealing off breached areas." - icon = 'icons/obj/doors/DoorHazard.dmi' + name = "Firelock" + desc = "Apply crowbar" + icon = 'icons/obj/doors/Doorfireglass.dmi' icon_state = "door_open" - req_one_access = list(access_atmospherics, access_engine) opacity = 0 density = 0 + heat_proof = 1 + glass = 1 + power_channel = ENVIRON - //These are frequenly used with windows, so make sure zones can pass. - //Generally if a firedoor is at a place where there should be a zone boundery then there will be a regular door underneath it. - block_air_zones = 0 + var/list/areas_added var/blocked = 0 - var/lockdown = 0 // When the door has detected a problem, it locks. - var/pdiff_alert = 0 - var/pdiff = 0 var/nextstate = null - var/net_id - var/list/areas_added - var/list/users_to_open - var/list/tile_info[4] - var/list/dir_alerts[4] // 4 dirs, bitflags - // MUST be in same order as FIREDOOR_ALERT_* - var/list/ALERT_STATES=list( - "hot", - "cold" - ) + var/logged_users /obj/machinery/door/firedoor/New() . = ..() @@ -88,6 +26,7 @@ spawn(1) del src return . + var/area/A = get_area(src) ASSERT(istype(A)) @@ -106,66 +45,16 @@ A.all_doors.Remove(src) . = ..() - -/obj/machinery/door/firedoor/examine() - set src in view() - . = ..() - - if(pdiff >= FIREDOOR_MAX_PRESSURE_DIFF) - usr << "WARNING: Current pressure differential is [pdiff]kPa! Opening door may result in injury!" - - usr << "Sensor readings:" - for(var/index = 1; index <= tile_info.len; index++) - var/o = "  " - switch(index) - if(1) - o += "NORTH: " - if(2) - o += "SOUTH: " - if(3) - o += "EAST: " - if(4) - o += "WEST: " - if(tile_info[index] == null) - o += "DATA UNAVAILABLE" - usr << o - continue - var/celsius = convert_k2c(tile_info[index][1]) - var/pressure = tile_info[index][2] - if(dir_alerts[index] & (FIREDOOR_ALERT_HOT|FIREDOOR_ALERT_COLD)) - o += "" - else - o += "" - o += "[celsius] Celsius " - o += "" - o += "[pressure] kPa" - usr << o - - if( islist(users_to_open) && users_to_open.len) - var/users_to_open_string = users_to_open[1] - if(users_to_open.len >= 2) - for(var/i = 2 to users_to_open.len) - users_to_open_string += ", [users_to_open[i]]" - usr << "These people have opened \the [src] during an alert: [users_to_open_string]." - /obj/machinery/door/firedoor/Bumped(atom/AM) - if(p_open || operating) - return - if(!density) - return ..() - if(istype(AM, /obj/mecha)) - var/obj/mecha/mecha = AM - if (mecha.occupant) - var/mob/M = mecha.occupant - if(world.time - M.last_bumped <= 10) return //Can bump-open one airlock per second. This is to prevent popup message spam. - M.last_bumped = world.time - attack_hand(M) + if(p_open || operating) return + if(!density) return ..() return 0 /obj/machinery/door/firedoor/power_change() - if(powered(ENVIRON)) + if(powered(power_channel)) stat &= ~NOPOWER + latetoggle() else stat |= NOPOWER return @@ -177,6 +66,7 @@ add_fingerprint(user) if(operating) return//Already doing something. + if(istype(C, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/W = C if(W.remove_fuel(0, user)) @@ -198,24 +88,21 @@ if( istype(C, /obj/item/weapon/crowbar) || ( istype(C,/obj/item/weapon/twohanded/fireaxe) && C:wielded == 1 ) ) if(operating) return - if( blocked ) + if(blocked) user.visible_message("\red \The [user] pries at \the [src] with \a [C], but \the [src] is welded in place!",\ "You try to pry \the [src] [density ? "open" : "closed"], but it is welded in place!",\ "You hear someone struggle and metal straining.") - if( stat & (BROKEN|NOPOWER) || !density || !alarmed ) + if(stat & (BROKEN|NOPOWER) || !density || !alarmed) user.visible_message("\red \The [user] forces \the [src] [density ? "open" : "closed"] with \a [C]!",\ "You force \the [src] [density ? "open" : "closed"] with \the [C]!",\ "You hear metal strain, and a door [density ? "open" : "close"].") - else if( allowed(user) ) + + else if(allowed(user)) user.visible_message("\blue \The [user] lifts \the [src] with \a [C].",\ "\The [src] scans your ID, and obediently opens as you apply your [C].",\ "You hear metal move, and a door [density ? "open" : "close"].") - else if(lockdown) - user.visible_message("\blue \The [user] pries at \the [src] with \a [C], but \the [src] resists being opened.",\ - "\red You pry at \the [src], but it actively resists your efforts. Maybe use your ID, perhaps?",\ - "You hear someone struggling and metal straining") - return + if(density) spawn(0) open() @@ -223,6 +110,7 @@ spawn(0) close() return + var/access_granted = 0 var/users_name if(!istype(C, /obj)) //If someone hit it with their hand. We need to see if they are allowed. @@ -233,7 +121,7 @@ else users_name = "Unknown" - if( ishuman(user) && !stat && ( istype(C, /obj/item/weapon/card/id) || istype(C, /obj/item/device/pda) ) ) + if(ishuman(user) && !stat && (istype(C, /obj/item/weapon/card/id) || istype(C, /obj/item/device/pda))) var/obj/item/weapon/card/id/ID = C if( istype(C, /obj/item/device/pda) ) @@ -248,31 +136,26 @@ if(check_access(ID)) access_granted = 1 - var/answer = "Yes" + var/answer = alert(user, "Are you sure you want to [density ? "open" : "close"] \the [src]?","\The [src] confirmation","Yes","No") if(answer == "No") return + if(user.stat || user.stunned || user.weakened || user.paralysis || get_dist(src, user) > 1) user << "Sorry, you must remain able bodied and close to \the [src] in order to use it." return - if(alarmed && density && lockdown && !access_granted/* && !( users_name in users_to_open ) */) - // Too many shitters on /vg/ for the honor system to work. + if(alarmed && density && !access_granted) user << "Access denied. Please wait for authorities to arrive, or for the alert to clear." return - // End anti-shitter system - /* - user.visible_message("\red \The [src] opens for \the [user]",\ - "\The [src] opens after you acknowledge the consequences.",\ - "You hear a beep, and a door opening.") - */ + else user.visible_message("\blue \The [src] [density ? "open" : "close"]s for \the [user].",\ "\The [src] [density ? "open" : "close"]s.",\ "You hear a beep, and a door opening.") // Accountability! - if(!users_to_open) - users_to_open = list() - users_to_open += users_name + if(!logged_users) + logged_users = list() + logged_users += users_name var/needs_to_close = 0 if(density) @@ -290,8 +173,8 @@ nextstate = CLOSED /obj/machinery/door/firedoor/attack_ai(mob/user as mob) - if(operating) - return //Already doing something. + if(operating || stat & NOPOWER) + return //Already doing something or depowered. if(blocked) user << "\red \The [src] is welded solid!" @@ -325,49 +208,38 @@ if(alarmed) nextstate = CLOSED - // CHECK PRESSURE -/obj/machinery/door/firedoor/process() - ..() +/obj/machinery/door/firedoor/do_animate(animation) + switch(animation) + if("opening") + flick("door_opening", src) + if("closing") + flick("door_closing", src) + return +/obj/machinery/door/firedoor/update_icon() + overlays.Cut() if(density) - var/changed = 0 - lockdown=0 - // Pressure alerts - pdiff = getOPressureDifferential(src.loc) - if(pdiff >= FIREDOOR_MAX_PRESSURE_DIFF) - lockdown = 1 - if(!pdiff_alert) - pdiff_alert = 1 - changed = 1 // update_icon() - else - if(pdiff_alert) - pdiff_alert = 0 - changed = 1 // update_icon() + icon_state = "door_closed" + if(blocked) + overlays += "welded" + else + icon_state = "door_open" + if(blocked) + overlays += "welded_open" + return - tile_info = getCardinalAirInfo(src.loc,list("temperature","pressure")) - var/old_alerts = dir_alerts - for(var/index = 1; index <= 4; index++) - var/list/tileinfo=tile_info[index] - if(tileinfo==null) - continue // Bad data. - var/celsius = convert_k2c(tileinfo[1]) +/obj/machinery/door/firedoor/open() + ..() + latetoggle() + return - var/alerts=0 - - // Temperatures - if(celsius >= FIREDOOR_MAX_TEMP) - alerts |= FIREDOOR_ALERT_HOT - lockdown = 1 - else if(celsius <= FIREDOOR_MIN_TEMP) - alerts |= FIREDOOR_ALERT_COLD - lockdown = 1 - - dir_alerts[index]=alerts - - if(dir_alerts != old_alerts) - changed = 1 - if(changed) - update_icon() +/obj/machinery/door/firedoor/close() + ..() + if(locate(/mob/living) in get_turf(src)) + open() + return + latetoggle() + return /obj/machinery/door/firedoor/proc/latetoggle() if(operating || stat & NOPOWER || !nextstate) @@ -381,90 +253,30 @@ close() return -/obj/machinery/door/firedoor/close() - ..() - latetoggle() - layer = 3.1 -/obj/machinery/door/firedoor/open() - ..() - latetoggle() - layer = 2.6 - -/obj/machinery/door/firedoor/update_icon() - overlays = 0 - if(density) - icon_state = "door_closed" - if(blocked) - overlays += "welded" - if(pdiff_alert) - overlays += "palert" - if(dir_alerts) - for(var/d=1;d<=4;d++) - var/cdir = cardinal[d] - // Loop while i = [1, 3], incrementing each loop - for(var/i=1;i<=ALERT_STATES.len;i++) // - if(dir_alerts[d] & (1<<(i-1))) // Check to see if dir_alerts[d] has the i-1th bit set. - overlays += new /icon(icon,"alert_[ALERT_STATES[i]]",dir=cdir) - else - icon_state = "door_open" - if(blocked) - overlays += "welded_open" - return - -/obj/machinery/door/firedoor/do_animate(animation) - switch(animation) - if("opening") - flick("door_opening", src) - if("closing") - flick("door_closing", src) - return - /obj/machinery/door/firedoor/border_only -//These are playing merry hell on ZAS. Sorry fellas :( -/* icon = 'icons/obj/doors/edge_Doorfire.dmi' - glass = 1 //There is a glass window so you can see through the door - //This is needed due to BYOND limitations in controlling visibility - heat_proof = 1 - air_properties_vary_with_direction = 1 + flags = ON_BORDER - CanPass(atom/movable/mover, turf/target, height=0, air_group=0) - if(istype(mover) && mover.checkpass(PASSGLASS)) - return 1 - if(get_dir(loc, target) == dir) //Make sure looking at appropriate border - if(air_group) return 0 - return !density - else - return 1 - - CheckExit(atom/movable/mover as mob|obj, turf/target as turf) - if(istype(mover) && mover.checkpass(PASSGLASS)) - return 1 - if(get_dir(loc, target) == dir) - return !density - else - return 1 - - - update_nearby_tiles(need_rebuild) - if(!air_master) return 0 - - var/turf/simulated/source = loc - var/turf/simulated/destination = get_step(source,dir) - - update_heat_protection(loc) - - if(istype(source)) air_master.tiles_to_update += source - if(istype(destination)) air_master.tiles_to_update += destination +/obj/machinery/door/firedoor/border_only/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) + if(istype(mover) && mover.checkpass(PASSGLASS)) + return 1 + if(get_dir(loc, target) == dir) //Make sure looking at appropriate border + if(air_group) return 0 + return !density + else return 1 -*/ -/obj/machinery/door/firedoor/multi_tile - icon = 'icons/obj/doors/DoorHazard2x1.dmi' - width = 2 +/obj/machinery/door/firedoor/border_only/CheckExit(atom/movable/mover as mob|obj, turf/target as turf) + if(istype(mover) && mover.checkpass(PASSGLASS)) + return 1 + if(get_dir(loc, target) == dir) + return !density + else + return 1 - -/obj/machinery/door/firedoor/multi_tile/triple - icon = 'icons/obj/doors/DoorHazard3x1.dmi' - width = 3 +/obj/machinery/door/firedoor/border_only/CanAtmosPass(var/turf/T) + if(get_dir(loc, T) == dir) + return !density + else + return 1 \ No newline at end of file diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index 0e549e5183d..7348a57181c 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -53,7 +53,8 @@ sleep(5) src.density = 0 sleep(5) - update_nearby_tiles() + air_update_turf(1) + update_freelok_sight() if(operating == 1) //emag again src.operating = 0 @@ -69,7 +70,8 @@ flick("pdoorc1", src) src.icon_state = "pdoor1" src.SetOpacity(initial(opacity)) - update_nearby_tiles() + air_update_turf(1) + update_freelok_sight() sleep(5) crush() src.density = 1 @@ -147,7 +149,8 @@ f3.density = 0 f3.SetOpacity(0) - update_nearby_tiles() + air_update_turf(1) + update_freelok_sight() if(operating == 1) //emag again src.operating = 0 @@ -173,7 +176,8 @@ if (src.visible) src.SetOpacity(1) - update_nearby_tiles() + air_update_turf(1) + update_freelok_sight() sleep(10) src.operating = 0 @@ -201,7 +205,8 @@ f4.density = 0 f4.SetOpacity(0) - update_nearby_tiles() + air_update_turf(1) + update_freelok_sight() if(operating == 1) //emag again src.operating = 0 @@ -229,7 +234,8 @@ if (src.visible) src.SetOpacity(1) - update_nearby_tiles() + air_update_turf(1) + update_freelok_sight() sleep(10) src.operating = 0 @@ -304,7 +310,8 @@ f3.density = 0 f3.SetOpacity(0) - update_nearby_tiles() + air_update_turf(1) + update_freelok_sight() if(operating == 1) //emag again src.operating = 0 @@ -330,7 +337,8 @@ if (src.visible) src.SetOpacity(1) - update_nearby_tiles() + air_update_turf(1) + update_freelok_sight() sleep(10) src.operating = 0 @@ -358,7 +366,8 @@ f4.density = 0 f4.SetOpacity(0) - update_nearby_tiles() + air_update_turf(1) + update_freelok_sight() if(operating == 1) //emag again src.operating = 0 @@ -386,7 +395,8 @@ if (src.visible) src.SetOpacity(1) - update_nearby_tiles() + air_update_turf(1) + update_freelok_sight() sleep(10) src.operating = 0 diff --git a/code/game/machinery/doors/shutters.dm b/code/game/machinery/doors/shutters.dm index d8f751ec89e..c09226db1ee 100644 --- a/code/game/machinery/doors/shutters.dm +++ b/code/game/machinery/doors/shutters.dm @@ -7,7 +7,7 @@ /obj/machinery/door/poddoor/shutters/New() ..() layer = 3.1 - + /obj/machinery/door/poddoor/shutters/preopen icon_state = "shutter0" density = 0 @@ -41,7 +41,8 @@ sleep(10) density = 0 SetOpacity(0) - update_nearby_tiles() + air_update_turf(1) + update_freelok_sight() if(operating == 1) //emag again operating = 0 @@ -59,7 +60,8 @@ density = 1 if(visible) SetOpacity(1) - update_nearby_tiles() + air_update_turf(1) + update_freelok_sight() sleep(10) operating = 0 diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 544a4d7315d..d4cd6c3e500 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -81,6 +81,12 @@ else return 1 +/obj/machinery/door/window/CanAtmosPass(var/turf/T) + if(get_dir(loc, T) == dir) + return !density + else + return 1 + //used in the AStar algorithm to determinate if the turf the door is on is passable /obj/machinery/door/window/CanAStarPass(var/obj/item/weapon/card/id/ID, var/to_dir) return !density || (dir != to_dir) || check_access(ID) @@ -113,7 +119,8 @@ src.density = 0 // src.sd_SetOpacity(0) //TODO: why is this here? Opaque windoors? ~Carn - update_nearby_tiles() + air_update_turf(1) + update_freelok_sight() if(operating == 1) //emag again src.operating = 0 @@ -136,7 +143,8 @@ src.density = 1 // if(src.visible) // SetOpacity(1) //TODO: why is this here? Opaque windoors? ~Carn - update_nearby_tiles() + air_update_turf(1) + update_freelok_sight() sleep(10) src.operating = 0 diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 07570114f00..d6a6a970acf 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -13,18 +13,26 @@ /obj/machinery/shield/New() src.dir = pick(1,2,3,4) ..() - update_nearby_tiles(need_rebuild=1) + air_update_turf(1) /obj/machinery/shield/Destroy() opacity = 0 density = 0 - update_nearby_tiles() + air_update_turf(1) ..() +/obj/machinery/shield/Move() + var/turf/T = loc + ..() + move_update_air(T) + /obj/machinery/shield/CanPass(atom/movable/mover, turf/target, height, air_group) if(!height || air_group) return 0 else return ..() +/obj/machinery/shield/CanAtmosPass(var/turf/T) + return !density + /obj/machinery/shield/attackby(obj/item/weapon/W as obj, mob/user as mob, params) if(!istype(W)) return diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index 9877ac6f138..c92b77ef47c 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -189,6 +189,7 @@ //world << "now at [removed.temperature]" env.merge(removed) + air_update_turf() //world << "turf now at [env.temperature]" diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index 7eaa6315995..957111ea9d4 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -871,14 +871,10 @@ sleep(10) if(helmet) - if(radiation_level > 2) - helmet.decontaminate() if(radiation_level > 1) helmet.clean_blood() if(suit) - if(radiation_level > 2) - suit.decontaminate() if(radiation_level > 1) suit.clean_blood() diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 361ecedb4e1..02597fed7d7 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -44,9 +44,6 @@ for(var/atom/A in contents) A.clean_blood() - for(var/obj/item/I in contents) - I.decontaminate() - //Tanning! for(var/obj/item/stack/sheet/hairlesshide/HH in contents) var/obj/item/stack/sheet/wetleather/WL = new(src) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 521716c44a5..0785ff11b29 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -668,7 +668,7 @@ check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT),1) return -/obj/mecha/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) +/obj/mecha/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature>src.max_temperature) src.log_message("Exposed to dangerous temperature.",1) src.take_damage(5,"fire") diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm index 985b3bca9ba..cca19e50a98 100644 --- a/code/game/objects/effects/aliens.dm +++ b/code/game/objects/effects/aliens.dm @@ -35,7 +35,9 @@ ..() /obj/structure/alien/resin/Move() + var/turf/T = loc ..() + move_update_air(T) /obj/structure/alien/resin/wall name = "resin wall" @@ -229,7 +231,7 @@ del(src) -/obj/structure/alien/weeds/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) +/obj/structure/alien/weeds/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature > 300) health -= 5 healthcheck() @@ -387,7 +389,7 @@ del(src) //Remove the egg after it has been hit after bursting. -/obj/structure/alien/egg/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) +/obj/structure/alien/egg/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature > 500) health -= 5 healthcheck() diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm index a0b3fff9c7b..c66706a18b3 100644 --- a/code/game/objects/effects/anomalies.dm +++ b/code/game/objects/effects/anomalies.dm @@ -118,10 +118,7 @@ ..() var/turf/simulated/T = get_turf(src) if(istype(T)) - var/datum/gas_mixture/payload = new - payload.toxins = 60 - T.zone.air.merge(payload) - T.hotspot_expose(1000, CELL_VOLUME) + T.atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, 3) ///////////////////// diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index 5057bb1d3b0..d5d3555e12d 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -171,7 +171,6 @@ steam.start() -- spawns the effect ..() playsound(src.loc, "sparks", 100, 1) var/turf/T = loc - if (istype(T, /turf)) T.hotspot_expose(1000, 100) spawn (100) @@ -953,7 +952,7 @@ steam.start() -- spawns the effect // foam disolves when heated // except metal foams -/obj/effect/effect/foam/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) +/obj/effect/effect/foam/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(!metal && prob(max(0, exposed_temperature - 475))) flick("[icon_state]-disolve", src) @@ -1040,16 +1039,19 @@ steam.start() -- spawns the effect New() ..() - update_nearby_tiles(1) - - + air_update_turf(1) Destroy() density = 0 - update_nearby_tiles(1) + air_update_turf(1) ..() + Move() + var/turf/T = loc + ..() + move_update_air(T) + proc/updateicon() if(metal == 1) icon_state = "metalfoam" @@ -1109,6 +1111,9 @@ steam.start() -- spawns the effect if(air_group) return 0 return !density + CanAtmosPass() + return !density + /datum/effect/effect/system/reagents_explosion var/amount // TNT equivalent var/flashing = 0 // does explosion creates flash effect? diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm index e8b8cc4bdaf..edb7031f1e4 100644 --- a/code/game/objects/effects/glowshroom.dm +++ b/code/game/objects/effects/glowshroom.dm @@ -156,7 +156,7 @@ else return -/obj/effect/glowshroom/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) +/obj/effect/glowshroom/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature > 300) endurance -= 5 CheckEndurance() diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index 53e24b9fc6f..9ca78dd7f30 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -46,35 +46,12 @@ del(src) /obj/effect/mine/proc/triggern2o(obj) - //example: n2o triggerproc - //note: im lazy - - for (var/turf/simulated/floor/target in range(1,src)) - if(!target.blocks_air) - - var/datum/gas_mixture/payload = new - var/datum/gas/sleeping_agent/trace_gas = new - - trace_gas.moles = 30 - payload += trace_gas - - target.zone.air.merge(payload) - + atmos_spawn_air(SPAWN_N2O, 360) spawn(0) del(src) /obj/effect/mine/proc/triggerplasma(obj) - for (var/turf/simulated/floor/target in range(1,src)) - if(!target.blocks_air) - - var/datum/gas_mixture/payload = new - - payload.toxins = 30 - - target.zone.air.merge(payload) - - target.hotspot_expose(1000, CELL_VOLUME) - + atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, 360) spawn(0) del(src) diff --git a/code/game/objects/effects/spawners/bombspawner.dm b/code/game/objects/effects/spawners/bombspawner.dm index 26d56c153ed..ea7ee2764b1 100644 --- a/code/game/objects/effects/spawners/bombspawner.dm +++ b/code/game/objects/effects/spawners/bombspawner.dm @@ -110,11 +110,15 @@ icon = 'icons/mob/screen1.dmi' icon_state = "x" var/btype = 0 // 0=radio, 1=prox, 2=time + var/btemp1 = 1500 + var/btemp2 = 1000 // tank temperatures timer btype = 2 syndicate + btemp1 = 150 + btemp2 = 20 proximity btype = 1 @@ -136,14 +140,8 @@ PT.master = V OT.master = V - PT.air_contents.temperature = PLASMA_FLASHPOINT - PT.air_contents.toxins = 12 - PT.air_contents.carbon_dioxide = 8 - PT.air_contents.update_values() - - OT.air_contents.temperature = PLASMA_FLASHPOINT - OT.air_contents.oxygen = 20 - OT.air_contents.update_values() + PT.air_contents.temperature = btemp1 + T0C + OT.air_contents.temperature = btemp2 + T0C var/obj/item/device/assembly/S diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index ad68762c631..53178432ef6 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -47,7 +47,7 @@ if(health <= 0) qdel(src) -/obj/effect/spider/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) +/obj/effect/spider/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature > 300) health -= 5 healthcheck() diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 65aa09d2567..323a86208a7 100755 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -1223,10 +1223,10 @@ var/global/list/obj/item/device/pda/PDAs = list() if (istype(A, /obj/machinery/atmospherics/pipe/tank)) var/obj/icon = A - for (var/mob/O in viewers(user, null)) - O << "\red [user] has used [src] on \icon[icon] [A]" - var/obj/machinery/atmospherics/pipe/tank/T = A + for (var/mob/O in viewers(user, null)) + O << "\red [user] has used [src] on \icon[icon] [T]" + var/pressure = T.parent.air.return_pressure() var/total_moles = T.parent.air.total_moles() @@ -1424,4 +1424,4 @@ var/global/list/obj/item/device/pda/PDAs = list() /obj/item/device/pda/proc/JFLOG(message as text) if (config) - log_pda("[JFLOG_DescribeSelf()] >>> [message]") + log_pda("[JFLOG_DescribeSelf()] >>> [message]") diff --git a/code/game/objects/items/latexballoon.dm b/code/game/objects/items/latexballoon.dm index daab9b55a69..9b02799e496 100644 --- a/code/game/objects/items/latexballoon.dm +++ b/code/game/objects/items/latexballoon.dm @@ -38,7 +38,7 @@ /obj/item/latexballon/bullet_act() burst() -/obj/item/latexballon/fire_act(datum/gas_mixture/air, temperature, volume) +/obj/item/latexballon/temperature_expose(datum/gas_mixture/air, temperature, volume) if(temperature > T0C+100) burst() return diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 015fc0f159e..e9f67a3b060 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -30,7 +30,7 @@ icon_state = "sheet-glass" g_amt = 0 created_window = /obj/structure/window/basic - + /obj/item/stack/sheet/glass/full/New() ..() amount = 50 @@ -106,6 +106,7 @@ W.ini_dir = W.dir W.state = 0 W.anchored = 0 + W.air_update_turf(1) src.use(1) if("Full Window") if(!src) return 1 @@ -119,6 +120,7 @@ var/obj/structure/window/W = new full_window( user.loc, 0 ) W.state = 0 W.anchored = 0 + W.air_update_turf(1) src.use(2) return 0 diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index 97bf00120ef..ab86e4994cf 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -117,7 +117,7 @@ //Step two - washing..... it's actually in washing machine code. //Step three - drying -/obj/item/stack/sheet/wetleather/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) +/obj/item/stack/sheet/wetleather/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) ..() if(exposed_temperature >= drying_threshold_temperature) wetness-- diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index eb6b59b95cd..043cad9f443 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -6,7 +6,7 @@ icon = 'icons/obj/trash.dmi' w_class = 1.0 desc = "This is rubbish." - autoignition_temperature = AUTOIGNITION_PAPER + raisins name = "4no raisins" icon_state= "4no_raisins" diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index c2f37d4a455..3ad8dd7a509 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -156,7 +156,7 @@ RCD if(do_after(user, 50)) if(!useResource(20, user)) return 0 activate() - del(A) + qdel(A) return 1 return 0 return 0 diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm index 4b009aef988..902ce1e052a 100644 --- a/code/game/objects/items/weapons/extinguisher.dm +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -34,7 +34,7 @@ m_amt = 0 max_water = 30 sprite_name = "miniFE" - + /obj/item/weapon/extinguisher/examine() set src in usr @@ -160,6 +160,7 @@ if(isliving(atm)) //For extinguishing mobs on fire var/mob/living/M = atm M.ExtinguishMob() + if(W.loc == my_target) break sleep(2) @@ -168,4 +169,3 @@ step(user, user.inertia_dir) else return ..() - \ No newline at end of file diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index 67d4528ef1e..af8b8e2fe5f 100644 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -189,8 +189,8 @@ /obj/item/weapon/flamethrower/proc/flame_turf(turflist) if(!lit || operating) return operating = 1 - for(var/turf/T in turflist) - if(T.density || istype(T, /turf/space)) + for(var/turf/simulated/T in turflist) + if(!T.air) break if(!previousturf && length(turflist)>1) previousturf = get_turf(src) @@ -210,17 +210,16 @@ /obj/item/weapon/flamethrower/proc/ignite_turf(turf/target) //TODO: DEFERRED Consider checking to make sure tank pressure is high enough before doing this... //Transfer 5% of current tank air contents to turf - var/datum/gas_mixture/air_transfer = ptank.air_contents.remove_ratio(0.02*(throw_amount/100)) - //air_transfer.toxins = air_transfer.toxins * 5 // This is me not comprehending the air system. I realize this is retarded and I could probably make it work without fucking it up like this, but there you have it. -- TLE - new/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel(target,air_transfer.toxins,get_dir(loc,target)) - air_transfer.toxins = 0 + var/datum/gas_mixture/air_transfer = ptank.air_contents.remove_ratio(0.05) + air_transfer.toxins = air_transfer.toxins * 5 // This is me not comprehending the air system. I realize this is retarded and I could probably make it work without fucking it up like this, but there you have it. -- TLE target.assume_air(air_transfer) //Burn it based on transfered gas - //target.hotspot_expose(part4.air_contents.temperature*2,300) target.hotspot_expose((ptank.air_contents.temperature*2) + 380,500) // -- More of my "how do I shot fire?" dickery. -- TLE //location.hotspot_expose(1000,500,1) + air_master.add_to_active(target, 0) return + /obj/item/weapon/flamethrower/full/New(var/loc) ..() weldtool = new /obj/item/weapon/weldingtool(src) diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm index cccd0564f8f..6237792040f 100644 --- a/code/game/objects/items/weapons/storage/bible.dm +++ b/code/game/objects/items/weapons/storage/bible.dm @@ -8,8 +8,6 @@ var/mob/affecting = null var/deity_name = "Christ" - autoignition_temperature = 522 // Kelvin - suicide_act(mob/user) viewers(user) << "[user] stares into [src.name] and attempts to trascend understanding of the universe!" return (user.dust()) @@ -20,8 +18,6 @@ desc = "To be applied to the head repeatedly." icon_state ="bible" - autoignition_temperature = 0 // Not actually paper - /obj/item/weapon/storage/bible/booze/New() ..() new /obj/item/weapon/reagent_containers/food/drinks/cans/beer(src) diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 03f627e56e7..04615c623e8 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -26,9 +26,6 @@ item_state = "syringe_kit" foldable = /obj/item/stack/sheet/cardboard //BubbleWrap - autoignition_temperature = 522 // Kelvin - - /obj/item/weapon/storage/box/large name = "large box" desc = "You could build a fort with this." @@ -39,8 +36,6 @@ storage_slots = 21 max_combined_w_class = 42 // 21*2 - autoignition_temperature = 530 // Kelvin - /obj/item/weapon/storage/box/survival New() ..() diff --git a/code/game/objects/items/weapons/tanks/jetpack.dm b/code/game/objects/items/weapons/tanks/jetpack.dm index 89df0ed8d01..74ab6d991ac 100644 --- a/code/game/objects/items/weapons/tanks/jetpack.dm +++ b/code/game/objects/items/weapons/tanks/jetpack.dm @@ -80,9 +80,8 @@ New() ..() - //src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - air_contents.adjust((6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) - return + air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + /obj/item/weapon/tank/jetpack/oxygen name = "Jetpack (Oxygen)" @@ -92,9 +91,7 @@ New() ..() - //src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - air_contents.adjust((6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) - return + air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) /obj/item/weapon/tank/jetpack/oxygen/harness name = "jet harness (oxygen)" @@ -113,9 +110,7 @@ New() ..() - //src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - air_contents.adjust((6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) - return + air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) /obj/item/weapon/tank/jetpack/carbondioxide name = "Jetpack (Carbon Dioxide)" @@ -128,9 +123,7 @@ ..() src.ion_trail = new /datum/effect/effect/system/ion_trail_follow() src.ion_trail.set_up(src) - //src.air_contents.carbon_dioxide = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - air_contents.adjust(0,(6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) - return + air_contents.carbon_dioxide = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) examine() set src in usr diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm index 1533b5d2c51..70f7a8235a4 100644 --- a/code/game/objects/items/weapons/tanks/tank_types.dm +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -19,8 +19,7 @@ New() ..() - //src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - air_contents.adjust((6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) + src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) return @@ -59,9 +58,6 @@ trace_gas.moles = (3*ONE_ATMOSPHERE)*70/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD src.air_contents.trace_gases += trace_gas - // - air_contents.update_values() - return /* @@ -85,12 +81,8 @@ src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD src.air_contents.nitrogen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD - // - src.air_contents.update_values() - return - /* * Plasma */ @@ -101,15 +93,13 @@ flags = CONDUCT slot_flags = null //they have no straps! - /obj/item/weapon/tank/plasma/New() ..() src.air_contents.toxins = (3*ONE_ATMOSPHERE)*70/(R_IDEAL_GAS_EQUATION*T20C) - // - src.air_contents.update_values() return + /obj/item/weapon/tank/plasma/attackby(obj/item/weapon/W as obj, mob/user as mob, params) ..() @@ -152,9 +142,6 @@ New() ..() src.air_contents.oxygen = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - // - src.air_contents.update_values() - return @@ -182,7 +169,6 @@ New() ..() src.air_contents.oxygen = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - src.air_contents.update_values() return /* @@ -199,8 +185,6 @@ ..() src.air_contents.nitrogen = (3*ONE_ATMOSPHERE)*70/(R_IDEAL_GAS_EQUATION*T20C) - // - src.air_contents.update_values() return /obj/item/weapon/tank/nitrogen/examine() @@ -224,7 +208,4 @@ ..() src.air_contents.oxygen -= (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) src.air_contents.nitrogen = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) - // - src.air_contents.update_values() - return \ No newline at end of file diff --git a/code/game/objects/items/weapons/tanks/watertank.dm b/code/game/objects/items/weapons/tanks/watertank.dm index ebd2d4626f1..afaebdc4fe4 100644 --- a/code/game/objects/items/weapons/tanks/watertank.dm +++ b/code/game/objects/items/weapons/tanks/watertank.dm @@ -357,8 +357,8 @@ var/datum/gas_mixture/G = T.air if(get_dist(T, src) < 2) // Otherwise we'll get silliness like people using Nanofrost to kill people through walls with cold air G.temperature = 2 - update_nearby_tiles() - var/hotspot = (locate(/obj/fire) in T) + air_update_turf() + var/hotspot = (locate(/obj/effect/hotspot) in T) if(hotspot && !istype(T, /turf/space)) var/CT = 10 var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() ) diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 761b445d7ee..5f4cfbe49c9 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -267,7 +267,6 @@ var/turf/location = get_turf(user) if (istype(location, /turf)) location.hotspot_expose(700, 50, 1) - if(isliving(O)) var/mob/living/L = O L.IgniteMob() diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index 7909019481e..edc0426c5b8 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -178,14 +178,14 @@ obj/item/weapon/twohanded/ if(A && wielded && (istype(A,/obj/structure/window) || istype(A,/obj/structure/grille))) //destroys windows and grilles in one hit if(istype(A,/obj/structure/window)) - var/pdiff=performWallPressureCheck(A.loc) + /* var/pdiff=performWallPressureCheck(A.loc) if(pdiff>0) message_admins("[A] with pdiff [pdiff] fire-axed by [user.real_name] ([formatPlayerPanel(user,user.ckey)]) at [formatJumpTo(A.loc)]!") - log_admin("[A] with pdiff [pdiff] fire-axed by [user.real_name] ([user.ckey]) at [A.loc]!") + log_admin("[A] with pdiff [pdiff] fire-axed by [user.real_name] ([user.ckey]) at [A.loc]!")*///TODO: Figure out how the hell to remake this proc var/obj/structure/window/W = A W.destroy() else - del(A) + qdel(A) /* diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index e00b7f1c366..b69126768e0 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -6,68 +6,6 @@ // Also affects admin alerts. #define FALSEDOOR_MAX_PRESSURE_DIFF 25.0 -/** -* Gets the highest and lowest pressures from the tiles in cardinal directions -* around us, then checks the difference. -*/ -/proc/getOPressureDifferential(var/turf/loc) - var/minp=16777216; - var/maxp=0; - for(var/dir in cardinal) - var/turf/simulated/T=get_turf(get_step(loc,dir)) - var/cp=0 - if(T && istype(T) && T.zone) - var/datum/gas_mixture/environment = T.return_air() - cp = environment.return_pressure() - else - if(istype(T,/turf/simulated)) - continue - if(cpmaxp)maxp=cp - return abs(minp-maxp) - -// Checks pressure here vs. around us. -/proc/performFalseWallPressureCheck(var/turf/loc) - var/turf/simulated/lT=loc - if(!istype(lT) || !lT.zone) - return 0 - var/datum/gas_mixture/myenv=lT.return_air() - var/pressure=myenv.return_pressure() - - for(var/dir in cardinal) - var/turf/simulated/T=get_turf(get_step(loc,dir)) - if(T && istype(T) && T.zone) - var/datum/gas_mixture/environment = T.return_air() - var/pdiff = abs(pressure - environment.return_pressure()) - if(pdiff > FALSEDOOR_MAX_PRESSURE_DIFF) - return pdiff - return 0 - -/proc/performWallPressureCheck(var/turf/loc) - var/pdiff = getOPressureDifferential(loc) - if(pdiff > FALSEDOOR_MAX_PRESSURE_DIFF) - return pdiff - return 0 - -/client/proc/pdiff() - set name = "Get PDiff" - set category = "Debug" - - if(!mob || !holder) - return - var/turf/T = mob.loc - - if (!( istype(T, /turf) )) - return - - var/pdiff = getOPressureDifferential(T) - var/fwpcheck=performFalseWallPressureCheck(T) - var/wpcheck=performWallPressureCheck(T) - - src << "Pressure Differential (cardinals): [pdiff]" - src << "FWPCheck: [fwpcheck]" - src << "WPCheck: [wpcheck]" - /obj/structure/falsewall name = "wall" desc = "A huge chunk of metal used to seperate rooms." @@ -97,7 +35,7 @@ for(var/obj/structure/falsewall/W in range(temploc,1)) W.relativewall() ..() - + /obj/structure/falsewall/relativewall() if(!density) @@ -140,7 +78,7 @@ SetOpacity(1) update_icon() opening = 0 - + /obj/structure/falsewall/proc/do_the_flick() if(density) flick("[walltype]fwall_opening", src) @@ -154,7 +92,7 @@ relativewall() else icon_state = "[walltype]fwall_open" - + /obj/structure/falsewall/proc/ChangeToWall(delete = 1) var/turf/T = get_turf(src) if(!walltype || walltype == "metal") @@ -257,7 +195,7 @@ junction |= get_dir(src,W) icon_state = "rwall[junction]" return - + /* * Uranium Falsewalls */ @@ -321,7 +259,17 @@ desc = "A wall with plasma plating. This is definately a bad idea." icon_state = "" mineral = "plasma" - walltype = "plasma" + walltype = "plasma" + +/obj/structure/falsewall/plasma/proc/burnbabyburn(user) + playsound(src, 'sound/items/Welder.ogg', 100, 1) + atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, 400) + new /obj/structure/girder/displaced(loc) + qdel(src) + +/obj/structure/falsewall/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 300) + burnbabyburn() //-----------wtf?-----------start /obj/structure/falsewall/clown diff --git a/code/game/objects/structures/fullwindow.dm b/code/game/objects/structures/fullwindow.dm index cff4b75de02..71c6e56616d 100644 --- a/code/game/objects/structures/fullwindow.dm +++ b/code/game/objects/structures/fullwindow.dm @@ -10,18 +10,6 @@ return 1 return 0 -/obj/structure/window/full/update_nearby_tiles(need_rebuild) - if(!air_master) return 0 - if(!loc) return 0 - - var/turf/simulated/source = get_turf(src) - if(istype(source)) - air_master.tiles_to_update |= source - for(var/dir in cardinal) - var/turf/simulated/target = get_step(source,dir) - if(istype(target)) air_master.tiles_to_update |= target - return 1 - /obj/structure/window/full/is_fulltile() return 1 diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index f5a2e615b6a..8057ce7e922 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -71,17 +71,10 @@ if(/obj/item/stack/sheet/metal, /obj/item/stack/sheet/metal/cyborg) if(!anchored) if(S.amount < 2) return - var/pdiff=performWallPressureCheck(src.loc) - if(!pdiff) - S.use(2) - user << "\blue You create a false wall! Push on it to open or close the passage." - new /obj/structure/falsewall (src.loc) - del(src) - else - user << "\red There is too much air moving through the gap! The door wouldn't stay closed if you built it." - message_admins("Attempted false wall made by [user.real_name] ([formatPlayerPanel(user,user.ckey)]) at [formatJumpTo(loc)] had a pressure difference of [pdiff]!") - log_admin("Attempted false wall made by [user.real_name] (user.ckey) at [loc] had a pressure difference of [pdiff]!") - return + S.use(2) + user << "\blue You create a false wall! Push on it to open or close the passage." + new /obj/structure/falsewall (src.loc) + del(src) else if(S.amount < 2) return ..() user << "\blue Now adding plating..." @@ -99,17 +92,10 @@ if(/obj/item/stack/sheet/plasteel) if(!anchored) if(S.amount < 2) return - var/pdiff=performWallPressureCheck(src.loc) - if(!pdiff) - S.use(2) - user << "\blue You create a false wall! Push on it to open or close the passage." - new /obj/structure/falsewall/reinforced (src.loc) - del(src) - else - user << "\red There is too much air moving through the gap! The door wouldn't stay closed if you built it." - message_admins("Attempted false rwall made by [user.real_name] ([formatPlayerPanel(user,user.ckey)]) at [formatJumpTo(loc)] had a pressure difference of [pdiff]!") - log_admin("Attempted false rwall made by [user.real_name] ([user.ckey]) at [loc] had a pressure difference of [pdiff]!") - return + S.use(2) + user << "\blue You create a false wall! Push on it to open or close the passage." + new /obj/structure/falsewall/reinforced (src.loc) + del(src) else if (src.icon_state == "reinforced") //I cant believe someone would actually write this line of code... if(S.amount < 1) return ..() @@ -139,18 +125,11 @@ var/M = S.sheettype if(!anchored) if(S.amount < 2) return - var/pdiff=performWallPressureCheck(src.loc) - if(!pdiff) - S.use(2) - user << "\blue You create a false wall! Push on it to open or close the passage." - var/F = text2path("/obj/structure/falsewall/[M]") - new F (src.loc) - del(src) - else - user << "\red There is too much air moving through the gap! The door wouldn't stay closed if you built it." - message_admins("Attempted false [M] wall made by [user.real_name] ([formatPlayerPanel(user,user.ckey)]) at [formatJumpTo(loc)] had a pressure difference of [pdiff]!") - log_admin("Attempted false [M] wall made by [user.real_name] ([user.ckey]) at [loc] had a pressure difference of [pdiff]!") - return + S.use(2) + user << "\blue You create a false wall! Push on it to open or close the passage." + var/F = text2path("/obj/structure/falsewall/[M]") + new F (src.loc) + del(src) else if(S.amount < 2) return ..() user << "\blue Now adding plating..." @@ -187,7 +166,7 @@ if(health <= 0) new /obj/item/stack/sheet/metal(get_turf(src)) del(src) - + if(istype(Proj ,/obj/item/projectile/beam/pulse)) src.ex_act(2) ..() @@ -248,7 +227,7 @@ else if(istype(W, /obj/item/weapon/pickaxe/diamonddrill)) user << "\blue You drill through the girder!" dismantle() - + /obj/structure/cultgirder/proc/dismantle() new /obj/effect/decal/remains/human(get_turf(src)) qdel(src) @@ -256,7 +235,7 @@ /obj/structure/cultgirder/blob_act() if(prob(40)) dismantle() - + /obj/structure/cultgirder/bullet_act(var/obj/item/projectile/Proj) //No beam check- How else will you destroy the cult girder with silver bullets????? health -= Proj.damage ..() diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 548bcbe0986..bb5838ceffd 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -258,7 +258,7 @@ return 0 return 0 -/obj/structure/grille/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) +/obj/structure/grille/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(!destroyed) if(exposed_temperature > T0C + 1500) health -= 1 diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm index 3cb32653054..5d4eab9c35b 100644 --- a/code/game/objects/structures/inflatable.dm +++ b/code/game/objects/structures/inflatable.dm @@ -28,10 +28,10 @@ New(location) ..() - update_nearby_tiles(need_rebuild=1) + air_update_turf() Del() - update_nearby_tiles() + air_update_turf() ..() CanPass(atom/movable/mover, turf/target, height=0, air_group=0) @@ -217,7 +217,7 @@ Close() else Open() - update_nearby_tiles() + air_update_turf() proc/Open() isSwitchingStates = 1 diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index 127ee7ee638..d4d3dc787c0 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -20,12 +20,17 @@ ..() icon_state = mineralType name = "[mineralType] door" - update_nearby_tiles(need_rebuild=1) + air_update_turf(1) Destroy() - update_nearby_tiles() + air_update_turf(1) ..() + Move() + var/turf/T = loc + ..() + move_update_air(T) + Bumped(atom/user) ..() if(!state) @@ -51,6 +56,9 @@ return !opacity return !density + CanAtmosPass() + return !density + proc/TryToSwitchState(atom/user) if(isSwitchingStates) return if(ismob(user)) @@ -82,7 +90,7 @@ state = 1 update_icon() isSwitchingStates = 0 - update_nearby_tiles() + air_update_turf() proc/Close() isSwitchingStates = 1 @@ -94,7 +102,7 @@ state = 0 update_icon() isSwitchingStates = 0 - update_nearby_tiles() + air_update_turf() update_icon() if(state) @@ -187,34 +195,21 @@ /obj/structure/mineral_door/transparent/plasma mineralType = "plasma" -/* - attackby(obj/item/weapon/W as obj, mob/user as mob, params) + attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W,/obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/WT = W if(WT.remove_fuel(0, user)) TemperatureAct(100) ..() - fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) + temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature > 300) TemperatureAct(exposed_temperature) proc/TemperatureAct(temperature) - for(var/turf/simulated/floor/target_tile in range(2,loc)) - - var/datum/gas_mixture/napalm = new - - var/toxinsToDeduce = temperature/10 - - napalm.toxins = toxinsToDeduce - napalm.temperature = 200+T0C - - target_tile.assume_air(napalm) - spawn (0) target_tile.hotspot_expose(temperature, 400) - - hardness -= toxinsToDeduce/100 - CheckHardness() -*/ + atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, 500) + hardness = 0 + CheckHardness() /obj/structure/mineral_door/transparent/diamond mineralType = "diamond" diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index 3206b08d6f0..85e47ec0c40 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -73,7 +73,6 @@ // Chair types /obj/structure/stool/bed/chair/wood - autoignition_temperature = AUTOIGNITION_WOOD // TODO: Special ash subtype that looks like charred chair legs /obj/structure/stool/bed/chair/wood/normal diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 814fe2fc07e..9d50bbd9c4e 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -561,7 +561,6 @@ icon_state = "wood_table" parts = /obj/item/weapon/table_parts/wood health = 50 - autoignition_temperature = AUTOIGNITION_WOOD // TODO: Special ash subtype that looks like charred table legs. /obj/structure/table/woodentable/attackby(obj/item/I as obj, mob/user as mob, params) diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index b41b5be8afc..a9ef0455066 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -30,20 +30,32 @@ obj/structure/windoor_assembly obj/structure/windoor_assembly/New(dir=NORTH) ..() src.ini_dir = src.dir - update_nearby_tiles(need_rebuild=1) + air_update_turf(1) obj/structure/windoor_assembly/Destroy() density = 0 - update_nearby_tiles() + air_update_turf(1) ..() +/obj/structure/windoor_assembly/Move() + var/turf/T = loc + ..() + move_update_air(T) + /obj/structure/windoor_assembly/update_icon() icon_state = "[facing]_[secure ? "secure_" : ""]windoor_assembly[state]" -/obj/structure/windoor_assembly/CanPass(atom/movable/mover, turf/target, height=0) +/obj/structure/windoor_assembly/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if(istype(mover) && mover.checkpass(PASSGLASS)) return 1 if(get_dir(loc, target) == dir) //Make sure looking at appropriate border + if(air_group) return 0 + return !density + else + return 1 + +/obj/structure/windoor_assembly/CanAtmosPass(var/turf/T) + if(get_dir(loc, T) == dir) return !density else return 1 diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 568f4d45e9a..ef1e93f2db2 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -60,13 +60,9 @@ var/global/wcColored /obj/structure/window/bullet_act(var/obj/item/projectile/Proj) if((Proj.damage_type == BRUTE || Proj.damage_type == BURN)) health -= Proj.damage - update_nearby_icons() + air_update_turf(1) ..() if(health <= 0) - var/pdiff=performWallPressureCheck(src.loc) - if(pdiff>0) - msg_admin_attack("Window destroyed by [Proj.firer.name] ([formatPlayerPanel(Proj.firer,Proj.firer.ckey)]) via \an [Proj]! pdiff = [pdiff] at [formatJumpTo(loc)]!") - log_admin("Window destroyed by ([Proj.firer.ckey]) via \an [Proj]! pdiff = [pdiff] at [loc]!") destroy() return @@ -118,11 +114,7 @@ var/global/wcColored ..() visible_message("[src] was hit by [AM].") var/tforce = 0 - var/mob/M=null - if(ismob(AM)) - tforce = 40 - M=AM - else if(isobj(AM)) + if(isobj(AM)) var/obj/item/I = AM tforce = I.throwforce if(reinf) tforce *= 0.25 @@ -132,23 +124,7 @@ var/global/wcColored anchored = 0 update_nearby_icons() step(src, get_dir(AM, src)) - var/pdiff=performWallPressureCheck(src.loc) - if(pdiff>0) - if(M) - msg_admin_attack("Window with pdiff [pdiff] at [formatJumpTo(loc)] deanchored by [M.real_name][isAntag(M) ? "(ANTAG)" : ""] ([formatPlayerPanel(M,M.ckey)])!") - log_admin("Window with pdiff [pdiff] at [loc] deanchored by [M.real_name] ([M.ckey])!") - else - msg_admin_attack("Window with pdiff [pdiff] at [formatJumpTo(loc)] deanchored by [AM]!") - log_admin("Window with pdiff [pdiff] at [loc] deanchored by [AM]!") if(health <= 0) - var/pdiff=performWallPressureCheck(src.loc) - if(pdiff>0) - if(M) - msg_admin_attack("Window with pdiff [pdiff] at [formatJumpTo(loc)] destroyed by [M.real_name][isAntag(M) ? "(ANTAG)" : ""] ([formatPlayerPanel(M,M.ckey)])!") - log_admin("Window with pdiff [pdiff] at [loc] destroyed by [M.real_name] ([M.ckey])!") - else - msg_admin_attack("Window with pdiff [pdiff] at [formatJumpTo(loc)] destroyed by [AM]!") - log_admin("Window with pdiff [pdiff] at [loc] destroyed by [AM]!") destroy() @@ -156,10 +132,6 @@ var/global/wcColored if(HULK in user.mutations) user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!")) user.visible_message("[user] smashes through [src]!") - var/pdiff=performWallPressureCheck(src.loc) - if(pdiff>0) - msg_admin_attack("Window destroyed by hulk [user.real_name][isAntag(user) ? "(ANTAG)" : ""] ([formatPlayerPanel(user,user.ckey)]) with pdiff [pdiff] at [formatJumpTo(loc)]!") - log_admin("Window destroyed by hulk [user.real_name] ([user.ckey]) with pdiff [pdiff] at [loc]!") destroy() else if (usr.a_intent == "harm") user.changeNext_move(CLICK_CD_MELEE) @@ -185,9 +157,6 @@ var/global/wcColored health -= damage if(health <= 0) user.visible_message("[user] smashes through [src]!") - var/pdiff=performWallPressureCheck(src.loc) - if(pdiff>0) - msg_admin_attack("Window destroyed by [user.real_name][isAntag(user) ? "(ANTAG)" : ""] ([formatPlayerPanel(user,user.ckey)]) with pdiff [pdiff] at [formatJumpTo(loc)]!") destroy() else //for nicer text~ user.visible_message("[user] smashes into [src]!") @@ -255,21 +224,11 @@ var/global/wcColored update_nearby_icons() playsound(loc, 'sound/items/Screwdriver.ogg', 75, 1) user << (anchored ? "You have fastened the frame to the floor." : "You have unfastened the frame from the floor.") - if(!anchored) - var/pdiff=performWallPressureCheck(src.loc) - if(pdiff>0) - msg_admin_attack("Window with pdiff [pdiff] deanchored by [user.real_name][isAntag(user) ? "(ANTAG)" : ""] ([formatPlayerPanel(user,user.ckey)]) at [formatJumpTo(loc)]!") - log_admin("Window with pdiff [pdiff] deanchored by [user.real_name] ([user.ckey]) at [loc]!") else if(!reinf) anchored = !anchored update_nearby_icons() playsound(loc, 'sound/items/Screwdriver.ogg', 75, 1) user << (anchored ? "You have fastened the window to the floor." : "You have unfastened the window.") - if(!anchored) - var/pdiff=performWallPressureCheck(src.loc) - if(pdiff>0) - msg_admin_attack("Window with pdiff [pdiff] deanchored by [user.real_name][isAntag(user) ? "(ANTAG)" : ""] ([formatPlayerPanel(user,user.ckey)]) at [formatJumpTo(loc)]!") - log_admin("Window with pdiff [pdiff] deanchored by [user.real_name] ([user.ckey]) at [loc]!") else if(istype(W, /obj/item/weapon/crowbar) && reinf && state <= 1) state = 1 - state playsound(loc, 'sound/items/Crowbar.ogg', 75, 1) @@ -297,7 +256,7 @@ var/global/wcColored user << "You have disassembled the window." disassembled = 1 density = 0 - update_nearby_tiles() + air_update_turf(1) update_nearby_icons() del(src) else @@ -308,10 +267,6 @@ var/global/wcColored anchored = 0 update_nearby_icons() step(src, get_dir(user, src)) - var/pdiff=performWallPressureCheck(src.loc) - if(pdiff>0) - msg_admin_attack("Window with pdiff [pdiff] deanchored by [user.real_name][isAntag(user) ? "(ANTAG)" : ""] ([formatPlayerPanel(user,user.ckey)]) at [formatJumpTo(loc)]!") - log_admin("Window with pdiff [pdiff] deanchored by [user.real_name] ([user.ckey]) at [loc]!") else playsound(loc, 'sound/effects/Glasshit.ogg', 75, 1) ..() @@ -328,9 +283,6 @@ var/global/wcColored if(sound_effect) playsound(loc, 'sound/effects/Glasshit.ogg', 75, 1) if(health <= 0) - var/pdiff=performWallPressureCheck(src.loc) - if(pdiff>0) - msg_admin_attack("Window with pdiff [pdiff] broken at [formatJumpTo(loc)]!") destroy() return @@ -344,10 +296,9 @@ var/global/wcColored usr << "It is fastened to the floor therefore you can't rotate it!" return 0 - update_nearby_tiles(need_rebuild=1) //Compel updates before dir = turn(dir, 90) // updateSilicate() - update_nearby_tiles(need_rebuild=1) + air_update_turf(1) ini_dir = dir return @@ -361,10 +312,9 @@ var/global/wcColored usr << "It is fastened to the floor therefore you can't rotate it!" return 0 - update_nearby_tiles(need_rebuild=1) //Compel updates before dir = turn(dir, 270) // updateSilicate() - update_nearby_tiles(need_rebuild=1) + air_update_turf(1) ini_dir = dir return @@ -389,24 +339,23 @@ var/global/wcColored ini_dir = dir if(!color && !istype(src,/obj/structure/window/plasmabasic) && !istype(src,/obj/structure/window/plasmareinforced)) color = color_windows(src) - update_nearby_tiles(need_rebuild=1) + air_update_turf(1) update_nearby_icons() return /obj/structure/window/Destroy() density = 0 - update_nearby_tiles() + air_update_turf(1) if(loc && !disassembled) playsound(get_turf(src), "shatter", 70, 1) - update_nearby_icons() ..() /obj/structure/window/Move() - update_nearby_tiles(need_rebuild=1) + var/turf/T = loc ..() dir = ini_dir - update_nearby_tiles(need_rebuild=1) + move_update_air(T) //checks if this window is full-tile one /obj/structure/window/proc/is_fulltile() @@ -414,7 +363,14 @@ var/global/wcColored return 1 return 0 -//This proc is used to update the icons of nearby windows. It should not be confused with update_nearby_tiles(), which is an atmos proc! +/obj/structure/window/CanAtmosPass(turf/T) + if(get_dir(loc, T) == dir) + return !density + if(dir == SOUTHWEST || dir == SOUTHEAST || dir == NORTHWEST || dir == NORTHEAST) + return !density + return 1 + +//This proc is used to update the icons of nearby windows. /obj/structure/window/proc/update_nearby_icons() if(!loc) return 0 update_icon() @@ -425,7 +381,7 @@ var/global/wcColored /obj/structure/window/update_icon() return -/obj/structure/window/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) +/obj/structure/window/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature > T0C + 800) hit(round(exposed_volume / 100), 0) ..() @@ -447,7 +403,7 @@ var/global/wcColored /obj/structure/window/plasmabasic/New(Loc,re=0) ..() ini_dir = dir - update_nearby_tiles(need_rebuild=1) + air_update_turf() update_nearby_icons() return @@ -470,7 +426,7 @@ var/global/wcColored /obj/structure/window/plasmareinforced/New(Loc,re=0) ..() ini_dir = dir - update_nearby_tiles(need_rebuild=1) + air_update_turf() update_nearby_icons() return diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm index 3a9f559e133..fecdf392d51 100644 --- a/code/game/turfs/simulated.dm +++ b/code/game/turfs/simulated.dm @@ -15,6 +15,9 @@ ..() levelupdate() +/turf/simulated/proc/burn_tile() + return + /turf/simulated/proc/MakeSlippery(var/wet_setting = 1) // 1 = Water, 2 = Lube if(wet >= wet_setting) return @@ -157,7 +160,7 @@ else M.inertia_dir = 0 return - else if(!istype(M, /mob/living/carbon/metroid) || (M:species.bodyflags & FEET_NOSLIP)) + else if(!istype(M, /mob/living/carbon/slime) || (M:species.bodyflags & FEET_NOSLIP)) if (M.m_intent == "run" && prob(30)) M.stop_pulling() step(M, M.dir) diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index e75a0d4dc33..55954dc957f 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -44,15 +44,6 @@ var/list/wood_icons = list("wood","wood-broken") else icon_regular_floor = icon_state -/turf/simulated/floor/ignite(var/temperature) - on_fire=1 - visible_message("\The [src] bursts into flame!") - overlays += image(fire_dmi,fire_sprite) - spawn(rand(fire_time_min,fire_time_max) SECONDS) - if(!on_fire) - return - burn_tile() - //turf/simulated/floor/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) // if ((istype(mover, /obj/machinery/vehicle) && !(src.burnt))) // if (!( locate(/obj/machinery/mass_driver, src) )) @@ -302,7 +293,7 @@ turf/simulated/floor/proc/update_icon() src.icon_state = "sand[pick("1","2","3")]" broken = 1 -/turf/simulated/floor/proc/burn_tile() +/turf/simulated/floor/burn_tile() if(istype(src,/turf/simulated/floor/engine)) return if(istype(src,/turf/simulated/floor/plating/airless/asteroid)) return//Asteroid tiles don't burn if(broken || burnt) return diff --git a/code/game/turfs/simulated/floor_types.dm b/code/game/turfs/simulated/floor_types.dm index 9f1288de647..91e4fd2a9b9 100644 --- a/code/game/turfs/simulated/floor_types.dm +++ b/code/game/turfs/simulated/floor_types.dm @@ -74,14 +74,14 @@ /turf/simulated/floor/engine/n20 New() . = ..() - //var/datum/gas_mixture/adding = new + var/datum/gas_mixture/adding = new var/datum/gas/sleeping_agent/trace_gas = new - air.trace_gases += trace_gas - trace_gas.moles = 70000 - air.oxygen = 0 - air.nitrogen = 0 - air.update_values() + trace_gas.moles = 2000 + adding.trace_gases += trace_gas + adding.temperature = T20C + + assume_air(adding) /turf/simulated/floor/engine/vacuum name = "vacuum floor" @@ -120,7 +120,7 @@ /turf/simulated/floor/greengrid icon = 'icons/turf/floors.dmi' icon_state = "gcircuit" - + /turf/simulated/floor/greengrid/airless icon_state = "gcircuit" name = "airless floor" @@ -154,7 +154,7 @@ name = "plating" icon = 'icons/turf/floors.dmi' icon_state = "plating" - + /turf/simulated/shuttle/plating/vox //Vox skipjack plating oxygen = 0 nitrogen = MOLES_N2STANDARD + MOLES_O2STANDARD @@ -162,7 +162,7 @@ /turf/simulated/shuttle/floor4 // Added this floor tile so that I have a seperate turf to check in the shuttle -- Polymorph name = "Brig floor" // Also added it into the 2x3 brig area of the shuttle. icon_state = "floor4" - + /turf/simulated/shuttle/floor4/vox //Vox skipjack floors name = "skipjack floor" oxygen = 0 @@ -235,10 +235,10 @@ name = "snow" icon = 'icons/turf/snow.dmi' icon_state = "snow" - + /turf/simulated/floor/plating/snow/ex_act(severity) return - + /turf/simulated/floor/snow name = "snow" icon = 'icons/turf/snow.dmi' diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 6a763055b3b..4dd7d14d460 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -317,10 +317,6 @@ else if(!is_sharp(W) && W.force >= 10 || W.force >= 20) user << "\The [src] crumbles away under the force of your [W.name]." src.dismantle_wall(1) - - var/pdiff=performWallPressureCheck(src.loc) - if(pdiff) - message_admins("[user.real_name] ([formatPlayerPanel(user,user.ckey)]) broke a rotting wall with a pdiff of [pdiff] at [formatJumpTo(loc)]!") return //THERMITE related stuff. Calls src.thermitemelt() which handles melting simulated walls and the relevant effects @@ -374,10 +370,6 @@ if( user.loc == T && user.get_active_hand() == WT ) user << "You remove the outer plating." - var/pdiff=performWallPressureCheck(src.loc) - if(pdiff) - message_admins("[user.real_name] ([formatPlayerPanel(user,user.ckey)]) dismanted a wall with a pdiff of [pdiff] at [formatJumpTo(loc)]!") - log_admin("[user.real_name] ([user.ckey]) dismanted a wall with a pdiff of [pdiff] at [loc]!") dismantle_wall() return else @@ -397,10 +389,6 @@ if( user.loc == T && user.get_active_hand() == W ) user << "You remove the outer plating." dismantle_wall() - var/pdiff=performWallPressureCheck(src.loc) - if(pdiff) - message_admins("[user.real_name] ([formatPlayerPanel(user,user.ckey)]) dismantled with a pdiff of [pdiff] at [formatJumpTo(loc)]!") - log_admin("[user.real_name] ([user.ckey]) dismantled with a pdiff of [pdiff] at [loc]!") for(var/mob/O in viewers(user, 5)) O.show_message("The wall was sliced apart by [user]!", 1, "You hear metal being sliced apart.", 2) return @@ -418,10 +406,6 @@ if( user.loc == T && user.get_active_hand() == W ) user << "Your drill tears though the last of the reinforced plating." dismantle_wall() - var/pdiff=performWallPressureCheck(src.loc) - if(pdiff) - message_admins("[user.real_name] ([formatPlayerPanel(user,user.ckey)]) drilled a wall with a pdiff of [pdiff] at [formatJumpTo(loc)]!") - log_admin("[user.real_name] ([user.ckey]) drilled a wall with a pdiff of [pdiff] at [loc]!") for(var/mob/O in viewers(user, 5)) O.show_message("The wall was drilled through by [user]!", 1, "You hear the grinding of metal.", 2) return @@ -443,10 +427,6 @@ playsound(src, "sparks", 50, 1) playsound(src, 'sound/weapons/blade1.ogg', 50, 1) dismantle_wall(1) - var/pdiff=performWallPressureCheck(src.loc) - if(pdiff) - message_admins("[user.real_name] ([formatPlayerPanel(user,user.ckey)]) sliced up a wall with a pdiff of [pdiff] at [formatJumpTo(loc)]!") - log_admin("[user.real_name] ([user.ckey]) sliced up a wall with a pdiff of [pdiff] at [loc]!") for(var/mob/O in viewers(user, 5)) O.show_message("The wall was sliced apart by [user]!", 1, "You hear metal being sliced apart and sparks flying.", 2) return diff --git a/code/game/turfs/simulated/walls_mineral.dm b/code/game/turfs/simulated/walls_mineral.dm index 6f0e99475ab..393ff4beb8e 100644 --- a/code/game/turfs/simulated/walls_mineral.dm +++ b/code/game/turfs/simulated/walls_mineral.dm @@ -78,47 +78,29 @@ /turf/simulated/wall/mineral/plasma name = "plasma wall" - desc = "A wall with plasma plating. This is definitely a bad idea." + desc = "A wall with plasma plating. This is definately a bad idea." icon_state = "plasma0" walltype = "plasma" mineral = "plasma" + thermal_conductivity = 0.04 -/turf/simulated/wall/mineral/plasma/attackby(obj/item/weapon/W as obj, mob/user as mob, params) +/turf/simulated/wall/mineral/plasma/attackby(obj/item/weapon/W as obj, mob/user as mob) if(is_hot(W) > 300)//If the temperature of the object is over 300, then ignite ignite(is_hot(W)) return ..() /turf/simulated/wall/mineral/plasma/proc/PlasmaBurn(temperature) - var/pdiff=performWallPressureCheck(src.loc) - if(pdiff>0) - message_admins("Plasma wall with pdiff [pdiff] at [formatJumpTo(loc)] just caught fire!") spawn(2) new /obj/structure/girder(src) src.ChangeTurf(/turf/simulated/floor) - for(var/turf/simulated/floor/target_tile in range(0,src)) - /*if(target_tile.parent && target_tile.parent.group_processing) - target_tile.parent.suspend_group_processing()*/ - var/datum/gas_mixture/napalm = new - var/toxinsToDeduce = 20 - napalm.toxins = toxinsToDeduce - napalm.temperature = 400+T0C - target_tile.assume_air(napalm) - spawn (0) target_tile.hotspot_expose(temperature, 400) - for(var/obj/structure/falsewall/plasma/F in range(3,src))//Hackish as fuck, but until temperature_expose works, there is nothing I can do -Sieve - var/turf/T = get_turf(F) - T.ChangeTurf(/turf/simulated/wall/mineral/plasma/) - del (F) - for(var/turf/simulated/wall/mineral/plasma/W in range(3,src)) - W.ignite((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame - for(var/obj/machinery/door/airlock/plasma/D in range(3,src)) - D.ignite(temperature/4) + atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, 400) -/turf/simulated/wall/mineral/plasma/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)//Doesn't fucking work because walls don't interact with air :( +/turf/simulated/wall/mineral/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)//Doesn't fucking work because walls don't interact with air :( if(exposed_temperature > 300) PlasmaBurn(exposed_temperature) -/turf/simulated/wall/mineral/plasma/ignite(exposed_temperature) +/turf/simulated/wall/mineral/plasma/proc/ignite(exposed_temperature) if(exposed_temperature > 300) PlasmaBurn(exposed_temperature) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index c84a24c12cb..ebefbf0ca20 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -36,6 +36,16 @@ return return +// Adds the adjacent turfs to the current atmos processing +/turf/Destroy() + if(air_master) + for(var/direction in cardinal) + if(atmos_adjacent_turfs & direction) + var/turf/simulated/T = get_step(src, direction) + if(istype(T)) + air_master.add_to_active(T) + ..() + /turf/ex_act(severity) return 0 @@ -213,117 +223,65 @@ del L //Creates a new turf -/turf/proc/ChangeTurf(var/turf/N) - if (!N) - return - +/turf/proc/ChangeTurf(var/path) + if(!path) return + if(path == type) return src var/old_lumcount = lighting_lumcount - initial(lighting_lumcount) var/old_opacity = opacity - //world << "Replacing [src.type] with [N]" + if(air_master) + air_master.remove_from_active(src) - if(connections) connections.erase_all() + var/turf/W = new path(src) - if(istype(src,/turf/simulated)) - //Yeah, we're just going to rebuild the whole thing. - //Despite this being called a bunch during explosions, - //the zone will only really do heavy lifting once. - var/turf/simulated/S = src - if(S.zone) S.zone.rebuild() + if(istype(W, /turf/simulated)) + W:Assimilate_Air() + W.RemoveLattice() - if(ispath(N, /turf/simulated/floor)) - //if the old turf had a zone, connect the new turf to it as well - Cael - //Adjusted by SkyMarshal 5/10/13 - The air master will handle the addition of the new turf. - //if(zone) - // zone.RemoveTurf(src) - // if(!zone.CheckStatus()) - // zone.SetStatus(ZONE_ACTIVE) + W.lighting_lumcount += old_lumcount + if(old_lumcount != W.lighting_lumcount) //light levels of the turf have changed. We need to shift it to another lighting-subarea + W.lighting_changed = 1 + lighting_controller.changed_turfs += W - var/turf/simulated/W = new N( locate(src.x, src.y, src.z) ) - //W.Assimilate_Air() + if(old_opacity != W.opacity) //opacity has changed. Need to update surrounding lights + if(W.lighting_lumcount) //unless we're being illuminated, don't bother (may be buggy, hard to test) + W.UpdateAffectingLights() - W.lighting_lumcount += old_lumcount - if(old_lumcount != W.lighting_lumcount) - W.lighting_changed = 1 - lighting_controller.changed_turfs += W + W.levelupdate() + W.CalculateAdjacentTurfs() + return W - - if(old_opacity != W.opacity) //opacity has changed. Need to update surrounding lights - if(W.lighting_lumcount) //unless we're being illuminated, don't bother (may be buggy, hard to test) - W.UpdateAffectingLights() - - if (istype(W,/turf/simulated/floor)) - W.RemoveLattice() - - if(air_master) - air_master.mark_for_update(src) - - W.levelupdate() - return W - - else - //if(zone) - // zone.RemoveTurf(src) - // if(!zone.CheckStatus()) - // zone.SetStatus(ZONE_ACTIVE) - - var/turf/W = new N( locate(src.x, src.y, src.z) ) - W.lighting_lumcount += old_lumcount - if(old_lumcount != W.lighting_lumcount) - W.lighting_changed = 1 - lighting_controller.changed_turfs += W - - if(air_master) - air_master.mark_for_update(src) - - W.levelupdate() - return W - -/* //////Assimilate Air////// /turf/simulated/proc/Assimilate_Air() - var/aoxy = 0//Holders to assimilate air from nearby turfs - var/anitro = 0 - var/aco = 0 - var/atox = 0 - var/atemp = 0 - var/turf_count = 0 + if(air) + var/aoxy = 0//Holders to assimilate air from nearby turfs + var/anitro = 0 + var/aco = 0 + var/atox = 0 + var/atemp = 0 + var/turf_count = 0 - for(var/direction in cardinal)//Only use cardinals to cut down on lag - var/turf/T = get_step(src,direction) - if(istype(T,/turf/space))//Counted as no air - turf_count++//Considered a valid turf for air calcs - continue - else if(istype(T,/turf/simulated/floor)) - var/turf/simulated/S = T - if(S.air)//Add the air's contents to the holders - aoxy += S.air.oxygen - anitro += S.air.nitrogen - aco += S.air.carbon_dioxide - atox += S.air.toxins - atemp += S.air.temperature - turf_count ++ - air.oxygen = (aoxy/max(turf_count,1))//Averages contents of the turfs, ignoring walls and the like - air.nitrogen = (anitro/max(turf_count,1)) - air.carbon_dioxide = (aco/max(turf_count,1)) - air.toxins = (atox/max(turf_count,1)) - air.temperature = (atemp/max(turf_count,1))//Trace gases can get bant - air.update_values() + for(var/direction in cardinal)//Only use cardinals to cut down on lag + var/turf/T = get_step(src,direction) + if(istype(T,/turf/space))//Counted as no air + turf_count++//Considered a valid turf for air calcs + continue + else if(istype(T,/turf/simulated/floor)) + var/turf/simulated/S = T + if(S.air)//Add the air's contents to the holders + aoxy += S.air.oxygen + anitro += S.air.nitrogen + aco += S.air.carbon_dioxide + atox += S.air.toxins + atemp += S.air.temperature + turf_count ++ + air.oxygen = (aoxy/max(turf_count,1))//Averages contents of the turfs, ignoring walls and the like + air.nitrogen = (anitro/max(turf_count,1)) + air.carbon_dioxide = (aco/max(turf_count,1)) + air.toxins = (atox/max(turf_count,1)) + air.temperature = (atemp/max(turf_count,1))//Trace gases can get bant + if(air_master) + air_master.add_to_active(src) - //cael - duplicate the averaged values across adjacent turfs to enforce a seamless atmos change - for(var/direction in cardinal)//Only use cardinals to cut down on lag - var/turf/T = get_step(src,direction) - if(istype(T,/turf/space))//Counted as no air - continue - else if(istype(T,/turf/simulated/floor)) - var/turf/simulated/S = T - if(S.air)//Add the air's contents to the holders - S.air.oxygen = air.oxygen - S.air.nitrogen = air.nitrogen - S.air.carbon_dioxide = air.carbon_dioxide - S.air.toxins = air.toxins - S.air.temperature = air.temperature - S.air.update_values() -*/ /turf/proc/ReplaceWithLattice() src.ChangeTurf(/turf/space) new /obj/structure/lattice( locate(src.x, src.y, src.z) ) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 1108c287461..5b151c850c2 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -129,8 +129,6 @@ var/list/admin_verbs_server = list( var/list/admin_verbs_debug = list( /client/proc/cmd_admin_list_open_jobs, /client/proc/Debug2, - /client/proc/kill_air, - /client/proc/ZASSettings, /client/proc/cmd_debug_make_powernets, /client/proc/debug_controller, /client/proc/cmd_debug_mob_lists, diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 210d020553f..ebc48a70d0c 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -3048,18 +3048,6 @@ src.admincaster_signature = adminscrub(input(usr, "Provide your desired signature", "Network Identity Handler", "")) src.access_news_network() - else if(href_list["vsc"]) - if(check_rights(R_ADMIN|R_SERVER)) - if(href_list["vsc"] == "airflow") - vsc.ChangeSettingsDialog(usr,vsc.settings) - if(href_list["vsc"] == "plasma") - vsc.ChangeSettingsDialog(usr,vsc.plc.settings) -// zas_settings.ChangeSettingsDialog(usr,zas_settings.settings) - if(href_list["vsc"] == "default") - vsc.SetDefault(usr) -// zas_settings.SetDefault(usr) - // player info stuff - if(href_list["add_player_info"]) var/key = href_list["add_player_info"] var/add = input("Add Player Info") as null|text diff --git a/code/modules/admin/verbs/diagnostics.dm b/code/modules/admin/verbs/diagnostics.dm index 2c27be1cde9..4788dad2832 100644 --- a/code/modules/admin/verbs/diagnostics.dm +++ b/code/modules/admin/verbs/diagnostics.dm @@ -1,3 +1,22 @@ +/client/proc/air_status(turf/target as turf) + set category = "Debug" + set name = "Display Air Status" + + if(!isturf(target)) + return + + var/datum/gas_mixture/GM = target.return_air() + var/burning = 0 + if(istype(target, /turf/simulated)) + var/turf/simulated/T = target + if(T.active_hotspot) + burning = 1 + + usr << "\blue @[target.x],[target.y] ([GM.group_multiplier]): O:[GM.oxygen] T:[GM.toxins] N:[GM.nitrogen] C:[GM.carbon_dioxide] w [GM.temperature] Kelvin, [GM.return_pressure()] kPa [(burning)?("\red BURNING"):(null)]" + for(var/datum/gas/trace_gas in GM.trace_gases) + usr << "[trace_gas.type]: [trace_gas.moles]" + feedback_add_details("admin_verb","DAST") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + /client/proc/fix_next_move() set category = "Debug" set name = "Unfreeze Everyone" diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index 5abfd4d1c04..7a616fd1c5c 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -143,10 +143,6 @@ var/intercom_range_display_status = 0 src.verbs += /client/proc/print_jobban_old src.verbs += /client/proc/print_jobban_old_filter src.verbs += /client/proc/forceEvent - src.verbs += /client/proc/Zone_Info - src.verbs += /client/proc/Test_ZAS_Connection - src.verbs += /client/proc/ZoneTick - //src.verbs += /client/proc/TestZASRebuild //src.verbs += /client/proc/cmd_admin_rejuvenate feedback_add_details("admin_verb","mDV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index be39f1be89a..48acf97242f 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -156,6 +156,7 @@ ground_zero.assume_air(air_contents) ground_zero.hotspot_expose(1000, 125) + air_update_turf() if(master) del(master) del(src) @@ -165,4 +166,5 @@ var/turf/simulated/T = get_turf(src) if(!T) return - T.assume_air(removed) \ No newline at end of file + T.assume_air(removed) + air_update_turf() \ No newline at end of file diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 6bbd20f0d29..d3d93dccf06 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -7,3 +7,4 @@ else biomass_infestation() spacevines_spawned = 1 +v \ No newline at end of file diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index 9df91110429..a741c792642 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -20,8 +20,6 @@ opacity = 1 var/health = 50 - autoignition_temperature = AUTOIGNITION_WOOD - /obj/structure/bookcase/initialize() for(var/obj/item/I in loc) if(istype(I, /obj/item/weapon/book)) @@ -151,8 +149,6 @@ w_class = 3 //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever) attack_verb = list("bashed", "whacked", "educated") - autoignition_temperature = AUTOIGNITION_PAPER - var/dat // Actual page content var/due_date = 0 // Game time in 1/10th seconds var/author // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 2502561b537..6e5dcdc3dea 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -152,6 +152,7 @@ bodytemperature += BODYTEMP_HEATING_MAX //If you're on fire, you heat up! return + /mob/living/carbon/alien/IsAdvancedToolUser() return has_fine_manipulation diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm index fbb2e477081..eda8df77ee7 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/life.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm @@ -20,7 +20,7 @@ //First, resolve location and get a breath - if(air_master.current_cycle%4==2) + if(mob_master.current_cycle%4==2) //Only try to take a breath every 4 seconds, unless suffocating spawn(0) breathe() diff --git a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm index 6990eaa9223..0c218c81204 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm @@ -65,6 +65,7 @@ update_fire() + /mob/living/carbon/alien/humanoid/update_hud() //TODO if (client) diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index 3b08794a76c..01e36955196 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -17,7 +17,7 @@ amount_grown++ //First, resolve location and get a breath - if(air_master.current_cycle%4==2) + if(mob_master.current_cycle%4==2) //Only try to take a breath every 4 seconds, unless suffocating spawn(0) breathe() else //Still give containing object the chance to interact diff --git a/code/modules/mob/living/carbon/alien/life.dm b/code/modules/mob/living/carbon/alien/life.dm index 4a249312ba2..58f43b525b3 100644 --- a/code/modules/mob/living/carbon/alien/life.dm +++ b/code/modules/mob/living/carbon/alien/life.dm @@ -116,7 +116,7 @@ stomach_contents.Remove(M) qdel(M) continue - if(air_master.current_cycle%3==1) + if(mob_master.current_cycle%3==1) if(!(M.status_flags & GODMODE)) M.adjustBruteLoss(5) nutrition += 10 diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index b7bb4ee6dd2..37381273369 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -65,7 +65,7 @@ var/const/MAX_ACTIVE_TIME = 400 Die() return -/obj/item/clothing/mask/facehugger/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) +/obj/item/clothing/mask/facehugger/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature > 300) Die() return diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index c99cf3e2b31..925636dbba5 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -439,7 +439,12 @@ mob/living item.throw_at(target, item.throw_range, item.throw_speed, src) - +/* +/mob/living/carbon/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) + ..() + src.IgniteMob() + bodytemperature = max(bodytemperature, BODYTEMP_HEAT_DAMAGE_LIMIT+10) +*/ /mob/living/carbon/can_use_hands() if(handcuffed) return 0 diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index f317ea49036..fac498d9219 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -226,7 +226,6 @@ usr << "[t_He] has a pulse!" msg += "" - if(fire_stacks > 0) msg += "[t_He] [t_is] covered in something flammable.\n" if(fire_stacks < 0) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 1391855aa10..f8aa4a64ac9 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -82,5 +82,5 @@ var/frozen = 0 //used for preventing attacks on admin-frozen people - fire_dmi = 'icons/mob/OnFire.dmi' - fire_sprite = "Standing" + var/fire_dmi = 'icons/mob/OnFire.dmi' + var/fire_sprite = "Standing" \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 07a962fb821..5b7f9b708b1 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -74,7 +74,7 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc //No need to update all of these procs if the guy is dead. if(stat != DEAD && !in_stasis) - if(air_master.current_cycle%4==2 || failed_last_breath) //First, resolve location and get a breath + if(mob_master.current_cycle%4==2 || failed_last_breath) //First, resolve location and get a breath breathe() //Only try to take a breath every 4 ticks, unless suffocating else //Still give containing object the chance to interact @@ -371,7 +371,7 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc breath = loc.remove_air(breath_moles) if(!is_lung_ruptured()) - if(!breath || breath.total_moles < BREATH_MOLES / 5 || breath.total_moles > BREATH_MOLES * 5) + if(!breath || breath.total_moles() < BREATH_MOLES / 5 || breath.total_moles() > BREATH_MOLES * 5) if(prob(5)) rupture_lung() @@ -382,8 +382,7 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc handle_breath(breath) - if(species.name=="Plasmaman") - + if(species.name=="Plasmaman") //this is stupid as fuck // Check if we're wearing our biosuit and mask. if (!istype(wear_suit,/obj/item/clothing/suit/space/eva/plasmaman) || !istype(head,/obj/item/clothing/head/helmet/space/eva/plasmaman)) //testing("Plasmaman [src] leakin'. coverflags=[cover_flags]") @@ -548,6 +547,7 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc return //END FIRE CODE + /* proc/adjust_body_temperature(current, loc_temp, boost) var/temperature = current @@ -728,12 +728,6 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc alien = species.reagent_tag reagents.metabolize(src,alien) - var/total_plasmaloss = 0 - for(var/obj/item/I in src) - if(I.contaminated) - total_plasmaloss += vsc.plc.CONTAMINATION_LOSS - if(!(status_flags & GODMODE)) adjustToxLoss(total_plasmaloss) - if(status_flags & GODMODE) return 0 //godmode if(species.flags & REQUIRE_LIGHT) @@ -1418,7 +1412,7 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc stomach_contents.Remove(M) del(M) continue - if(air_master.current_cycle%3==1) + if(mob_master.current_cycle%3==1) if(!(M.status_flags & GODMODE)) M.adjustBruteLoss(5) nutrition += 10 diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index d325d657b52..3621f44c8e6 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -460,16 +460,13 @@ proc/get_damage_icon_part(damage_state, body_part) if(update_icons) update_icons() /mob/living/carbon/human/update_fire() - remove_overlay(FIRE_LAYER) if(on_fire) overlays_standing[FIRE_LAYER] = image("icon"=fire_dmi, "icon_state"=fire_sprite, "layer"=-FIRE_LAYER) else overlays_standing[FIRE_LAYER] = null - apply_overlay(FIRE_LAYER) - /* --------------------------------------- */ //For legacy support. /mob/living/carbon/human/regenerate_icons() diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 51162a425ff..65a5f5b14e6 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -25,7 +25,7 @@ if (stat != DEAD) if(!istype(src,/mob/living/carbon/monkey/diona)) //still breathing //First, resolve location and get a breath - if(air_master.current_cycle%4==2) + if(mob_master.current_cycle%4==2) //Only try to take a breath every 4 seconds, unless suffocating breathe() else //Still give containing object the chance to interact @@ -266,7 +266,7 @@ if(status_flags & GODMODE) return - if(!breath || (breath.total_moles == 0)) + if(!breath || (breath.total_moles() == 0)) adjustOxyLoss(7) oxygen_alert = max(oxygen_alert, 1) @@ -660,4 +660,4 @@ return adjustFireLoss(6) return - //END FIRE CODE + //END FIRE CODE \ No newline at end of file diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index 6801dc30432..cc25d319842 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -221,6 +221,7 @@ if(H.reagents) H.reagents.add_reagent("plasma", Clamp(ratio, MIN_PLASMA_DAMAGE, MAX_PLASMA_DAMAGE)) H.toxins_alert = max(H.toxins_alert, 1) + else if(O2_pp > vox_oxygen_max && name == "Vox") //Oxygen is toxic to vox. var/ratio = (breath.oxygen/vox_oxygen_max) * 1000 H.adjustToxLoss(Clamp(ratio, MIN_PLASMA_DAMAGE, MAX_PLASMA_DAMAGE)) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index a19ee6e5207..b1900ffa39b 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -544,7 +544,6 @@ for(var/mob/O in viewers(usr, null)) O.show_message(text("\red [] resists!", L), 1) - //unbuckling yourself if(L.buckled && (L.last_special <= world.time) ) if(iscarbon(L)) @@ -638,6 +637,7 @@ //breaking out of handcuffs else if(iscarbon(L)) var/mob/living/carbon/CM = L + if(CM.on_fire && CM.canmove) CM.fire_stacks -= 5 CM.weakened = max(CM.weakened, 3)//We dont check for CANWEAKEN, I don't care how immune to weakening you are, if you're rolling on the ground, you're busy. @@ -651,6 +651,7 @@ "You extinguish yourself.") ExtinguishMob() return + if(CM.handcuffed && CM.canmove && (CM.last_special <= world.time)) CM.changeNext_move(CLICK_CD_BREAKOUT) CM.last_special = world.time + CLICK_CD_BREAKOUT diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index deb84cdf5e4..b61d58223c6 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -199,29 +199,9 @@ return -//This is called when the mob is thrown into a dense turf -/mob/living/proc/turf_collision(var/turf/T, var/speed) - src.take_organ_damage(speed*5) - -/mob/living/proc/near_wall(var/direction,var/distance=1) - var/turf/T = get_step(get_turf(src),direction) - var/turf/last_turf = src.loc - var/i = 1 - - while(i>0 && i<=distance) - if(T.density) //Turf is a wall! - return last_turf - i++ - last_turf = T - T = get_step(T,direction) - - return 0 - -// End BS12 momentum-transfer code. - //Mobs on Fire /mob/living/proc/IgniteMob() - if(fire_stacks > 0) + if(fire_stacks > 0 && !on_fire) on_fire = 1 src.AddLuminosity(3) update_fire() @@ -237,7 +217,7 @@ return /mob/living/proc/adjust_fire_stacks(add_fire_stacks) //Adjusting the amount of fire_stacks we have on person - fire_stacks = Clamp(fire_stacks + add_fire_stacks, min = -20, max = 20) + fire_stacks = Clamp(fire_stacks + add_fire_stacks, min = -20, max = 20) /mob/living/proc/handle_fire() if(fire_stacks < 0) @@ -258,6 +238,26 @@ //Mobs on Fire end +//This is called when the mob is thrown into a dense turf +/mob/living/proc/turf_collision(var/turf/T, var/speed) + src.take_organ_damage(speed*5) + +/mob/living/proc/near_wall(var/direction,var/distance=1) + var/turf/T = get_step(get_turf(src),direction) + var/turf/last_turf = src.loc + var/i = 1 + + while(i>0 && i<=distance) + if(T.density) //Turf is a wall! + return last_turf + i++ + last_turf = T + T = get_step(T,direction) + + return 0 + +// End BS12 momentum-transfer code. + /mob/living/proc/grabbedby(mob/living/carbon/user,var/supress_message = 0) if(user == src || anchored) return 0 diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 7c235b0349a..1a683b9e183 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -36,9 +36,11 @@ var/cameraFollow = null var/tod = null // Time of death - var/update_slimes = 1 - on_fire = 0 //The "Are we on fire?" var + + var/on_fire = 0 //The "Are we on fire?" var var/fire_stacks = 0 //Tracks how many stacks of fire we have on, max is usually 20 + + var/update_slimes = 1 var/specialsauce = 0 //Has this person consumed enough special sauce? IF so they're a ticking time bomb of death. var/implanting = 0 //Used for the mind-slave implant var/silent = null //Can't talk. Value goes down every life proc. diff --git a/code/modules/mob/living/silicon/ai/freelook/update_triggers.dm b/code/modules/mob/living/silicon/ai/freelook/update_triggers.dm index 9458a768633..e7baed57748 100644 --- a/code/modules/mob/living/silicon/ai/freelook/update_triggers.dm +++ b/code/modules/mob/living/silicon/ai/freelook/update_triggers.dm @@ -49,8 +49,7 @@ // DOORS // Simply updates the visibility of the area when it opens/closes/destroyed. -/obj/machinery/door/update_nearby_tiles(need_rebuild) - . = ..(need_rebuild) +/obj/machinery/door/proc/update_freelok_sight() // Glass door glass = 1 // don't check then? if(!glass && cameranet) diff --git a/code/modules/mob/living/silicon/pai/software_modules.dm b/code/modules/mob/living/silicon/pai/software_modules.dm index 80dbd9811b4..41fc6bfcb6d 100644 --- a/code/modules/mob/living/silicon/pai/software_modules.dm +++ b/code/modules/mob/living/silicon/pai/software_modules.dm @@ -419,7 +419,7 @@ data["temperature"] = round(env.temperature) data["temperatureC"] = round(env.temperature-T0C) - var/t_moles = env.total_moles + var/t_moles = env.total_moles() var/gases[0] if(t_moles) var/n2[0] diff --git a/code/modules/mob/living/silicon/robot/examine.dm b/code/modules/mob/living/silicon/robot/examine.dm index 1bde793d3f6..94ca8afded2 100644 --- a/code/modules/mob/living/silicon/robot/examine.dm +++ b/code/modules/mob/living/silicon/robot/examine.dm @@ -50,4 +50,4 @@ msg += "\nIt is [pose]" usr << msg - return + return \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index 3810dba4e34..976708e4e1d 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -366,4 +366,4 @@ if(!on_fire) //Silicons don't gain stacks from hotspots, but hotspots can ignite them IgniteMob() -//Robots on fire +//Robots on fire \ No newline at end of file diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index 161ad5065dd..752b7c31dc5 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -6,8 +6,6 @@ w_class = 2 pressure_resistance = 2 - autoignition_temperature = 522 // Kelvin - /obj/item/weapon/folder/blue desc = "A blue folder." icon_state = "folder_blue" diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index f928cb8310c..a30412156ee 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -10,7 +10,7 @@ pressure_resistance = 10 var/amount = 30 //How much paper is in the bin. var/list/papers = new/list() //List of papers put in the bin for reference. - +/* autoignition_temperature = 519.15 // Kelvin /obj/item/weapon/paper_bin/ignite(var/temperature) @@ -24,7 +24,7 @@ papers=0 amount=0 update_icon() - +*///LINDA shit figure out later /obj/item/weapon/paper_bin/MouseDrop(atom/over_object) var/mob/M = usr if(M.restrained() || M.stat || !Adjacent(M)) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 9d7166614f2..26fb14f92e8 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -579,7 +579,7 @@ // called when on fire -/obj/machinery/light/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) +/obj/machinery/light/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(prob(max(0, exposed_temperature - 673))) //0% at <400C, 100% at >500C broken() diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index b59c01d9a23..9b16ca3130f 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -32,7 +32,7 @@ var/global/list/rad_collectors = list() P.air_contents.toxins = 0 eject() else - P.air_contents.adjust(tx = -0.001*drainratio) + P.air_contents.toxins -= 0.001*drainratio return diff --git a/code/modules/projectiles/guns/projectile/pneumatic.dm b/code/modules/projectiles/guns/projectile/pneumatic.dm index 50f5d33d1e8..305c9fb6f95 100644 --- a/code/modules/projectiles/guns/projectile/pneumatic.dm +++ b/code/modules/projectiles/guns/projectile/pneumatic.dm @@ -128,7 +128,7 @@ if(!tank || !..()) return //Only do this on a successful shot. - var/lost_gas_amount = tank.air_contents.total_moles*(pressure_setting/100) + var/lost_gas_amount = tank.air_contents.total_moles()*(pressure_setting/100) var/datum/gas_mixture/removed = tank.air_contents.remove(lost_gas_amount) user.loc.assume_air(removed) diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index e532af0e6c0..11fb7facc5f 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -104,7 +104,7 @@ /obj/item/projectile/bullet/incendiary/shell/Move() ..() var/turf/location = get_turf(src) - new/obj/fire(location) + new/obj/effect/hotspot(location) location.hotspot_expose(700, 50, 1) /obj/item/projectile/bullet/incendiary/shell/dragonsbreath diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index add60c68e58..6201723c6ec 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -223,7 +223,6 @@ datum reaction_turf(var/turf/simulated/T, var/volume) if (!istype(T)) return - var/CT = cooling_temperature src = null if(volume >= 3) if(T.wet >= 1) return @@ -245,10 +244,10 @@ datum for(var/mob/living/carbon/slime/M in T) M.apply_water() - var/hotspot = (locate(/obj/fire) in T) + var/hotspot = (locate(/obj/effect/hotspot) in T) if(hotspot && !istype(T, /turf/space)) var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() ) - lowertemp.temperature = max( min(lowertemp.temperature-(CT*1000),lowertemp.temperature / CT) ,0) + lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0) lowertemp.react() T.assume_air(lowertemp) qdel(hotspot) @@ -257,13 +256,13 @@ datum reaction_obj(var/obj/O, var/volume) src = null var/turf/T = get_turf(O) - var/hotspot = (locate(/obj/fire) in T) + var/hotspot = (locate(/obj/effect/hotspot) in T) if(hotspot && !istype(T, /turf/space)) var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() ) lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0) lowertemp.react() T.assume_air(lowertemp) - del(hotspot) + qdel(hotspot) if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/monkeycube)) var/obj/item/weapon/reagent_containers/food/snacks/monkeycube/cube = O if(!cube.wrapped) @@ -1135,6 +1134,7 @@ datum M.adjustToxLoss(3*REM) ..() return + reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with plasma is stronger than fuel! if(!istype(M, /mob/living)) return @@ -1767,13 +1767,13 @@ datum if(T.wet_overlay) T.overlays -= T.wet_overlay T.wet_overlay = null - var/hotspot = (locate(/obj/fire) in T) + var/hotspot = (locate(/obj/effect/hotspot) in T) if(hotspot) var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() ) lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0) lowertemp.react() T.assume_air(lowertemp) - del(hotspot) + qdel(hotspot) enzyme name = "Denatured Enzyme" diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 2fa095ec445..00f9a662b91 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -644,19 +644,13 @@ datum required_container = /obj/item/slime_extract/orange required_other = 1 on_reaction(var/datum/reagents/holder) - for(var/mob/O in viewers(get_turf_loc(holder.my_atom), null)) + feedback_add_details("slime_cores_used","[replacetext(name," ","_")]") + for(var/mob/O in viewers(get_turf(holder.my_atom), null)) O.show_message(text("\red The slime extract begins to vibrate violently !"), 1) sleep(50) - var/turf/location = get_turf(holder.my_atom.loc) - for(var/turf/simulated/floor/target_tile in range(0,location)) - - var/datum/gas_mixture/napalm = new - - napalm.toxins = 25 - napalm.temperature = 1400 - - target_tile.assume_air(napalm) - spawn (0) target_tile.hotspot_expose(700, 400) + var/turf/simulated/T = get_turf(holder.my_atom) + if(istype(T)) + T.atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, 50) //Yellow slimeoverload diff --git a/code/modules/reagents/newchem/drugs.dm b/code/modules/reagents/newchem/drugs.dm index b7012cb7b24..e8009abbe60 100644 --- a/code/modules/reagents/newchem/drugs.dm +++ b/code/modules/reagents/newchem/drugs.dm @@ -90,7 +90,7 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob) /datum/chemical_reaction/crank/on_reaction(var/datum/reagents/holder, var/created_volume) var/turf/T = get_turf(holder.my_atom) for(var/turf/turf in range(1,T)) - new /obj/fire(turf) + new /obj/effect/hotspot(turf) explosion(T,0,0,2) return diff --git a/code/modules/reagents/newchem/pyro.dm b/code/modules/reagents/newchem/pyro.dm index 906c9c092ce..910b34b9a6a 100644 --- a/code/modules/reagents/newchem/pyro.dm +++ b/code/modules/reagents/newchem/pyro.dm @@ -45,7 +45,7 @@ /datum/chemical_reaction/clf3/on_reaction(var/datum/reagents/holder, var/created_volume) var/turf/T = get_turf(holder.my_atom) for(var/turf/turf in range(1,T)) - new /obj/fire(turf) + new /obj/effect/hotspot(turf) return /datum/reagent/clf3/reaction_turf(var/turf/simulated/T, var/volume) @@ -58,7 +58,7 @@ if(prob(volume/10)) F.make_plating() if(istype(F, /turf/simulated/floor/)) - new /obj/fire(F) + new /obj/effect/hotspot(F) if(istype(T, /turf/simulated/wall/)) var/turf/simulated/wall/W = T if(prob(volume/10)) @@ -415,7 +415,7 @@ datum/reagent/blackpowder/reaction_turf(var/turf/T, var/volume) //oh shit return var/turf/simulated/T = get_turf(holder.my_atom) for(var/turf/simulated/turf in range(created_volume/10,T)) - new /obj/fire(turf) + new /obj/effect/hotspot(turf) return /datum/reagent/phlogiston/on_mob_life(var/mob/living/M as mob) @@ -558,7 +558,7 @@ datum/reagent/firefighting_foam/reaction_turf(var/turf/simulated/T, var/volume) src = null if(!istype(T, /turf/space)) new /obj/effect/decal/cleanable/flour/foam(T) //foam mess; clears up quickly. - var/hotspot = (locate(/obj/fire) in T) + var/hotspot = (locate(/obj/effect/hotspot) in T) if(hotspot && !istype(T, /turf/space)) var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() ) lowertemp.temperature = max( min(lowertemp.temperature-(CT*1000),lowertemp.temperature / CT) ,0) @@ -570,7 +570,7 @@ datum/reagent/firefighting_foam/reaction_turf(var/turf/simulated/T, var/volume) datum/reagent/firefighting_foam/reaction_obj(var/obj/O, var/volume) src = null var/turf/T = get_turf(O) - var/hotspot = (locate(/obj/fire) in T) + var/hotspot = (locate(/obj/effect/hotspot) in T) if(hotspot && !istype(T, /turf/space)) var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() ) lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0) diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 27472b7d732..d1506aa8dbc 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -405,6 +405,7 @@ //Actually transfer the gas var/datum/gas_mixture/removed = env.remove(transfer_moles) air_contents.merge(removed) + air_update_turf() // if full enough, switch to ready mode diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index e3daebc6b36..e999c34df17 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -117,21 +117,22 @@ removed.temperature = min((removed.temperature*heat_capacity + heating_power)/heat_capacity, 1000) env.merge(removed) + air_update_turf() /obj/machinery/r_n_d/server/attackby(var/obj/item/O as obj, var/mob/user as mob, params) if (disabled) return - + if (shocked) shock(user,50) - - if(istype(O, /obj/item/weapon/screwdriver)) + + if(istype(O, /obj/item/weapon/screwdriver)) default_deconstruction_screwdriver(user, "server_o", "server") return 1 - + if(exchange_parts(user, O)) return 1 - + if (panel_open) if(istype(O, /obj/item/weapon/crowbar)) griefProtection() @@ -141,7 +142,7 @@ /obj/machinery/r_n_d/server/attack_hand(mob/user as mob) if (disabled) return - + if (shocked) shock(user,50) return diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gasco2.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gasco2.dm index c9cafa4e718..df7fa75c848 100644 --- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gasco2.dm +++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gasco2.dm @@ -22,5 +22,5 @@ /datum/artifact_effect/gasco2/DoEffectAura() if(holder) var/datum/gas_mixture/env = holder.loc.return_air() - if(env && env.total_moles < max_pressure) + if(env && env.total_moles() < max_pressure) env.carbon_dioxide += pick(0, 0, 0.1, rand()) diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gasnitro.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gasnitro.dm index 527c2592aa9..55e667e5264 100644 --- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gasnitro.dm +++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gasnitro.dm @@ -19,5 +19,5 @@ /datum/artifact_effect/gasnitro/DoEffectAura() if(holder) var/datum/gas_mixture/env = holder.loc.return_air() - if(env && env.total_moles < max_pressure) + if(env && env.total_moles() < max_pressure) env.nitrogen += pick(0, 0, 0.1, rand()) diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gasoxy.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gasoxy.dm index d0daa6951fb..e4c30bd0cbd 100644 --- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gasoxy.dm +++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gasoxy.dm @@ -19,5 +19,5 @@ /datum/artifact_effect/gasoxy/DoEffectAura() if(holder) var/datum/gas_mixture/env = holder.loc.return_air() - if(env && env.total_moles < max_pressure) + if(env && env.total_moles() < max_pressure) env.oxygen += pick(0, 0, 0.1, rand()) diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gasplasma.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gasplasma.dm index c375e746e28..68719264f02 100644 --- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gasplasma.dm +++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gasplasma.dm @@ -19,5 +19,5 @@ /datum/artifact_effect/gasplasma/DoEffectAura() if(holder) var/datum/gas_mixture/env = holder.loc.return_air() - if(env && env.total_moles < max_pressure) + if(env && env.total_moles() < max_pressure) env.toxins += pick(0, 0, 0.1, rand()) diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gassleeping.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gassleeping.dm index 5ce5256736c..76cd29069f0 100644 --- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gassleeping.dm +++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_gassleeping.dm @@ -23,7 +23,7 @@ /datum/artifact_effect/gassleeping/DoEffectAura() if(holder) var/datum/gas_mixture/env = holder.loc.return_air() - if(env && env.total_moles < max_pressure) + if(env && env.total_moles() < max_pressure) var/datum/gas/sleeping_agent/trace_gas = new env.trace_gases += trace_gas trace_gas.moles = pick(0, 0, 0.1, rand()) diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm index 27f4fc41602..cea70a189a6 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -155,84 +155,67 @@ if(grav_pulling) supermatter_pull() - //Ok, get the air from the turf - var/datum/gas_mixture/removed = null - var/datum/gas_mixture/env = null + //Ok, get the air from the turf + var/datum/gas_mixture/env = L.return_air() - //ensure that damage doesn't increase too quickly due to super high temperatures resulting from no coolant, for example. We dont want the SM exploding before anyone can react. - //We want the cap to scale linearly with power (and explosion_point). Let's aim for a cap of 5 at power = 900 (based on testing, equals roughly 5% per SM alert announcement). - var/damage_inc_limit = (power/900)*(explosion_point/1000)*DAMAGE_RATE_LIMIT + //Remove gas from surrounding area + var/datum/gas_mixture/removed = env.remove(gasefficency * env.total_moles()) - if(!istype(L, /turf/space)) - env = L.return_air() - removed = env.remove(gasefficency * env.total_moles) //Remove gas from surrounding area + if(!removed || !removed.total_moles()) + damage += max((power-1600)/10, 0) + power = min(power, 1600) + return 1 - if(!env || !removed || !removed.total_moles) - damage += max(((power-(1600*POWER_FACTOR)))/10, 0) //exciting the supermatter in a vacuum means the internal energy is mostly locked inside. - else if (grav_pulling) //If supermatter is detonating, remove all air from the zone - env.remove(env.total_moles) + damage_archived = damage + damage = max( damage + ( (removed.temperature - 800) / 150 ) , 0 ) + //Ok, 100% oxygen atmosphere = best reaction + //Maxes out at 100% oxygen pressure + oxygen = max(min((removed.oxygen - (removed.nitrogen * NITROGEN_RETARDATION_FACTOR)) / MOLES_CELLSTANDARD, 1), 0) + + var/temp_factor = 50 + + if(oxygen > 0.8) + // with a perfect gas mix, make the power less based on heat + icon_state = "[base_icon_state]_glow" else - damage_archived = damage + // in normal mode, base the produced energy around the heat + temp_factor = 30 + icon_state = base_icon_state - damage = max( damage + min( ( (removed.temperature - 800) / 150 ), damage_inc_limit ) , 0 ) - //Ok, 100% oxygen atmosphere = best reaction - //Maxes out at 100% oxygen pressure - oxygen = max(min((removed.oxygen - (removed.nitrogen * NITROGEN_RETARDATION_FACTOR)) / MOLES_CELLSTANDARD, 1), 0) + power = max( (removed.temperature * temp_factor / T0C) * oxygen + power, 0) //Total laser power plus an overload - var/temp_factor = 100 + //We've generated power, now let's transfer it to the collectors for storing/usage + transfer_energy() - if(oxygen > 0.8) - // with a perfect gas mix, make the power less based on heat - icon_state = "[base_icon_state]_glow" - else - // in normal mode, base the produced energy around the heat - temp_factor = 60 - icon_state = base_icon_state + var/device_energy = power * REACTION_POWER_MODIFIER - power = max( (removed.temperature * temp_factor / T0C) * oxygen + power, 0) //Total laser power plus an overload + //To figure out how much temperature to add each tick, consider that at one atmosphere's worth + //of pure oxygen, with all four lasers firing at standard energy and no N2 present, at room temperature + //that the device energy is around 2140. At that stage, we don't want too much heat to be put out + //Since the core is effectively "cold" - //We've generated power, now let's transfer it to the collectors for storing/usage - transfer_energy() + //Also keep in mind we are only adding this temperature to (efficiency)% of the one tile the rock + //is on. An increase of 4*C @ 25% efficiency here results in an increase of 1*C / (#tilesincore) overall. + removed.temperature += (device_energy / THERMAL_RELEASE_MODIFIER) - var/device_energy = power * REACTION_POWER_MODIFIER + removed.temperature = max(0, min(removed.temperature, 2500)) - //To figure out how much temperature to add each tick, consider that at one atmosphere's worth - //of pure oxygen, with all four lasers firing at standard energy and no N2 present, at room temperature - //that the device energy is around 2140. At that stage, we don't want too much heat to be put out - //Since the core is effectively "cold" + //Calculate how much gas to release + removed.toxins += max(device_energy / PLASMA_RELEASE_MODIFIER, 0) - //Also keep in mind we are only adding this temperature to (efficiency)% of the one tile the rock - //is on. An increase of 4*C @ 25% efficiency here results in an increase of 1*C / (#tilesincore) overall. + removed.oxygen += max((device_energy + removed.temperature - T0C) / OXYGEN_RELEASE_MODIFIER, 0) - var/thermal_power = THERMAL_RELEASE_MODIFIER - - //This shouldn't be necessary. If the number of moles is low, then heat_capacity should be tiny. - //if(removed.total_moles < 35) thermal_power += 750 //If you don't add coolant, you are going to have a bad time. - - removed.temperature += ((device_energy * thermal_power) / removed.heat_capacity()) - - removed.temperature = max(0, min(removed.temperature, 10000)) - - //Calculate how much gas to release - removed.toxins += max(device_energy / PLASMA_RELEASE_MODIFIER, 0) - - removed.oxygen += max((device_energy + removed.temperature - T0C) / OXYGEN_RELEASE_MODIFIER, 0) - - removed.update_values() - - env.merge(removed) + env.merge(removed) for(var/mob/living/carbon/human/l in view(src, min(7, round(power ** 0.25)))) // If they can see it without mesons on. Bad on them. if(!istype(l.glasses, /obj/item/clothing/glasses/meson)) - l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1,get_dist(l, src)) ) ) ) + l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1, get_dist(l, src)) ) ) ) - //adjusted range so that a power of 600 (pretty high) results in 8 tiles, roughly the distance from the core to the engine monitoring room. - //at power of 1210 this becomes 9 tiles --> increases very very slowly. - for(var/mob/living/l in range(src, round((power / 0.146484375) ** 0.25))) - var/rads = (power / 10) * sqrt( 1 / get_dist(l, src) ) - l.apply_effect(rads, IRRADIATE) + for(var/mob/living/l in range(src, round((power / 100) ** 0.25))) + var/rads = (power / 10) * sqrt( 1 / max(get_dist(l, src),1) ) + l.apply_effect(irradiate=rads) - power -= (power/500)**3 //energy losses due to radiation + power -= (power/500)**3 return 1 @@ -354,11 +337,4 @@ if(defer_powernet_rebuild != 2) defer_powernet_rebuild = 0 - return - - -/obj/machinery/power/supermatter/GotoAirflowDest(n) //Supermatter not pushed around by airflow - return - -/obj/machinery/power/supermatter/RepelAirflowDest(n) - return + return \ No newline at end of file diff --git a/code/setup.dm b/code/setup.dm index 9816936ce2f..393de3e9723 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -10,6 +10,8 @@ #define CELL_VOLUME 2500 //liters in a cell #define MOLES_CELLSTANDARD (ONE_ATMOSPHERE*CELL_VOLUME/(T20C*R_IDEAL_GAS_EQUATION)) //moles in a 2.5 m^3 cell at 101.325 Pa and 20 degC +#define M_CELL_WITH_RATIO (MOLES_CELLSTANDARD * 0.005) + #define O2STANDARD 0.21 #define N2STANDARD 0.79 @@ -145,8 +147,6 @@ #define T20C 293.15 // 20degC #define TCMB 2.7 // -270.3degC -var/turf/space/Space_Tile = locate(/turf/space) // A space tile to reference when atmos wants to remove excess heat. - #define TANK_LEAK_PRESSURE (30.*ONE_ATMOSPHERE) // Tank starts leaking #define TANK_RUPTURE_PRESSURE (40.*ONE_ATMOSPHERE) // Tank spills all contents into atmosphere diff --git a/icons/effects/fire.dmi b/icons/effects/fire.dmi index da0f4c6271a..2b9071d25ef 100644 Binary files a/icons/effects/fire.dmi and b/icons/effects/fire.dmi differ diff --git a/icons/obj/doors/Doorfireglass.dmi b/icons/obj/doors/Doorfireglass.dmi new file mode 100644 index 00000000000..f00e6c2857e Binary files /dev/null and b/icons/obj/doors/Doorfireglass.dmi differ diff --git a/maps/cyberiad.dmm b/maps/cyberiad.dmm index 155349b3186..0c3b2571879 100644 --- a/maps/cyberiad.dmm +++ b/maps/cyberiad.dmm @@ -376,14 +376,14 @@ "ahl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/security/armoury) "ahm" = (/turf/simulated/floor,/area/security/armoury) "ahn" = (/obj/machinery/light{dir = 4},/obj/structure/rack,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/weapon/storage/box/teargas,/obj/effect/decal/warning_stripes/red/hollow,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/armoury) -"aho" = (/obj/machinery/door/firedoor/multi_tile,/obj/machinery/door/airlock/multi_tile/glass{req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/securehallway) -"ahp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/security/securehallway) +"aho" = (/obj/machinery/door/airlock/multi_tile/glass{req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/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/door/firedoor,/turf/simulated/floor,/area/security/securehallway) +"ahp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/security/securehallway) "ahq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/securehallway) "ahr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/securehallway) "ahs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/securehallway) "aht" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/securehallway) -"ahu" = (/obj/machinery/door/firedoor/multi_tile,/obj/machinery/door/airlock/multi_tile/glass{req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/securehallway) -"ahv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/securehallway) +"ahu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/securehallway) +"ahv" = (/obj/machinery/door/airlock/multi_tile/glass{req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/securehallway) "ahw" = (/turf/simulated/floor,/area/shuttle/gamma/station) "ahx" = (/turf/space,/area/shuttle/syndicate_elite/station) "ahy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/interrogation) @@ -569,9 +569,9 @@ "akW" = (/obj/structure/grille,/obj/structure/shuttle/window,/turf/simulated/floor/plating,/area/shuttle/siberia/station) "akX" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/siberia/station) "akY" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "labor_dock_north_airlock"; name = "exterior access button"; pixel_x = 3; pixel_y = -25; req_access_txt = "2"},/turf/space,/area) -"akZ" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass_security{name = "Firing Range"; req_access_txt = "1"},/turf/simulated/floor,/area/security/range) +"akZ" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass_security{name = "Firing Range"; req_access_txt = "1"},/turf/simulated/floor,/area/security/range) "ala" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/security/range) -"alb" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass_security{name = "Firing Range"; req_access_txt = "1"},/turf/simulated/floor,/area/security/range) +"alb" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass_security{name = "Firing Range"; req_access_txt = "1"},/turf/simulated/floor,/area/security/range) "alc" = (/obj/structure/closet/secure_closet/brigdoc,/turf/simulated/floor{icon_state = "white"},/area/security/medbay) "ald" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/security/medbay) "ale" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/security/medbay) @@ -654,7 +654,7 @@ "amD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prisonershuttle) "amE" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prisonershuttle) "amF" = (/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/security/prisonershuttle) -"amG" = (/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,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig) +"amG" = (/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,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig) "amH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig) "amI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/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 = ""},/turf/simulated/floor,/area/security/brig) "amJ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; 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 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/security/brig) @@ -706,7 +706,7 @@ "anD" = (/turf/simulated/floor{icon_state = "red"},/area/security/prisonershuttle) "anE" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "red"},/area/security/prisonershuttle) "anF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor{icon_state = "red"},/area/security/prisonershuttle) -"anG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "red"},/area/security/brig) +"anG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light,/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "red"},/area/security/brig) "anH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor{icon_state = "red"},/area/security/brig) "anI" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/security/brig) "anJ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/brig) @@ -740,7 +740,7 @@ "aol" = (/obj/machinery/mineral/labor_claim_console{machinedir = 1; pixel_x = 30; pixel_y = 0},/obj/machinery/mineral/input,/turf/simulated/shuttle/floor,/area/shuttle/siberia/station) "aom" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/security/interrogationobs) "aon" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/security/prisonershuttle) -"aoo" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_security{name = "Prisoner Processing"; req_access_txt = "1"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prisonershuttle) +"aoo" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Prisoner Processing"; req_access_txt = "1"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prisonershuttle) "aop" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable,/turf/simulated/floor/plating,/area/security/prisonershuttle) "aoq" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "BrigWest"; name = "Brig"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/security/prison/cell_block/B) "aor" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "BrigWest"; name = "Brig"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/prison/cell_block/B) @@ -1166,9 +1166,9 @@ "awv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "magistrate"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/magistrateoffice) "aww" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Magistrate's Office"; req_access_txt = "74"},/turf/simulated/floor,/area/magistrateoffice) "awx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Internal Affairs Office"; req_access_txt = "38"},/turf/simulated/floor,/area/lawoffice) -"awy" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) -"awz" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/fore) -"awA" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/hallway/primary/fore) +"awy" = (/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/fore) +"awz" = (/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) +"awA" = (/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/hallway/primary/fore) "awB" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor,/area/maintenance/fsmaint) "awC" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Security Maintenance APC"; pixel_y = 24},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "awD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/wood,/area/crew_quarters/mrchangs) @@ -1239,10 +1239,10 @@ "axQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/security/prison/cell_block/A) "axR" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "axS" = (/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 1; icon_state = "rightsecure"; name = "Secure Door"; req_access_txt = "63"},/turf/simulated/floor{dir = 2; icon_state = "redfull"; tag = "icon-redfull (NORTHWEST)"},/area/security/brig) -"axT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Mr. Chang's"},/turf/simulated/floor,/area/crew_quarters/mrchangs) +"axT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Mr. Chang's"},/turf/simulated/floor,/area/crew_quarters/mrchangs) "axU" = (/turf/simulated/wall,/area/security/brig) "axV" = (/obj/machinery/door/window/brigdoor{dir = 1; req_access_txt = "63"},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor{dir = 2; icon_state = "redfull"; tag = "icon-redfull (NORTHWEST)"},/area/security/brig) -"axW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Barber Shop"},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/civilian/barber) +"axW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Barber Shop"},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/civilian/barber) "axX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/security/detectives_office) "axY" = (/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) "axZ" = (/turf/simulated/floor/engine{name = "Holodeck Projector Floor"},/area/holodeck/alphadeck) @@ -1296,7 +1296,7 @@ "ayV" = (/turf/simulated/wall,/area/maintenance/fpmaint2) "ayW" = (/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/fpmaint2) "ayX" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "arrivals_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) -"ayY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"ayY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "ayZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aza" = (/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/fpmaint2) "azb" = (/turf/simulated/wall,/area/maintenance/fpmaint) @@ -1385,8 +1385,8 @@ "aAG" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/floor,/area/crew_quarters/fitness) "aAH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/crew_quarters/fitness) "aAI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "red"; dir = 4},/area/crew_quarters/fitness) -"aAJ" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor,/area/crew_quarters/fitness) -"aAK" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor,/area/crew_quarters/fitness) +"aAJ" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor,/area/crew_quarters/fitness) +"aAK" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor,/area/crew_quarters/fitness) "aAL" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/crew_quarters/fitness) "aAM" = (/obj/machinery/camera{c_tag = "Holodeck"; network = list("SS13")},/obj/machinery/alarm{pixel_y = 24},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/crew_quarters/fitness) "aAN" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/crew_quarters/fitness) @@ -1417,7 +1417,7 @@ "aBm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/table,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/item/stack/medical/advanced/bruise_pack,/obj/item/clothing/gloves/boxing,/turf/simulated/floor,/area/crew_quarters/fitness) "aBn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/crew_quarters/fitness) "aBo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness) -"aBp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/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/glass{name = "Dormitories"; req_access_txt = "0"},/turf/simulated/floor,/area/crew_quarters/fitness) +"aBp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Dormitories"; req_access_txt = "0"},/turf/simulated/floor,/area/crew_quarters/fitness) "aBq" = (/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,/area/crew_quarters/fitness) "aBr" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/crew_quarters/fitness) "aBs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/stool,/turf/simulated/floor{icon_state = "red"; dir = 4},/area/crew_quarters/fitness) @@ -1464,7 +1464,7 @@ "aCh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/fitness) "aCi" = (/obj/machinery/door/window/eastleft{name = "Boxing Ring"},/turf/simulated/floor/wood,/area/crew_quarters/fitness) "aCj" = (/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness) -"aCk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Dormitories"; req_access_txt = "0"},/turf/simulated/floor,/area/crew_quarters/fitness) +"aCk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Dormitories"; req_access_txt = "0"},/turf/simulated/floor,/area/crew_quarters/fitness) "aCl" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/crew_quarters/fitness) "aCm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/crew_quarters/fitness) "aCn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/stool,/turf/simulated/floor{icon_state = "green"; dir = 4},/area/crew_quarters/fitness) @@ -1478,7 +1478,7 @@ "aCv" = (/obj/item/stack/tile/wood,/turf/simulated/floor/plating,/area/maintenance/abandonedbar) "aCw" = (/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/simulated/floor/wood,/area/maintenance/abandonedbar) "aCx" = (/obj/structure/table/woodentable,/obj/item/trash/candle,/turf/simulated/floor/plating,/area/maintenance/abandonedbar) -"aCy" = (/obj/structure/grille,/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},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"aCy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aCz" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) "aCA" = (/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth{frequency = 1380; id_tag = "escape_pod_1_berth"; pixel_x = -25; pixel_y = 30; tag_door = "escape_pod_1_berth_hatch"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) "aCB" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/light{dir = 1},/obj/machinery/camera/xray{c_tag = "Arrivals Escape Pods"},/turf/simulated/floor,/area/hallway/secondary/entry) @@ -1508,7 +1508,7 @@ "aCZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aDa" = (/obj/machinery/computer/cryopod{density = 0; pixel_x = -32; pixel_y = 0},/obj/machinery/camera{c_tag = "Cryodorms"; c_tag_order = 999; dir = 4; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep) "aDb" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep) -"aDc" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "Cryogenics"; name = "Cryodorms"},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep) +"aDc" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{id_tag = "Cryogenics"; name = "Cryodorms"},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep) "aDd" = (/obj/structure/table/woodentable,/obj/item/device/paicard,/turf/simulated/floor,/area/crew_quarters/fitness) "aDe" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/wood,/area/crew_quarters/fitness) "aDf" = (/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced,/turf/simulated/floor/wood,/area/crew_quarters/fitness) @@ -1517,8 +1517,8 @@ "aDi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/crew_quarters/fitness) "aDj" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/crew_quarters/fitness) "aDk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor{icon_state = "green"; dir = 4},/area/crew_quarters/fitness) -"aDl" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor,/area/crew_quarters/fitness) -"aDm" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor,/area/crew_quarters/fitness) +"aDl" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor,/area/crew_quarters/fitness) +"aDm" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor,/area/crew_quarters/fitness) "aDn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light/small,/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor,/area/crew_quarters/fitness) "aDo" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/crew_quarters/fitness) "aDp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/security/brig) @@ -1528,7 +1528,7 @@ "aDt" = (/turf/simulated/floor/wood{broken = 1; icon_state = "wood-broken"},/area/maintenance/abandonedbar) "aDu" = (/obj/item/trash/liquidfood,/turf/simulated/floor/wood,/area/maintenance/abandonedbar) "aDv" = (/obj/structure/sink/kitchen{pixel_y = 25},/obj/machinery/light_construct/small{dir = 4},/turf/simulated/floor/wood{broken = 1; icon_state = "wood-broken"},/area/maintenance/abandonedbar) -"aDw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"aDw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aDx" = (/turf/simulated/floor{icon_state = "warning"},/area/hallway/secondary/entry) "aDy" = (/turf/simulated/floor,/area/hallway/secondary/entry) "aDz" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor{icon_state = "warning"},/area/hallway/secondary/entry) @@ -1563,7 +1563,7 @@ "aEc" = (/obj/machinery/power/apc{dir = 1; name = "EVA APC"; pixel_x = 3; pixel_y = 23},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/ai_monitored/storage/eva) "aEd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/ai_monitored/storage/eva) "aEe" = (/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/ai_monitored/storage/eva) -"aEf" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_command{name = "Softsuits"; req_access_txt = "18"},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) +"aEf" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Softsuits"; req_access_txt = "18"},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "aEg" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "aEh" = (/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore) "aEi" = (/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) @@ -1600,7 +1600,7 @@ "aEN" = (/obj/structure/table/woodentable,/obj/item/trash/plate,/turf/simulated/floor/wood,/area/maintenance/abandonedbar) "aEO" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/patron,/obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims,/turf/simulated/floor/plating,/area/maintenance/abandonedbar) "aEP" = (/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/hallway/secondary/entry) -"aEQ" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"aEQ" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aER" = (/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) "aES" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/hallway/secondary/entry) "aET" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/hallway/secondary/entry) @@ -1670,10 +1670,10 @@ "aGf" = (/obj/structure/closet/emcloset,/turf/simulated/floor{icon_state = "warning"},/area/hallway/secondary/entry) "aGg" = (/obj/machinery/camera{c_tag = "Arrivals North"; dir = 1},/obj/effect/landmark/start{name = "Civilian"},/turf/simulated/floor{icon_state = "warning"},/area/hallway/secondary/entry) "aGh" = (/obj/machinery/vending/coffee,/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/hallway/secondary/entry) -"aGi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/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/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"aGj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"aGk" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) -"aGl" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry) +"aGi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"aGj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/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/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"aGk" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) +"aGl" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry) "aGm" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 6; level = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/fpmaint2) "aGn" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aGo" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) @@ -1695,7 +1695,7 @@ "aGE" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/table/reinforced,/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/rods{amount = 50},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva) "aGF" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) "aGG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness) -"aGH" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Unisex Showers"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) +"aGH" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Unisex Showers"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aGI" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aGJ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/beach/water{icon_state = "seadeep"},/area/crew_quarters/fitness) "aGK" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/mob/living/simple_animal/crab/Coffee,/turf/simulated/floor/beach/water{icon_state = "seadeep"},/area/crew_quarters/fitness) @@ -1803,14 +1803,14 @@ "aII" = (/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) "aIJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "dark"},/area/gateway) "aIK" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/gateway) -"aIL" = (/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) +"aIL" = (/obj/machinery/door/firedoor,/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) "aIM" = (/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva) "aIN" = (/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) "aIO" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva) -"aIP" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_command{name = "Xeno Hardsuits"; req_access_txt = "18"},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) +"aIP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Xeno Hardsuits"; req_access_txt = "18"},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "aIQ" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) -"aIR" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "neutral"},/area/crew_quarters/fitness) -"aIS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor/border_only,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness) +"aIR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness) +"aIS" = (/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 8; icon_state = "neutral"},/area/crew_quarters/fitness) "aIT" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aIU" = (/obj/machinery/door/airlock{name = "Unisex Showers"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aIV" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) @@ -1886,11 +1886,11 @@ "aKn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "aKo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/table/reinforced,/obj/item/weapon/book/manual/evaguide,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva) "aKp" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/weapon/tank/nitrogen,/obj/item/clothing/suit/space/eva/vox,/obj/item/clothing/mask/breath/vox,/obj/item/clothing/head/helmet/space/eva/vox,/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/ai_monitored/storage/eva) -"aKq" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore) -"aKr" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) +"aKq" = (/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore) +"aKr" = (/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) "aKs" = (/obj/machinery/camera{c_tag = "Dormitories South"; c_tag_order = 999; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "neutral"},/area/crew_quarters/fitness) "aKt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness) -"aKu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Unisex Restrooms"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) +"aKu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Unisex Restrooms"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aKv" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aKw" = (/obj/machinery/power/apc{dir = 4; name = "Dormitory Bathrooms APC"; pixel_x = 26; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aKx" = (/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},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/security/prison/cell_block/C) @@ -2012,9 +2012,9 @@ "aMJ" = (/obj/structure/window/full/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station) "aMK" = (/obj/effect/landmark{name = "Observer-Start"},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "aML" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/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{dir = 4; icon_state = "whitecorner"},/area/hallway/secondary/entry) -"aMM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/security{name = "Security Checkpoint"; req_access = null; req_access_txt = "1"},/turf/simulated/floor,/area/security/checkpoint2) -"aMN" = (/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},/turf/simulated/floor/plating,/area/security/checkpoint2) -"aMO" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/window/brigdoor{dir = 1; name = "Security Checkpoint"; req_access_txt = "63"},/turf/simulated/floor{icon_state = "delivery"},/area/security/checkpoint2) +"aMM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/security{name = "Security Checkpoint"; req_access = null; req_access_txt = "1"},/turf/simulated/floor,/area/security/checkpoint2) +"aMN" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/door/window/brigdoor{dir = 1; name = "Security Checkpoint"; req_access_txt = "63"},/turf/simulated/floor{icon_state = "delivery"},/area/security/checkpoint2) +"aMO" = (/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{dir = 2},/turf/simulated/floor/plating,/area/security/checkpoint2) "aMP" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aMQ" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aMR" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) @@ -2032,15 +2032,15 @@ "aNd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/gateway) "aNe" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/gateway) "aNf" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/l3closet/scientist,/obj/effect/decal/warning_stripes/northwest,/turf/simulated/floor,/area/gateway) -"aNg" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_command{name = "Entertainer Suits"; req_access_txt = "0"; req_one_access_txt = "18;46"},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) +"aNg" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Entertainer Suits"; req_access_txt = "0"; req_one_access_txt = "18;46"},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "aNh" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) -"aNi" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/north) -"aNj" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central/north) -"aNk" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/hallway/primary/central/north) +"aNi" = (/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/central/north) +"aNj" = (/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/north) +"aNk" = (/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/hallway/primary/central/north) "aNl" = (/turf/simulated/wall/r_wall,/area/security/prison/cell_block/A) "aNm" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"aNn" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Dormitories"; req_access_txt = "0"},/turf/simulated/floor{dir = 8; icon_state = "neutral"},/area/crew_quarters/fitness) -"aNo" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Dormitories"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness) +"aNn" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Dormitories"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness) +"aNo" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Dormitories"; req_access_txt = "0"},/turf/simulated/floor{dir = 8; icon_state = "neutral"},/area/crew_quarters/fitness) "aNp" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aNq" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aNr" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) @@ -2088,7 +2088,7 @@ "aOh" = (/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/escapepodbay) "aOi" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/shuttle/arrival/station) "aOj" = (/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},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/secondary/entry) -"aOk" = (/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) +"aOk" = (/obj/machinery/door/firedoor{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) "aOl" = (/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) "aOm" = (/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) "aOn" = (/turf/simulated/floor{icon_state = "bot"},/area/hallway/secondary/entry) @@ -2111,7 +2111,7 @@ "aOE" = (/turf/simulated/floor{icon_state = "delivery"},/area/storage/primary) "aOF" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Tool Storage"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "bot"},/area/storage/primary) "aOG" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/turf/simulated/floor,/area/storage/primary) -"aOH" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/hallway/primary/port) +"aOH" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/obj/structure/cable{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/hallway/primary/port) "aOI" = (/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) "aOJ" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/simulated/floor,/area/gateway) "aOK" = (/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) @@ -2140,7 +2140,7 @@ "aPh" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aPi" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aPj" = (/turf/simulated/wall,/area/crew_quarters/bar) -"aPk" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Bar Office"; req_access_txt = "25"},/turf/simulated/floor,/area/crew_quarters/bar) +"aPk" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Bar Office"; req_access_txt = "25"},/turf/simulated/floor,/area/crew_quarters/bar) "aPl" = (/turf/simulated/wall,/area/crew_quarters/mrchangs) "aPm" = (/obj/machinery/door/airlock/maintenance{name = "Bar Maintenance"; req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aPn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/sink/kitchen{pixel_y = 28},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) @@ -2176,33 +2176,33 @@ "aPR" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/space,/area/shuttle/arrival/station) "aPS" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aPT" = (/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/hallway/secondary/entry) -"aPU" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor{icon_state = "neutralcorner"; dir = 2},/area/hallway/secondary/entry) +"aPU" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/turf/simulated/floor{icon_state = "neutralcorner"; dir = 2},/area/hallway/secondary/entry) "aPV" = (/turf/simulated/floor{icon_state = "neutral"},/area/hallway/secondary/entry) "aPW" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/turf/simulated/floor{icon_state = "neutral"},/area/hallway/secondary/entry) "aPX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/hallway/secondary/entry) "aPY" = (/turf/simulated/wall,/area/hallway/primary/port) "aPZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/storage/primary) -"aQa" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/storage/primary) +"aQa" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/storage/primary) "aQb" = (/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/storage/primary) -"aQc" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/storage/primary) +"aQc" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/storage/primary) "aQd" = (/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/storage/primary) "aQe" = (/turf/simulated/wall/r_wall,/area/hallway/primary/port) -"aQf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/hallway/primary/port) -"aQg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/hallway/primary/port) -"aQh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor/plating,/area/hallway/primary/port) -"aQi" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/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) -"aQj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor/plating,/area/hallway/primary/port) -"aQk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/hallway/primary/port) +"aQf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/hallway/primary/port) +"aQg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/hallway/primary/port) +"aQh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor{dir = 2},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor/plating,/area/hallway/primary/port) +"aQi" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor/plating,/area/hallway/primary/port) +"aQj" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/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) +"aQk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/hallway/primary/port) "aQl" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"aQm" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/command{name = "Gateway Access"; req_access_txt = "62"},/turf/simulated/floor,/area/gateway) -"aQn" = (/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,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/poddoor/shutters{dir = 2; id = "stationawaygate"; name = "Gateway Access Shutters"},/turf/simulated/floor,/area/gateway) -"aQo" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/poddoor/shutters{dir = 2; id = "stationawaygate"; name = "Gateway Access Shutters"},/turf/simulated/floor,/area/gateway) +"aQm" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/command{name = "Gateway Access"; req_access_txt = "62"},/turf/simulated/floor,/area/gateway) +"aQn" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/poddoor/shutters{dir = 2; id = "stationawaygate"; name = "Gateway Access Shutters"},/turf/simulated/floor,/area/gateway) +"aQo" = (/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,/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/poddoor/shutters{dir = 2; id = "stationawaygate"; name = "Gateway Access Shutters"},/turf/simulated/floor,/area/gateway) "aQp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/civilian/barber) "aQq" = (/turf/simulated/wall/r_wall,/area/hallway/primary/central/nw) "aQr" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aQs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) "aQt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable,/obj/structure/sign/securearea,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) -"aQu" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_command{name = "E.V.A."; req_access_txt = "0"; req_one_access_txt = "18"},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) +"aQu" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "E.V.A."; req_access_txt = "0"; req_one_access_txt = "18"},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "aQv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) "aQw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/cable,/obj/structure/sign/securearea,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) "aQx" = (/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) @@ -2249,7 +2249,7 @@ "aRm" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/wood,/area/library) "aRn" = (/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},/obj/machinery/camera{c_tag = "Chapel Crematorium"; dir = 4; network = list("SS13")},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) "aRo" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) -"aRp" = (/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{name = "Crematorium"; req_access_txt = "27"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) +"aRp" = (/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,/obj/machinery/door/airlock{name = "Crematorium"; req_access_txt = "27"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) "aRq" = (/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{icon_state = "grimy"},/area/chapel/office) "aRr" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) "aRs" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main) @@ -2268,9 +2268,9 @@ "aRF" = (/obj/structure/table/woodentable,/obj/machinery/light/small/lamp/green{pixel_x = 1; pixel_y = 5},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) "aRG" = (/obj/machinery/vending/cigarette,/turf/simulated/floor{icon_state = "dark"},/area/hallway/secondary/entry) "aRH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/hallway/secondary/entry) -"aRI" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/light{dir = 1},/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_y = 24; tag = "icon-direction_evac (EAST)"},/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_y = 32; tag = "icon-direction_med (EAST)"},/turf/simulated/floor,/area/hallway/secondary/entry) +"aRI" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/light{dir = 1},/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_y = 24; tag = "icon-direction_evac (EAST)"},/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_y = 32; tag = "icon-direction_med (EAST)"},/turf/simulated/floor,/area/hallway/secondary/entry) "aRJ" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/primary/port) -"aRK" = (/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor,/area/hallway/primary/port) +"aRK" = (/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/turf/simulated/floor,/area/hallway/primary/port) "aRL" = (/turf/simulated/floor,/area/hallway/primary/port) "aRM" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 2; icon_state = "0-2"},/turf/simulated/floor,/area/hallway/primary/port) "aRN" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/hallway/primary/port) @@ -2278,7 +2278,7 @@ "aRP" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1},/turf/simulated/floor,/area/hallway/primary/port) "aRQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/port) "aRR" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/port) -"aRS" = (/obj/machinery/light{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/hallway/primary/port) +"aRS" = (/obj/machinery/light{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/hallway/primary/port) "aRT" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/primary/port) "aRU" = (/obj/machinery/camera{c_tag = "Port Hallway 2"; dir = 2},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/primary/port) "aRV" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/primary/port) @@ -2287,9 +2287,9 @@ "aRY" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/port) "aRZ" = (/obj/machinery/light{dir = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/hallway/primary/port) "aSa" = (/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/hallway/primary/port) -"aSb" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor,/area/hallway/primary/port) +"aSb" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/turf/simulated/floor,/area/hallway/primary/port) "aSc" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/primary/central/nw) -"aSd" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor,/area/hallway/primary/central/nw) +"aSd" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/turf/simulated/floor,/area/hallway/primary/central/nw) "aSe" = (/turf/simulated/floor,/area/hallway/primary/central/nw) "aSf" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/turf/simulated/floor,/area/hallway/primary/central/nw) "aSg" = (/obj/machinery/camera{c_tag = "Central Hallway North-West"; dir = 2; network = list("SS13")},/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor,/area/hallway/primary/central/nw) @@ -2297,7 +2297,7 @@ "aSi" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Central Hall NW APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor,/area/hallway/primary/central/nw) "aSj" = (/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/primary/central/nw) "aSk" = (/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central/nw) -"aSl" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 1; icon_state = "bluecorner"},/area/hallway/primary/central/nw) +"aSl" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 1; icon_state = "bluecorner"},/area/hallway/primary/central/nw) "aSm" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "L1"},/area/hallway/primary/central/north) "aSn" = (/turf/simulated/floor{icon_state = "L3"},/area/hallway/primary/central/north) "aSo" = (/turf/simulated/floor{icon_state = "L5"},/area/hallway/primary/central/north) @@ -2307,7 +2307,7 @@ "aSs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{desc = ""; icon_state = "L13"; name = "floor"},/area/hallway/primary/central/north) "aSt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "L15"},/area/hallway/primary/central/north) "aSu" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/hallway/primary/central/north) -"aSv" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/light{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central/ne) +"aSv" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/light{dir = 1},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/central/ne) "aSw" = (/turf/simulated/floor{icon_state = "neutralcorner"; dir = 4},/area/hallway/primary/central/ne) "aSx" = (/turf/simulated/floor{icon_state = "neutralcorner"; dir = 1},/area/hallway/primary/central/ne) "aSy" = (/obj/machinery/vending/coffee,/turf/simulated/floor{icon_state = "dark"},/area/hallway/secondary/entry) @@ -2357,21 +2357,21 @@ "aTq" = (/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) "aTr" = (/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) "aTs" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) -"aTt" = (/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) -"aTu" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"aTt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Escape Pod Bay"},/turf/simulated/floor,/area/escapepodbay) +"aTu" = (/obj/machinery/door/firedoor{dir = 2},/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aTv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aTw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aTx" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) "aTy" = (/obj/machinery/hologram/holopad,/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/hallway/secondary/entry) -"aTz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"aTz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aTA" = (/obj/structure/table/woodentable,/obj/item/toy/cards/deck,/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) "aTB" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/chips,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/turf/simulated/floor/carpet,/area/hallway/secondary/entry) "aTC" = (/turf/simulated/floor/carpet,/area/hallway/secondary/entry) "aTD" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 8},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) "aTE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table/reinforced,/obj/item/stack/packageWrap,/obj/item/weapon/pen/blue{pixel_x = 0; pixel_y = 4},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/obj/item/weapon/book/manual/barman_recipes,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aTF" = (/turf/simulated/floor{desc = "\"This is a plaque in honour of our comrades on the G4407 Stations. Hopefully TG4407 model can live up to your fame and fortune.\" Scratched in beneath that is a crude image of a meteor and a spaceman. The spaceman is laughing. The meteor is exploding."; dir = 4; icon_state = "plaque"; name = "Comemmorative Plaque"; nitrogen = 30; oxygen = 70; temperature = 80},/area/hallway/secondary/entry) -"aTG" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor,/area/hallway/secondary/entry) -"aTH" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CHW"; location = "Lockers"},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor,/area/hallway/primary/port) +"aTG" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/turf/simulated/floor,/area/hallway/secondary/entry) +"aTH" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CHW"; location = "Lockers"},/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/turf/simulated/floor,/area/hallway/primary/port) "aTI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/hallway/primary/port) "aTJ" = (/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) "aTK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/hallway/primary/port) @@ -2380,7 +2380,7 @@ "aTN" = (/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) "aTO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/hallway/primary/port) "aTP" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/hallway/primary/port) -"aTQ" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/hallway/primary/port) +"aTQ" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/hallway/primary/port) "aTR" = (/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) "aTS" = (/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) "aTT" = (/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) @@ -2391,7 +2391,7 @@ "aTY" = (/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) "aTZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/hallway/primary/central/nw) "aUa" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/hallway/primary/central/nw) -"aUb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central/nw) +"aUb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/central/nw) "aUc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "L2"},/area/hallway/primary/central/north) "aUd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "L4"},/area/hallway/primary/central/north) "aUe" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "L6"},/area/hallway/primary/central/north) @@ -2401,7 +2401,7 @@ "aUi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{desc = ""; icon_state = "L14"},/area/hallway/primary/central/north) "aUj" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor{icon_state = "L16"},/area/hallway/primary/central/north) "aUk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/north) -"aUl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central/ne) +"aUl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/central/ne) "aUm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/ne) "aUn" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/hallway/primary/central/ne) "aUo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/hallway/primary/central/ne) @@ -2424,11 +2424,11 @@ "aUF" = (/mob/living/simple_animal/cow{name = "Betsy"},/turf/simulated/floor/grass,/area/hydroponics) "aUG" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/grass,/area/hydroponics) "aUH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/security/prison/cell_block/A) -"aUI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/turf/simulated/floor,/area/hydroponics) +"aUI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/turf/simulated/floor,/area/hydroponics) "aUJ" = (/obj/machinery/bookbinder{pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor/wood,/area/library) "aUK" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/library) "aUL" = (/obj/machinery/photocopier,/turf/simulated/floor/wood,/area/library) -"aUM" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Chapel Office"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) +"aUM" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Chapel Office"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) "aUN" = (/obj/machinery/door/morgue{dir = 2; name = "Confession Booth (Chaplain)"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aUO" = (/obj/machinery/light/small{dir = 1},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = 25},/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aUP" = (/obj/machinery/camera{c_tag = "Departure Lounge North"; dir = 4; network = list("SS13")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/secondary/exit) @@ -2444,13 +2444,13 @@ "aUZ" = (/obj/item/device/radio/beacon,/obj/machinery/camera{c_tag = "Arrivals South"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) "aVa" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) "aVb" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/hallway/secondary/entry) -"aVc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"aVd" = (/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/secondary/entry) +"aVc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"aVd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aVe" = (/obj/machinery/camera{c_tag = "Arrivals Center"; dir = 4; network = list("SS13")},/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) "aVf" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/fancy/cigarettes{pixel_y = 2},/obj/item/weapon/lighter{pixel_x = 4; pixel_y = 2},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) "aVg" = (/obj/structure/table/woodentable,/turf/simulated/floor/carpet,/area/hallway/secondary/entry) "aVh" = (/obj/machinery/vending/cola,/turf/simulated/floor{icon_state = "dark"},/area/hallway/secondary/entry) -"aVi" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor,/area/hallway/primary/port) +"aVi" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/turf/simulated/floor,/area/hallway/primary/port) "aVj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/primary/port) "aVk" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor,/area/hallway/primary/port) "aVl" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor,/area/hallway/primary/port) @@ -2460,28 +2460,28 @@ "aVp" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/port) "aVq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor,/area/hallway/primary/port) "aVr" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2 (EAST)"; icon_state = "pipe-j2"; dir = 4},/turf/simulated/floor,/area/hallway/primary/port) -"aVs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor,/area/hallway/primary/port) +"aVs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/turf/simulated/floor,/area/hallway/primary/port) "aVt" = (/obj/structure/disposalpipe/segment{dir = 4},/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/hallway/primary/port) "aVu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/port) "aVv" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Port Hallway"; dir = 1},/turf/simulated/floor,/area/hallway/primary/port) "aVw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/primary/port) "aVx" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor,/area/hallway/primary/port) "aVy" = (/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,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/hallway/primary/port) -"aVz" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/port) +"aVz" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/port) "aVA" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/central/nw) -"aVB" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/central/nw) +"aVB" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/central/nw) "aVC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/central/nw) "aVD" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=QM"; location = "CHW"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/central/nw) "aVE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/nw) "aVF" = (/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{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/nw) "aVG" = (/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/nw) -"aVH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/nw) +"aVH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/nw) "aVI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/north) "aVJ" = (/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/north) "aVK" = (/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{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/north) "aVL" = (/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{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/north) "aVM" = (/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; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/north) -"aVN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/ne) +"aVN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/ne) "aVO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/ne) "aVP" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/hallway/primary/central/ne) "aVQ" = (/obj/machinery/slot_machine,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) @@ -2531,8 +2531,8 @@ "aWI" = (/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) "aWJ" = (/obj/machinery/vending/snack,/turf/simulated/floor{icon_state = "dark"},/area/hallway/secondary/entry) "aWK" = (/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) -"aWL" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor,/area/crew_quarters/locker) -"aWM" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/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,/area/crew_quarters/locker) +"aWL" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/turf/simulated/floor,/area/crew_quarters/locker) +"aWM" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/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,/area/crew_quarters/locker) "aWN" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/port) "aWO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock{name = "Port Emergency Storage"; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/storage/emergency2) "aWP" = (/obj/structure/table,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor,/area/hallway/primary/port) @@ -2565,11 +2565,11 @@ "aXq" = (/turf/simulated/floor/wood,/area/crew_quarters/bar) "aXr" = (/obj/structure/noticeboard{pixel_y = 32},/turf/simulated/floor/wood,/area/crew_quarters/bar) "aXs" = (/obj/machinery/camera{c_tag = "Bar East"; network = list("SS13")},/obj/structure/flora/kirbyplants,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"aXt" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "kitchenbar"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/kitchen) +"aXt" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "kitchenbar"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/kitchen) "aXu" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/light_switch{pixel_x = 0; pixel_y = 25},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "aXv" = (/obj/structure/sink/kitchen{pixel_y = 28},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "aXw" = (/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{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) -"aXx" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Hydroponics Pasture"; req_access_txt = "28"},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) +"aXx" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Hydroponics Pasture"; req_access_txt = "28"},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "aXy" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/hallway/primary/fore) "aXz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/hallway/primary/fore) "aXA" = (/obj/machinery/botany/editor,/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) @@ -2605,7 +2605,7 @@ "aYe" = (/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) "aYf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/entry) "aYg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/primary/port) -"aYh" = (/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) +"aYh" = (/obj/machinery/door/firedoor{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) "aYi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/hallway/secondary/entry) "aYj" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/hallway/secondary/entry) "aYk" = (/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/hallway/secondary/entry) @@ -2635,7 +2635,7 @@ "aYI" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/table,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/floor/plating,/area/storage/emergency2) "aYJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/storage/emergency2) "aYK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/storage/tools) -"aYL" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Auxiliary Tool Storage"; req_access_txt = "12"},/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,/area/storage/tools) +"aYL" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Auxiliary Tool Storage"; req_access_txt = "12"},/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,/area/storage/tools) "aYM" = (/turf/simulated/wall,/area/storage/tools) "aYN" = (/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/nw) "aYO" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/wall,/area/hallway/primary/fore) @@ -2687,7 +2687,7 @@ "aZI" = (/obj/machinery/light,/turf/simulated/floor{dir = 2; icon_state = "arrival"},/area/hallway/secondary/entry) "aZJ" = (/turf/simulated/floor{dir = 8; icon_state = "whitecorner"},/area/hallway/secondary/entry) "aZK" = (/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,/area/hallway/secondary/entry) -"aZL" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor,/area/hallway/secondary/entry) +"aZL" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/turf/simulated/floor,/area/hallway/secondary/entry) "aZM" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor,/area/hallway/secondary/entry) "aZN" = (/obj/machinery/firealarm{dir = 2; pixel_y = -24},/turf/simulated/floor,/area/hallway/secondary/entry) "aZO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor,/area/hallway/secondary/entry) @@ -2759,10 +2759,10 @@ "bbc" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/exit) "bbd" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/exit) "bbe" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/exit) -"bbf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"bbg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"bbh" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor,/area/hallway/secondary/entry) -"bbi" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/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,/obj/machinery/status_display{pixel_x = 32},/turf/simulated/floor,/area/hallway/secondary/entry) +"bbf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"bbg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"bbh" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/turf/simulated/floor,/area/hallway/secondary/entry) +"bbi" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/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,/obj/machinery/status_display{pixel_x = 32},/turf/simulated/floor,/area/hallway/secondary/entry) "bbj" = (/turf/simulated/wall,/area/security/vacantoffice) "bbk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/wall,/area/mimeoffice) "bbl" = (/turf/simulated/floor/plating,/area/maintenance/port) @@ -2841,7 +2841,7 @@ "bcG" = (/turf/simulated/floor/plating,/area/hallway/secondary/exit) "bcH" = (/obj/machinery/door/airlock/external{aiControlDisabled = 1; frequency = 1379; hackProof = 1; icon_state = "door_locked"; id_tag = "escape_dock_north_outer"; locked = 1; name = "Escape Airlock"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/hallway/secondary/exit) "bcI" = (/turf/space,/area/shuttle/transport1/station) -"bcJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"bcJ" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/window/eastleft{name = "Hydroponics Desk"; req_access_txt = "35"},/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Kitchen Desk"; req_access_txt = "28"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/hydroponics) "bcK" = (/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,/obj/machinery/camera{c_tag = "Arrivals Auxiliary Docking North"; dir = 8; network = list("SS13")},/turf/simulated/floor,/area/hallway/secondary/entry) "bcL" = (/turf/simulated/floor/wood,/area/security/vacantoffice) "bcM" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor/wood,/area/security/vacantoffice) @@ -2864,9 +2864,9 @@ "bdd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/storage/tools) "bde" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/storage/tools) "bdf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/central/nw) -"bdg" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 5; icon_state = "blue"},/area/hallway/primary/central/nw) +"bdg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "bdh" = (/obj/machinery/vending/cart,/turf/simulated/floor,/area/quartermaster/office) -"bdi" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/bridge) +"bdi" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 5; icon_state = "blue"},/area/hallway/primary/central/nw) "bdj" = (/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/bridge) "bdk" = (/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/bridge) "bdl" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/bridge) @@ -2878,8 +2878,8 @@ "bdr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "browncorner"; tag = "icon-browncorner (EAST)"},/area/bridge) "bds" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/bridge) "bdt" = (/turf/simulated/floor{tag = "icon-browncorner (EAST)"; icon_state = "browncorner"; dir = 4},/area/bridge) -"bdu" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/bridge) -"bdv" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/hallway/primary/central/ne) +"bdu" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/bridge) +"bdv" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/bridge) "bdw" = (/obj/machinery/camera{c_tag = "Bridge East Entrance"; dir = 2; network = list("SS13")},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central/ne) "bdx" = (/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central/ne) "bdy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/wood,/area/crew_quarters/bar) @@ -2915,8 +2915,8 @@ "bec" = (/obj/item/flag/nt,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/hallway/secondary/exit) "bed" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/exit) "bee" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/exit) -"bef" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/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/hallway/secondary/entry) -"beg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"bef" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/hallway/primary/central/ne) +"beg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "beh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "bei" = (/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/security/vacantoffice) "bej" = (/obj/structure/table/woodentable,/obj/machinery/light/small/lamp,/turf/simulated/floor/wood,/area/security/vacantoffice) @@ -2950,9 +2950,9 @@ "beL" = (/obj/structure/closet/toolcloset,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/storage/tools) "beM" = (/obj/structure/closet/toolcloset,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor,/area/storage/tools) "beN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/storage/tools) -"beO" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/hallway/primary/central/nw) +"beO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/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{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "beP" = (/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/bridge) -"beQ" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/bridge) +"beQ" = (/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/hallway/primary/central/nw) "beR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/turf/simulated/floor,/area/bridge) "beS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/bridge) "beT" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/bridge) @@ -2970,9 +2970,9 @@ "bff" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/bridge) "bfg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/bridge) "bfh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/bridge) -"bfi" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/bridge) +"bfi" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/bridge) "bfj" = (/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/obj/structure/disposalpipe/segment{dir = 4},/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/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/bridge) -"bfk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/hallway/primary/central/ne) +"bfk" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/bridge) "bfl" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/ne) "bfm" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/ne) "bfn" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/central/ne) @@ -2996,10 +2996,10 @@ "bfF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/carpet,/area/library) "bfG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/carpet,/area/library) "bfH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor/carpet,/area/library) -"bfI" = (/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/glass{name = "Chapel"; req_access_txt = "0"},/turf/simulated/floor/carpet,/area/chapel/main) +"bfI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/hallway/primary/central/ne) "bfJ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/carpet,/area/chapel/main) "bfK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor/carpet,/area/chapel/main) -"bfL" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Chapel"; req_access_txt = "0"},/turf/simulated/floor/carpet,/area/chapel/main) +"bfL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Chapel"; req_access_txt = "0"},/turf/simulated/floor/carpet,/area/chapel/main) "bfM" = (/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) "bfN" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/hallway/secondary/exit) "bfO" = (/obj/structure/bush,/turf/simulated/floor/grass,/area/hallway/secondary/exit) @@ -3035,29 +3035,29 @@ "bgs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/central/nw) "bgt" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/hallway/primary/central/nw) "bgu" = (/obj/machinery/camera{c_tag = "Bridge West Entrance"; dir = 1; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/hallway/primary/central/nw) -"bgv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "blue"; dir = 6},/area/hallway/primary/central/nw) +"bgv" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Chapel"; req_access_txt = "0"},/turf/simulated/floor/carpet,/area/chapel/main) "bgw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/crew_quarters/fitness) -"bgx" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/bridge) +"bgx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "blue"; dir = 6},/area/hallway/primary/central/nw) "bgy" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) "bgz" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) "bgA" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "blue"; dir = 6},/area/bridge) -"bgB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/highsecurity{name = "AI Upload Access"; req_access_txt = "16"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) +"bgB" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/bridge) "bgC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/crew_quarters/mrchangs) "bgD" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/wall,/area/crew_quarters/mrchangs) "bgE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/crew_quarters/mrchangs) "bgF" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/filingcabinet/filingcabinet,/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/bridge) "bgG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) "bgH" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) -"bgI" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/bridge) +"bgI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/highsecurity{name = "AI Upload Access"; req_access_txt = "16"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "bgJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/civilian/barber) -"bgK" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/hallway/primary/central/ne) +"bgK" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/bridge) "bgL" = (/obj/machinery/power/apc{dir = 2; name = "Central Hall APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/hallway/primary/central/ne) "bgM" = (/obj/machinery/light,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/hallway/primary/central/ne) "bgN" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/ne) "bgO" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bgP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bgQ" = (/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/bar) -"bgR" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Kitchen"; req_access_txt = "28"},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) +"bgR" = (/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/hallway/primary/central/ne) "bgS" = (/obj/machinery/door_control{id = "kitchenbar"; name = "Kitchen Bar Shutters Control"; pixel_x = -6; pixel_y = -24; req_access_txt = "28"},/obj/machinery/door_control{id = "kitchenhall"; name = "Kitchen Hallway Shutters Control"; pixel_x = 6; pixel_y = -24; req_access_txt = "28"},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "bgT" = (/obj/machinery/power/apc{dir = 2; name = "Kitchen APC"; pixel_y = -24},/obj/structure/cable,/obj/machinery/light,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "bgU" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) @@ -3066,7 +3066,7 @@ "bgX" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/camera{c_tag = "Starboard Primary Hallway 5"; dir = 4; network = list("SS13")},/turf/simulated/floor,/area/hallway/primary/starboard/east) "bgY" = (/turf/simulated/floor,/area/hallway/primary/starboard/east) "bgZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor,/area/hallway/primary/starboard/east) -"bha" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Library"; req_access_txt = "0"},/turf/simulated/floor/carpet,/area/library) +"bha" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Kitchen"; req_access_txt = "28"},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "bhb" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/carpet,/area/library) "bhc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor/carpet,/area/library) "bhd" = (/obj/machinery/camera{c_tag = "Departure Lounge East"; dir = 8; network = list("SS13")},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/embedded_controller/radio/docking_port_multi{child_names_txt = "Airlock One;Airlock Two"; child_tags_txt = "escape_dock_north_airlock;escape_dock_south_airlock"; id_tag = "escape_dock"; pixel_x = 30},/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/hallway/secondary/exit) @@ -3074,8 +3074,8 @@ "bhf" = (/turf/simulated/floor{desc = "\"This is a plaque in honour of those who died in the great space lube airlock incident.\" Scratched in beneath that is a crude image of a clown and a spaceman. The spaceman is slipping. The clown is laughing."; dir = 4; icon_state = "plaque"; name = "Memorial Plaque"; nitrogen = 30; oxygen = 70; temperature = 80},/area/hallway/secondary/exit) "bhg" = (/obj/structure/bush,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/grass,/area/hallway/secondary/exit) "bhh" = (/turf/space,/area/xenos_station/east) -"bhi" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"bhj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"bhi" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Library"; req_access_txt = "0"},/turf/simulated/floor/carpet,/area/library) +"bhj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "bhk" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) "bhl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/wood,/area/security/vacantoffice) "bhm" = (/obj/structure/stool/bed/chair/office/dark,/turf/simulated/floor/wood,/area/security/vacantoffice) @@ -3099,17 +3099,17 @@ "bhE" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/turf/simulated/floor/plating,/area/quartermaster/office) "bhF" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/obj/structure/plasticflaps{opacity = 0},/turf/simulated/floor/plating,/area/quartermaster/office) "bhG" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal/deliveryChute{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/office) -"bhH" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/nw) -"bhI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central/nw) -"bhJ" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/central/nw) -"bhK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/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) +"bhH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"bhI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/central/nw) +"bhJ" = (/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/nw) +"bhK" = (/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/central/nw) "bhL" = (/obj/machinery/porta_turret,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "bhM" = (/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "bhN" = (/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "bhO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "bhP" = (/obj/machinery/camera/motion{c_tag = "AI Upload Chamber"; network = list("SS13")},/obj/machinery/light_switch{pixel_y = 27},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "bhQ" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) -"bhR" = (/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{id_tag = "captainofficedoor"; name = "Captain's Office"; req_access = null; req_access_txt = "20"},/turf/simulated/floor/wood,/area/crew_quarters/captain) +"bhR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Conference Room"; req_access = null; req_access_txt = "19"},/turf/simulated/floor/wood,/area/bridge/meeting_room) "bhS" = (/obj/machinery/computer/arcade,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bhT" = (/obj/machinery/media/jukebox/bar,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bhU" = (/obj/machinery/light,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/wood,/area/crew_quarters/bar) @@ -3120,8 +3120,8 @@ "bhZ" = (/obj/machinery/atm{pixel_x = 32; pixel_y = 0},/obj/structure/flora/kirbyplants,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/bar) "bia" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/machinery/vending/dinnerware,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/kitchen) "bib" = (/obj/machinery/icemachine,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) -"bic" = (/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) -"bid" = (/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) +"bic" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{id_tag = "captainofficedoor"; name = "Captain's Office"; req_access = null; req_access_txt = "20"},/turf/simulated/floor/wood,/area/crew_quarters/captain) +"bid" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/obj/machinery/door/firedoor,/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) "bie" = (/obj/structure/closet/crate/hydroponics,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/screwdriver,/obj/item/weapon/shovel/spade,/obj/item/weapon/wrench,/obj/item/weapon/wrench,/obj/item/weapon/reagent_containers/glass/bucket,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/box/botanydisk,/obj/item/weapon/storage/box/beakers,/turf/simulated/floor{icon_state = "hydrofloor"},/area/hydroponics) "bif" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Botanist"},/turf/simulated/floor{dir = 1; icon_state = "green"},/area/hydroponics) "big" = (/turf/simulated/floor{dir = 1; icon_state = "green"},/area/hydroponics) @@ -3191,18 +3191,18 @@ "bjs" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "bjt" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Captain's Office APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bju" = (/obj/machinery/light{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/hallway/primary/central/ne) -"bjv" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/ne) -"bjw" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central/ne) +"bjv" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/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) +"bjw" = (/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/central/ne) "bjx" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/wall,/area/civilian/barber) -"bjy" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/simulated/floor,/area/crew_quarters/bar) +"bjy" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/ne) "bjz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/wall,/area/civilian/barber) "bjA" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard/west) "bjB" = (/turf/simulated/floor{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard/west) "bjC" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 2"; dir = 2; network = list("SS13")},/turf/simulated/floor{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard/west) "bjD" = (/obj/structure/flora/kirbyplants,/turf/simulated/floor{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard/west) "bjE" = (/turf/simulated/wall,/area/crew_quarters/fitness) -"bjF" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/window/westright{dir = 1; name = "Hydroponics Desk"; req_access_txt = "35"},/turf/simulated/floor,/area/hydroponics) -"bjG" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/turf/simulated/floor,/area/hydroponics) +"bjF" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/simulated/floor,/area/crew_quarters/bar) +"bjG" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/westright{dir = 1; name = "Hydroponics Desk"; req_access_txt = "35"},/turf/simulated/floor,/area/hydroponics) "bjH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/hallway/primary/starboard/east) "bjI" = (/turf/simulated/wall/r_wall,/area/crew_quarters/fitness) "bjJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) @@ -3253,9 +3253,9 @@ "bkC" = (/obj/structure/disposalpipe/segment,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/east) "bkD" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Dorm"; location = "HOP2"},/turf/simulated/floor,/area/hallway/primary/central/east) "bkE" = (/turf/simulated/floor,/area/hallway/primary/central/east) -"bkF" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central/east) +"bkF" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/turf/simulated/floor,/area/hydroponics) "bkG" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/primary/starboard/west) -"bkH" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/starboard/west) +"bkH" = (/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/central/east) "bkI" = (/obj/machinery/alarm{pixel_y = 26},/turf/simulated/floor,/area/hallway/primary/starboard/west) "bkJ" = (/turf/simulated/floor,/area/hallway/primary/starboard/west) "bkK" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 1"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/starboard/west) @@ -3281,7 +3281,7 @@ "ble" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor,/area/hallway/primary/starboard/east) "blf" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/machinery/camera{c_tag = "Starboard Primary Hallway 7"; dir = 2; network = list("SS13")},/turf/simulated/floor,/area/hallway/primary/starboard/east) "blg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/starboard/east) -"blh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor{dir = 4; icon_state = "whitecorner"},/area/hallway/secondary/exit) +"blh" = (/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/starboard/west) "bli" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/secondary/exit) "blj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/secondary/exit) "blk" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor,/area/hallway/secondary/exit) @@ -3292,7 +3292,7 @@ "blp" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "escape_dock_south_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{id_tag = "escape_dock_south_airlock"; master_tag = "escape_dock"; pixel_y = -30; req_one_access_txt = "13"; tag_airpump = "escape_dock_south_pump"; tag_chamber_sensor = "escape_dock_south_sensor"; tag_exterior_door = "escape_dock_south_outer"; tag_interior_door = "escape_dock_south_inner"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "escape_dock_south_sensor"; pixel_x = -8; pixel_y = -30},/turf/simulated/floor/plating,/area/hallway/secondary/exit) "blq" = (/obj/machinery/door/airlock/external{aiControlDisabled = 1; frequency = 1379; hackProof = 1; icon_state = "door_locked"; id_tag = "escape_dock_south_outer"; locked = 1; name = "Escape Airlock"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/hallway/secondary/exit) "blr" = (/turf/space,/area/shuttle/specops/station) -"bls" = (/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) +"bls" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor{dir = 4; icon_state = "whitecorner"},/area/hallway/secondary/exit) "blt" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8},/turf/simulated/floor{icon_state = "warningcorner"; dir = 1},/area/hallway/secondary/entry) "blu" = (/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) "blv" = (/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) @@ -3336,14 +3336,14 @@ "bmh" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/hallway/primary/starboard/west) "bmi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/starboard/west) "bmj" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/starboard/west) -"bmk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/starboard/west) +"bmk" = (/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{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "bml" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/starboard/east) "bmm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor,/area/hallway/primary/starboard/east) "bmn" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=HOP2"; location = "Stbd"},/turf/simulated/floor,/area/hallway/primary/starboard/east) -"bmo" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/secondary/exit) +"bmo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/starboard/west) "bmp" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/secondary/exit) "bmq" = (/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/pipe/simple/hidden,/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/hallway/secondary/exit) -"bmr" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"bmr" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/secondary/exit) "bms" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) "bmt" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/secondary/entry) "bmu" = (/turf/simulated/wall,/area/maintenance/disposal) @@ -3397,14 +3397,14 @@ "bnq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/starboard/west) "bnr" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 3"; dir = 1; network = list("SS13")},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/starboard/west) "bns" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/hallway/primary/starboard/west) -"bnt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/starboard/west) +"bnt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "bnu" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/primary/starboard/east) "bnv" = (/obj/machinery/light,/turf/simulated/floor,/area/hallway/primary/starboard/east) "bnw" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/camera{c_tag = "Starboard Primary Hallway 6"; dir = 1; network = list("SS13")},/turf/simulated/floor,/area/hallway/primary/starboard/east) "bnx" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -29; pixel_y = -29},/turf/simulated/floor,/area/hallway/primary/starboard/east) "bny" = (/obj/machinery/light,/turf/simulated/floor{dir = 2; icon_state = "purple"},/area/hallway/primary/starboard/east) "bnz" = (/turf/simulated/floor{dir = 2; icon_state = "purple"},/area/hallway/primary/starboard/east) -"bnA" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/hallway/secondary/exit) +"bnA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/starboard/west) "bnB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor{dir = 2; icon_state = "escape"},/area/hallway/secondary/exit) "bnC" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "escape"},/area/hallway/secondary/exit) "bnD" = (/obj/machinery/newscaster{pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "escape"},/area/hallway/secondary/exit) @@ -3444,6 +3444,7 @@ "bol" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/office) "bom" = (/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/west) "bon" = (/obj/machinery/power/apc{dir = 4; name = "Central Hall West APC"; pixel_x = 27; pixel_y = 2},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/central/west) +"boo" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/hallway/secondary/exit) "bop" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/requests_console{announcementConsole = 1; department = "Bridge"; departmentType = 5; name = "Bridge RC"; pixel_y = -30},/turf/simulated/floor/wood,/area/bridge/meeting_room) "boq" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/wood,/area/bridge/meeting_room) "bor" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/wall,/area/crew_quarters/sleep) @@ -3454,11 +3455,11 @@ "bow" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/captain) "box" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/wood,/area/crew_quarters/captain) "boy" = (/obj/structure/table/woodentable,/obj/item/weapon/pinpointer,/obj/item/weapon/disk/nuclear,/obj/item/weapon/storage/secure/safe{pixel_x = 35; pixel_y = 5},/turf/simulated/floor/wood,/area/crew_quarters/captain) -"boz" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/sw) -"boA" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central/sw) +"boz" = (/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/central/sw) +"boA" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/sw) "boB" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "eva_airlock"; name = "exterior access button"; pixel_x = 0; pixel_y = 25; req_access_txt = "13"},/turf/simulated/floor/plating/airless,/area) "boC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/hallway/primary/fore) -"boD" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/medical/reception) +"boD" = (/obj/machinery/door/firedoor,/turf/simulated/floor{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/medical/reception) "boE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "0"; req_one_access_txt = "6,9"},/turf/simulated/floor,/area/medical/morgue) "boF" = (/obj/machinery/door/airlock{name = "Starboard Emergency Storage"; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/asmaint) "boG" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/flora/kirbyplants,/turf/simulated/floor,/area/hallway/primary/starboard/east) @@ -3492,12 +3493,13 @@ "bpi" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 8; icon_state = "brown"},/area/quartermaster/office) "bpj" = (/obj/structure/stool/bed/chair{dir = 4},/obj/effect/landmark/start{name = "Cargo Technician"},/turf/simulated/floor,/area/quartermaster/office) "bpk" = (/obj/structure/table/reinforced,/turf/simulated/floor{icon_state = "arrival"; dir = 4},/area/quartermaster/office) -"bpl" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "Mailing Room"; req_access_txt = "50"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/office) +"bpl" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "Mailing Room"; req_access_txt = "50"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/office) "bpm" = (/obj/machinery/camera{c_tag = "Central Hallway West"; dir = 8; network = list("SS13")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/central/west) "bpn" = (/obj/machinery/door/window/eastright{dir = 1; name = "Bridge Delivery"; req_access_txt = "19"},/turf/simulated/floor{icon_state = "delivery"},/area/bridge/meeting_room) "bpo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/bridge/meeting_room) "bpp" = (/obj/structure/reagent_dispensers/water_cooler,/turf/simulated/floor/wood,/area/bridge/meeting_room) "bpq" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -32},/obj/machinery/slot_machine,/turf/simulated/floor/wood,/area/bridge/meeting_room) +"bpr" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/simulated/floor,/area/assembly/chargebay) "bps" = (/obj/machinery/light,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/wood,/area/bridge/meeting_room) "bpt" = (/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,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/wood,/area/bridge/meeting_room) "bpu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/space,/area) @@ -3539,16 +3541,16 @@ "bqe" = (/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/medical/morgue) "bqf" = (/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/turf/simulated/floor,/area/medical/morgue) "bqg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/effect/landmark/start{name = "Civilian"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bqh" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/simulated/floor,/area/assembly/chargebay) -"bqi" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{dir = 2; id = "mechbay"; name = "Mech Bay"},/turf/simulated/floor{icon_state = "delivery"},/area/assembly/chargebay) +"bqh" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{dir = 2; id = "mechbay"; name = "Mech Bay"},/turf/simulated/floor{icon_state = "delivery"},/area/assembly/chargebay) +"bqi" = (/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{dir = 1; name = "hazard door north"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "robotics"; name = "Robotics Lab Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/assembly/robotics) "bqj" = (/obj/machinery/computer/rdconsole/robotics,/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bqk" = (/obj/structure/table,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics Requests Console"; pixel_y = 30},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bql" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bqm" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating/airless,/area) -"bqn" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/folder/white,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "robotics"; name = "Robotics Lab Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/assembly/robotics) +"bqn" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/folder/white,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "robotics"; name = "Robotics Lab Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/assembly/robotics) "bqo" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 10; icon_state = "purple"},/area/hallway/primary/starboard/east) "bqp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/mimeoffice) -"bqq" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Research and Development Desk"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "rdlab"; name = "Research and Development Lab Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/toxins/lab) +"bqq" = (/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{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "rdlab"; name = "Research and Development Lab Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/toxins/lab) "bqr" = (/obj/machinery/autolathe,/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bqs" = (/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) "bqt" = (/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) @@ -3580,7 +3582,7 @@ "bqT" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/west) "bqU" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/central/west) "bqV" = (/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) -"bqW" = (/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) +"bqW" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Research and Development Desk"; req_access_txt = "47"},/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "rdlab"; name = "Research and Development Lab Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/toxins/lab) "bqX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/lattice,/turf/space,/area) "bqY" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/space,/area) "bqZ" = (/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) @@ -3602,7 +3604,7 @@ "brp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "brq" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "brr" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"brs" = (/obj/machinery/door/window/eastright{dir = 8; name = "Chemistry Desk"; req_access_txt = "33"},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/structure/table/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"brs" = (/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,/obj/machinery/door/airlock/command{name = "Conference Room"; req_access = null; req_access_txt = "19"},/turf/simulated/floor/wood,/area/bridge/meeting_room) "brt" = (/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/reception) "bru" = (/turf/simulated/floor/airless{icon_state = "white"},/area/medical/reception) "brv" = (/obj/structure/stool,/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/reception) @@ -3638,8 +3640,8 @@ "brZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bsa" = (/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bsb" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"bsc" = (/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/secondary/entry) -"bsd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"bsc" = (/obj/machinery/door/window/eastright{dir = 8; name = "Chemistry Desk"; req_access_txt = "33"},/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/structure/table/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bsd" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "bse" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/hallway/secondary/entry) "bsf" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor,/area/hallway/secondary/entry) "bsg" = (/obj/machinery/conveyor{dir = 1; id = "garbage"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/disposal) @@ -3697,7 +3699,7 @@ "btg" = (/obj/item/weapon/cartridge/signal/toxins,/obj/item/weapon/cartridge/signal/toxins{pixel_x = -4; pixel_y = 2},/obj/item/weapon/cartridge/signal/toxins{pixel_x = 4; pixel_y = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera{c_tag = "Research Director's Office"; dir = 1; network = list("Research","SS13")},/obj/item/clothing/glasses/welding/superior,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/table/glass,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) "bth" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/airless{icon_state = "white"},/area/medical/reception) "bti" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/reception) -"btj" = (/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) +"btj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "btk" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) "btl" = (/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) "btm" = (/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) @@ -3712,7 +3714,7 @@ "btv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/bluegrid,/area/assembly/chargebay) "btw" = (/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) "btx" = (/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) -"bty" = (/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) +"bty" = (/obj/machinery/door/firedoor{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) "btz" = (/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) "btA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "btB" = (/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) @@ -3727,7 +3729,7 @@ "btK" = (/obj/structure/table/woodentable,/obj/item/weapon/lipstick/random,/obj/structure/sign/poster{pixel_x = -32},/turf/simulated/floor/plating,/area/maintenance/abandonedbar) "btL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "btM" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"btN" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"btN" = (/obj/machinery/door/firedoor{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) "btO" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "admin_shuttle_dock_pump"},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry) "btP" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "admin_shuttle_dock_airlock"; pixel_x = 0; pixel_y = 30; req_access_txt = "0"; req_one_access_txt = "13"; tag_airpump = "admin_shuttle_dock_pump"; tag_chamber_sensor = "admin_shuttle_dock_sensor"; tag_exterior_door = "admin_shuttle_dock_outer"; tag_interior_door = "admin_shuttle_dock_inner"},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/hallway/secondary/entry) "btQ" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_dock_inner"; locked = 1; name = "Docking Port Airlock"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/entry) @@ -3749,14 +3751,14 @@ "bug" = (/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/quartermaster/office) "buh" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/quartermaster/office) "bui" = (/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,/area/quartermaster/office) -"buj" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass_mining{name = "Delivery Office"; req_access_txt = "50"},/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/quartermaster/office) +"buj" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "buk" = (/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/quartermaster/office) "bul" = (/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 = 9; pixel_y = 0},/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = -32; req_access_txt = "0"},/turf/simulated/floor,/area/quartermaster/office) "bum" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/turf/simulated/floor,/area/quartermaster/office) "bun" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/quartermaster/office) "buo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 8; icon_state = "loadingarea"},/area/quartermaster/office) "bup" = (/obj/machinery/conveyor{dir = 4; id = "packageExternal"},/obj/structure/plasticflaps{opacity = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/office) -"buq" = (/obj/machinery/conveyor{dir = 4; id = "packageExternal"},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/office) +"buq" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass_mining{name = "Delivery Office"; req_access_txt = "50"},/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/quartermaster/office) "bur" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/west) "bus" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/primary/central/west) "but" = (/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/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/hallway/primary/central/west) @@ -3823,30 +3825,30 @@ "bvC" = (/obj/machinery/light,/turf/simulated/floor{icon_state = "warning"},/area/hallway/secondary/entry) "bvD" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "warning"},/area/hallway/secondary/entry) "bvE" = (/obj/machinery/disposal/deliveryChute{dir = 1; name = "disposal inlet"},/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/disposal) -"bvF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/maintenance/disposal) -"bvG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/maintenance/disposal) +"bvF" = (/obj/machinery/conveyor{dir = 4; id = "packageExternal"},/obj/machinery/door/firedoor{dir = 2},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/office) +"bvG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/maintenance/disposal) "bvH" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/hologram/holopad,/turf/simulated/floor/plating,/area/maintenance/disposal) "bvI" = (/turf/space,/area/supply/station) -"bvJ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) +"bvJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/maintenance/disposal) "bvK" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/status_display/supply_display{pixel_y = 32},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/quartermaster/storage) "bvL" = (/obj/structure/closet/emcloset,/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/quartermaster/storage) "bvM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/quartermaster/storage) "bvN" = (/obj/machinery/light{dir = 1},/obj/machinery/firealarm{pixel_y = 27},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/quartermaster/storage) "bvO" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/quartermaster/storage) "bvP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/quartermaster/storage) -"bvQ" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/quartermaster/storage) +"bvQ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) "bvR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 8; icon_state = "brown"},/area/quartermaster/office) "bvS" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/quartermaster/office) "bvT" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/quartermaster/office) "bvU" = (/obj/machinery/status_display/supply_display,/turf/simulated/wall,/area/quartermaster/office) -"bvV" = (/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},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/office) -"bvW" = (/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) +"bvV" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/quartermaster/storage) +"bvW" = (/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},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/office) "bvX" = (/turf/simulated/wall,/area/hallway/primary/central/sw) -"bvY" = (/obj/machinery/light{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/sw) -"bvZ" = (/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) -"bwa" = (/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) +"bvY" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Delivery Office"; req_access_txt = "50"},/turf/simulated/floor,/area/quartermaster/office) +"bvZ" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor,/area/hallway/primary/central/sw) +"bwa" = (/obj/machinery/light{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/sw) "bwb" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/emergency_oxygen,/turf/simulated/floor/plating,/area/maintenance/maintcentral) -"bwc" = (/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) +"bwc" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/primary/central/sw) "bwd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/lattice,/turf/space,/area) "bwe" = (/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravitygenerator) "bwf" = (/obj/machinery/light{dir = 4},/obj/machinery/hologram/holopad,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravitygenerator) @@ -3910,21 +3912,21 @@ "bxl" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/research/station) "bxm" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "admin_shuttle_dock_airlock"; name = "exterior access button"; pixel_x = 30; pixel_y = -5; req_access_txt = "0"; req_one_access_txt = "13"},/turf/space,/area) "bxn" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_dock_outer"; locked = 1; name = "Docking Port Airlock"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"bxo" = (/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; pixel_y = 0},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"bxp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"bxq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"bxo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Head of Personnel"; req_access = null; req_access_txt = "57"},/turf/simulated/floor,/area/crew_quarters/heads) +"bxp" = (/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; pixel_y = 0},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"bxq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "bxr" = (/obj/machinery/mass_driver{id = "trash"},/turf/simulated/floor/plating/airless,/area/maintenance/disposal) "bxs" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plating,/area/maintenance/disposal) -"bxt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/maintenance/disposal) -"bxu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/maintenance/disposal) -"bxv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) +"bxt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"bxu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/maintenance/disposal) +"bxv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/maintenance/disposal) "bxw" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/quartermaster/storage) "bxx" = (/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},/turf/simulated/floor,/area/quartermaster/storage) "bxy" = (/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/storage) "bxz" = (/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 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/quartermaster/storage) "bxA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/quartermaster/storage) "bxB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/quartermaster/storage) -"bxC" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/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/storage) +"bxC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) "bxD" = (/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) "bxE" = (/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) "bxF" = (/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) @@ -3944,7 +3946,7 @@ "bxT" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/crew_quarters/heads) "bxU" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -32; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/gravitygenerator) "bxV" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/gravitygenerator) -"bxW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravitygenerator) +"bxW" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/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/storage) "bxX" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/grille,/turf/simulated/floor/plating,/area/engine/gravitygenerator) "bxY" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/turf/simulated/floor/plating,/area/engine/gravitygenerator) "bxZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/space,/area) @@ -3996,9 +3998,9 @@ "byT" = (/obj/structure/table,/turf/simulated/shuttle/floor,/area/shuttle/research/station) "byU" = (/turf/space,/area/xenos_station/west) "byV" = (/turf/space,/area/shuttle/administration/station) -"byW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/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) -"byX" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) -"byY" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) +"byW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravitygenerator) +"byX" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/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{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) +"byY" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) "byZ" = (/obj/machinery/conveyor_switch/oneway{id = "QMLoad2"},/turf/simulated/floor,/area/quartermaster/storage) "bza" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/quartermaster/storage) "bzb" = (/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/storage) @@ -4007,12 +4009,12 @@ "bze" = (/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"; tag = "icon-pipe-j2"},/turf/simulated/floor,/area/quartermaster/office) "bzf" = (/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,/area/quartermaster/office) "bzg" = (/obj/effect/landmark/start{name = "Cargo Technician"},/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor,/area/quartermaster/office) -"bzh" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/window/westleft{name = "Cargo Desk"; req_access_txt = "50"},/obj/structure/noticeboard{pixel_y = 27},/turf/simulated/floor,/area/quartermaster/office) +"bzh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) "bzi" = (/turf/simulated/floor{icon_state = "delivery"},/area/quartermaster/office) "bzj" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/landmark/start{name = "Civilian"},/turf/simulated/floor,/area/quartermaster/office) "bzk" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/office) "bzl" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/hallway/primary/central/sw) -"bzm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "hopqueue"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor{dir = 8; icon_state = "loadingarea"; tag = "loading"},/area/hallway/primary/central/sw) +"bzm" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/window/westleft{name = "Cargo Desk"; req_access_txt = "50"},/obj/structure/noticeboard{pixel_y = 27},/turf/simulated/floor,/area/quartermaster/office) "bzn" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "delivery"},/area/hallway/primary/central/sw) "bzo" = (/obj/structure/table/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/flasher{id = "hopflash"; pixel_y = 28},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "hop"; name = "Privacy Shutters"; opacity = 0},/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 4; icon_state = "rightsecure"; name = "Head of Personnel's Desk"; req_access_txt = "57"},/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Head of Personnel's Desk"; req_access_txt = "0"},/turf/simulated/floor,/area/crew_quarters/heads) "bzp" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/crew_quarters/heads) @@ -4079,7 +4081,7 @@ "bAy" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/space,/area/shuttle/research/station) "bAz" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/shuttle/research/station) "bAA" = (/obj/machinery/computer/shuttle_control/research{req_access = null; req_access_txt = "65"},/turf/simulated/shuttle/floor,/area/shuttle/research/station) -"bAB" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "cargo_bay_door"; locked = 1; name = "Cargo Docking Hatch"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/quartermaster/storage) +"bAB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "hopqueue"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor{dir = 8; icon_state = "loadingarea"; tag = "loading"},/area/hallway/primary/central/sw) "bAC" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/floor/plating,/area/quartermaster/storage) "bAD" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/quartermaster/storage) "bAE" = (/turf/simulated/floor{dir = 4; icon_state = "loadingarea"},/area/quartermaster/storage) @@ -4090,7 +4092,7 @@ "bAJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/office) "bAK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/quartermaster/office) "bAL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/quartermaster/office) -"bAM" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/quartermaster/office) +"bAM" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/firedoor{dir = 2},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "cargo_bay_door"; locked = 1; name = "Cargo Docking Hatch"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/quartermaster/storage) "bAN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/sw) "bAO" = (/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/hallway/primary/central/sw) "bAP" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/hallway/primary/central/sw) @@ -4123,7 +4125,7 @@ "bBq" = (/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) "bBr" = (/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) "bBs" = (/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) -"bBt" = (/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) +"bBt" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/quartermaster/office) "bBu" = (/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) "bBv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bBw" = (/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) @@ -4146,19 +4148,19 @@ "bBN" = (/obj/structure/table,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; tag = ""},/obj/item/device/mmi/posibrain,/obj/item/device/robotanalyzer,/turf/simulated/floor{dir = 8; icon_state = "whitecorner"},/area/assembly/robotics) "bBO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bBP" = (/obj/machinery/door_control{id = "robotics2"; name = "Robotics Lab Shutters Control"; pixel_x = 24; pixel_y = -24; req_access_txt = "29"},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) -"bBQ" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "robotics2"; name = "Robotics Lab Shutters"; opacity = 0},/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/turf/simulated/floor/plating,/area/assembly/robotics) -"bBR" = (/obj/machinery/light{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/medical/research{name = "Research Division"}) -"bBS" = (/obj/effect/landmark{name = "lightsout"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/medical/research{name = "Research Division"}) -"bBT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "whitecorner"},/area/medical/research{name = "Research Division"}) -"bBU" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "rdlab2"; name = "Research and Development Lab Shutters"; opacity = 0},/obj/machinery/door/window/eastright{base_state = "left"; dir = 1; icon_state = "left"; name = "Research and Development Desk"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) +"bBQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) +"bBR" = (/obj/machinery/light{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/medical/research{name = "Research Division"}) +"bBS" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "robotics2"; name = "Robotics Lab Shutters"; opacity = 0},/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/turf/simulated/floor/plating,/area/assembly/robotics) +"bBT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 8; icon_state = "whitecorner"},/area/medical/research{name = "Research Division"}) +"bBU" = (/obj/effect/landmark{name = "lightsout"},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/medical/research{name = "Research Division"}) "bBV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) -"bBW" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/glass_research{name = "Research and Development"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) +"bBW" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "rdlab2"; name = "Research and Development Lab Shutters"; opacity = 0},/obj/machinery/door/window/eastright{base_state = "left"; dir = 1; icon_state = "left"; name = "Research and Development Desk"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bBX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bBY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "bBZ" = (/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/auxsolarstarboard) "bCa" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "bCb" = (/obj/structure/table,/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "research_shuttle"; pixel_x = -8; pixel_y = -25; req_access_txt = "13;65"; tag_door = "research_shuttle_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/research/station) -"bCc" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "cargo_bay_door"; locked = 1; name = "Cargo Docking Hatch"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/quartermaster/storage) +"bCc" = (/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/glass_research{name = "Research and Development"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bCd" = (/turf/simulated/floor/plating,/area/quartermaster/storage) "bCe" = (/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/quartermaster/storage) "bCf" = (/turf/simulated/floor{icon_state = "delivery"},/area/quartermaster/storage) @@ -4167,7 +4169,7 @@ "bCi" = (/obj/structure/filingcabinet/filingcabinet,/turf/simulated/floor,/area/quartermaster/office) "bCj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/quartermaster/office) "bCk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/office) -"bCl" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor,/area/quartermaster/office) +"bCl" = (/obj/machinery/door/firedoor{dir = 2},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "cargo_bay_door"; locked = 1; name = "Cargo Docking Hatch"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/quartermaster/storage) "bCm" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/central/sw) "bCn" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "hop"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/crew_quarters/heads) "bCo" = (/obj/structure/closet/secure_closet/hop,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/crew_quarters/heads) @@ -4203,7 +4205,7 @@ "bCS" = (/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) "bCT" = (/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) "bCU" = (/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) -"bCV" = (/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) +"bCV" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/turf/simulated/floor,/area/quartermaster/office) "bCW" = (/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) "bCX" = (/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) "bCY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{tag = "icon-whiteblue"; icon_state = "whiteblue"},/area/medical/medbay2) @@ -4234,12 +4236,12 @@ "bDx" = (/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"}) "bDy" = (/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"}) "bDz" = (/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"}) -"bDA" = (/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"}) +"bDA" = (/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,/turf/simulated/floor{tag = "icon-whiteblue"; icon_state = "whiteblue"},/area/medical/medbay2) "bDB" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "bot"},/area/medical/research{name = "Research Division"}) -"bDC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Research Division Access"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bDC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "bDD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "bDE" = (/obj/machinery/light/small{dir = 1},/obj/machinery/camera{c_tag = "Research Shuttle Maintenance"; dir = 2; network = list("Research","SS13")},/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/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/glass_research{name = "Research Shuttle Dock"; req_access_txt = "65"},/turf/simulated/floor{dir = 4; icon_state = "whitepurplecorner"},/area/medical/research_shuttle_dock) +"bDF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Research Division Access"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bDG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research_shuttle_dock) "bDH" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) "bDI" = (/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) @@ -4248,14 +4250,14 @@ "bDL" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/research/station) "bDM" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "research_shuttle_hatch"; locked = 1; name = "External Hatch"; req_access_txt = "13"},/turf/simulated/shuttle/floor,/area/shuttle/research/station) "bDN" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/research/station) -"bDO" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/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) -"bDP" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) +"bDO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/glass_research{name = "Research Shuttle Dock"; req_access_txt = "65"},/turf/simulated/floor{dir = 4; icon_state = "whitepurplecorner"},/area/medical/research_shuttle_dock) +"bDP" = (/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{dir = 2},/turf/simulated/shuttle/plating,/area/medical/research{name = "Research Division"}) "bDQ" = (/obj/machinery/camera{c_tag = "Cargo Recieving Dock"; dir = 4},/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "cargo_bay"; name = "cargo bay hatch controller"; pixel_x = -30; pixel_y = 0; req_access_txt = "0"; req_one_access_txt = "13;31"; tag_door = "cargo_bay_door"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/quartermaster/storage) "bDR" = (/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) "bDS" = (/obj/structure/table/woodentable,/obj/machinery/light/small/lamp{pixel_y = 10},/obj/structure/disposalpipe/segment,/obj/item/device/eftpos,/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) "bDT" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor,/area/quartermaster/office) "bDU" = (/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) -"bDV" = (/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) +"bDV" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/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{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) "bDW" = (/obj/machinery/door_control{id = "alienshutters"; name = "Alien Blast Shutter Control"; pixel_x = -26; pixel_y = -2; req_access_txt = "0"},/turf/simulated/floor/plating/airless,/area/xenos_station/start) "bDX" = (/obj/structure/closet/secure_closet/hop2,/turf/simulated/floor,/area/crew_quarters/heads) "bDY" = (/turf/simulated/floor,/area/crew_quarters/heads) @@ -4265,7 +4267,7 @@ "bEc" = (/obj/machinery/message_server,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/bluegrid,/area/server) "bEd" = (/obj/machinery/power/apc{dir = 1; name = "Messaging Server APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/floor/bluegrid,/area/server) "bEe" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor{icon_state = "dark"},/area/server) -"bEf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/engineering{name = "Gravity Generator"; req_access_txt = "0"; req_one_access_txt = "10;30"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravitygenerator) +"bEf" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) "bEg" = (/turf/simulated/wall/r_wall,/area/maintenance/abandonedbar) "bEh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/space,/area) "bEi" = (/obj/machinery/power/apc{dir = 8; name = "Teleporter APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/teleporter) @@ -4274,7 +4276,7 @@ "bEl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/bluespace_beacon,/turf/simulated/floor,/area/teleporter) "bEm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/teleporter) "bEn" = (/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 = ""},/turf/simulated/floor,/area/teleporter) -"bEo" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/command{name = "Teleport Access"; req_access_txt = "17"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/teleporter) +"bEo" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass_mining{name = "Cargo Office"; req_access_txt = "50"},/turf/simulated/floor,/area/quartermaster/office) "bEp" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/hallway/primary/central/sw) "bEq" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR: EMERGENCY ENTRANCE'."; name = "KEEP CLEAR: EMERGENCY ENTRANCE"; pixel_x = 32; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/hallway/primary/central/sw) "bEr" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/backpack/medic,/obj/item/roller,/obj/item/roller,/obj/item/roller,/obj/item/weapon/storage/toolbox/emergency,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/medbay2) @@ -4290,7 +4292,7 @@ "bEB" = (/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) "bEC" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/obj/machinery/door/airlock/maintenance{req_access_txt = "9"},/turf/simulated/floor{icon_state = "white"},/area/maintenance/asmaint) "bED" = (/obj/machinery/door/poddoor{id = "chapelgun"; name = "Chapel Launcher Door"},/turf/simulated/floor/plating,/area/chapel/main) -"bEE" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_research{name = "Robotics Lab"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) +"bEE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/engineering{name = "Gravity Generator"; req_access_txt = "0"; req_one_access_txt = "10;30"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravitygenerator) "bEF" = (/turf/simulated/wall/r_wall,/area/chapel/main) "bEG" = (/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"}) "bEH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -4299,12 +4301,12 @@ "bEK" = (/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"}) "bEL" = (/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"}) "bEM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"bEN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bEN" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/command{name = "Teleport Access"; req_access_txt = "17"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/teleporter) "bEO" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Research Division Delivery"; req_access_txt = "47"},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "delivery"},/area/medical/research{name = "Research Division"}) "bEP" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Research Division"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "bot"},/area/medical/research{name = "Research Division"}) "bEQ" = (/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/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "bER" = (/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 = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) -"bES" = (/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/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/glass_research{name = "Research Shuttle Dock"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/medical/research_shuttle_dock) +"bES" = (/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_research{name = "Robotics Lab"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bET" = (/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{icon_state = "white"},/area/medical/research_shuttle_dock) "bEU" = (/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/research{name = "Research Division"}) "bEV" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) @@ -4331,7 +4333,7 @@ "bFq" = (/obj/machinery/computer/message_monitor,/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/server) "bFr" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "dark"},/area/server) "bFs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/server) -"bFt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/highsecurity{name = "Messaging Server"; req_access_txt = "30"},/turf/simulated/floor{icon_state = "dark"},/area/server) +"bFt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bFu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/engine/gravitygenerator) "bFv" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/engine/gravitygenerator) "bFw" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor,/area/engine/gravitygenerator) @@ -4348,7 +4350,7 @@ "bFH" = (/turf/simulated/floor{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/medical/medbay2) "bFI" = (/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bFJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) -"bFK" = (/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) +"bFK" = (/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,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/glass_research{name = "Research Shuttle Dock"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/medical/research_shuttle_dock) "bFL" = (/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) "bFM" = (/turf/simulated/floor{dir = 1; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2) "bFN" = (/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) @@ -4371,7 +4373,7 @@ "bGe" = (/obj/structure/closet/wardrobe/genetics_white,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1},/area/medical/genetics) "bGf" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor{tag = "icon-whitepurple (NORTHEAST)"; icon_state = "whitepurple"; dir = 5},/area/medical/genetics) "bGg" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/wall,/area/crew_quarters/toilet) -"bGh" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "whiteblue"},/area/medical/research{name = "Research Division"}) +"bGh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) "bGi" = (/obj/machinery/camera{c_tag = "Research Hallway West"; dir = 2; network = list("Research","SS13")},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bGj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bGk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -4393,7 +4395,7 @@ "bGA" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "research_dock_pump"},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "bGB" = (/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "bGC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) -"bGD" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "cargo_bay_door"; locked = 1; name = "Cargo Docking Hatch"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/quartermaster/storage) +"bGD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) "bGE" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/floor/plating,/area/quartermaster/storage) "bGF" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/status_display/supply_display{pixel_y = -32},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/quartermaster/storage) "bGG" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/light,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/quartermaster/storage) @@ -4412,7 +4414,7 @@ "bGT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/maintenance/fsmaint2) "bGU" = (/obj/machinery/camera{c_tag = "Cargo Bay Entrance"; dir = 4; network = list("SS13")},/obj/machinery/atm{pixel_x = -24},/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/sw) "bGV" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/hallway/primary/central/sw) -"bGW" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "hopqueue"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/hallway/primary/central/sw) +"bGW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) "bGX" = (/obj/structure/filingcabinet/chestdrawer,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/crew_quarters/heads) "bGY" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Personnel's Desk"; departmentType = 5; name = "Head of Personnel RC"; pixel_y = -30},/obj/machinery/camera{c_tag = "Head of Personnel's Office"; dir = 1; network = list("SS13")},/obj/structure/flora/kirbyplants,/turf/simulated/floor,/area/crew_quarters/heads) "bGZ" = (/obj/structure/table,/obj/machinery/photocopier/faxmachine{department = "Head of Personnel's Office"},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/crew_quarters/heads) @@ -4434,7 +4436,7 @@ "bHp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/turf/simulated/floor{tag = "icon-whiteblue (SOUTHWEST)"; icon_state = "whiteblue"; dir = 10},/area/medical/medbay2) "bHq" = (/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 = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) "bHr" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/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/scrubbers{dir = 5},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = 11},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) -"bHs" = (/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/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) +"bHs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/highsecurity{name = "Messaging Server"; req_access_txt = "30"},/turf/simulated/floor{icon_state = "dark"},/area/server) "bHt" = (/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-whitebluecorner (WEST)"; icon_state = "whitebluecorner"; dir = 8},/area/medical/medbay2) "bHu" = (/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 = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bHv" = (/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) @@ -4457,7 +4459,7 @@ "bHM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{tag = "icon-whitepurple (SOUTHEAST)"; icon_state = "whitepurple"; dir = 6},/area/medical/genetics) "bHN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/wall,/area/chapel/office) "bHO" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "bot"},/area/medical/research{name = "Research Division"}) -"bHP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "whiteblue"},/area/medical/research{name = "Research Division"}) +"bHP" = (/obj/machinery/light{dir = 1},/obj/machinery/door/firedoor,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bHQ" = (/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/medical/research{name = "Research Division"}) "bHR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bHS" = (/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{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -4479,19 +4481,19 @@ "bIi" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) "bIj" = (/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"}) "bIk" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/medical/research{name = "Research Division"}) -"bIl" = (/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"}) +"bIl" = (/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/research{name = "Genetics Research"; req_access_txt = "47;9"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bIm" = (/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"}) "bIn" = (/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"}) -"bIo" = (/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) -"bIp" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) -"bIq" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) -"bIr" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) -"bIs" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) -"bIt" = (/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/quartermaster/storage) -"bIu" = (/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/quartermaster/storage) -"bIv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) +"bIo" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 8; icon_state = "whiteblue"},/area/medical/research{name = "Research Division"}) +"bIp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) +"bIq" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/firedoor{dir = 2},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "cargo_bay_door"; locked = 1; name = "Cargo Docking Hatch"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/quartermaster/storage) +"bIr" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "hopqueue"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/hallway/primary/central/sw) +"bIs" = (/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/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) +"bIt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/obj/machinery/door/airlock/research{name = "Genetics Research"; req_access_txt = "47;9"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bIu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 8; icon_state = "whiteblue"},/area/medical/research{name = "Research Division"}) +"bIv" = (/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{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/shuttle/plating,/area/medical/research{name = "Research Division"}) "bIw" = (/turf/simulated/wall,/area/quartermaster/miningdock) -"bIx" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/mining{name = "Mining Dock"; req_access_txt = "48"},/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,/area/quartermaster/miningdock) +"bIx" = (/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{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) "bIy" = (/turf/simulated/wall,/area/quartermaster/qm) "bIz" = (/obj/structure/filingcabinet,/turf/simulated/floor,/area/quartermaster/qm) "bIA" = (/obj/machinery/computer/supplycomp,/turf/simulated/floor,/area/quartermaster/qm) @@ -4499,19 +4501,19 @@ "bIC" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor,/area/quartermaster/qm) "bID" = (/obj/structure/disposalpipe/segment,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/primary/central/sw) "bIE" = (/obj/machinery/door/airlock/command{name = "Head of Personnel"; req_access = null; req_access_txt = "57"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/crew_quarters/heads) -"bIF" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/engineering{name = "Gravity Generator"; req_access_txt = "0"; req_one_access_txt = "10;30"},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/engine/gravitygenerator) +"bIF" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) "bIG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/hallway/primary/central/sw) "bIH" = (/obj/machinery/camera{c_tag = "Central Hallway South-East"; dir = 8; network = list("SS13")},/turf/simulated/floor,/area/hallway/primary/central/sw) -"bII" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acute1"; name = "Acute 1 Privacy Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) -"bIJ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acute1"; name = "Acute 1 Privacy Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) +"bII" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) +"bIJ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) "bIK" = (/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) "bIL" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2) -"bIM" = (/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) +"bIM" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) "bIN" = (/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) "bIO" = (/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) "bIP" = (/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) "bIQ" = (/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) -"bIR" = (/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) +"bIR" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) "bIS" = (/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) "bIT" = (/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) "bIU" = (/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) @@ -4528,8 +4530,8 @@ "bJf" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bJg" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bJh" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the RD's goons from the safety of his office."; name = "Research Monitor"; network = list("Research","Research Outpost","RD"); pixel_x = 0; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table/glass,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) -"bJi" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/airlock/command{name = "Server Room"; req_access = null; req_access_txt = "30"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) -"bJj" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access_txt = "8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/toxins/storage) +"bJi" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) +"bJj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) "bJk" = (/obj/machinery/vending/coffee,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bJl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bJm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -4557,9 +4559,9 @@ "bJI" = (/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/sw) "bJJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Central Hall SW APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor,/area/hallway/primary/central/sw) "bJK" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/primary/central/sw) -"bJL" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central/sw) +"bJL" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/mining{name = "Mining Dock"; req_access_txt = "48"},/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,/area/quartermaster/miningdock) "bJM" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/sw) -"bJN" = (/obj/structure/sign/securearea{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central/south) +"bJN" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/engineering{name = "Gravity Generator"; req_access_txt = "0"; req_one_access_txt = "10;30"},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/engine/gravitygenerator) "bJO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central/south) "bJP" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/disposalpipe/junction{tag = "icon-pipe-j1 (EAST)"; icon_state = "pipe-j1"; dir = 4},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central/south) "bJQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Central Hall South APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/south) @@ -4575,7 +4577,7 @@ "bKa" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/south) "bKb" = (/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/hallway/primary/central/south) "bKc" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/hallway/primary/central/south) -"bKd" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central/south) +"bKd" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acute1"; name = "Acute 1 Privacy Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) "bKe" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/primary/central/sw) "bKf" = (/obj/machinery/atm{pixel_y = 32},/turf/simulated/floor,/area/hallway/primary/central/sw) "bKg" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor,/area/hallway/primary/central/sw) @@ -4589,12 +4591,12 @@ "bKo" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Acute Treatment 1"; req_access_txt = "5"},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) "bKp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bKq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 9},/turf/simulated/floor{dir = 2; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2) -"bKr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) +"bKr" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acute1"; name = "Acute 1 Privacy Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) "bKs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 10},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) "bKt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) "bKu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) "bKv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) -"bKw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) +"bKw" = (/obj/machinery/light{dir = 1},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bKx" = (/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) "bKy" = (/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) "bKz" = (/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) @@ -4658,7 +4660,7 @@ "bLF" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -25; pixel_y = 0; req_access_txt = "0"},/obj/machinery/light{dir = 8},/obj/structure/stool/bed,/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/sleeper) "bLG" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bLH" = (/obj/machinery/sleep_console{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bLI" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "acute1"; name = "Acute 1 Privacy Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) +"bLI" = (/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,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bLJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bLK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) "bLL" = (/turf/simulated/wall,/area/library) @@ -4682,7 +4684,7 @@ "bMd" = (/obj/machinery/alarm/server{dir = 4; pixel_x = -22; pixel_y = 0},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) "bMe" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) "bMf" = (/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) -"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) +"bMg" = (/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/machinery/door/airlock/command{name = "Server Room"; req_access = null; req_access_txt = "30"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/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; icon_state = "intact"},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) @@ -4716,9 +4718,9 @@ "bML" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/central/sw) "bMM" = (/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/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/central/sw) "bMN" = (/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 = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/sw) -"bMO" = (/obj/machinery/camera{c_tag = "Central Primary Hallway South-West"; dir = 1},/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/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/sw) +"bMO" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access_txt = "8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/toxins/storage) "bMP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/sw) -"bMQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/south) +"bMQ" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/central/sw) "bMR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-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,/area/hallway/primary/central/south) "bMS" = (/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/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"; tag = "icon-pipe-j2"},/turf/simulated/floor,/area/hallway/primary/central/south) "bMT" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/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/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/central/south) @@ -4728,9 +4730,9 @@ "bMX" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/south) "bMY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/central/south) "bMZ" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 22},/turf/simulated/floor,/area/hallway/primary/central/south) -"bNa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central/south) +"bNa" = (/obj/structure/sign/securearea{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central/south) "bNb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/primary/central/sw) -"bNc" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central/sw) +"bNc" = (/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/central/south) "bNd" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/hallway/primary/central/sw) "bNe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/light,/turf/simulated/floor,/area/hallway/primary/central/sw) "bNf" = (/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{dir = 1; icon_state = "loadingarea"; tag = "loading"},/area/hallway/primary/central/sw) @@ -4776,9 +4778,9 @@ "bNT" = (/obj/structure/table,/turf/simulated/shuttle/floor,/area/shuttle/mining/station) "bNU" = (/obj/machinery/computer/shuttle_control/mining,/turf/simulated/shuttle/floor,/area/shuttle/mining/station) "bNV" = (/obj/structure/table,/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "mining_shuttle"; pixel_x = 25; pixel_y = -8; req_access_txt = "0"; req_one_access_txt = "13;48"; tag_door = "mining_shuttle_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/mining/station) -"bNW" = (/obj/structure/grille,/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/quartermaster/miningdock) -"bNX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/miningdock) -"bNY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/miningdock) +"bNW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) +"bNX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) +"bNY" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "acute1"; name = "Acute 1 Privacy Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) "bNZ" = (/obj/machinery/computer/shuttle_control/mining,/turf/simulated/floor{dir = 9; icon_state = "brown"},/area/quartermaster/miningdock) "bOa" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor,/area/quartermaster/miningdock) "bOb" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/quartermaster/miningdock) @@ -4797,15 +4799,15 @@ "bOo" = (/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/cable,/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "representative"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/ntrep) "bOp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{name = "NT Representative's Office"; req_access_txt = "73"},/turf/simulated/floor/wood,/area/ntrep) "bOq" = (/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/cable,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "representative"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/blueshield) -"bOr" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central/south) +"bOr" = (/obj/machinery/door/firedoor{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) "bOs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/wall,/area/crew_quarters/kitchen) "bOt" = (/obj/machinery/door/airlock{name = "Custodial Closet"; req_access_txt = "26"},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/janitor) "bOu" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bOv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{dir = 2; id = "paramedic"; name = "Paramedic Garage"},/turf/simulated/floor,/area/medical/paramedic) -"bOw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/diamond{name = "Paramedic"; req_access_txt = "66"},/turf/simulated/floor,/area/medical/paramedic) +"bOv" = (/obj/machinery/camera{c_tag = "Central Primary Hallway South-West"; dir = 1},/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/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/sw) +"bOw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/south) "bOx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Kitchen"},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/maintenance/fsmaint2) -"bOy" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acutesep"; name = "Acute Separation Privacy Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) -"bOz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acutesep"; name = "Acute Separation Privacy Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) +"bOy" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/central/south) +"bOz" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/central/sw) "bOA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/library) "bOB" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2) "bOC" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) @@ -4831,8 +4833,8 @@ "bOW" = (/mob/living/simple_animal/mouse/white,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage) "bOX" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent,/obj/effect/decal/warning_stripes/yellow,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage) "bOY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/sign/poster/legit{pixel_y = 32},/turf/simulated/floor,/area/hallway/primary/starboard/east) -"bOZ" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"bPa" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) +"bOZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/miningdock) +"bPa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/miningdock) "bPb" = (/obj/machinery/atmospherics/pipe/simple/insulated,/obj/machinery/camera{c_tag = "Research Toxins Mixing North"; dir = 2; network = list("Research","SS13"); pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing) "bPc" = (/obj/machinery/atmospherics/pipe/simple/insulated{dir = 6},/obj/machinery/light{dir = 1; in_use = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing) "bPd" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/wall,/area/library) @@ -4842,7 +4844,7 @@ "bPh" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/primary/central/ne) "bPi" = (/turf/simulated/shuttle/floor,/area/shuttle/mining/station) "bPj" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/mining/station) -"bPk" = (/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) +"bPk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/miningdock) "bPl" = (/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) "bPm" = (/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) "bPn" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/wall,/area/quartermaster/miningdock) @@ -4883,7 +4885,7 @@ "bPW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door_control{id = "paramedic"; name = "Garage Door Control"; pixel_x = -1; pixel_y = 24; req_access_txt = "66"},/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/paramedic) "bPX" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/effect/landmark/start{name = "Paramedic"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/paramedic) "bPY" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "white"},/area/medical/paramedic) -"bPZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Paramedic"; req_access_txt = "66"},/turf/simulated/floor{icon_state = "white"},/area/medical/paramedic) +"bPZ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/central/south) "bQa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/sleeper) "bQb" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bQc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) @@ -4951,9 +4953,9 @@ "bRm" = (/obj/machinery/photocopier,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/wood,/area/blueshield) "bRn" = (/turf/simulated/floor/carpet,/area/ntrep) "bRo" = (/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor/wood,/area/blueshield) -"bRp" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) -"bRq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/aft) -"bRr" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"bRp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{dir = 2; id = "paramedic"; name = "Paramedic Garage"},/turf/simulated/floor,/area/medical/paramedic) +"bRq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/diamond{name = "Paramedic"; req_access_txt = "66"},/turf/simulated/floor,/area/medical/paramedic) +"bRr" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acutesep"; name = "Acute Separation Privacy Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) "bRs" = (/obj/machinery/power/apc{dir = 8; name = "Custodial Closet APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/janitor) "bRt" = (/obj/structure/stool,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/effect/landmark/start{name = "Janitor"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/janitor) "bRu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/janitor) @@ -4966,7 +4968,7 @@ "bRB" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/paramedic) "bRC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/paramedic) "bRD" = (/obj/structure/closet/secure_closet/paramedic,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/paramedic) -"bRE" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "acute2"; name = "Acute 2 Privacy Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) +"bRE" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acutesep"; name = "Acute Separation Privacy Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) "bRF" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2) "bRG" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bRH" = (/obj/machinery/camera{c_tag = "Medbay Port Corridor"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/disposal,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) @@ -4999,7 +5001,7 @@ "bSi" = (/obj/machinery/door/airlock/external{name = "Toxins Test Chamber"; req_access_txt = "0"},/turf/simulated/floor/plating/airless,/area/toxins/test_area) "bSj" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating/airless,/area/toxins/test_area) "bSk" = (/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) -"bSl" = (/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) +"bSl" = (/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/sign/poster/legit{pixel_x = -32},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bSm" = (/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) "bSn" = (/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) "bSo" = (/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) @@ -5077,7 +5079,7 @@ "bTI" = (/obj/structure/closet/crate,/turf/simulated/shuttle/floor,/area/shuttle/mining/station) "bTJ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/shuttle/mining/station) "bTK" = (/obj/structure/ore_box,/turf/simulated/shuttle/floor,/area/shuttle/mining/station) -"bTL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/miningdock) +"bTL" = (/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bTM" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor{dir = 2; icon_state = "brown"},/area/quartermaster/miningdock) "bTN" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/apmaint) "bTO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/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/apmaint) @@ -5095,9 +5097,9 @@ "bUa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bUb" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/hydroponics) "bUc" = (/turf/simulated/wall,/area/medical/sleeper) -"bUd" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "scansep"; name = "Scanning Room Separation Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bUe" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2) -"bUf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) +"bUd" = (/obj/machinery/door/firedoor{dir = 1; name = "hazard door north"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bUe" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/miningdock) +"bUf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Paramedic"; req_access_txt = "66"},/turf/simulated/floor{icon_state = "white"},/area/medical/paramedic) "bUg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/wall,/area/hydroponics) "bUh" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{name = "Hydroponics Maintenance"; req_access_txt = "35"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor/plating,/area/hydroponics) "bUi" = (/obj/machinery/light,/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor{dir = 10; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo) @@ -5120,18 +5122,18 @@ "bUz" = (/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/carpet,/area/medical/psych) "bUA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor/carpet,/area/medical/psych) "bUB" = (/obj/machinery/camera{c_tag = "Medbay Psych Office"; dir = 8; network = list("SS13")},/obj/machinery/power/apc{dir = 4; name = "Psychiatrist APC"; pixel_x = 25},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/carpet,/area/medical/psych) -"bUC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "telescienceblast"; name = "test chamber blast doors"; opacity = 0},/turf/simulated/floor/engine,/area/toxins/telesci) +"bUC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/aft) "bUD" = (/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 = "telescienceblast"; name = "test chamber blast doors"; opacity = 0},/turf/simulated/floor/engine,/area/toxins/telesci) "bUE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "telescienceblast"; name = "test chamber blast doors"; opacity = 0},/turf/simulated/floor/engine,/area/toxins/telesci) "bUF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "telescienceblast"; name = "test chamber blast doors"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/engine,/area/toxins/telesci) "bUG" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage) "bUH" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage) "bUI" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) -"bUJ" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Research Division Access"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/mixing) +"bUJ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "bUK" = (/obj/effect/decal/warning_stripes/west,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/mixing) "bUL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/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 = "floorgrime"},/area/toxins/mixing) "bUM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/effect/decal/warning_stripes/east,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/mixing) -"bUN" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Toxins Mixing Room"; req_access_txt = "7"},/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/toxins/mixing) +"bUN" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bUO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "whitepurple"},/area/toxins/mixing) "bUP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing) "bUQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/window/eastright{name = "Toxins Mixing Room"},/turf/simulated/floor{dir = 4; icon_state = "whitepurple"},/area/toxins/mixing) @@ -5156,9 +5158,9 @@ "bVj" = (/obj/structure/shuttle/engine/propulsion/burst,/turf/space,/area/shuttle/mining/station) "bVk" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/mining/station) "bVl" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "mining_dock_airlock"; name = "exterior access button"; pixel_x = -5; pixel_y = 25; req_access_txt = "0"; req_one_access_txt = "13;48"},/turf/space,/area) -"bVm" = (/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/quartermaster/miningdock) -"bVn" = (/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/quartermaster/miningdock) -"bVo" = (/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/quartermaster/miningdock) +"bVm" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "acute2"; name = "Acute 2 Privacy Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) +"bVn" = (/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{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/miningdock) +"bVo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/miningdock) "bVp" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/apmaint) "bVq" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/apmaint) "bVr" = (/obj/machinery/power/apc{dir = 2; name = "Cargo Maintenance APC"; pixel_y = -24},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plating,/area/maintenance/apmaint) @@ -5197,8 +5199,8 @@ "bVY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/central/ne) "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/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/wall,/area/library) -"bWb" = (/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) -"bWc" = (/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) +"bWb" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "scansep"; name = "Scanning Room Separation Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bWc" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2) "bWd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/escapepodbay) "bWe" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/escapepodbay) "bWf" = (/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) @@ -5234,7 +5236,7 @@ "bWJ" = (/obj/machinery/atmospherics/valve,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing) "bWK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing) "bWL" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing) -"bWM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/research{name = "Toxins Launch Room"; req_access_txt = "7"},/turf/simulated/floor,/area/toxins/mixing) +"bWM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) "bWN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/toxins/mixing) "bWO" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/toxins/mixing) "bWP" = (/obj/machinery/doppler_array{dir = 4},/turf/simulated/floor,/area/toxins/mixing) @@ -5267,7 +5269,7 @@ "bXq" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor,/area/medical/sleeper) "bXr" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/medical/sleeper) "bXs" = (/turf/simulated/floor{dir = 4; icon_state = "blue"},/area/medical/sleeper) -"bXt" = (/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) +"bXt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "telescienceblast"; name = "test chamber blast doors"; opacity = 0},/turf/simulated/floor/engine,/area/toxins/telesci) "bXu" = (/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) "bXv" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2) "bXw" = (/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) @@ -5296,7 +5298,7 @@ "bXT" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_y = 30},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci) "bXU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci) "bXV" = (/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci) -"bXW" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/toxins/storage) +"bXW" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Research Division Access"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/mixing) "bXX" = (/obj/machinery/vending/snack,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bXY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bXZ" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -5342,7 +5344,7 @@ "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/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/medical/sleeper) -"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) +"bYQ" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Toxins Mixing Room"; req_access_txt = "7"},/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/toxins/mixing) "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) "bYT" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/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 = "white"},/area/medical/medbay2) @@ -5356,7 +5358,7 @@ "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/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bZd" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/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},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) +"bZe" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/miningdock) "bZf" = (/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) "bZg" = (/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) "bZh" = (/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/disposalpipe/segment{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) @@ -5371,7 +5373,7 @@ "bZq" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci) "bZr" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci) "bZs" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/toxins/telesci) -"bZt" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bZt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/miningdock) "bZu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bZv" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bZw" = (/obj/structure/rack{dir = 1},/obj/item/weapon/extinguisher,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -5394,7 +5396,7 @@ "bZN" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2"; icon_state = "pipe-j2"; dir = 2},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "bZO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) "bZP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"bZQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "Engineering"},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/window/westright{name = "Engineering Monitoring Station"; req_access = null; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor{icon_state = "bot"},/area/engine/controlroom) +"bZQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/miningdock) "bZR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/window/northleft{dir = 4; icon_state = "left"; name = "Engineering Monitoring Station"; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor{icon_state = "delivery"},/area/engine/controlroom) "bZS" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/engine/controlroom) "bZT" = (/turf/simulated/floor,/area/engine/controlroom) @@ -5411,7 +5413,7 @@ "cae" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "caf" = (/obj/structure/stool/bed/chair/comfy/teal,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "cag" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) -"cah" = (/obj/machinery/light,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) +"cah" = (/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,/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2) "cai" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) "caj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) "cak" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) @@ -5425,8 +5427,8 @@ "cas" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci) "cat" = (/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{icon_state = "white"},/area/toxins/telesci) "cau" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci) -"cav" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "hazard door east"},/obj/machinery/door/airlock/research{name = "Telescience"; req_access_txt = "47"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci) -"caw" = (/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"cav" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2) +"caw" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/research{name = "Toxins Launch Room"; req_access_txt = "7"},/turf/simulated/floor,/area/toxins/mixing) "cax" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cay" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "caz" = (/obj/machinery/camera{c_tag = "Research Hallway South"; dir = 1; network = list("Research","SS13"); pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -5458,9 +5460,9 @@ "caZ" = (/obj/structure/table,/obj/item/device/analyzer,/obj/item/device/healthanalyzer,/turf/simulated/floor/plating,/area/storage/tech) "cba" = (/obj/structure/table,/obj/item/device/analyzer/plant_analyzer,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plating,/area/storage/tech) "cbb" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plating,/area/storage/tech) -"cbc" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) -"cbd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/aft) -"cbe" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/aft) +"cbc" = (/obj/machinery/door/firedoor,/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) +"cbd" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/toxins/storage) +"cbe" = (/obj/machinery/door/firedoor,/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) "cbf" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/engine/controlroom) "cbg" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/dispenser{pixel_x = -1},/turf/simulated/floor,/area/engine/controlroom) "cbh" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/engine/controlroom) @@ -5518,7 +5520,7 @@ "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; initialize_directions = 11; level = 1},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/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) +"cck" = (/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,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "ccl" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/controlroom) "ccm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/controlroom) "ccn" = (/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/controlroom) @@ -5637,12 +5639,12 @@ "cew" = (/obj/machinery/light/small{dir = 8},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/apmaint) "cex" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/crew{pixel_x = -1; pixel_y = 1},/obj/item/weapon/circuitboard/card{pixel_x = 2; pixel_y = -2},/obj/item/weapon/circuitboard/communications{pixel_x = 5; pixel_y = -5},/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/storage/tech) "cey" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/storage/tech) -"cez" = (/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/highsecurity{name = "Secure Tech Storage"; req_access_txt = "19;23"},/turf/simulated/floor/plating,/area/storage/tech) +"cez" = (/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "ceA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/storage/tech) "ceB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/plating,/area/storage/tech) "ceC" = (/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/storage/tech) "ceD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/effect/landmark{name = "blobstart"},/obj/machinery/hologram/holopad,/turf/simulated/floor/plating,/area/storage/tech) -"ceE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/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/engineering{name = "Tech Storage"; req_access_txt = "23"},/turf/simulated/floor/plating,/area/storage/tech) +"ceE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "Engineering"},/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/window/westright{name = "Engineering Monitoring Station"; req_access = null; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor{icon_state = "bot"},/area/engine/controlroom) "ceF" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "ceG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/hallway/primary/aft) "ceH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) @@ -5679,9 +5681,9 @@ "cfm" = (/obj/structure/rack{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "cfn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/kitchen) "cfo" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/chapel/main) -"cfp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) -"cfq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) -"cfr" = (/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) +"cfp" = (/obj/machinery/light,/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) +"cfq" = (/obj/machinery/door/firedoor{dir = 4; name = "hazard door east"},/obj/machinery/door/airlock/research{name = "Telescience"; req_access_txt = "47"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci) +"cfr" = (/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cfs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hallway/primary/central/nw) "cft" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/primary/central/ne) "cfu" = (/obj/machinery/smartfridge,/turf/simulated/wall,/area/hydroponics) @@ -5706,7 +5708,7 @@ "cfN" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/powermonitor{pixel_x = -2; pixel_y = 2},/obj/item/weapon/circuitboard/stationalert{pixel_x = 1; pixel_y = -1},/obj/item/weapon/circuitboard/atmos_alert{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/thermomachine,/obj/item/weapon/circuitboard/smes{pixel_x = 4},/turf/simulated/floor/plating,/area/storage/tech) "cfO" = (/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor/plating,/area/storage/tech) "cfP" = (/obj/structure/closet/emcloset,/turf/simulated/floor{icon_state = "caution"; dir = 4},/area/hallway/secondary/construction{name = "\improper Engineering Training"}) -"cfQ" = (/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/engine/controlroom) +"cfQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/aft) "cfR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/engine/controlroom) "cfS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/engine/controlroom) "cfT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/engine/controlroom) @@ -5736,7 +5738,7 @@ "cgr" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) "cgs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "cgt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/primary/central/nw) -"cgu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Xenobiology Research"; req_access_txt = "47"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"cgu" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "cgv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/wall/r_wall,/area/toxins/misc_lab) "cgw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/wall/r_wall,/area/toxins/misc_lab) "cgx" = (/turf/simulated/wall,/area/toxins/misc_lab) @@ -5763,7 +5765,7 @@ "cgS" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "cgT" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/apmaint) "cgU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/apmaint) -"cgV" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/window/eastleft{name = "Hydroponics Desk"; req_access_txt = "35"},/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Kitchen Desk"; req_access_txt = "28"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/hydroponics) +"cgV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/aft) "cgW" = (/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/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/bridge) "cgX" = (/turf/simulated/wall/r_wall,/area/hallway/primary/aft) "cgY" = (/turf/simulated/wall/r_wall,/area/engine/controlroom) @@ -5838,7 +5840,7 @@ "cip" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/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},/turf/simulated/floor,/area/engine/controlroom) -"cis" = (/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/structure/table/reinforced,/obj/machinery/door/firedoor{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) "cit" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor{icon_state = "dark"},/area/construction) "ciu" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "dark"},/area/construction) "civ" = (/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) @@ -5908,7 +5910,7 @@ "cjH" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Research Test Lab South"; dir = 8; network = list("Research","SS13")},/turf/simulated/floor{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/misc_lab) "cjI" = (/obj/structure/sign/poster/legit{pixel_x = -32},/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2) "cjJ" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"cjK" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/sign/poster/legit{pixel_x = -32},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) +"cjK" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Xenobiology Research"; req_access_txt = "47"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cjL" = (/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,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "cjM" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/toxins/xenobiology) "cjN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "whitehall"; dir = 4},/area/toxins/xenobiology) @@ -5949,7 +5951,7 @@ "ckw" = (/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) "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/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/construction) -"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) +"ckz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/highsecurity{name = "Secure Tech Storage"; req_access_txt = "19;23"},/turf/simulated/floor/plating,/area/storage/tech) "ckA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/construction) "ckB" = (/turf/simulated/wall/r_wall,/area/maintenance/incinerator) "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) @@ -5966,7 +5968,7 @@ "ckN" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "ckO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "ckP" = (/obj/machinery/embedded_controller/radio/airlock/access_controller{frequency = 1449; id_tag = "testchamber_access_control"; name = "Test Chamber Access Console"; pixel_x = -26; pixel_y = 6; req_access_txt = "47"; tag_exterior_door = "testchamber_airlock_exterior"; tag_interior_door = "testchamber_airlock_interior"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/misc_lab) -"ckQ" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -24; pixel_y = 0; req_access_txt = "55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xeno_airlock_exterior"; locked = 1; name = "Xenobiology External Airlock"; req_access_txt = "55"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"ckQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/engineering{name = "Tech Storage"; req_access_txt = "23"},/turf/simulated/floor/plating,/area/storage/tech) "ckR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera{c_tag = "Medbay Psych Office Corridor West"; network = list("SS13")},/obj/structure/sign/poster/legit{pixel_y = 32},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "ckS" = (/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"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/toxins/misc_lab) "ckT" = (/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"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/toxins/misc_lab) @@ -5988,7 +5990,7 @@ "clj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/engine/mechanic_workshop) "clk" = (/obj/machinery/atmospherics/unary/vent_pump{on = 0},/turf/simulated/floor{icon_state = "dark"},/area/engine/mechanic_workshop) "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) +"clm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) "cln" = (/turf/simulated/floor,/area/hallway/primary/aft) "clo" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/aft) "clp" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor,/area/hallway/primary/aft) @@ -6045,7 +6047,7 @@ "cmo" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor{icon_state = "dark"},/area/engine/mechanic_workshop) "cmp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/engine/mechanic_workshop) "cmq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Mechanic"},/turf/simulated/floor{icon_state = "dark"},/area/engine/mechanic_workshop) -"cmr" = (/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/supply{dir = 4},/obj/machinery/cell_charger,/turf/simulated/floor{icon_state = "dark"},/area/engine/mechanic_workshop) +"cmr" = (/obj/machinery/door/firedoor{dir = 2; name = "hazard door south"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) "cms" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/engine/mechanic_workshop) "cmt" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/mechanic_workshop) "cmu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) @@ -6087,7 +6089,7 @@ "cne" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/chapel/main) "cnf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "solar_xeno_pump"; tag_exterior_door = "solar_xeno_outer"; frequency = 1379; id_tag = "solar_xeno_airlock"; tag_interior_door = "solar_xeno_inner"; pixel_x = 25; req_access_txt = "13"; tag_chamber_sensor = "solar_xeno_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "solar_xeno_sensor"; pixel_x = 25; pixel_y = 12},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "solar_xeno_pump"},/turf/simulated/floor/plating,/area/solar/starboard) "cng" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/aft) -"cnh" = (/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) +"cnh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor{dir = 2; name = "hazard door south"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) "cni" = (/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) "cnj" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/storage/tech) "cnk" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/aft) @@ -6096,7 +6098,7 @@ "cnn" = (/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) "cno" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/aft) "cnp" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "yellow"},/area/hallway/primary/aft) -"cnq" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "32"; req_one_access_txt = "0"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room) +"cnq" = (/obj/machinery/door/firedoor{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/engine/controlroom) "cnr" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room) "cns" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room) "cnt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/nations{name = "Atmosia"},/turf/simulated/floor,/area/engine/break_room) @@ -6128,7 +6130,7 @@ "cnT" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cnU" = (/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/toxins/xenobiology) "cnV" = (/obj/structure/closet/firecloset,/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/toxins/misc_lab) -"cnW" = (/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{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/research{name = "Test Lab"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab) +"cnW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Xenobiology Research"; req_access_txt = "47"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cnX" = (/obj/machinery/atmospherics/pipe/vent{dir = 8},/turf/simulated/floor/plating/airless,/area) "cnY" = (/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_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/solar/starboard) "cnZ" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area) @@ -6179,7 +6181,7 @@ "coS" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen"; req_access_txt = "55"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/xenobiology) "coT" = (/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "coU" = (/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/toxins/xenobiology) -"coV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -28; pixel_y = 8; req_access_txt = "55"},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xeno_airlock_interior"; locked = 1; name = "Xenobiology Internal Airlock"; req_access_txt = "55"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"coV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/maintenance{name = "Incinerator Access"; req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/incinerator) "coW" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "solar_xeno_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk3"; icon_state = "catwalk3"},/area/solar/starboard) "coX" = (/turf/space,/area/xenos_station/southwest) "coY" = (/turf/simulated/wall,/area/maintenance/incinerator) @@ -6192,7 +6194,7 @@ "cpf" = (/obj/item/mounted/frame/apc_frame,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/assembly/assembly_line) "cpg" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line) "cph" = (/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line) -"cpi" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{icon_state = "door_locked"; locked = 1; name = "Assembly Line (KEEP OUT)"; req_access_txt = "32"; req_one_access_txt = "0"},/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line) +"cpi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor{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) "cpj" = (/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/aft) "cpk" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/aft) "cpl" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/hallway/primary/aft) @@ -6202,7 +6204,7 @@ "cpp" = (/obj/structure/table,/obj/item/weapon/book/manual/supermatter_engine,/turf/simulated/floor,/area/engine/break_room) "cpq" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/obj/effect/landmark/start{name = "Life Support Specialist"},/turf/simulated/floor,/area/engine/break_room) "cpr" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/engine/break_room) -"cps" = (/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) +"cps" = (/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{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/research{name = "Test Lab"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab) "cpt" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor,/area/atmos/control) "cpu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{level = 2},/turf/simulated/floor,/area/atmos/control) "cpv" = (/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) @@ -6378,12 +6380,12 @@ "csJ" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/assembly/assembly_line) "csK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/aft) "csL" = (/obj/structure/sign/securearea,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/equipmentstorage) -"csM" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor,/area/engine/equipmentstorage) +"csM" = (/obj/machinery/door/firedoor{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) "csN" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/equipmentstorage) "csO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/equipmentstorage) "csP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/equipmentstorage) "csQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/equipmentstorage) -"csR" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor,/area/engine/equipmentstorage) +"csR" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -24; pixel_y = 0; req_access_txt = "55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xeno_airlock_exterior"; locked = 1; name = "Xenobiology External Airlock"; req_access_txt = "55"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "csS" = (/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},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/equipmentstorage) "csT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/computer/atmos_alert,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/atmos) "csU" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/atmos) @@ -6485,7 +6487,7 @@ "cuM" = (/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) "cuN" = (/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) "cuO" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes{charge = 0},/turf/simulated/floor/plating,/area/maintenance/portsolar) -"cuP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/maintenance{name = "Incinerator Access"; req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/incinerator) +"cuP" = (/obj/machinery/door/firedoor{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) "cuQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) "cuR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) "cuS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) @@ -6572,7 +6574,7 @@ "cwv" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/atmos) "cww" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/atmos) "cwx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 6},/turf/simulated/floor,/area/atmos) -"cwy" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass_atmos{name = "Distribution Loop"; req_access_txt = "24"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 4},/turf/simulated/floor,/area/atmos/distribution) +"cwy" = (/obj/machinery/door/firedoor{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/supply{dir = 4},/obj/machinery/cell_charger,/turf/simulated/floor{icon_state = "dark"},/area/engine/mechanic_workshop) "cwz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 9},/turf/simulated/floor,/area/atmos/distribution) "cwA" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 6; level = 2},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/atmos/distribution) "cwB" = (/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) @@ -6723,7 +6725,7 @@ "czq" = (/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) "czr" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engine/hardsuitstorage) "czs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/engine/hardsuitstorage) -"czt" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/airlock/glass_engineering{name = "Storage"; req_access_txt = "11"; req_one_access_txt = null},/turf/simulated/floor,/area/engine/hardsuitstorage) +"czt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/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) "czu" = (/obj/machinery/camera{c_tag = "Engineering Chief Engineer's Office"; dir = 4; network = list("SS13")},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -30; pixel_y = 0},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "czv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "czw" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/stool/bed/chair{dir = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) @@ -6781,15 +6783,15 @@ "cAw" = (/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) "cAx" = (/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) "cAy" = (/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) -"cAz" = (/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/maintenance/engi_shuttle) +"cAz" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "32"; req_one_access_txt = "0"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room) "cAA" = (/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) "cAB" = (/turf/simulated/wall/r_wall,/area/engine/mechanic_workshop) "cAC" = (/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) -"cAD" = (/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) +"cAD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass_research{name = "Firing Range"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) "cAE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) "cAF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) "cAG" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area) -"cAH" = (/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = null},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room) +"cAH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -28; pixel_y = 8; req_access_txt = "55"},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xeno_airlock_interior"; locked = 1; name = "Xenobiology Internal Airlock"; req_access_txt = "55"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cAI" = (/turf/simulated/wall/r_wall{desc = "A specially coated wall that resists temperatures for Science"; max_temperature = 1e+009; name = "Coated Reinforced Wall"},/area/engine/mechanic_workshop) "cAJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) "cAK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) @@ -6843,7 +6845,7 @@ "cBG" = (/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) "cBH" = (/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) "cBI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"cBJ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = null},/turf/simulated/floor,/area/engine/engineering) +"cBJ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{icon_state = "door_locked"; locked = 1; name = "Assembly Line (KEEP OUT)"; req_access_txt = "32"; req_one_access_txt = "0"},/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line) "cBK" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/engine/engineering) "cBL" = (/obj/machinery/camera{c_tag = "Engineering East"; network = list("SS13")},/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},/turf/simulated/floor,/area/engine/engineering) "cBM" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/engine/engineering) @@ -6852,7 +6854,7 @@ "cBP" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) "cBQ" = (/obj/machinery/power/smes{charge = 1e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/engine/engineering) "cBR" = (/obj/effect/decal/warning_stripes/west,/turf/simulated/floor/engine,/area/engine/mechanic_workshop) -"cBS" = (/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 = 1; name = "hazard door north"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "robotics"; name = "Robotics Lab Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/assembly/robotics) +"cBS" = (/obj/machinery/door/firedoor{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) "cBT" = (/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) "cBU" = (/obj/machinery/atmospherics/pipe/manifold/visible/purple{dir = 8},/turf/simulated/floor,/area/atmos) "cBV" = (/obj/machinery/atmospherics/binary/volume_pump/on{dir = 8; name = "Port to Filter"},/turf/simulated/floor,/area/atmos) @@ -6876,7 +6878,7 @@ "cCn" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "cCo" = (/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) "cCp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) -"cCq" = (/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{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "rdlab"; name = "Research and Development Lab Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/toxins/lab) +"cCq" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor,/area/engine/equipmentstorage) "cCr" = (/obj/machinery/clonepod{biomass = 150},/turf/simulated/floor/engine,/area/toxins/xenobiology) "cCs" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/engine,/area/toxins/xenobiology) "cCt" = (/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) @@ -6890,11 +6892,11 @@ "cCB" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/engine/engineering) "cCC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/engine/engineering) "cCD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"cCE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = null},/turf/simulated/floor,/area/engine/engineering) +"cCE" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor,/area/engine/equipmentstorage) "cCF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/engine/engineering) "cCG" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/floor,/area/engine/engineering) "cCH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = -32; req_access_txt = "0"},/turf/simulated/floor,/area/engine/engineering) -"cCI" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = null},/turf/simulated/floor,/area/engine/engineering) +"cCI" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass_atmos{name = "Distribution Loop"; req_access_txt = "24"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 4},/turf/simulated/floor,/area/atmos/distribution) "cCJ" = (/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,/area/engine/engineering) "cCK" = (/obj/machinery/power/smes{charge = 1e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) "cCL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/engine/controlroom) @@ -6945,7 +6947,7 @@ "cDE" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/wall/r_wall,/area/engine/controlroom) "cDF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/wall/r_wall,/area/engine/break_room) "cDG" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/wall/r_wall,/area/engine/break_room) -"cDH" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.7; name = "Singularity Blast Doors"; opacity = 0},/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = null},/turf/simulated/floor/plating,/area/engine/engineering) +"cDH" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/airlock/glass_engineering{name = "Storage"; req_access_txt = "11"; req_one_access_txt = null},/turf/simulated/floor,/area/engine/hardsuitstorage) "cDI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/atmos/control) "cDJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/atmos/control) "cDK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/atmos/control) @@ -6981,7 +6983,7 @@ "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) "cEp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/storage/secure) "cEq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/storage/secure) -"cEr" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor{id = "Secure Storage"; name = "Secure Storage Blast Doors"},/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/storage/secure) +"cEr" = (/obj/machinery/door/firedoor,/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/maintenance/engi_shuttle) "cEs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cEt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cEu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/engine/engineering) @@ -7020,13 +7022,13 @@ "cFb" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/storage/secure) "cFc" = (/turf/simulated/floor{icon_state = "dark"},/area/storage/secure) "cFd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "dark"},/area/storage/secure) -"cFe" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor{id = "Secure Storage"; name = "Secure Storage Blast Doors"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/storage/secure) +"cFe" = (/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,/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/turf/simulated/floor,/area/engine/chiefs_office) "cFf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cFg" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/engine/engineering) "cFh" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cFi" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cFj" = (/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,/area/engine/engineering) -"cFk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.7; name = "Singularity Blast Doors"; opacity = 0},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/engine/engineering) +"cFk" = (/obj/machinery/door/firedoor{layer = 2.6; name = "\improper Firelock South"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = null},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room) "cFl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) "cFm" = (/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,/area/engine/engineering) "cFn" = (/obj/structure/particle_accelerator/end_cap,/turf/simulated/floor/plating,/area/engine/engineering) @@ -7294,7 +7296,7 @@ "cKp" = (/obj/item/weapon/screwdriver,/obj/structure/lattice,/turf/space,/area) "cKq" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; state = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/camera/emp_proof{c_tag = "Engineering Singularity East"; dir = 8; network = list("Singularity","SS13")},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cKr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/hallway/primary/aft) -"cKs" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/command{name = "MiniSat Access"; req_access_txt = "75"},/turf/simulated/floor,/area/engine/engineering) +"cKs" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = null},/turf/simulated/floor,/area/engine/engineering) "cKt" = (/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/engine/engineering) "cKu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/engine/engineering) "cKv" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 10; initialize_directions = 10; 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{dir = 10; initialize_directions = 10; level = 2},/turf/simulated/floor/plating,/area/atmos/distribution) @@ -7341,12 +7343,12 @@ "cLk" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plating,/area/aisat/entrance) "cLl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/aisat/entrance) "cLm" = (/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/aisat/entrance) -"cLn" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/hatch{name = "MiniSat Teleporter Room"; req_access_txt = "17;75"},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/aisat/entrance) +"cLn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = null},/turf/simulated/floor,/area/engine/engineering) "cLo" = (/obj/machinery/bluespace_beacon,/obj/effect/decal/warning_stripes/east,/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/aisat/entrance) "cLp" = (/obj/machinery/teleport/station,/turf/simulated/floor/plating,/area/aisat/entrance) "cLq" = (/obj/machinery/light,/obj/structure/transit_tube/station{icon_state = "closed"; dir = 4},/obj/machinery/status_display{pixel_x = 0; pixel_y = -32},/turf/simulated/floor{tag = "icon-brown (EAST)"; icon_state = "brown"; dir = 4},/area/aisat/entrance) "cLr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/aisat/entrance) -"cLs" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{dir = 8; id = "teledoor"; name = "AI Satellite Teleport Access"},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/aisat/entrance) +"cLs" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = null},/turf/simulated/floor,/area/engine/engineering) "cLt" = (/obj/machinery/door_control{desc = "A remote control-switch for the engineering security doors."; id = "teledoor"; name = "AI Satellite Teleport Shutters Control"; pixel_x = 0; pixel_y = -25; req_access_txt = "17;75"},/obj/effect/decal/warning_stripes/east,/obj/machinery/camera{c_tag = "Mini Satellite Teleporter"; dir = 1; network = list("SS13","MiniSat")},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/aisat/entrance) "cLu" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plating,/area/aisat/entrance) "cLv" = (/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/aisat/entrance) @@ -7376,20 +7378,20 @@ "cLT" = (/turf/space,/area/syndicate_station/south) "cLU" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area) "cLV" = (/obj/structure/window/reinforced,/turf/space,/area) -"cLW" = (/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) -"cLX" = (/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) +"cLW" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.7; name = "Singularity Blast Doors"; opacity = 0},/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = null},/turf/simulated/floor/plating,/area/engine/engineering) +"cLX" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{id = "Secure Storage"; name = "Secure Storage Blast Doors"},/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/storage/secure) "cLY" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area) "cLZ" = (/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) "cMa" = (/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) "cMb" = (/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) -"cMc" = (/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) +"cMc" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{id = "Secure Storage"; name = "Secure Storage Blast Doors"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/storage/secure) "cMd" = (/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) "cMe" = (/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) "cMf" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cMg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cMh" = (/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) "cMi" = (/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) -"cMj" = (/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) +"cMj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.7; name = "Singularity Blast Doors"; opacity = 0},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/engine/engineering) "cMk" = (/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) "cMl" = (/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) "cMm" = (/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) @@ -7416,7 +7418,7 @@ "cMH" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = -32},/obj/machinery/porta_turret{dir = 1},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior) "cMI" = (/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) "cMJ" = (/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) -"cMK" = (/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) +"cMK" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "MiniSat Access"; req_access_txt = "75"},/turf/simulated/floor,/area/engine/engineering) "cML" = (/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) "cMM" = (/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) "cMN" = (/obj/machinery/camera{c_tag = "Mini Satellite AI Chamber North"; dir = 2; network = list("SS13","MiniSat")},/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/turret_protected/ai) @@ -7468,13 +7470,13 @@ "cNH" = (/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) "cNI" = (/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) "cNJ" = (/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) -"cNK" = (/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) +"cNK" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{name = "MiniSat Teleporter Room"; req_access_txt = "17;75"},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/aisat/entrance) "cNL" = (/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) "cNM" = (/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) "cNN" = (/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) "cNO" = (/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) "cNP" = (/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) -"cNQ" = (/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) +"cNQ" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{dir = 8; id = "teledoor"; name = "AI Satellite Teleport Access"},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/aisat/entrance) "cNR" = (/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) "cNS" = (/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) "cNT" = (/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) @@ -9269,6 +9271,8 @@ "dwo" = (/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2) "dwp" = (/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1) "dwq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/crew_quarters/fitness) +"dwr" = (/obj/machinery/door/firedoor,/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) +"dws" = (/obj/machinery/door/firedoor,/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) "dwt" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/wood,/area/bridge/meeting_room) "dwu" = (/obj/item/trash/cheesie,/turf/space,/area) "dwv" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/derelict/ship) @@ -9665,6 +9669,7 @@ "dDW" = (/obj/structure/lattice,/turf/space,/area/AIsattele) "dDX" = (/obj/structure/closet,/turf/simulated/floor/plating/airless,/area/AIsattele) "dDY" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/traitor/empty) +"dDZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/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) "dEa" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/simulated/floor/plating/airless,/area/AIsattele) "dEb" = (/turf/simulated/wall,/area/constructionsite/maintenance) "dEc" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/constructionsite/maintenance) @@ -9949,7 +9954,7 @@ "dJv" = (/turf/simulated/wall,/area/constructionsite/atmospherics) "dJw" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating/airless,/area/constructionsite/atmospherics) "dJx" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1443; input_tag = "d_air_in"; name = "Mixed Air Supply Control"; output_tag = "d_air_out"; pressure_setting = 2000; sensors = list("d_air_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating/airless,/area/constructionsite/atmospherics) -"dJy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/constructionsite/atmospherics) +"dJy" = (/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,/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) "dJz" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; external_pressure_bound = 0; frequency = 1443; icon_state = "in"; id_tag = "d_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/constructionsite/atmospherics) "dJA" = (/obj/machinery/light/small{dir = 1},/obj/machinery/air_sensor{frequency = 1443; id_tag = "d_air_sensor"; output = 7},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/constructionsite/atmospherics) "dJB" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/plating/airless,/area/constructionsite/atmospherics) @@ -10024,9 +10029,9 @@ "dKS" = (/obj/machinery/light/small,/obj/structure/transit_tube,/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) "dKT" = (/obj/structure/transit_tube{icon_state = "W-SE"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) "dKU" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/simulated/mineral,/area/mine/unexplored) -"dKV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/space,/area/research_outpost/hallway) -"dKW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) -"dKX" = (/obj/structure/grille,/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/hallway) +"dKV" = (/obj/machinery/door/firedoor,/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) +"dKW" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "75"},/turf/simulated/floor,/area/aisat/maintenance) +"dKX" = (/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,/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "75"},/turf/simulated/floor,/area/aisat/maintenance) "dKY" = (/obj/structure/lattice,/obj/structure/transit_tube{icon_state = "NE-SW"},/turf/space,/area) "dKZ" = (/obj/structure/transit_tube{icon_state = "D-NW"},/obj/structure/lattice,/turf/space,/area) "dLa" = (/turf/simulated/wall/r_wall,/area/research_outpost/maintstore1) @@ -10034,10 +10039,10 @@ "dLc" = (/obj/structure/transit_tube{icon_state = "NW-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/maintstore1) "dLd" = (/obj/structure/transit_tube{icon_state = "D-SE"},/turf/simulated/mineral,/area/mine/unexplored) "dLe" = (/obj/structure/transit_tube{icon_state = "E-SW"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) -"dLf" = (/obj/structure/transit_tube,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/hallway) +"dLf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/constructionsite/atmospherics) "dLg" = (/obj/structure/transit_tube/station,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/research_outpost/hallway) "dLh" = (/obj/structure/transit_tube,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) -"dLi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/transit_tube,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) +"dLi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) "dLj" = (/obj/structure/transit_tube{icon_state = "W-SE"},/obj/structure/lattice,/turf/space,/area) "dLk" = (/obj/structure/lattice,/obj/structure/transit_tube{icon_state = "D-SW"},/turf/space,/area) "dLl" = (/obj/structure/transit_tube{icon_state = "S-NE"},/obj/structure/lattice,/turf/space,/area) @@ -10076,14 +10081,14 @@ "dLS" = (/obj/structure/closet/crate/hydroponics,/obj/item/weapon/shovel/spade,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/minihoe,/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 13; pixel_y = 5},/obj/item/weedkiller/triclopyr,/obj/item/weapon/reagent_containers/glass/fertilizer/ez,/turf/simulated/floor/plating,/area/research_outpost/maintstore1) "dLT" = (/obj/machinery/light/small,/obj/structure/closet/walllocker/emerglocker/north{dir = 1; pixel_y = -32},/turf/simulated/floor/plating,/area/research_outpost/maintstore1) "dLU" = (/obj/machinery/light_switch{pixel_y = -23},/turf/simulated/floor/plating,/area/research_outpost/maintstore1) -"dLV" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/maintenance{name = "Auxiliary Storage"; req_access_txt = "0"; req_one_access_txt = "65;12"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/maintstore1) +"dLV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) "dLW" = (/turf/simulated/floor,/area/research_outpost/maintstore1) "dLX" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/research_outpost/maintstore1) "dLY" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/camera{c_tag = "Research Outpost Auxiliary Storage"; dir = 8; network = list("Research Outpost")},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor,/area/research_outpost/maintstore1) "dLZ" = (/obj/structure/table,/turf/simulated/floor/carpet,/area/research_outpost/hallway) "dMa" = (/obj/machinery/light_switch{pixel_y = -23},/turf/simulated/floor/carpet,/area/research_outpost/hallway) -"dMb" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock{id_tag = "rminingdorm1"; name = "Dorm 1"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/research_outpost/hallway) -"dMc" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock{id_tag = "rdorm2"; name = "Dorm 2"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/research_outpost/hallway) +"dMb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/space,/area/research_outpost/hallway) +"dMc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/transit_tube,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) "dMd" = (/obj/structure/transit_tube{icon_state = "N-S"},/obj/structure/lattice,/turf/space,/area) "dMe" = (/obj/structure/lattice,/obj/structure/transit_tube{icon_state = "D-SE"},/turf/space,/area) "dMf" = (/obj/structure/transit_tube{icon_state = "E-SW"},/obj/structure/lattice,/turf/space,/area) @@ -10099,16 +10104,16 @@ "dMp" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/research_outpost/hallway) "dMq" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/research_outpost/hallway) "dMr" = (/turf/simulated/wall/r_wall,/area/research_outpost/atmos) -"dMs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) -"dMt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) -"dMu" = (/obj/structure/grille,/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/atmos) +"dMs" = (/obj/structure/transit_tube,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/hallway) +"dMt" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/maintenance{name = "Auxiliary Storage"; req_access_txt = "0"; req_one_access_txt = "65;12"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/maintstore1) +"dMu" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock{id_tag = "rdorm2"; name = "Dorm 2"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/research_outpost/hallway) "dMv" = (/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/mine/abandoned) "dMw" = (/obj/machinery/door/airlock/external,/turf/simulated/floor,/area/mine/abandoned) "dMx" = (/obj/structure/lattice,/obj/structure/transit_tube{icon_state = "S-NE"},/turf/space,/area) "dMy" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/obj/item/stack/nanopaste,/obj/item/stack/nanopaste,/obj/item/stack/nanopaste,/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) "dMz" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) "dMA" = (/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro) -"dMB" = (/obj/machinery/door/airlock/research{name = "Spectrometry Lab Sample Preparation"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) +"dMB" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock{id_tag = "rminingdorm1"; name = "Dorm 1"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/research_outpost/hallway) "dMC" = (/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dMD" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dME" = (/obj/structure/table,/obj/machinery/light{dir = 1},/obj/machinery/reagentgrinder,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) @@ -10129,7 +10134,7 @@ "dMT" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister,/obj/machinery/camera{c_tag = "Research Outpost Atmospherics"; dir = 2; network = list("Research Outpost")},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dMU" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/research_outpost/atmos) "dMV" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/atmos) -"dMW" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"dMW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dMX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/abandoned) "dMY" = (/turf/simulated/floor,/area/mine/abandoned) "dMZ" = (/obj/machinery/radiocarbon_spectrometer,/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) @@ -10146,7 +10151,7 @@ "dNk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/wall,/area/research_outpost/hallway) "dNl" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/structure/curtain/open/shower,/turf/simulated/floor{icon_state = "showroomfloor"},/area/research_outpost/hallway) "dNm" = (/obj/machinery/door_control{id = "rbath"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor{icon_state = "showroomfloor"},/area/research_outpost/hallway) -"dNn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock{id_tag = "rbath"; name = "Bathroom"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/research_outpost/hallway) +"dNn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dNo" = (/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) "dNp" = (/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) "dNq" = (/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) @@ -10166,7 +10171,7 @@ "dNE" = (/obj/machinery/light/small{dir = 4},/obj/machinery/power/apc{dir = 4; name = "Sample Preparation APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dNF" = (/turf/simulated/wall/r_wall,/area/research_outpost/anomaly) "dNG" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/research_outpost/anomaly) -"dNH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Anomalous Materials Loading"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/anomaly) +"dNH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dNI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/closet/walllocker/emerglocker/west,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dNJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dNK" = (/obj/machinery/atmospherics/unary/heat_reservoir/heater{dir = 4},/obj/structure/sign/nosmoking_1{pixel_x = -32},/turf/simulated/floor/plating,/area/research_outpost/atmos) @@ -10185,21 +10190,21 @@ "dNX" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/camera{c_tag = "Research Outpost Sample Preparation"; dir = 1; network = list("Research Outpost")},/obj/item/weapon/reagent_containers/glass/beaker/water,/obj/item/weapon/reagent_containers/glass/beaker/fuel,/obj/item/weapon/reagent_containers/glass/bottle/toxin,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric{name = "beaker 'sulphuric acid'"},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 3; pixel_x = 2; pixel_y = 2},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) "dNY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) "dNZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) -"dOa" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Anomalous Materials Sample Preparation"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dOa" = (/obj/machinery/door/airlock/research{name = "Spectrometry Lab Sample Preparation"; req_access_txt = "65"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) "dOb" = (/obj/machinery/power/apc{dir = 1; name = "Anomalous Materials APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "whitepurplecorner"},/area/research_outpost/anomaly) "dOc" = (/obj/machinery/alarm{dir = 2; pixel_y = 25},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dOd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dOe" = (/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dOf" = (/obj/machinery/light{dir = 1},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 6; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dOg" = (/obj/machinery/conveyor{dir = 1; id = "anolaser"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/research_outpost/anomaly) -"dOh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) -"dOi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) +"dOh" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"dOi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock{id_tag = "rbath"; name = "Bathroom"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/research_outpost/hallway) "dOj" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 4},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dOk" = (/obj/machinery/atmospherics/pipe/manifold4w/visible/cyan,/turf/simulated/floor/plating,/area/research_outpost/atmos) "dOl" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 8; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dOm" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/visible/purple,/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/research_outpost/atmos) -"dOn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) -"dOo" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"dOn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Anomalous Materials Loading"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/anomaly) +"dOo" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Anomalous Materials Sample Preparation"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dOp" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; tag = ""},/turf/simulated/floor/plating/airless,/area) "dOq" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area) "dOr" = (/obj/structure/alien/weeds{icon_state = "weeds"},/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area) @@ -10210,9 +10215,9 @@ "dOw" = (/turf/simulated/mineral/random,/area/mine/explored) "dOx" = (/turf/space,/area/mine/explored) "dOy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/hallway) -"dOz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) +"dOz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/door/firedoor{dir = 1; layer = 2.6; name = "Firelock North"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dOA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/sample) -"dOB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Sample Preparation"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) +"dOB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor{dir = 1; layer = 2.6; name = "Firelock North"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dOC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/research_outpost/sample) "dOD" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dOE" = (/obj/structure/table,/obj/item/weapon/lighter/random,/obj/item/weapon/crowbar,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) @@ -10222,7 +10227,7 @@ "dOI" = (/obj/machinery/conveyor{dir = 1; id = "anolaser"},/obj/structure/plasticflaps,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/research_outpost/anomaly) "dOJ" = (/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{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dOK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"},/area/research_outpost/hallway) -"dOL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"dOL" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dOM" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dON" = (/obj/machinery/light/small,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/visible/cyan,/turf/simulated/floor/plating,/area/research_outpost/atmos) "dOO" = (/obj/machinery/meter,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/visible/cyan,/turf/simulated/floor/plating,/area/research_outpost/atmos) @@ -10243,7 +10248,7 @@ "dPd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/alarm{dir = 2; pixel_y = 25},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dPe" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dPf" = (/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) -"dPg" = (/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) +"dPg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dPh" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) "dPi" = (/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) "dPj" = (/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) @@ -10256,7 +10261,7 @@ "dPq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor{dir = 8; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "dPr" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"},/area/research_outpost/hallway) "dPs" = (/turf/simulated/wall/r_wall,/area/research_outpost/power) -"dPt" = (/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) +"dPt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) "dPu" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 5},/turf/simulated/wall/r_wall,/area/research_outpost/power) "dPv" = (/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/turf/simulated/wall/r_wall,/area/research_outpost/power) "dPw" = (/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) @@ -10265,7 +10270,7 @@ "dPz" = (/obj/item/stack/rods,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard,/turf/simulated/floor/plating,/area/mine/abandoned) "dPA" = (/obj/item/stack/rods,/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) "dPB" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) -"dPC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) +"dPC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Sample Preparation"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dPD" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dPE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dPF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) @@ -10275,17 +10280,17 @@ "dPJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dPK" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dPL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) -"dPM" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) +"dPM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dPN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10; initialize_directions = 10; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) "dPO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/research_outpost/hallway) -"dPP" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dPP" = (/obj/machinery/door/firedoor{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) "dPQ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 4; icon_state = "whitepurplecorner"},/area/research_outpost/anomaly) "dPR" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dPS" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dPT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dPU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/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{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dPV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) -"dPW" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dPW" = (/obj/machinery/door/firedoor{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) "dPX" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{dir = 8; icon_state = "whitepurple"},/area/research_outpost/hallway) "dPY" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"},/area/research_outpost/hallway) "dPZ" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/light/small{dir = 1},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plating,/area/research_outpost/power) @@ -10297,7 +10302,7 @@ "dQf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/abandoned) "dQg" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) "dQh" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) -"dQi" = (/obj/structure/grille,/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/research_outpost/hallway) +"dQi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) "dQj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dQk" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/wood,/area/research_outpost/hallway) "dQl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/wood,/area/research_outpost/hallway) @@ -10317,7 +10322,7 @@ "dQz" = (/obj/machinery/camera{c_tag = "Research Outpost Anomalous Materials Lab"; dir = 8; network = list("Research Outpost")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dQA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/obj/structure/sign/science{desc = "A warning sign which reads 'ANOMALOUS MATERIALS'"; name = "\improper ANOMALOUS MATERIALS"; pixel_x = -32},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "dQB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"},/area/research_outpost/hallway) -"dQC" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/engineering{name = "Power substation"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) +"dQC" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dQD" = (/turf/simulated/floor/plating,/area/research_outpost/power) "dQE" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/research_outpost/power) "dQF" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/power) @@ -10329,22 +10334,22 @@ "dQL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dQM" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) "dQN" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) -"dQO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) +"dQO" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) "dQP" = (/obj/structure/table,/obj/item/weapon/folder,/turf/simulated/floor/wood,/area/research_outpost/hallway) "dQQ" = (/obj/structure/table,/obj/item/device/camera,/obj/item/weapon/stamp/granted,/turf/simulated/floor/wood,/area/research_outpost/hallway) "dQR" = (/turf/simulated/floor/wood,/area/research_outpost/hallway) "dQS" = (/obj/machinery/vending/snack,/obj/machinery/light{dir = 4},/turf/simulated/floor/wood,/area/research_outpost/hallway) -"dQT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) -"dQU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) -"dQV" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{name = "Anomalous Materials Locker Room"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"dQW" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dQT" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dQU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) +"dQV" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/engineering{name = "Power substation"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) +"dQW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) "dQX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/camera{c_tag = "Research Outpost Hallway Engineering"; dir = 4; network = list("Research Outpost")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dQY" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowcorner"},/area/research_outpost/hallway) "dQZ" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/machinery/power/apc{dir = 8; name = "Outpost Power APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/research_outpost/power) "dRa" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/research_outpost/power) "dRb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/research_outpost/power) "dRc" = (/obj/machinery/portable_atmospherics/scrubber,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/research_outpost/power) -"dRd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/power) +"dRd" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{name = "Anomalous Materials Locker Room"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dRe" = (/obj/machinery/mass_driver{dir = 4; id = "Research Outpost"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) "dRf" = (/obj/item/stack/rods,/obj/structure/lattice,/turf/space,/area) "dRg" = (/obj/item/weapon/shard,/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned) @@ -10376,7 +10381,7 @@ "dRG" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/research_outpost/power) "dRH" = (/obj/machinery/conveyor_switch{id = "archgunc"},/turf/simulated/floor/plating,/area/research_outpost/power) "dRI" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plating,/area/research_outpost/power) -"dRJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/power) +"dRJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) "dRK" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dRL" = (/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/plating,/area/exploration/methlab) "dRM" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned) @@ -10386,15 +10391,15 @@ "dRQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/abandoned) "dRR" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned) "dRS" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/wall,/area/research_outpost/entry) -"dRT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) -"dRU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) -"dRV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/entry) +"dRT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) +"dRU" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dRV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/power) "dRW" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "research_outpost_hatch"; locked = 1; name = "Research Outpost Dock Airlock"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/research_outpost/entry) -"dRX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/entry) -"dRY" = (/obj/structure/grille,/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/entry) +"dRX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/power) +"dRY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dRZ" = (/obj/structure/sign/science,/turf/simulated/wall,/area/research_outpost/entry) -"dSa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/entry) -"dSb" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/entry) +"dSa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/entry) +"dSb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dSc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/wood,/area/research_outpost/hallway) "dSd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/wood,/area/research_outpost/hallway) "dSe" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) @@ -10412,7 +10417,7 @@ "dSq" = (/obj/machinery/driver_button{id = "Research Outpost"; pixel_x = 6; pixel_y = -26},/obj/machinery/conveyor{dir = 4; id = "archgunc"},/turf/simulated/floor/plating,/area/research_outpost/power) "dSr" = (/obj/structure/sign/deathsposal{pixel_x = 32},/obj/machinery/disposal/deliveryChute{dir = 8; name = "disposal inlet"},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/power) "dSs" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall/r_wall,/area/research_outpost/power) -"dSt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/transit_tube{icon_state = "N-SE"},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) +"dSt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dSu" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/simulated/wall/r_wall,/area/research_outpost/hallway) "dSv" = (/obj/structure/transit_tube{icon_state = "D-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/hallway) "dSw" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/space,/area) @@ -10421,7 +10426,7 @@ "dSz" = (/obj/effect/gibspawner/robot,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) "dSA" = (/obj/effect/gibspawner/human,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) "dSB" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/obj/effect/decal/remains/xeno,/turf/simulated/floor/plating,/area/mine/abandoned) -"dSC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dSC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/entry) "dSD" = (/obj/machinery/computer/shuttle_control/research{req_access_txt = "65"},/turf/simulated/floor{icon_state = "bot"},/area/research_outpost/entry) "dSE" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/research_outpost/entry) "dSF" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "research_outpost_dock"; pixel_y = 30; req_one_access_txt = "13;65"; tag_door = "research_outpost_hatch"},/turf/simulated/floor,/area/research_outpost/entry) @@ -10448,16 +10453,16 @@ "dTa" = (/obj/structure/rack,/obj/item/clothing/suit/bio_suit/anomaly,/obj/item/clothing/head/bio_hood/anomaly,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/obj/item/clothing/gloves/color/latex,/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/anomaly) "dTb" = (/obj/machinery/door/window/westleft{dir = 2; name = "Monkey Pen"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dTc" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"dTd" = (/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) -"dTe" = (/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) -"dTf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/engineering{name = "Power substation"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) +"dTd" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/entry) +"dTe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/entry) +"dTf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/transit_tube{icon_state = "N-SE"},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) "dTg" = (/obj/structure/transit_tube{icon_state = "D-NE"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) "dTh" = (/obj/structure/transit_tube{icon_state = "E-NW"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) "dTi" = (/obj/structure/transit_tube/station,/obj/structure/sign/securearea{desc = "A warning sign which reads 'INTERNALS REQUIRED'."; name = "INTERNALS REQUIRED"; pixel_x = 32; pixel_y = 32},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/research_outpost/hallway) "dTj" = (/obj/structure/transit_tube{icon_state = "W-NE"},/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) "dTk" = (/obj/structure/transit_tube{icon_state = "D-NW"},/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) "dTl" = (/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) -"dTm" = (/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,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/harvesting) +"dTm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dTn" = (/obj/structure/transit_tube{icon_state = "D-NE"},/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) "dTo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dTp" = (/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/mine/abandoned) @@ -10467,23 +10472,23 @@ "dTt" = (/obj/machinery/door/airlock,/turf/simulated/floor,/area/mine/abandoned) "dTu" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) "dTv" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) -"dTw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/transit_tube{icon_state = "N-SE"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dTw" = (/obj/machinery/door/firedoor{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dTx" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/simulated/floor{icon_state = "bot"},/area/research_outpost/entry) "dTy" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/research_outpost/entry) -"dTz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Research Shuttle Dock"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/entry) +"dTz" = (/obj/machinery/door/firedoor{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dTA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor,/area/research_outpost/entry) "dTB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/research_outpost/entry) "dTC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor,/area/research_outpost/entry) -"dTD" = (/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) +"dTD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/engineering{name = "Power substation"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) "dTE" = (/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) "dTF" = (/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) "dTG" = (/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) "dTH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "dTI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) -"dTJ" = (/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) +"dTJ" = (/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,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/harvesting) "dTK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "dTL" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) -"dTM" = (/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) +"dTM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/transit_tube{icon_state = "N-SE"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dTN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dTO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dTP" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) @@ -10496,7 +10501,7 @@ "dTW" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowcorner"},/area/research_outpost/hallway) "dTX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"},/area/research_outpost/hallway) "dTY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 1; icon_state = "whiteyellowcorner"},/area/research_outpost/hallway) -"dTZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/machinery/camera{c_tag = "Research Outpost Hallway Starboard"; dir = 2; network = list("Research Outpost"); pixel_x = 24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) +"dTZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Research Shuttle Dock"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/entry) "dUa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{dir = 4; icon_state = "whitepurple"},/area/research_outpost/hallway) "dUb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) "dUc" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera{c_tag = "Research Outpost Exotic Particles Airlock"; dir = 2; network = list("Research Outpost")},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/research_outpost/harvesting) @@ -10517,7 +10522,7 @@ "dUr" = (/obj/structure/table,/turf/simulated/floor,/area/mine/abandoned) "dUs" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/abandoned) "dUt" = (/obj/structure/rack,/turf/simulated/floor,/area/mine/abandoned) -"dUu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/transit_tube{icon_state = "D-NE"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dUu" = (/obj/machinery/door/firedoor{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) "dUv" = (/obj/structure/transit_tube{icon_state = "S-NW"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/entry) "dUw" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor,/area/research_outpost/entry) "dUx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "Research Outpost Shuttle Dock"; dir = 8; network = list("Research Outpost")},/turf/simulated/floor{dir = 4; icon_state = "arrival"},/area/research_outpost/entry) @@ -10534,7 +10539,7 @@ "dUI" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/research_outpost/tempstorage) "dUJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5; level = 1},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "dUK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) -"dUL" = (/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) +"dUL" = (/obj/machinery/door/firedoor{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dUM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "dUN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1; pressure_checks = 1},/turf/simulated/floor{dir = 2; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "dUO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/sign/examroom{desc = "A guidance sign which reads 'ISOLATION ROOM ONE'"; name = "\improper ISOLATION ROOM ONE"; pixel_y = -32},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/research_outpost/hallway) @@ -10545,14 +10550,14 @@ "dUT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/research_outpost/hallway) "dUU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/sign/examroom{desc = "A guidance sign which reads 'ISOLATION ROOM THREE'"; name = "\improper ISOLATION ROOM THREE"; pixel_y = -32},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/research_outpost/hallway) "dUV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor{dir = 8; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) -"dUW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) +"dUW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/firedoor{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) "dUX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/machinery/firealarm{pixel_y = -24},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dUY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/biohazard{pixel_y = -32},/turf/simulated/floor{dir = 2; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "dUZ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 6; icon_state = "whitepurple"},/area/research_outpost/hallway) -"dVa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Exotic Particles Collection"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/harvesting) +"dVa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/machinery/camera{c_tag = "Research Outpost Hallway Starboard"; dir = 2; network = list("Research Outpost"); pixel_x = 24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dVb" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/research_outpost/harvesting) "dVc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/research_outpost/harvesting) -"dVd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/external{name = "Access Airlock"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/harvesting) +"dVd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/transit_tube{icon_state = "D-NE"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dVe" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/research_outpost/harvesting) "dVf" = (/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/harvesting) "dVg" = (/obj/structure/table,/obj/item/weapon/anodevice{pixel_x = 3; pixel_y = 3},/obj/item/weapon/anodevice,/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/harvesting) @@ -10563,7 +10568,7 @@ "dVl" = (/obj/structure/table,/turf/simulated/floor/airless,/area/mine/abandoned) "dVm" = (/obj/structure/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) "dVn" = (/turf/simulated/mineral,/area/mine/explored) -"dVo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dVo" = (/obj/machinery/door/firedoor{dir = 8; layer = 2.6; name = "Firelock West"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "dVp" = (/obj/structure/transit_tube/station{icon_state = "closed"; dir = 4},/obj/structure/transit_tube_pod,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/research_outpost/entry) "dVq" = (/obj/machinery/hologram/holopad,/obj/machinery/light,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "bluecorner"},/area/research_outpost/entry) "dVr" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5; level = 1},/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor{dir = 2; icon_state = "arrival"},/area/research_outpost/entry) @@ -10580,7 +10585,7 @@ "dVC" = (/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/research_outpost/tempstorage) "dVD" = (/obj/machinery/conveyor{dir = 9; id = "anotempload"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/research_outpost/tempstorage) "dVE" = (/turf/simulated/wall/r_wall,/area/research_outpost/maint) -"dVF" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor/plating,/area/research_outpost/maint) +"dVF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Exotic Particles Collection"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/harvesting) "dVG" = (/turf/simulated/wall/r_wall,/area/research_outpost/iso1) "dVH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/iso1) "dVI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Isolation room one"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/iso1) @@ -10590,10 +10595,10 @@ "dVM" = (/turf/simulated/wall/r_wall,/area/research_outpost/iso3) "dVN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/iso3) "dVO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Isolation Room Three"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/iso3) -"dVP" = (/obj/machinery/door/airlock/maintenance{name = "Maintenance Storage"; req_access_txt = "0"; req_one_access_txt = "12;65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) +"dVP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 8; layer = 2.6; name = "Firelock West"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dVQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/maintstore2) "dVR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/longtermstorage) -"dVS" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Long Term Storage"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/longtermstorage) +"dVS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/external{name = "Access Airlock"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/harvesting) "dVT" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor,/area/research_outpost/harvesting) "dVU" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/research_outpost/harvesting) "dVV" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/research_outpost/harvesting) @@ -10605,14 +10610,14 @@ "dWb" = (/turf/simulated/wall,/area/mine/unexplored) "dWc" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'INTERNALS REQUIRED'."; name = "INTERNALS REQUIRED"; pixel_x = -32; pixel_y = 0},/turf/space,/area) "dWd" = (/obj/structure/transit_tube{icon_state = "D-SE"},/turf/simulated/wall,/area/research_outpost/entry) -"dWe" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/transit_tube{icon_state = "N-SW"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) -"dWf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dWe" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dWf" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor/plating,/area/research_outpost/maint) "dWg" = (/turf/simulated/wall,/area/research_outpost/entry) "dWh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/wall,/area/research_outpost/entry) -"dWi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/glass_mining{name = "Expedition Prep"; req_access_txt = "65"},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dWi" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Long Term Storage"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/longtermstorage) "dWj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/wall,/area/research_outpost/entry) "dWk" = (/turf/simulated/wall,/area/research_outpost/tempstorage) -"dWl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Temporary Storage Loading"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) +"dWl" = (/obj/machinery/door/airlock/maintenance{name = "Maintenance Storage"; req_access_txt = "0"; req_one_access_txt = "12;65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) "dWm" = (/obj/structure/plasticflaps/mining,/obj/machinery/conveyor{dir = 2; id = "anotempload"},/turf/simulated/floor/plating,/area/research_outpost/maint) "dWn" = (/obj/machinery/conveyor{dir = 5; id = "anosample"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/maint) "dWo" = (/obj/machinery/conveyor{dir = 4; id = "anosample"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'MOVING PARTS'."; name = "\improper MOVING PARTS"; pixel_y = 32},/turf/simulated/floor/plating,/area/research_outpost/maint) @@ -10654,11 +10659,11 @@ "dWY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/research_outpost/gearstore) "dWZ" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor,/area/research_outpost/gearstore) "dXa" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor,/area/research_outpost/gearstore) -"dXb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/glass_mining{name = "Loading area"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/tempstorage) +"dXb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/transit_tube{icon_state = "N-SW"},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dXc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/camera{c_tag = "Research Outpost Loading Area"; dir = 2; network = list("Research Outpost")},/turf/simulated/floor,/area/research_outpost/tempstorage) "dXd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/power/apc{dir = 1; name = "Temporary Storage APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/research_outpost/tempstorage) "dXe" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; level = 1},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/research_outpost/tempstorage) -"dXf" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;65"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) +"dXf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dXg" = (/obj/machinery/conveyor{dir = 2; id = "anotempload"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) "dXh" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'MOVING PARTS'."; name = "\improper MOVING PARTS"; pixel_y = 32},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) "dXi" = (/obj/machinery/conveyor{dir = 1; id = "anosample"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) @@ -10727,7 +10732,7 @@ "dYt" = (/obj/structure/closet/excavation,/obj/machinery/status_display{layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor,/area/research_outpost/gearstore) "dYu" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor,/area/research_outpost/gearstore) "dYv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor,/area/research_outpost/gearstore) -"dYw" = (/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) +"dYw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Temporary Storage Loading"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "dYx" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/research_outpost/gearstore) "dYy" = (/turf/simulated/floor,/area/research_outpost/gearstore) "dYz" = (/obj/machinery/mineral/unloading_machine,/turf/simulated/floor{icon_state = "floorgrime"},/area/research_outpost/tempstorage) @@ -10820,8 +10825,8 @@ "eai" = (/obj/machinery/door/window/westleft,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/explored) "eaj" = (/obj/structure/transit_tube/station{dir = 8; icon_state = "closed"; tag = "icon-closed (EAST)"},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/mine/explored) "eak" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area) -"eal" = (/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) -"eam" = (/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) +"eal" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/glass_mining{name = "Expedition Prep"; req_access_txt = "65"},/turf/simulated/floor/plating,/area/research_outpost/entry) +"eam" = (/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;65"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) "ean" = (/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) "eao" = (/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) "eap" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/mine/explored) @@ -11163,7 +11168,7 @@ "egN" = (/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris,/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/explored) "egO" = (/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/explored) "egP" = (/turf/simulated/wall,/area/mine/living_quarters) -"egQ" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Communications"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/mine/maintenance) +"egQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/door/airlock/glass_mining{name = "Loading area"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/tempstorage) "egR" = (/obj/item/clothing/under/rank/miner,/obj/effect/decal/remains/human,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/explored) "egS" = (/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris,/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"; tag = "icon-asteroidfloor"},/area/mine/explored) "egT" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/carpet,/area/mine/living_quarters) @@ -11172,18 +11177,18 @@ "egW" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/obj/machinery/light,/turf/space,/area/mine/explored) "egX" = (/obj/structure/table,/turf/simulated/floor/carpet,/area/mine/living_quarters) "egY" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/carpet,/area/mine/living_quarters) -"egZ" = (/obj/machinery/door/airlock{id_tag = "miningdorm1"; name = "Room 1"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) +"egZ" = (/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{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/research_outpost/gearstore) "eha" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor,/area/mine/living_quarters) "ehb" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/explored) "ehc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/light/small{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/mine/living_quarters) "ehd" = (/obj/structure/disposalpipe/segment,/turf/simulated/mineral/random,/area/mine/unexplored) "ehe" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm2"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet,/area/mine/living_quarters) "ehf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/camera{c_tag = "Mining Outpost Bedrooms"; dir = 4; network = list("Mining Outpost")},/turf/simulated/floor,/area/mine/living_quarters) -"ehg" = (/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/mine/living_quarters) +"ehg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/gearstore) "ehh" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "ehi" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/west_outpost) -"ehj" = (/obj/machinery/door/airlock{id_tag = "miningdorm2"; name = "Room 2"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) -"ehk" = (/obj/structure/grille,/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/mine/living_quarters) +"ehj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/gearstore) +"ehk" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Communications"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/mine/maintenance) "ehl" = (/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/screwdriver,/obj/item/weapon/crowbar,/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 9},/area/mine/explored) "ehm" = (/obj/machinery/camera{c_tag = "Mining Outpost Construction Area"; network = list("Mining Outpost")},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) "ehn" = (/obj/machinery/mining/drill,/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) @@ -11192,23 +11197,23 @@ "ehq" = (/obj/machinery/camera{c_tag = "Mining Outpost West Outpost Mech Recharge Station"; dir = 1; network = list("Mining Outpost")},/turf/simulated/floor/mech_bay_recharge_floor{icon_state = "recharge_floor_asteroid"},/area/mine/west_outpost) "ehr" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"; tag = "icon-asteroidfloor"},/area/mine/west_outpost) "ehs" = (/obj/structure/disposalpipe/segment,/obj/structure/sign/deathsposal,/turf/simulated/wall,/area/mine/living_quarters) -"eht" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"eht" = (/obj/machinery/door/airlock{id_tag = "miningdorm1"; name = "Room 1"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) "ehu" = (/obj/structure/table/reinforced,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 8},/area/mine/explored) "ehv" = (/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "ehw" = (/obj/machinery/mining/brace,/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "ehx" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored) "ehy" = (/turf/simulated/wall,/area/mine/west_outpost) -"ehz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) -"ehA" = (/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/mine/west_outpost) -"ehB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) +"ehz" = (/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{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"ehA" = (/obj/machinery/door/airlock{id_tag = "miningdorm2"; name = "Room 2"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) +"ehB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "ehC" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "ehD" = (/obj/machinery/vending/cigarette,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "ehE" = (/obj/machinery/vending/snack,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "ehF" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm3"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet,/area/mine/living_quarters) "ehG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/mine/living_quarters) -"ehH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) -"ehI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) -"ehJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"ehH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"ehI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) +"ehJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) "ehK" = (/obj/structure/table/reinforced,/obj/machinery/cell_charger,/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 10},/area/mine/explored) "ehL" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored) "ehM" = (/obj/machinery/mining/brace,/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored) @@ -11230,14 +11235,14 @@ "eic" = (/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "eid" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "eie" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) -"eif" = (/obj/machinery/door/airlock{id_tag = "miningdorm3"; name = "Room 3"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) +"eif" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) "eig" = (/obj/structure/ore_box,/turf/simulated/floor,/area/mine/living_quarters) "eih" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/mine/living_quarters) "eii" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor,/area/mine/living_quarters) "eij" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/mine/eva) "eik" = (/turf/simulated/wall,/area/mine/eva) -"eil" = (/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/mine/eva) -"eim" = (/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/mine/eva) +"eil" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"eim" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "ein" = (/obj/structure/table,/obj/item/weapon/shovel,/turf/simulated/floor,/area/mine/west_outpost) "eio" = (/turf/simulated/floor,/area/mine/west_outpost) "eip" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor,/area/mine/west_outpost) @@ -11260,7 +11265,7 @@ "eiG" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/satchel,/obj/item/weapon/pickaxe,/obj/item/weapon/storage/belt/utility,/obj/machinery/light/small{dir = 1},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/mine/eva) "eiH" = (/obj/machinery/light,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "eiI" = (/obj/structure/table,/obj/item/weapon/storage/backpack/satchel,/obj/item/clothing/glasses/meson,/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/mine/west_outpost) -"eiJ" = (/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/mine/west_outpost) +"eiJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "eiK" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/mine/west_outpost) "eiL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/west_outpost) "eiM" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "outpost_west_pump"; tag_exterior_door = "outpost_west_outer"; frequency = 1379; id_tag = "outpost_west_airlock"; tag_interior_door = "outpost_west_inner"; pixel_x = 0; pixel_y = -25; req_access_txt = null; tag_chamber_sensor = "outpost_west_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "outpost_west_pump"},/turf/simulated/floor,/area/mine/west_outpost) @@ -11279,8 +11284,8 @@ "eiZ" = (/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor,/area/mine/living_quarters) "eja" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/mine/living_quarters) "ejb" = (/turf/simulated/wall,/area/mine/production) -"ejc" = (/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/mine/production) -"ejd" = (/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/mine/production) +"ejc" = (/obj/machinery/door/airlock{id_tag = "miningdorm3"; name = "Room 3"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) +"ejd" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/eva) "eje" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/machinery/camera{c_tag = "Mining Outpost EVA"; dir = 4; network = list("Mining Outpost")},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/mine/eva) "ejf" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/turf/simulated/floor,/area/mine/eva) "ejg" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/mine/eva) @@ -11293,11 +11298,11 @@ "ejn" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/mine/west_outpost) "ejo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/living_quarters) "ejp" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/mine/living_quarters) -"ejq" = (/obj/machinery/door/airlock/glass{name = "Crew Area"; req_access_txt = "48"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/mine/living_quarters) -"ejr" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/mining{name = "Mining Station Storage"; req_access_txt = "48"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/mine/living_quarters) -"ejs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) -"ejt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) -"eju" = (/obj/structure/grille,/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/mine/production) +"ejq" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/eva) +"ejr" = (/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/mine/west_outpost) +"ejs" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/production) +"ejt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/production) +"eju" = (/obj/machinery/door/airlock/glass{name = "Crew Area"; req_access_txt = "48"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/mine/living_quarters) "ejv" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/camera{c_tag = "Mining Outpost Starboard Connector"; network = list("Mining Outpost")},/turf/simulated/floor,/area/mine/production) "ejw" = (/turf/simulated/floor,/area/mine/production) "ejx" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor,/area/mine/production) @@ -11321,25 +11326,25 @@ "ejP" = (/obj/machinery/mineral/unloading_machine,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) "ejQ" = (/obj/machinery/conveyor{dir = 4; id = "mining_west"},/obj/machinery/mineral/output,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) "ejR" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/deliveryChute{dir = 8},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) -"ejS" = (/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},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) +"ejS" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/mining{name = "Mining Station Storage"; req_access_txt = "48"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/mine/living_quarters) "ejT" = (/obj/structure/toilet{dir = 4},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor{icon_state = "showroomfloor"},/area/mine/living_quarters) "ejU" = (/obj/structure/sink{pixel_y = 30},/obj/machinery/light/small,/obj/structure/mirror{pixel_y = -32},/turf/simulated/floor{icon_state = "showroomfloor"},/area/mine/living_quarters) -"ejV" = (/obj/machinery/door/airlock{name = "Toilet"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/mine/living_quarters) +"ejV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "ejW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/mine/living_quarters) "ejX" = (/obj/machinery/power/apc{dir = 1; name = "Mining Station Port Wing APC"; pixel_x = 1; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor,/area/mine/living_quarters) "ejY" = (/obj/machinery/camera{c_tag = "Mining Outpost Crew Area Hallway"; network = list("Mining Outpost")},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor,/area/mine/living_quarters) "ejZ" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/mine/living_quarters) "eka" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/mine/living_quarters) "ekb" = (/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/mine/living_quarters) -"ekc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"ekc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "ekd" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/living_quarters) "eke" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/production) -"ekf" = (/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/mine/production) -"ekg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) +"ekf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/production) +"ekg" = (/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},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) "ekh" = (/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/mine/production) "eki" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/mine/production) "ekj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/mine/production) -"ekk" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/glass_mining{name = "Mining Station EVA"; req_access_txt = "54"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/mine/eva) +"ekk" = (/obj/machinery/door/airlock{name = "Toilet"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/mine/living_quarters) "ekl" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/mine/eva) "ekm" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining_east_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = null},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"},/turf/simulated/floor,/area/mine/eva) "ekn" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_east_inner"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor,/area/mine/eva) @@ -11349,7 +11354,7 @@ "ekr" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "mining_east_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = null},/turf/simulated/floor/airless{tag = "icon-asteroidwarning (EAST)"; icon_state = "asteroidwarning"; dir = 4},/area/mine/explored) "eks" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/wall,/area/mine/west_outpost) "ekt" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/west_outpost) -"eku" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "54"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor/plating,/area/mine/west_outpost) +"eku" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "ekv" = (/obj/machinery/conveyor{backwards = 2; dir = 2; forwards = 1; id = "mining_west"},/obj/structure/plasticflaps/mining,/turf/simulated/floor,/area/mine/west_outpost) "ekw" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/mine/living_quarters) "ekx" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/mine/living_quarters) @@ -11359,10 +11364,10 @@ "ekB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/mine/living_quarters) "ekC" = (/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,/area/mine/living_quarters) "ekD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/living_quarters) -"ekE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/mine/living_quarters) +"ekE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "ekF" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/mine/living_quarters) "ekG" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/mine/production) -"ekH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/mine/production) +"ekH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "ekI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/mine/production) "ekJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/mine/production) "ekK" = (/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) @@ -11388,15 +11393,15 @@ "ele" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/light,/turf/simulated/floor,/area/mine/living_quarters) "elf" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining_west_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = null},/turf/simulated/floor,/area/mine/living_quarters) "elg" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/camera{c_tag = "Mining Outpost Port Connector"; dir = 1; network = list("Mining Outpost")},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/mine/living_quarters) -"elh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) -"eli" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) -"elj" = (/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{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"elh" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/glass_mining{name = "Mining Station EVA"; req_access_txt = "54"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/mine/eva) +"eli" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "54"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor/plating,/area/mine/west_outpost) +"elj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/mine/living_quarters) "elk" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/turf/space,/area/mine/living_quarters) "ell" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/turf/space,/area/mine/production) "elm" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/light{dir = 4},/turf/space,/area/mine/production) -"eln" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) -"elo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) -"elp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) +"eln" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/mine/production) +"elo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"elp" = (/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{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "elq" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/mine/production) "elr" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/turf/simulated/floor,/area/mine/production) "els" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/turf/simulated/floor,/area/mine/production) @@ -11410,13 +11415,13 @@ "elA" = (/obj/machinery/power/terminal{dir = 4},/obj/machinery/light/small,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/west_outpost) "elB" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/plating,/area/mine/west_outpost) "elC" = (/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,/turf/simulated/floor/plating,/area/mine/living_quarters) -"elD" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) +"elD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "elE" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/living_quarters) -"elF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "48"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor/plating,/area/mine/living_quarters) +"elF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "elG" = (/turf/simulated/wall/r_wall,/area/traitor/empty) "elH" = (/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 = "mining_west_inner"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/turf/simulated/floor,/area/mine/living_quarters) -"elI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) -"elJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) +"elI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/production) +"elJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "elK" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/mine/production) "elL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/mine/production) "elM" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2 (EAST)"; icon_state = "pipe-j2"; dir = 4},/turf/simulated/wall,/area/mine/production) @@ -11476,8 +11481,8 @@ "emO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "mining_west_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = null},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"; tag = "icon-asteroidfloor"},/area/mine/explored) "emP" = (/turf/simulated/floor/airless{tag = "icon-asteroidwarning (EAST)"; icon_state = "asteroidwarning"; dir = 4},/area/mine/explored) "emQ" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) -"emR" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/production) -"emS" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/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/mine/production) +"emR" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) +"emS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "48"},/obj/machinery/door/firedoor{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor/plating,/area/mine/living_quarters) "emT" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/mine/production) "emU" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/mine/production) "emV" = (/obj/structure/closet/crate,/obj/structure/noticeboard{pixel_y = 27},/turf/simulated/floor,/area/mine/production) @@ -11499,7 +11504,7 @@ "enl" = (/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) "enm" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/production) "enn" = (/obj/machinery/mineral/input,/turf/simulated/floor{icon_state = "loadingarea"; tag = "loading"},/area/mine/production) -"eno" = (/obj/structure/grille,/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/mine/production) +"eno" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) "enp" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/mine/production) "enq" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8},/obj/machinery/telepad_cargo,/turf/simulated/floor,/area/mine/production) "enr" = (/obj/machinery/door/window/westleft{name = "Production Area"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/obj/machinery/mineral/output,/turf/simulated/floor{dir = 1; icon_state = "loadingarea"; tag = "loading"},/area/mine/production) @@ -11668,13 +11673,13 @@ "eqy" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/derelict/bridge/access) "eqz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/derelict/bridge/access) "eqA" = (/obj/machinery/door/airlock/command{name = "E.V.A."; req_access = null; req_access_txt = "18"},/turf/simulated/floor,/area/derelict/bridge/access) -"eqB" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/derelict/bridge/access) +"eqB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "eqC" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plating/airless,/area) "eqD" = (/turf/simulated/floor/airless{icon_state = "solarpanel"},/area) "eqE" = (/obj/item/stack/cable_coil/cut,/turf/space,/area) "eqF" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/derelict/bridge/access) "eqG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/derelict/bridge/access) -"eqH" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor,/area/derelict/bridge/access) +"eqH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/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{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "eqI" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor,/area/derelict/bridge/access) "eqJ" = (/turf/simulated/wall/r_wall,/area/derelict/singularity_engine) "eqK" = (/obj/structure/window/reinforced,/turf/simulated/floor,/area/derelict/bridge/access) @@ -12093,10 +12098,10 @@ "eyH" = (/turf/simulated/wall/r_wall,/area/derelict/bridge/ai_upload) "eyI" = (/obj/machinery/door/airlock/command{name = "AI Upload"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "eyJ" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) -"eyK" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) +"eyK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "eyL" = (/obj/structure/window/basic{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) "eyM" = (/obj/structure/window/basic{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) -"eyN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) +"eyN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor{dir = 2},/turf/simulated/floor/plating,/area/mine/production) "eyO" = (/obj/structure/closet/emcloset,/turf/simulated/floor/airless,/area/derelict/hallway/secondary) "eyP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) "eyQ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/wall/r_wall,/area/derelict/bridge/ai_upload) @@ -12231,11 +12236,11 @@ "eBp" = (/obj/structure/table,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/hand_labeler,/obj/machinery/alarm{hidden = 1; pixel_y = 22},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/chem) "eBq" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/chem) "eBr" = (/obj/machinery/light{dir = 1; in_use = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light_switch{pixel_y = 24},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/chem) -"eBs" = (/obj/machinery/door/airlock/glass,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) +"eBs" = (/obj/machinery/door/firedoor,/turf/simulated/floor,/area/derelict/bridge/access) "eBt" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eBu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1479; master_tag = "traitor_station_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = null},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eBv" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) -"eBw" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor,/area/traitor/hall) +"eBw" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/turf/simulated/floor,/area/derelict/bridge/access) "eBx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/traitor/kitchen) "eBy" = (/obj/machinery/atmospherics/unary/vent_pump,/turf/simulated/floor,/area/traitor/kitchen) "eBz" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 0; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/traitor/kitchen) @@ -12246,17 +12251,17 @@ "eBE" = (/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/chem) "eBF" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/chem) "eBG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/chem) -"eBH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) +"eBH" = (/obj/machinery/door/firedoor{dir = 4; name = "Firelock East"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) "eBI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eBJ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eBK" = (/obj/structure/disposalpipe/junction{dir = 4; icon_state = "pipe-y"; tag = "icon-pipe-y (NORTH)"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) -"eBL" = (/obj/machinery/door/airlock/glass,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/traitor/hall) +"eBL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "eBM" = (/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/junction{tag = "icon-pipe-y (NORTH)"; icon_state = "pipe-y"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/traitor/kitchen) "eBN" = (/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 = 9; pixel_y = 0},/turf/simulated/floor,/area/traitor/kitchen) "eBO" = (/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/scrubbers,/turf/simulated/floor,/area/traitor/kitchen) "eBP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/traitor/kitchen) "eBQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor,/area/traitor/kitchen) -"eBR" = (/obj/machinery/door/airlock/glass,/obj/machinery/door/firedoor/border_only{layer = 2.6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/kitchen) +"eBR" = (/obj/machinery/door/airlock/glass,/obj/machinery/door/firedoor,/turf/simulated/floor,/area/traitor/hall) "eBS" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/empty) "eBT" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/chem) "eBU" = (/obj/machinery/chem_dispenser{broken_on_spawn = 1; energy = 0; recharged = 300},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/chem) @@ -12264,11 +12269,11 @@ "eBW" = (/obj/structure/closet/secure_closet/chemical,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/chem) "eBX" = (/obj/machinery/power/apc{pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/chem) "eBY" = (/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{icon_state = "vault"; dir = 5},/area/traitor/chem) -"eBZ" = (/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/multi_tile/triple{dir = 3; layer = 2.6},/obj/machinery/door/airlock/glass,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) +"eBZ" = (/obj/machinery/door/airlock/glass,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eCa" = (/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{icon_state = "vault"; dir = 5},/area/traitor/hall) "eCb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eCc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) -"eCd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/multi_tile/triple{dir = 3; layer = 2.6},/obj/machinery/door/airlock/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/traitor/hall) +"eCd" = (/obj/machinery/door/airlock/glass,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/traitor/hall) "eCe" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/traitor/kitchen) "eCf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/traitor/kitchen) "eCg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/traitor/kitchen) @@ -12349,7 +12354,7 @@ "eDD" = (/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{icon_state = "vault"; dir = 5},/area/traitor/hall) "eDE" = (/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 = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eDF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) -"eDG" = (/obj/machinery/door/airlock/glass,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) +"eDG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass,/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eDH" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/tox) "eDI" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/traitor/tox) "eDJ" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/tox) @@ -12402,7 +12407,7 @@ "eEE" = (/turf/simulated/floor/plating,/area/traitor/hall) "eEF" = (/obj/machinery/light{dir = 1},/obj/machinery/light_switch{pixel_y = 24},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eEG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) -"eEH" = (/obj/machinery/door/airlock/glass,/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) +"eEH" = (/obj/machinery/door/airlock/glass,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/kitchen) "eEI" = (/obj/machinery/light_switch{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; level = 2},/turf/simulated/floor/plating,/area/traitor/atmos) "eEJ" = (/obj/effect/decal/cleanable/blood/oil,/obj/machinery/power/apc{dir = 1; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; level = 2},/turf/simulated/floor/plating,/area/traitor/atmos) "eEK" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; level = 2},/turf/simulated/floor/plating,/area/traitor/atmos) @@ -12422,11 +12427,11 @@ "eEY" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/traitor/atmos) "eEZ" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/turf/simulated/floor/plating,/area/traitor/atmos) "eFa" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plating,/area/traitor/hall) -"eFb" = (/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) +"eFb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/airlock/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/traitor/hall) "eFc" = (/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) "eFd" = (/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) "eFe" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) -"eFf" = (/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) +"eFf" = (/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/airlock/glass,/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) "eFg" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 4},/turf/simulated/floor/plating,/area/traitor/atmos) "eFh" = (/obj/machinery/atmospherics/trinary/filter{dir = 4; filter_type = 3; name = "Gas filter (CO2 tank)"; on = 1},/turf/simulated/floor/plating,/area/traitor/atmos) "eFi" = (/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/mine/abandoned) @@ -12463,7 +12468,7 @@ "eFN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "dark"},/area/traitor/inter) "eFO" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/traitor/inter) "eFP" = (/obj/structure/rack,/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Fitness Ring"},/turf/simulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/traitor/inter) -"eFQ" = (/obj/machinery/door/airlock/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/tox) +"eFQ" = (/obj/machinery/door/airlock/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/tox) "eFR" = (/obj/structure/rack,/obj/machinery/door/window/eastright{name = "Gear Rack"},/obj/structure/window/reinforced,/turf/simulated/floor{tag = "icon-vault (EAST)"; icon_state = "vault"; dir = 4},/area/traitor/inter) "eFS" = (/obj/structure/table,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/traitor/inter) "eFT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "dark"},/area/traitor/inter) @@ -12492,9 +12497,9 @@ "eGq" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/inter) "eGr" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 4},/turf/space,/area) "eGs" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 4},/turf/simulated/floor/plating,/area/traitor/tox) -"eGt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Interrogation"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/inter) -"eGu" = (/obj/machinery/door/airlock/glass,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/tox) -"eGv" = (/obj/machinery/door/airlock/multi_tile/glass{dir = 3; name = "Research and Development"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/multi_tile{dir = 3; layer = 2.6},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/rnd) +"eGt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/rnd) +"eGu" = (/obj/machinery/door/airlock/glass,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/tox) +"eGv" = (/obj/machinery/door/airlock/multi_tile/glass{dir = 3; name = "Research and Development"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/rnd) "eGw" = (/obj/machinery/chem_dispenser/beer,/obj/structure/table,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/radio) "eGx" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; pixel_y = 24},/obj/structure/table,/obj/machinery/chem_dispenser/soda,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/radio) "eGy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/light_switch{pixel_y = 24},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/radio) @@ -12531,7 +12536,7 @@ "eHd" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/surgery) "eHe" = (/obj/structure/table,/obj/item/stack/rods,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/surgery) "eHf" = (/obj/structure/table,/obj/item/weapon/hatchet,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/surgery) -"eHg" = (/obj/machinery/door/firedoor/multi_tile/triple{dir = 3; layer = 2.6},/obj/machinery/door/airlock/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/tox) +"eHg" = (/obj/machinery/door/airlock/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/tox) "eHh" = (/obj/item/clothing/suit/xenos,/obj/item/clothing/head/xenos,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) "eHi" = (/obj/item/device/radio/beacon,/turf/simulated/floor,/area/mine/production) "eHj" = (/obj/structure/rack,/obj/item/clothing/head/helmet/swat,/turf/simulated/floor,/area/derelict/bridge/access) @@ -12575,15 +12580,15 @@ "eHV" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/traitor/hall) "eHW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/traitor/hall) "eHX" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/traitor/hall) -"eHY" = (/obj/machinery/door/airlock/glass,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/inter) -"eHZ" = (/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/inter) -"eIa" = (/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/inter) +"eHY" = (/obj/machinery/door/airlock/glass,/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) +"eHZ" = (/obj/machinery/door/airlock/glass,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/hall) +"eIa" = (/obj/machinery/door/airlock/glass,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/inter) "eIb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/plating,/area/traitor/atmos) "eIc" = (/turf/simulated/wall/r_wall,/area/traitor/radio) -"eId" = (/obj/machinery/door/airlock/multi_tile/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/multi_tile{layer = 2.6},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/surgery) -"eIe" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/radio) -"eIf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/multi_tile/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/multi_tile{layer = 2.6},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/radio) -"eIg" = (/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 = "vault"; dir = 5},/area/traitor/surgery) +"eId" = (/obj/machinery/door/airlock/glass,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/inter) +"eIe" = (/obj/machinery/door/airlock/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/inter) +"eIf" = (/obj/machinery/door/airlock/multi_tile/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/surgery) +"eIg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock{name = "Interrogation"; req_access_txt = "0"},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/inter) "eIh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/traitor/radio) "eIi" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/traitor/radio) "eIj" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/traitor/radio) @@ -12741,7 +12746,7 @@ "eLf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/wall/r_wall,/area/server) "eLg" = (/turf/simulated/wall/r_wall,/area/server) "eLh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall/r_wall,/area/teleporter) -"eLi" = (/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},/turf/simulated/shuttle/plating,/area/medical/research{name = "Research Division"}) +"eLi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/radio) "eLj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/crew_quarters/heads) "eLk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall/r_wall,/area/server) "eLl" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/wall/r_wall,/area/engine/gravitygenerator) @@ -12758,19 +12763,16 @@ "eLw" = (/turf/simulated/wall,/area/assembly/chargebay) "eLx" = (/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,/turf/simulated/floor/plating,/area/assembly/robotics) "eLy" = (/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/assembly/robotics) -"eLz" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) -"eLA" = (/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/medical/research{name = "Research Division"}) -"eLB" = (/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/medical/research{name = "Research Division"}) +"eLz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/multi_tile/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/radio) +"eLA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/traitor/surgery) "eLC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/central/sw) "eLD" = (/turf/simulated/wall,/area/engine/gravitygenerator) "eLE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/medbay3) -"eLF" = (/obj/machinery/door/firedoor/border_only,/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/research{name = "Genetics Research"; req_access_txt = "47;9"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "eLG" = (/obj/structure/grille,/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/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/crew_quarters/hor) "eLH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/crew_quarters/hor) "eLI" = (/turf/simulated/wall/r_wall,/area/crew_quarters/hor) "eLJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/crew_quarters/hor) "eLK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/crew_quarters/hor) -"eLL" = (/obj/structure/grille,/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/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) "eLM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/qm) "eLN" = (/obj/machinery/status_display/supply_display,/turf/simulated/wall,/area/quartermaster/qm) "eLO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/quartermaster/qm) @@ -12778,7 +12780,6 @@ "eLQ" = (/turf/simulated/wall,/area/server) "eLR" = (/obj/structure/noticeboard,/turf/simulated/wall,/area/medical/medbay3) "eLS" = (/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) -"eLT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/obj/machinery/door/airlock/research{name = "Genetics Research"; req_access_txt = "47;9"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "eLU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/crew_quarters/hor) "eLV" = (/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/maintenance/asmaint2) "eLW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/server) @@ -12902,7 +12903,6 @@ "eOk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/toxins/xenobiology) "eOl" = (/turf/simulated/wall/r_wall,/area/toxins/xenobiology) "eOm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/toxins/xenobiology) -"eOn" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Xenobiology Research"; req_access_txt = "47"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "eOo" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/medical/ward) "eOp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/medical/medbay2) "eOq" = (/turf/simulated/wall/r_wall,/area/medical/virology) @@ -13039,7 +13039,6 @@ "eQX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/toxins/misc_lab) "eQY" = (/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},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/structure/disposalpipe/wrapsortjunction{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "eQZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/misc_lab) -"eRa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass_research{name = "Firing Range"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) "eRc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/misc_lab) "eRd" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 10},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/misc_lab) "eRe" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/turf/simulated/floor{icon_state = "dark"},/area/toxins/misc_lab) @@ -13242,7 +13241,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWabWabWabWabWabWabWabWabWabWabWabWabWabWabWabWabWabWabWabWabWaaaaaaaaaaaaaaaaosaffafgafhaosaffafgafhaosaaaamiafiafjafkaoHaflafmafnafoafpafqafrafsagqagqaftafuafvagqagqaoxafwafxamRafyafzafAafBafCafDafEafyafyafFafGaoIafIafJafKafLamdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBabBabBabBabBabBabBabBabBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWabWabWabWabWabWabWabWabWabWabWabWabWabWabWabWabWabWabWabWabWaaaaaaaaaaaaaaaaosafMafhafNaosafOafhafPaosaaaamiamiamiamiamiafQafRafSafTafUafVafWafXaoJafYafZagaagbagcagdapuageagfaggaggaggaghagiagjagkaggaggaggaggaglafcagmagnagoagpapvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaabBabBabBabBabBabBabBabBabBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWabWabWabWaaaaaaabWabWabWabWabWabWabWaaaaaaabWabWabWabWaaaaaaaaaaaaaaaaaaaosafhaffafhaosafhaffafhaosaaaapwagsagtagtaguagvagwagxagyagzagAagBagCaoJagDagEagFagGagHagHagIagJagKagLagLagLagMagNagOagPagQagLagLagRagSapxagTagUagVagWamdapKapKapKapKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBabBabBabBabBabBabBabBabBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWabWabWabWabWabWabWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaosaffafhaffaosaffafhaffaosaaaapwagXagYagZaqsahaahbahcahdaheahfahgahhaoJahiahjahkahlahmahnaqtaquahoahpahqahraqtahsahtahuahvahqahraqtaqtapKamdamdamdamdamdahwahwahwapKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBabBabBabBabBabBabBabBabBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWabWabWabWabWabWabWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaosaffafhaffaosaffafhaffaosaaaapwagXagYagZaqsahaahbahcahdaheahfahgahhaoJahiahjahkahlahmahnaqtaquahoahpahqahraqtahsahtahvahuahqahraqtaqtapKamdamdamdamdamdahwahwahwapKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBabBabBabBabBabBabBabBabBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWabWabWabWabWabWabWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaosaffaffafhaosaffaffafhaosaaaapwahyahzahAapwafQahBahCaqvahDahEahFahGaoJahHahIagFahJahKahLaqtahMahNahOahPahQahRahSahTahUahVahWahXahWahYapKahwahwahwahwahwahwahwahwapKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWabWabWabWabWabWabWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaosafhaffahZaosafhaffaiaaosaaaapwaibaicaidapwaqyaqyaqyaqyaieaifaigaihaoJaiiaijaikailaimainaqtaioaipaiqairaisaitaiuaivahUahVaiwahXaiwaixapKahwahwahwahwahwahwahwahwapKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWabWabWabWabWabWabWaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaosaiyaizaiAaiBaiyaizaiAaiCarkarjarjarjarlarjarjarjarjaiDaiEaiFaiGaiHarSaiIaiJaiKaiLaiMarTaqtaiNaiOaPFaiQaisaiRaiQaivaiSahVahTahTaiTaiUarUahwahwahwahwahwahwahwahwapKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -13265,7 +13264,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahxahxahxahxahxaaaaaaaaaaaaaaaaaaacuaabasqasqasqasqasqaabasraabasqasqasqasqasqaabacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaQBauCauDauEauFauGauHauIauJauIauKauIauIauLauMauMauMauMauMauNauOauPauMauMauMauMauQauMauMauMauMauRauSauTauUauVauWauXauYazrauZavaavbavcavdaveaXcavgaPlavhaviavjaPuavkavlavkavmaPtaabapRaabaaaaoLaoNaohaaaaaaaoLaoNaohaaaaaaaoLaoNaohaabaabaaaaabaoiaabaaaaaacqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajFajFajFajFajFajFajFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahxahxahxaaaaaaaaaaaaaaaaaaaaaatHaaaaaaaaaaabaaaaaaaaaasraaaaaaaaaaabaaaaaaaabacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaQBavnavoavpavqavqavravsavtavuauRauRauRavvauRauRauRauRauRavwauRauRauRauRauRauRavxauRauRauRauRavyauRavzauRavAauRauRavBazravCavDavEavFavbavGaXcavHaPlavIavJavKaXdavMavNavOauBaPtaabapRaabaaaaoLaoNaohaaaaaaaoLaoNaohaaaaaaaoLaoNaohaaaaaaaaaaabapRaabaaaaaacnZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajFajFajFajFajFajFajFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuaabaqLaqLaqLaqLaqLaabasraabaqLaqLaqLaqLaqLaabacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaQBavPavQavRavSavTaQBavUavVavWavXavYavZawaawbavVavXavXavXawcavXavXavXavXavXavXawdaweawfawfawfawgawhawiawhawjawkawhawlazraXeaXeaXeaXeaXeaXeaXcavgaPlawmaviawnaPuavkawoavkavmaPtaoQawGapQaaaaaaaoiaabaabaabaabaoiaabaabaabaabaoiaabaabaabaabeSzeSyapQaabaaacqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajFajFajFajFajFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaofawpaofaaaaaaaaaaaaaaaaaaaaaacuaabarzarAarAarAarAarBarCarDarEarEarEarEarFaaaacuaaaaaaaaaaaaaabaaaaaaaaaaaaaQBaQBaQBaQBaQBaQBaQBaXfaXfaXgawqawrawsaXhawtaXiawuawvaXiawwaXiaXjaXjaXjaXjaXjaXjawxaXjaXjawyawzawAaXyaXfaXzaXfawBaXfaXfapMannannannannannawCavgaPlawDaviawEaPuawFavNavOauBaPtapReSweSvaoOaoOawGaoOaoOaoOaoOawGaoOaoOaoOaoOawGaoOaoOaoOaoPeSxeSwapRaabaaacqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaofawpaofaaaaaaaaaaaaaaaaaaaaaacuaabarzarAarAarAarAarBarCarDarEarEarEarEarFaaaacuaaaaaaaaaaaaaabaaaaaaaaaaaaaQBaQBaQBaQBaQBaQBaQBaXfaXfaXgawqawrawsaXhawtaXiawuawvaXiawwaXiaXjaXjaXjaXjaXjaXjawxaXjaXjawzawyawAaXyaXfaXzaXfawBaXfaXfapMannannannannannawCavgaPlawDaviawEaPuawFavNavOauBaPtapReSweSvaoOaoOawGaoOaoOaoOaoOawGaoOaoOaoOaoOawGaoOaoOaoOaoPeSxeSwapRaabaaacqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabawHawIawHaaaaaaaaaaaaaaaaaaaaaacuaabasqasqasqasqasqaabawJaabasqasqasqasqasqaabacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXgawKawLawMaXhawNaXiawOawPawQawRawSawTawUawVawWawXawYawZaxaaxbaxcauRauSaYOaxeaxfaxgaxgaxgaxgaxgaxhaxgaxgaxgaxgaxiaxjaxkaxlaxmaxnbaJaxpaxqavkavmaPteSBawGeSAaabaabaaaaabaxraxsaxsaxsaxsaxsaxtaabaaaaaaaaaaaaaabeSCeSDeSAaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxvaxwaxxaaaaxyaxzaxAaaaaabaxBaxCaxBaaaaaaaaaaaaaaaaaaaaaacuaaaaabaabaabaabaabaaaaxDaaaaaaaaaaaaaaaaaaaabacuaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbkaxFaxGaxHaXhawNaXiaxIaxJaxKawRaxLaxMaxNaxNaxNaxNaxNawZaxNaxOauMauRauSaXfaxPbbIbbXbbXbbXbbXaxRbckbgwbgwbgwbgwbgwbgwbgDbgCaxTbgEbjxbgJaxWbjzaPtaPtbjEbjEbjEbjEbjEbjEbjEaxYaxZaxZaxZaxZaxZaxYbjIaaaaaaaaaaaaaabaabaxuaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaybaycaybayaaydayeaydayaaabaxBayfaygaaaaaaaaaaaaaaaaaaaaaacuacuacuacuaaaaaaaaaaaaaxDaaaaaaaaaaaaaaaaaaaaaacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabbkkayhayiaxHaXhawNaXiayjaykaylawRaymaxNaxNaynaxNayoayoawZaxNaxOauMauRaypaXfayqbbIayraysaytblQayuayvaywayxayyayzayAaSGdwqayDayEayFayGayHayIayJayKayLayMayNayOayPayQayRbjEaxYaxZaxZaxZaxZaxZaxYbjIaabaaaaaaaaaaaaaaaaxuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -13276,85 +13275,85 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCyaCzaCAaCzaCBaCzaCCaCzaCDaCEaCFaCFaCFaCFaCGaySaCHaxBaaaaabaabaaaaaaaaaaaaaabaaaaCIaCJaCKaabaaaaabaaaaaaaaaaaaaaaazbaCLaCMaCNaCMaCMaCMaCMaCOaCMaCMaCPaCQaCNaCRaCSaCSaCSaCSaCSaCSaCSaCTbyxbyxbyxbyxbyBbyHbyxaCUbyxbyIbyBbyxbyxbyxbyxaCVaCWaCXaCYaCZbpMaDaaDbaBeaDcaztayRaAwaDdaBfaBfaAwayRayRayRaDeaDfaDgaDhayRayRaCjaDiayRayRayRayRaDjayRaDkaDlaxZaxZaxZaxZaxZaDmaDnaDoaCoaaaaabaabbzQaDqbzQaabaabaaabykbykbykaDraCuaDsaCuaDtaDuaCuaCuaCuaDvbykaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDwaDxaDyaDzaDAaDBaDCaDDaDEaDCaDFaDGaDCaDCaDHaySaxCayWaabaabaaaaaaaaaaaaaaaaabaDIaDJaDKaDLaDMaaaaabaaaaaaaaaaaaaaaazbaDNazbaDOaDPaDQaDQaDQaDRaDQaDQaDQaDSaDOaDTaDUaDUaDUaDUaDUaDUaDUaAYbyxaDVaDWaDXaDYaDZaEaaEbaEcaEdaEeaEfaDWaEgbyxaEhauRaEiaXfaEjbyiaEkaElaElbAQaEnaEoaEpaEqaEqaEraEsaBnaEtaEsaEsaEuaEvaEwayRayRaExaEyaEzaEAaEAaEAaEBayRaECaEDaxZaxZaxZaxZaxZaEEbjIbjIbjIaabaabaaabBlaEGbBlaaaaabbykecgaEHecgaEIaEJaEKaELaCuaCuaEMaENaCuaEObykaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaySaEPaEQaEPaERaDyaDyaESaEPaEQaEPaETaEUaEVaEWaySaxCayVayVaEXayZayZayZayZazaayVaEYaEZaFaaFbaEYazbazbaFcaFdaFeazbazbazbaDNaFfaDOaaaaabaaaaabaaaaabaaaaabaaaaDOaDTaDUaFgaFhaFiaFjaFkaDUaAYbyxaFlaFlaFmaFnaFoaFpaFqaFpaFraFsaFtaFlaFlbyxaEhauRaFuaXfaEjbyiaHvaysaytblQaztaFvaFwaFxaFyaFzaFzaFAaFBaFzaFBaFCaFDaFEaFFaFGaFHaFIaFJaFKaFKaFKaFLbRjbjEaFMaxZaxZaxZaxZaxZaFNbjIaabaabaabaaabBVbBYaFPbCabBZaaabykaFSaFTaFUaFVaFWaFXaCuaCuaCuaFYaFZaCuaGabykaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaGbayaaGcaAPaGdaGeaGfaGgaGhaGdaAPaGiaGjayaaGkaGlaySaxCaxCaxCaxCaxCaxCaxCaxCaGmaGnaEYaGoaGpaGqaEYaGraGsaCMaCMaCMaCMaCMaGtaGuaGvaDOaabaGwaGwaGwaGwaGwaGwaGwaabaDOaDTaDUaGxaGyaGzaGAaGxaDUaAYbyxbyxbyxbyxaGBaGCaDWaGDaDWaGCaGEbyxbyxbyxbyxaEhauRaGFaXfaEjbyiaAuaysaytblQaAvaGGbCtbCtbCtbCtbCtbCtbCtaGHbCtaPjaPjaPjaPjaPjaGIbjEaGJaGKaGLaGMaGNbjEbjEaFMaxZaxZaxZaxZaxZaFNbjIaaaaaaaaaaaabDKaGOaGPaGQbDKaaabykbtKaGSecgaGTaGUaGVaGWaGXaGYaGZaHabvxbykbEgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaGbayaaGcaAPaGdaGeaGfaGgaGhaGdaAPaGjaGiayaaGkaGlaySaxCaxCaxCaxCaxCaxCaxCaxCaGmaGnaEYaGoaGpaGqaEYaGraGsaCMaCMaCMaCMaCMaGtaGuaGvaDOaabaGwaGwaGwaGwaGwaGwaGwaabaDOaDTaDUaGxaGyaGzaGAaGxaDUaAYbyxbyxbyxbyxaGBaGCaDWaGDaDWaGCaGEbyxbyxbyxbyxaEhauRaGFaXfaEjbyiaAuaysaytblQaAvaGGbCtbCtbCtbCtbCtbCtbCtaGHbCtaPjaPjaPjaPjaPjaGIbjEaGJaGKaGLaGMaGNbjEbjEaFMaxZaxZaxZaxZaxZaFNbjIaaaaaaaaaaaabDKaGOaGPaGQbDKaaabykbtKaGSecgaGTaGUaGVaGWaGXaGYaGZaHabvxbykbEgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDwaEQaHbaHcaHcaHcaHcaHdaEQaDwaHeayaaHfaHgaHhaHhaHhaHhaHhaHhaHhaHhaxCaHiaHjaEYaHkaHlaHmaHpecVaHoaHnaHnaHnaHnaHnaHnaHnaHnaHpaaaaGwaHqaHraHsaHtaHuaGwaaaaDOaDTaDUaGxaHwaHEaHxaGxaDUaAYbyxaHyaHyaFmaHzaHAaFpaFqaFpaHAaHBaHCaFlaFlbyxaEhauRaEiaXfaHDbbIeHtaysaytblQaztaGGbCtaHFaHGaHHaHHbCtaHIaHGaHJaPjaHKaHLaHMaPjaHNbjEaHOaHPaHPaHPaHQbjEaabaHRaHSaHSaHSaHSaHSaHTaabaaaaaaaagaaabDKaHUaHVaHWbDKaaabykaHXaHYbykbykbykbykbykaHZbykbykbykbykbykbykaJvaJvaJvaJvaJvaJvaJvaJvaJvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaaIbaIcaIbaIbaIdaIeaIbaIbaIcaIfaIgayaaERaIhaHhaIiaIjaIkaIlaImaInaHhaxCaIoayVaEYaEYaIpaIqdKtaIraIsaItaIuaIvaIwaIxaIyaIzaIAaHpaabaGwaIBaICaIDaIEaIFaGwaabaDOaDTaDUaIGaIHaIIaIJaIKaDUaAYbyxaDVaDWaILaIMaGCaDWaINaDWaGCaIOaIPaDWaEgbyxaEhauRaIQaXfaEjborazsaysaytblQaIRaISbCtaITaHGaHGaHGaIUaIVaIWaIXaPjaIYaIZaJaaJbaJcdNcaJdaJeaJfaJeaJgbjEaaaaabaaaaabaaaaabaaaaabaaaaaaaaaaaaaaabDKaJhaJiaJjbDKbEsbykbykbykbykaJlaJmaJnaJnaJoaJnaJpaJnaJqaJraJraJsaJraJraJraJraJtaJuaJvaJvbEDbEFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaaIfaIbaJxaJyaJzaJAaJBaJCaJDaJEaJFaJGaJHaJIaEPaERaJJaHhaJKaJLaJMaJNaJMaJOaJPaxCaJQaJRaJSaJTaJUaJVaJWaJXaJYaJZaJZaJZaKaaJZaJZaKbaKcaHpaaaaGwaKdaICaKeaIEaKfaGwaaaaDOaDTaDUaKgaKhaKiaKjaKkaDUaAYbyxaKlaKlaFmaKmaHAaFpaKnaFpaHAaKoaFtaKpaKpbyxaKqawzaKraXfaEjborbEWbEWbEWbEWaKsaKtaKuaKvaKwbEXbEXbEXbEYbEXbGgbGsbyfaKzaKAbGsaKBdNBdNcbjEbjEbjEbjEbjEbGtbGtbGtaJvaJvaJvaJvbGubGCaJvaJvaJvaJvbDKbDKaKCbGRdNCaKDaKEaKFaKGaKHaKIaKJbGSbGSbGSbGSbGTaKKaKLbHwbHwbHHbHwbHNbHwbHwbHYaKNaOeaOeaKObEFbIgbIgbIgbIgbIgbIgbIgbIgbIgabAacOaaaaaaaaaaaaaaaaaaaaaaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaaIbaIcaIbaIbaIdaIeaIbaIbaIcaIfaIgayaaERaIhaHhaIiaIjaIkaIlaImaInaHhaxCaIoayVaEYaEYaIpaIqdKtaIraIsaItaIuaIvaIwaIxaIyaIzaIAaHpaabaGwaIBaICaIDaIEaIFaGwaabaDOaDTaDUaIGaIHaIIaIJaIKaDUaAYbyxaDVaDWaILaIMaGCaDWaINaDWaGCaIOaIPaDWaEgbyxaEhauRaIQaXfaEjborazsaysaytblQaISaIRbCtaITaHGaHGaHGaIUaIVaIWaIXaPjaIYaIZaJaaJbaJcdNcaJdaJeaJfaJeaJgbjEaaaaabaaaaabaaaaabaaaaabaaaaaaaaaaaaaaabDKaJhaJiaJjbDKbEsbykbykbykbykaJlaJmaJnaJnaJoaJnaJpaJnaJqaJraJraJsaJraJraJraJraJtaJuaJvaJvbEDbEFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaaIfaIbaJxaJyaJzaJAaJBaJCaJDaJEaJFaJGaJHaJIaEPaERaJJaHhaJKaJLaJMaJNaJMaJOaJPaxCaJQaJRaJSaJTaJUaJVaJWaJXaJYaJZaJZaJZaKaaJZaJZaKbaKcaHpaaaaGwaKdaICaKeaIEaKfaGwaaaaDOaDTaDUaKgaKhaKiaKjaKkaDUaAYbyxaKlaKlaFmaKmaHAaFpaKnaFpaHAaKoaFtaKpaKpbyxaKqawyaKraXfaEjborbEWbEWbEWbEWaKsaKtaKuaKvaKwbEXbEXbEXbEYbEXbGgbGsbyfaKzaKAbGsaKBdNBdNcbjEbjEbjEbjEbjEbGtbGtbGtaJvaJvaJvaJvbGubGCaJvaJvaJvaJvbDKbDKaKCbGRdNCaKDaKEaKFaKGaKHaKIaKJbGSbGSbGSbGSbGTaKKaKLbHwbHwbHHbHwbHNbHwbHwbHYaKNaOeaOeaKObEFbIgbIgbIgbIgbIgbIgbIgbIgbIgabAacOaaaaaaaaaaaaaaaaaaaaaaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaKQaKRaKSaJGaKTaJzaKTaJzaKTaJzaKTaJGaKUaKVaGdaERaKWaHhaKXaKYaKZaLaaLbaLcaHhaLdaLeaLfaLgaLhaLiaLjaHnaLkaJZaJZaJZaJZaJZaJZaJZaKbaLlaHpaabaGwaLmaLnaLoaLpaLqaGwaabaDOaDTaDUaLraLsaLtaLuaLvaDUaAYbyxbyxbyxbyxaLwaGCaDWaGDaDWaGCaLxbyxbyxbyxbyxaLyaLzaLAaXfaHDaLBaLCaLCaLCaLDaLEaADbJdaLFaLGbJdaLHdNVaLIbJdaLJbJuaLKaLLaLMaPjaLNaLOaLPaLQaLQaLOaLRaLSaLSaLSaLSaLSaLTaLUaLSaLVaLWaLXaLYaLZaMaaMaaMbaMcaMdaMdaMdaMeaJuaMfbKWbKDaMibLLaMjaMkaMlbLMbLNaMmbLNaMnaMoaMpaMqaMrbLPaMtaMuaMvaMwaMxbEFaMyaMzaMAaMBaMCaMDaMEaMFaMGaMHaaaaaaaaaaaaaaaaaaaaaaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMJaJzaJzaIcaJGaKTaJzaKTaMKaKTaJzaKTaJGaKUaKVaGdaERaMLaHhaHhaMMaMNaMOaMNaHhaHhaySaySaySaMPaMQaMRaMSaHnaMTaMUaMVaJZaJZaMWaJZaMXaMYaMZaHpaaaaGwaGwaNaaNbaNaaGwaGwaaaaDOaDTaDUaNcaNdaNeaLuaNfaDUaAYbyxaDVaDWaNgaIMaGCaDWaGDaDWaGCaIOaNhbyxbyxbyxaNiaNjaNkbLQaNmbNlasnasnbNtbNqaNnaNobCtaNpaHGbCtaNqbCtaNrbCtaNsbNuaNuaNvaNwbNQaNyaNzaNAaNBbOsbNRaNDbOsbOsbOxbOsaNzaNFaNzaJsaNzaNzaNGaNHaNIaNJaNJaNKaNLaNMaNNaNJaNOaJrbOAbPdaNQaNRaNSaNTaNUaNVbLMaNWaNXbLNaNYaNZaOaaObaMrbPgaMtaMuaMvaOdaOebEFaOfaOgaOgaOhaMFaMFaMFaMFaMGaMHaaaaaaaaaaaaaaaaaaaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMJaJzaJzaIcaJGaKTaJzaKTaMKaKTaJzaKTaJGaKUaKVaGdaERaMLaHhaHhaMMaMOaMNaMOaHhaHhaySaySaySaMPaMQaMRaMSaHnaMTaMUaMVaJZaJZaMWaJZaMXaMYaMZaHpaaaaGwaGwaNaaNbaNaaGwaGwaaaaDOaDTaDUaNcaNdaNeaLuaNfaDUaAYbyxaDVaDWaNgaIMaGCaDWaGDaDWaGCaIOaNhbyxbyxbyxaNjaNiaNkbLQaNmbNlasnasnbNtbNqaNoaNnbCtaNpaHGbCtaNqbCtaNrbCtaNsbNuaNuaNvaNwbNQaNyaNzaNAaNBbOsbNRaNDbOsbOsbOxbOsaNzaNFaNzaJsaNzaNzaNGaNHaNIaNJaNJaNKaNLaNMaNNaNJaNOaJrbOAbPdaNQaNRaNSaNTaNUaNVbLMaNWaNXbLNaNYaNZaOaaObaMrbPgaMtaMuaMvaOdaOebEFaOfaOgaOgaOhaMFaMFaMFaMFaMGaMHaaaaaaaaaaaaaaaaaaaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaOiaKRaKSaJGaKTaJzaKTaJzaKTaJzaKTaJGaKUaKVaGdaERaOjaOkaOlaOmaOnaOoaDyaOpaOqaOraOsaOtaOuaOvaOwaOwaHnaOxaOyaOzaOAaOBaOCaODaOEaOFaOGaHpaaaaabaaaaOHaOIaOHaaaaabaaaayaaDTaDUaOJaOKaOLaOMaONaDUaAYbyxaOOaOPaFmaOQaORaFpaOSaFpaOTaOUaOVbyxaOWaOXaOYaOZaPaaPbaPcbPhaaaaaabNtbPSaPfaPgbCtaPhaSzaHGaHGaPiaHGaHGaHGbScaPjaPkaPjbSUbSYaPjaPmaPjbTcaPnaPoaPpaPqaPrbTcbTHbUbbTYbUgbTYbTYbTYbTYbUhbTYbTYbUmbTYbTYcDpcDpaPvaJubLLaPwaNRaPxaPyaPzaPAaPBbUoaPDaPEbLNbDSaPGaPHaPIaPJbPgaMtaMuaMvaPKaRtbEFaPMaOgaOgaOhaMFaMFaMFaMFaMGaMHaaaaaaaaaaaaaaaaaaaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPNaPOaIbaJxaJGaJzaJzaPPaJzaJzaPQaJzaJGaJHaPRaPSaERaPTaPUaPVaPWaPVaPVaPVaPVaPVaPXaDyaySaPYaPYaPYaPYaHnaPZaQaaQbaHnaHnaHnaHnaPZaQcaQdaHpaQfaQgaQgaQhaQiaQjaQgaQgaQkaQeaQlaDUaQmaDUaQnaQobVfaDUaQrbyxbyxbyxbyxaQsaQtaQuaQvaQuaQwaQxbyxbyxaQyaOZaOZaOZaOZaQzaQAbVVbVYbVXbNtaQEaPfaQFbCtbCtbCtbCtbCtbCtbCtaPjaPjbScaQGaQHaQIaQJaQKaQLaQMaQNbTcaQOaQPaQQaQRaQSbTcaQTaQUaQVaQWaQVaQXbieaQYaQZaRbaRcaRdaReaRfaRgcDpaRhaMabWaaRjaRkaPxaRlaPzaPAaRmbLNaRnaRoaRpaRqaRraObaObbLNbLNaMtaMuaMvaRsaPLbEFaRuaRvaRwaRxaRyaRzaMFaMFaRAaMHaaaaaaaaaaaaaaaaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPNaPOaIbaJxaJGaJzaJzaPPaJzaJzaPQaJzaJGaJHaPRaPSaERaPTaPUaPVaPWaPVaPVaPVaPVaPVaPXaDyaySaPYaPYaPYaPYaHnaPZaQaaQbaHnaHnaHnaHnaPZaQcaQdaHpaQgaQfaQfaQhaQjaQiaQfaQfaQkaQeaQlaDUaQmaDUaQoaQnbVfaDUaQrbyxbyxbyxbyxaQsaQtaQuaQvaQuaQwaQxbyxbyxaQyaOZaOZaOZaOZaQzaQAbVVbVYbVXbNtaQEaPfaQFbCtbCtbCtbCtbCtbCtbCtaPjaPjbScaQGaQHaQIaQJaQKaQLaQMaQNbTcaQOaQPaQQaQRaQSbTcaQTaQUaQVaQWaQVaQXbieaQYaQZaRbaRcaRdaReaRfaRgcDpaRhaMabWaaRjaRkaPxaRlaPzaPAaRmbLNaRnaRoaRpaRqaRraObaObbLNbLNaMtaMuaMvaRsaPLbEFaRuaRvaRwaRxaRyaRzaMFaMFaRAaMHaaaaaaaaaaaaaaaaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPNaIbaIcaIbaIbaIdaIeaIbaIbaIcaPOaRBayaaRCaPTaCyaRDaRDaREaRDaRFaySaRGaRHaDyaRIaRJaRKaRLaRMaRNaRLaROaRLaRLaRLaRPaRLaRLaRQaRRaRSaRTaRUaRVaRTaRWaRTaRTaRTaRTaRXaRYaRZaRLaRLaSaaSbaScaSdaSeaSfaSgaShaSiaSjaSkaSkaSkaSkaSkaSkaSlaSmaSnaSoaSpaSqaSraSsaStaSuaOZaOZaSvaSwaSxaSwaSxaYubjuaSBaSCaSDaSEaPjaSFaTEaSHaSIaSJaSJaSKaSLaSMaSNbTcaSOaSPaSQaSQaSRbTcaSSaSTaSUaSVaSWaSWaSXaSZdhSaSYaTaaTbaTcaTdaTebTYaPvaTfbLLaTgaThaThaTiaTjaThaTkbLNaTlaTmbLNaTnaToaObaTpbLNaTqaTraTsaMvaOeaOebEFaTtbIgbWdbWebIgbIgbIgbIgbIgabAacOaaaaaaaaaaaaaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCyaTuaTvaHcaHcaHcaHcaTwaTuaCyaHeayaaTxaTyaTzaTAaTBaTCaTCaTDaySaSyaRHaTFaTGaRJaTHaTIaTJaTKaTKaYgaTLaTLaTLaTMaTNaTNaTOaTPaTQaTKaTKaTRaTSaTTaTUaTVaTVaTWaTVaTXaTSaTSaTSaTYaSbaScaSdaSeaSeaSeaSeaTZaSeaSeaSeaSeaSeaSeaUaaUbaUcaUdaUeaUfaUgaUhaUiaUjaUkaUkaUkaUlaUmaUmaUmaUnaSEaSEaSEaUoaUpaSEaPjaUqaUraSJaSJaUsaSJaUtaUuaSMaUvbTcaUwaUxaUyaUzaUAbTcaUBaUCaUDaUEaUFaUGbTYbWQaUIbWQbTYbTYbTYbUmbTYbTYaPvaJubLLaUJaNRaNRaNRaUKaNRaULbLNbLNbLNbLNbLNbLNbLNaUMbLNaMvaMvaMuaMvaUNaUOaOeaUPaUQbztaUSaUTaUUaUVaUWaUXaaaaaaaaaaaaaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaGbayaaTzaAPaGdaUYaUZaVaaVbaGdaAPaVcaVdayaaVeaPTaTzaVfaVgaTCaTCaTDaySaVhaRHaDyaTGaRJaViaVjaVkaRLaRLaVlaVmaVnaRLaVoaVpaVqaVpaVraVsaVpaVpaVtaVpaVpaVuaVvaVpaVwaVpaVxaRLaRLaRLaVyaVzaVAaVBaVCaVDaVCaVEaVFaVEaVEaVEaVEaVEaVEaVGaVHaVIaVIaVIaVIaVJaVIaVKaVLaVIaVIaVMaVNaVOaVOaVOaVOaVOaVOaVOaVPaSEaSEaPjaVQaVRaVSaVTaVTaVUaVVaUuaSMaVWbTcbTcbTcbTcbTcaVXbTcaVYaVZaWaaWbaQVaWcbTYaXAaWeaWfaWgaWhaWjaWkaWdbTYaPvaJubLLaWlaWmaNRaWnaWoaNRaWpaWpbLLaWqaWraWsaOeaWtaWuaWvaMvaMvaWwaWxaOeaWyaOeaWzaUQaURaWAaWBaUQaUQaWCaWDaaaaaaaaaaaaaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaGbayaaTzaAPaGdaUYaUZaVaaVbaGdaAPaVdaVcayaaVeaPTaTzaVfaVgaTCaTCaTDaySaVhaRHaDyaTGaRJaViaVjaVkaRLaRLaVlaVmaVnaRLaVoaVpaVqaVpaVraVsaVpaVpaVtaVpaVpaVuaVvaVpaVwaVpaVxaRLaRLaRLaVyaVzaVAaVBaVCaVDaVCaVEaVFaVEaVEaVEaVEaVEaVEaVGaVHaVIaVIaVIaVIaVJaVIaVKaVLaVIaVIaVMaVNaVOaVOaVOaVOaVOaVOaVOaVPaSEaSEaPjaVQaVRaVSaVTaVTaVUaVVaUuaSMaVWbTcbTcbTcbTcbTcaVXbTcaVYaVZaWaaWbaQVaWcbTYaXAaWeaWfaWgaWhaWjaWkaWdbTYaPvaJubLLaWlaWmaNRaWnaWoaNRaWpaWpbLLaWqaWraWsaOeaWtaWuaWvaMvaMvaWwaWxaOeaWyaOeaWzaUQaURaWAaWBaUQaUQaWCaWDaaaaaaaaaaaaaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaySaDwaTuaPSaERaDyaDyaESaPSaTuaPSaWEaWFaWGaWHaDwaWIaWIaREaWIaRFaySaWJaRHaDyaySaPYaPYaWKaYraYraYraYraYraYraWLaWMaYraYraYraYraYraYraWNberaZYaZYaWOaZYaZYaZYaWRaWPaWTaWUaWQaWVaPYaWWaWWaWXaWXaWXbXMbXNbXNbXNbXNbXNbXNbBMbXObYMbYmcbAbYmcbBcbBcbGcbDcbZcbYccwbXOccIbVYbVYbVYbVYbVYbVYccJaXkaXkaXkaPjaXlaXmaXnaXnaXnaXnaXoaKyaXpaXqaXraXsaXtaXuaXvaXwbTcbTcaXxccOcencdjcfnbTYaWiaXBaXCaXCaXCaXCaXDaRabTYaXFaJubLLaXGaNRaWnaWnaWoaWnaNRaXHbLLaXIaXJaXKaOeaMvaXLaXMaXNaXNaXOaXPaXQaXRcfoaXSaXTaXUaXVaUSaUQaUQaXWaWDaaaaaaaaaaaaaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCyaXXaDyaXYaXZaYaaYbaYcaYdaYbaYeaYfaYbaYbbcOaYhaYiaYjaYkaYkaYkaYlaYkaYmaYnaySaYoaYpaYqaYraYsaYtaYxayCayBaYxaYyaYzaYAaYBaYCaYDaYrbblaYvaZYbbzaYwaYFaYEaZYaZYaZYaYMaYMaYKaYLaYMaYMaYMaYNaSeaSjcfsaaaaaaaaaaaaaaaaaaaaabXOaYPaYQaYRaYSaYTaYUaYVaYWaYXaYYaYZbXOaaaaaaaaaaaaaaaaaaaaacftaZaaSEaZbaPjaZcaXmaXqaXqaXqaXqaXqaZdaZeaXqaXqaXqaXtaZfaZfaZgaZhaZiaZjaZkaZlaZmaZnbTYaZoaZpaZqaZraZraZqaZsaZtbTYaPvaZubLLaZvaZwaNRaWnaWoaNRaZxaZxbLLbLLaZybLLaOeaZzaWuaWxaZAaZAaZBaWxaOeaOeaOeaZCaUQaZDaZDaZEaZDaUQaZFaWDaaaaaaaaaaZGaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDwaZHaZIaZHaZHaZHaZHaZHaZHaZIaZHaZHaZJaDyaZKaZLbCZaDyaZMaDyaZNaZOaZPaZQaZRaySaYpaYpaZSaYraZTaYxaYxaYxaYxaYxaYyaZUaYxaYxaYxbFjaYrbblaYGaZYaYIaYHaYJaYJbabbbyaZVaYMbadbaebafbagbahbaiaYNaSeaSjcfsaaaaaaaaaaaabXObXObXObXObajbakbalbambanbaobapbaqbarbasbatbXObXObXObXOaaaaaaaaaaaacftaZaaSEaSEbauaXqbavbawbaxaXqbaybazaJabaAbaBbaCaXqaXtdqXaZfbaDbaEaZfbaFbaGbaHbaIaZfcfubaKbaLaZqaZraZraZqbaMbaNbTYaPvbaObLLaXGaNRaWnaWnaWoaWnaNRaNRbaPbaQaNRbaRaOebaSbaTbaUaZAaZAbaVbaUbaWaOebaXbaYaUQbaZbaZbbabaZaUQaXWbbbbbcbbdbbdbbeaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaayabbfbbgbbgbbgbbgbbgbbgbbgaGjayaaySbbhbbibbjbbjbbjbbjbbjbbjcfvbbjbbjbbjaySaYpbblbbmaYrbbnaYxaYxbbobbpbbqbbrbboaYxaYxaYxbbsaYrbblaYvaZYaZXaZWaZZaZZbacbaaaZVaYMbbAbbBbbCbbDbbEbbFbbGbbHaSjcfwcgtaQqbXObXObXObbJbbKbbLbbMbbNbbNbbObbPbbNbbQbbNbbRbbSbbTbbUbbVbbWbXObXObXOaQqccIcgIaZaaSEaSEaPjbbYbavbaBbaxaXqbbZbcaaXqbcbbccbaCaXqaXtaZfaZfbcdbcebcfbcgbchbcibcjaZfcgVbaKbclaZqaZraZrbcmbcnbaNbTYaPvbcobLLbcpbcqbcraWnaWobcsaNRaNRbctaNRbcubcvaOebcwbcxbcyaZAaZAbczbcybcAaOebcBbaYaUQaUQaUQaUSaUQaUQbcCbcDbcEbcFbcGbcHaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIaabbcJaGeaDAbcKbbjbcLbcMbcNbcRbcPbcQbhlbcSbbjbcTbcUbcVbcWaYrbcXaYxaYxbbobbqbcYbbtbboaYxaYxbdabdbaYrbblaYvaZYaZYbbuaZYaZYaZYaZYaZYaYMbdcbbDbddbbDbdebbFaYNbdfaSjaSkaSkbdgcgWbdibXObdjbalbdkbbNbbNaMIbdlbdpbdnbdpbdoeTDbdqbdmbdrbdsbdtbXObducgWbdvbdwbdxaZaaSEaSEbauaXqbdyaXqaXqaXqbdzbdAaXqbcbbdBbaCaXqaXtaZfaZfbdCbdDbdEbdFbdGbdHbcjbdIbTYbdJbclaZqaZraZraZqbcnbdKbTYbdLchpbLLchqbLLbLLbdMaWobdNbdOaNRbdPbdQaRlbdRcfobdSbdTbdUbdVbdVbdWbdXbdYcfobdZbeaaUQbebaUQaUSaUQaUQbecbedbbcbbdbbdbeeaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbefbegbehaERaZKbbjbcLbeibejbcLbekbelbembenbbjbeobepbeqberaYrbesbetbeubevbewbexbeybezbezbezbeAbeBaYrbblbcUbeDbeEbeFbblbblbeGberbbvaYMbeIbeJbeKbeLbeMbeNaYNbdfaSeaSeaSebeObePbeQbeRbeSbeTbbNbeUbeVbeWbeXbeYbeZbfabfbbfcbfdbfebeSbffbfgbfhbfibfjbfkbflbfmbfnaSEbfoaPjaXqbfpbfqbaCaXqbfrbfsaXqbftbfubaCaXqaXtaZfaZfaZfaZgaZfbfvaZfbdHbcjbfwbTYbfxbclaZqaZraZraZqbcnbfybTYbfzbfAbOYbfBbfCbfDbfEbfFbfGbfGbfGbfGbfGbfGbfHbfIbfJaZAaZAaZAaZAaZAaZAbfKbfLbfMbaYaUQaUQaUQaUSaUQaUQbfNaWDbfObfObfOaWDaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbfPbfQbfRbfSaZKbbjbfTbcLbfUbfUbfUbfVbcLbfWbbjbfXbfYbeqbfZbfZbfZbfZbgabfZbgbaYxbgcbgdbgebgebgfbggaYrbghbgibgjbgkbglbgmbgmbbwdIjbgobgpbgpbgpbgpbgpbgqaYMaYNbgrbgsbgtbgubgvchrbgxchsbgybeZbgzbgAcNxcNxcNxcNxbgBcNxdiMdiOdiNbgFbgzbgGbgHbXObgIchtbgKbgLbgMbgNaSEaSEbauaXqbgOaXqaXqaXqaLLaXqaXqbgPbgPbgQbgQbgRaZfaZfbgSbgTaZfaZfaZfbgUbgVbgWbTYbaNbclaZqaZqaZqaZqbcnaXEbTYbgXbgYbgYbgZbgYbhaaWnaWnaWnaWnbhbaWnaWnaWnbhcbfLaZAaZAaZAaZAaZAaZAaZAbfKbfLbfMbaYaUQaZDaZDaZEaZDaUQbhdaWDbhebhfbhgaWDaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbhibhjbehbhkaWHbjQbcLbhmbfUbfUbfUbfVbhmbcLbbjbhnbhobeqbfZbhpbhqbhrbhsbfZbbxbhubhvaYrbhwbhxbhybhzaYrbblbhAbhBbhBbhCbhBbhBbhBbhBbhDbhEbhEbhEbhFbhEbhGbiWbhHbhIbhJchuchuchuchuchuchucjcbhKcjccNxcNxbhLbhMbhNbhObhPbhQbhLdiPcNxcjVbhRcjVcjVcjVcjVcjVcjVcjVbgNaSEaSEaPjbhSbhTaXqbhUaXqbhVaXqbhWbhXbhYbgQbhZbTcbiabibbTcbTcbicbidbidbidbTcbTcbTYcgrbifbigbigbigbigbifbihbTYbiibgYbgYbgZbijbLLbikbilbimbinbiobipbiqbirbisaOebitaMvbiuaZAaZAbiuaMvbivaOebiwbaYaUQbaZbaZbbabaZaUQbfNaWDbfObfObfOaWDaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbixaDwbiybizbiAbbjbeibeibeibcLbiBbiCbiDbiEbbjbiFbiGbeqbfZdHcbfZbiHbiIbfZbiJbiKbiLaYrbhwbhxbhybiMaYrbblbhAbhBbiNbiObiPbiQbiRbhBbiSbiTbiUbiVbiWbiWbiWbiWbiXbiYbiZchubVzbjbbjcbjdbjebjfbjgbjhcNxbjibhNbjjbjkbjlbjkbjjbhNbjmcNxbjnbjobjpbjqbjrbjsbjtaSAcjVbjvbjwbjwcmhaPjaPjaPjaPjbjybaubjycmSaPjbSYaPjaPjbTcbTcbTcbTcbjAbjBbjBbjBbjBbjCbjDbTYcncbjFcncbjGbjGcncbjFcncbTYbiibgYbgYbjHbijbLLbLLbLLbLLbLLchqbLLbLLbLLbLLaOecndcnQcnecnecnecnecoLaOeaOebjJbjKaUQaUQaUQaUSaUQaUQbecbbbbjLbbdbbdbjMaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGbayabjNaHcbehaySaySaySaySaySaySbjObjPbbjbbjbbjbbjbbjbbjccWbbjbbjbbjbjRbjRbjSbfZbjTbjUbiHbjVbfZbjWbjXbjWaYrbhwbhxbhybjYaYrbblbhAbhBbjZbkabkbbiQbkbbhBbiSbkcbkdbkebkfbkgbkhbiWbkibkjbiZcoMbklbkmbknbkobkobknbkpbkqcNxbkrbhNbhNbksbktbjkbjjbhNbkudiNbkvbkwbkxbkybkzbkAbkxbkBcjVbkCbkDbkEbkFbkGbkHbkIbkJbkJbkJbkJbkJbkJbkKbkLbkMbkNbkJbkObkJbkJbkJbkJbkJbkJbkJbkJbkPbkQbkRbkRbkRbkRbkRbkRbkSbkHbkTbkUbkUbkVbkWbkXbkWbkYbkWbkZblablbbkWblcbldbleblfblgblgblgblgblgblgblgblhblibljbljbljbljblkbljbllblmblnbloblpbcGblqaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablrblrblrblrblrblrblrblrblrblraaaaabblsaGebltblublvblwblwblwblwblwblxblyblzblAblBblCbjSbfZbfZbfZblDbiIbfZaYraYraYraYrbhwblEblFblGaYrblHblIbhBblJblKbiQbkbblLbhBbiSblMbkdbkebkeblNblObiWblPbkjbiZcoNblRblSblTblUblVblWbkpblXcNxblYbksbhNblZbmablZbhNbksbmbdiPbmcbkxbkxbkybmdbkAbkxbmecjVbmfbkEbkEbkFbkGbkHbkJbkJbkJbkJbkJbkJbkJbmgbkJbkJbkJbkJbkJbkJbmhbmibmibmibmibmibmibmibmibmibmibmibmibmibmibmjbmkbmlblgblgbmmbgYbgYbgYbgYbgYbgZbgYbgYbgYbgYbgYbgYbgYbgYbgYbgYbgYbgYbmnbgYbmobmpaUQaUQaUQaUQaUQaUQaUQbmqbedbbcbbdbbdbbeaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablrblrblrblrblrblrblrblrblrblrblrbefbegbmrbmsbmtbmubmubmubmvbmubmueIGbmweNcberberberbXHbfZbhpbmxbmybjVbfZbmzbmAbmzaYraYraYraYrbmBaYrbmCbhAbhBbmDbmEbkbbmFbmGbhBbiSbiWbmHbkebkebkebmIbiWbmJbkjbiZcoObmLblSblTbmMbmNblWbkpbmOcNxbmPbmQbhNbmRbmSbmTbjjbmUbmVdiQbmXbmYbmZbnabnbbncbkxbndcjVbnebnfbkEbkFbkGbkHbkJbngbkJbkJbkJbkJbnhbnibnibnibnibnjbkJbkJbkJbkJbnkbkJbngbnlbkJbnmbnnbnobkJbnpbnqbnqbnrbnsbntbnubgYbgYbgYbgYbgYbgYbgYbnvbnwbnxbgYbgYbgYbgYbgYbgYbgYbgYbgYbgYbnybnzbnzbnAbnBbnCbnDbnEbnEbnEbnEbnFbnGbnHaabaaaaaaaabaKPaKPaKPaKPaKPaKPaaaaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablrblrblrblrblrblrblrblrblrblrblrbnIbnJbnKbnLbnMbmubnNbnObnPbnPbnQeJnbnSbnTbnUbnUbnVbnWbfZbfZbfZbiHbnXdHcberberberberbnYbblbblbnZbgmboabobbocbodboebofbogbohbhBboibiWbojbkebkebkebokbolbombkjbonchudwtbopbknbknbknbknbkpboqcNxdiRdiScNxcNxcNxcNxcNxcNxcNxdiPcjVbosbotboubovbowboxboycjVbozboAboAcpTcpTcpTcpTcpTcpTcpTcqxcqxcrkcqBboDboDcqBcrkcqxcqxcrtcrtcrtcrtcrtcrtcswcswboEcswcswcswcswcswctpboFcvyboGbgYbgYboHboHcxOcxOcxOcxOcxOboIbnzbnzbnybnzbgYbnzbnzbnzbnzboJcxQcxQcxQcxQboKcxYcxYcxYcxYcxYcxYcxYcxYcxYaaaaaaaaaaaaaKPaKPaKPaKPaKPaKPaaaaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablrblrblrblrblrblrblrblrblrblrblrbhibhjbmrbmsboLbmuboMbmuboNboObmueIGeIGaZSboPboQboQboRbfZbhpboSbiHboTdHcboUboVboWboXboYboZboZbpaboZbpbbpcbhBbpdbpecaMbpfbpgbocbphbiWbpibkebkebpjbpkbplbombkjbpmchubpnbpobppbpqaWSbpsbptchuchubpuczkbpvbpwbpxbpwbpyczkaaaczEcjVbpzbpAbpBbpCbowbkxbpDcjVbpEbpFbpGcpTbpKbpIbwpbpJbpLcAgbpNbpObpPbpQbpRbpRbpQbpSbpTbpUcrtbpVbpWbpXbpYcrtbpZbqabqbbqcbqdbqebqebqfctpbqgcBocAMbqhcAMbqibqicxObqjbqkbqlcxOcBSbqncBScxObqobnzboJcxQcCqbqqcCqcxQbqrbqscxQbqtbqubqvcDsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKPaKPaKPaKPaKPaKPaaaaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablrblrblrblrblrblrblrblrblrblraaabqwaTzbqxbizbqybmubqzbmubqAbqBbqCbqDbmubqEbqFbqGbqHboRbfZbfZbfZbfZbfZbfZbqIbqJbqKbqLbqMbhBbhBbhBbhBbhBbhBbhBbqNbhBbhBbhBbqObhBbqPbqQbqRbkebkebkebqSbolbqTbkjbqUchubqVbpocjccjccjcchubqWchubqXbqYcDXbqZbrabrbbrcbrdcDYbrebrfcjVbrgbkxbrhbribowbrjbkxcjVbrkbrlbrmcpTbKXbrobrpbrqbrrbrsbrtbpRbpRbpRbpRbpRbpRbpRbrubrvcDZbrxbrybrzbrAcrtbrBbrCbrDbrEbrFbrGbrCbqfctpbrHcBobrIbrJbrKbrLbrLcEFbrMbrNbrObrPbrQbrRbrScxOcFEbrTcGWcxQbrUbGybrWbrXbrXbrYcxQbrZbsabsbcDsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKPaKPaKPaKPaKPaKPaaaaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGbayabjNaHcbhjbbgbbgbbgbscbbgbsdaERbsebsfbmubsgbshbsibsjbskbslbsmbcWbblbblbblbsnbnUbnUbnUbnUbnUbnUbsobspbspbsqbsrbhBbssbstbsubsvbswbsxbsybszbhBbsBbsCbsDbphbolbqRbkebkebsEbiWbiWbsFbsGbsHcGXbsIbsJbsKbsLcIWbsMbsNcJFbsObsPcDYbsQbsRbsQbsRbsScDYbrebsTdjnbsUbsVbsWbsXbsYbsZbtadjnbtbbpFbpFcpTchFbtdbtebtfbSXcpTbrtbpRbpRbpRbpRbpRbpRbpRbthbtibtjbtkbtlbrxbtmcrtbtnbtobtpbrEbqfbrGbtqbtrctpbtseKcbtubtvbtvbtwbtxbtybtzbtAbtAbtAbtBbtAbtCeKdbtEbtFbtGeKebtHbtIbtJbtJbtJcifcxQbtLbsabtMcDsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKPaKPaKPaKPaKPaaaaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtNbtObtPbtQbtRbtSbtSbtTbtUaDybmubtVbtWbsjbtXbmubmubmuberbtYbtZbuabubbuabuabuabubbuaberberbhBbhBbhBbucbhBbudbudbudbudbudbudbsybuebufbugbuhbuibujbukbulbumbunbuobupbuqburbusbutbuubuvbuvbuwbuxeKfbuybuzeKgbuAbuBczkbuCbrcbuDbrabuEczkaaabuFeKheKibuGeKheKheKheKhbuHcjVbuIbpFbuJeKjbRKbuLbuMbuNbRJcpTbuPbuQbuRbuSbuTbuUbuVbuWbrubuXcrtbUjbtlbuZbvacrtbvbbvcbrDbrEbqfbrGbrCbqfctpbrHcBobvdbvebvfbvgbvheKkbvibvjbvkbvlbvmbvnbvocxObvpbvqbvrcxQbvsbvtbvubrXbvvbRLcxQbtLbsaciNcDsaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtNbvybvzbvAaDxaDxbvBbvCaDxbvDbmubvEbvFbvGbvHbmuaaaaaaaaaaabaabbvIbvIbvIbvIbvIbvIbvIaaaaaabvJbvKbvLbvMbvNbudbudbudbudbudbudbvObvPbvQbvRbvSbvTbvUbvVbiWbiWbvWbiWbiWbiWbvYbvZbwaeKlbwbeKmeKmeKneKmeKobwceKpbwdbuBczkbwebpwbpwbpwbwfczkaaabuFeKhbwgbwhbwibwjbwkeKqbwleKrbwmbpFbwncpTbpKbwociLbwqbuYeKsbwtbwubwvbwwbwxbwybwzbwAbwBbwCeKtbwDbtlbwEbwFcrtbwGbwHbwIbwJbwKbwLbwMbqfctpbwNeKubwPbwQbwQbwRbwSeKvbwUbwVbwWbwXbwYbwZbxacxObxbbvqbxccxQbxdbxebxfbrXbrXbNMcxQbrZbsabxhcDsaaaaaaaaaaaaaabbxibxjbxkbxjbxkbxjbxlaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxmaDwbxnbxnbxobbgbxpaGbayabxqbxpbmubxrbxsbxtbxubmuaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIaaaaaabxvbxwbudbxxbxybxybxybxybxybxzbxAbxybxBbxCbxDbxEbxFbxGbxHbiWbxIbkebxJbxKbxLbxMbxNbxOeKleKleKpbxPbxQbxRbxSbxTeKpbpubuBczkbxUbxVbxWbxXbxYczkaaabxZeKhbyabybbyceKwbydeKwbyeeKxciPbpFbygcpTeKzeKyeKAbyjeKCeKBbylbymbynbyobypbypbyqbyrbysbytcrtbwDbyubyvcrtcrtcsweKDeKFeKEcswctpctpctpeKGbyycBobyzbvebvfbyAbwQeKHbyCbyDbyDbyEbrObyFbyGeKJeKIbrTeKKcxQbyJbyKbrXbyLbyMbNLcxQbtLbyOcDscDsaaaaaaaaaaaaaabbyPbyQbyRbySbySbyTbyPaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbyWbyXbyYbFbbyZbzabzbbzbbzbbyZbudbsybuebudbudbufbzcbzdbzebzfbzgbzhbzibkebkebzjbzkbxMbxNbzlbzmbznbzobzpbzqbzrbzsciQeKpbzubzvcDXbzwbzxbzybzzbzAcDYbrebzBeKhbzCbzDbzEeKwbzFeKwbzGeKxbzHbpFbzIcpTbzJbzKbzLbzMbzNeKLbzObzPeKMeKMeKNbzReKMeKMbzSbzTeKPeKObzUbzVbzWbzXbzYbzZbAabAbbAceKQbAdbAebAfbAgcBobAhbAibAjbAkbAlcEFbAmbyDbyDbAnbAobyFbApcxObAqbAqbArcxQbAsbAtbAubAvbrXbyNcxQbtLbAxcDsaaaaaaaaaaaaaaaaabbAybAzbyRbySbyRbAAbxkaabaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbABbACbABbADeHueHveHueHueHueHubAEbsybuebAFbhBbhBbAGbkebuhbzfbAHbAIbAJbAKbAKbALbAMbANbAObAPeKRbARbASbATbAUbAVbAWbAXeKpbwdbuBczkbAYbAZbBabBbbBcczkaaabxZeKSeKTeKSeKSeKSeKSeKSbBdeKSbBebpFbzIcpTbCFbBgbBgbBhbBieKBbBjbBkeKUbBmbBnbBobBpeKUbBqbBrbBsbBtbBubBvbBwbBwbBxbBybBzbBAbBBbBCbBDbBEbBFbBGbBHbBIbBIbBJbBKbBLcEFciTbrObrObBNbBObyFbBPbBQbBRbBSbBTeKVbBUeKXeKWbBWeKYcxQcxQbBXeKIeKIeKZeLaeLaeLaeLbeKIbyPbySbyRbySbySbCbbyPaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbCcbCdbCcbCebudbzabzbbzbbzbbudbudbsybuebCfbCgbhBbChbkebuhbzfbCibCjbCkbkeblNbkebClbxMbpFbCmeLcbARbCnbCobCpbCqbCrbCseLdeLfeLeeLgeLgbCubCvbCwczkczkaaabxZeKSbCxbCybCzbCAbCBbCCbCDeLhbCEbpFbzIeKsbBfbCGbCHbCIbCJeKBbCKbCLbCMbCNbCObCPbCQbCRbCSbCTbCUbCVbCWbCXbCYciWbDabDbbDcbDdbDeeKQbDfbDgbDhbDicAMbDjbDkbDlbDmbDmcEFbDnbDobDpcEFbDqbyFbDrcEFbDsbDtbDubDvbDwbDxbDybDzbDAbDBbDCbDDbDEbDFbDGbDGbDHbDIbDJeLibDLbxjbxkbDMbxkbxjbDNaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbDObyXbDPbDQbudbzabudbudbudbudbudbsybuebCfbDRbhBbFnbkebDTbDUbkebDVbkdbkebkebdhbxLbxMbpFbCmeLcbAReKpbDXbDYbDZbEabEbeLjbEcbEdbEeeLkcDYbEfeLlcDYbrebrebEheKSbEibEjbEkbElbEmbEmbEnbEobEpbpFbEqcpTeKBbEreLneLmbEteKBbCKbEueLobEvbEwbExbEyeLobCKbEzbEAeLpeLpeLpeLqeLpeLreLrbEBeLseLueLteLtbECeLueLueLteLteLweLveLweLwcEFcEFcEFcEFcEFeLxbEEeLycEFbEGbEHbEIbEJbEJbEKbELbEMbENbEObEPbEQbERbESbETbETbEUbDwbEVeKIeLzeLBeLAbEZeKIbFaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbCcbCdbCcbFbbFcbFdbudbudbudbFcbudbsybuebCfbFebhBbFfbkebuhbzfbkebolbFgbkebkebFhbzkbxMbpFbFieLCbFkeKpbFlbFmeHrbFobFpeLjbFqbFrbFsbFtbFubFvbFweLDaaaaaaaaaeKSbFxbFybFzbFzbFAbFBbFCeKSbFDbFEbzIbFFbFGbFHbFIbFJbFKbFLbFMbCLeLEbFNbFObFPbFQeLEbCKbEzbFRbFSbFTbFUbFVbKHeLrbFXbFYbFZeLubGabGbbGcbKIbGebGfeLFbDBbGhbEJbEJbGibGjbEJbGkbGlbGmbGnbGobEJbGpbGqbGreLHeLGeLJeLIeLKeLIeLIeLIbBXeKIeKIeKZeLbeKIbGvbGwbGxbrVbGzbGAbGBeLLaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbGDbGEbGDbGFbGGbGHbGHbGHbGHbGHbGIbGJbGKbCfbGLbhBbGMbGNbGObGPbGQeLNeLMeLPeLObIybIybGUbpFbGVbGWbAReKpbGXbGYbGZbDYbHaeLjbHbbHcbHdeLQbHebzybHfeLDaaaaaaaaaeKSbHgbHhbHibHjbFAbFBbFCeKSbHkbHlbHmbHnbHobHpbHqbHrbHsbHtbHubHveLoeLoeLRbHxeLoeLobCKbEzbHybHzbHAbHBbHCbHDeLrbHEbHFbHGeLSbHIbHJbHKbHKbHLbHMeLTbHObHPbDwbDwbHQbDwbHRbDwbHSbDwbHTbHUbHUbHVbHWbHXeLUbJobJhbIbbIcbIdbIeeLIbIfeLVaaaaaaaaaeKIbIhbIibIjbIkbIlbImbIneKIaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbIobIpbIqbhBbhBbIrbyXbyXbyXbIsbhBbhBbItbIubIvbhBbIwbIwbIwbIxbIwbIybIzbIAbIBbICbIybxMbpFbIDbvXbvXeKpeKpeKpeKpeKpbIEeLjeLgeLeeLXeLWeLYbIFeLDeLDczkczkczkeKSeKTeKSeKSeKSeKSeKSeKSeKSbIGbpFbIHeLZbUcbIIbIJbUcbUccjIbIKbILbIMbINbIObIPbIQbIRbFMbISbITbIUbIVbIWbIXbIYbIZbJabJbbJceMabJebJfbJgbGcbHZeLteLtbKJbKJbKJbKJbJibKJbKJbKJeMbbJjeMceMcbJkbJlbJmbJneLUbIabJpbJqbJrbJsbJteLIbIfeMdaaaaaaaaaeKIbJvbJweKIeLieKIeKIeLieKIaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabJxaabaaaaaaaaaaaabIwbJybJzbJAbJBbIybJCbJDbJEbJFbIybxMbpFbJGbJHbJIbJJbJKbJLbJMbJNbJObJPbJQbJRbJSbJTbJUbJVbJWbJXbJYbJZbKabKbbKcbKdbKeboAbKfbpFbKgbKhbKibpFbKjbUcbKkbKlbKmbKnbKobCKbKpbKqbKrbKsbKtbKubKvbKwbKxbKybKzeLpbKAbHBbKBbKCeMebKEbKFbKGeLubGdbGcbGcbGcbFWeLtbKJbKKbKLbKMbKNbKObKPbKQbKJbKRbKSbKTeMceMcbKUbJmbKVeMfbAwbKYbKZbLabLbbLceLIbLdcDsaaaaaaaaaeKIeKIeKIeKIaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIwbLebLfbLgbLhbLibLjbLkbLlbLmbIybxMbLnbLobpFbpFbzIbLpboAbKebKdbLqbLrbLqbLsbLtbLtbLubLvbLwbLtbLtbLxbLtbLybLtbKdbKeboAbLzbLAbLBbLCbLDbLEbpFbUcbLFbKlbLGbLHbLIbCKbLJbLKeMheMgeMibLOeMkeMjbCKbLRbLSeLpbLTbLUbLUbLVeMlbLWbLXbLYeLubLZbMabGcbMbbMceLtbKJbMdbMebMfbMgbMhbMibMjbKJbMkbKSbMlbMleMcbMmbMnbMobMpbMqbMrbMsbMtbMubMveLIbIfcDsbMwaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIaaaaaaaaaaaaaaaaaaaaaaaabMxbMybMzbMybMAaaaaaaaaabIwbIwbMBbMCbLgbMDbMEbMFbJEbMGbMHbIybxMbMIbMJbMKbMLbMMbMNbMObMPbMQbMRbMSbMTbMUbMVbMVbMWbMXbMXbMXbMXbMXbMXbMYbMZbNabNbbNcbNdbMLbNebNfbNgbNhbNibUcbNjbKlbKmbNkbLIbCKbLJbLKeMmbNmbNnbNobNpeMnbCSbNrbNseLpeLpeMoeMpeLpeMleLreMreMqeLubNvbNwbNxbNybNzeLtbKJbNAbNBbKMbNCbNDbNEbNFbKJbNGbKSbMlbMleMcbNHbNIbNJeMsbNKbtcbtgbNNbNObNPeLIbIfeMteMueMteMweMveMweMweMwaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNSbNTbNUbNVbNSbNWbNXbNYbIwbNZbOabObbOcbOdbOebOfbOgbOgbOhbIybOibOjbOkbXibXibOlbOmbOnbXicblcblbOobOpbOqcblcblbOrbKdbKdeMxeMyeMyeMyeMzbOteMyeMyeMAbOueMBeMBbOveMBbOweMCeMBeMDbOybOzbUceMEbOBbLJbOCeMFbODbOEbOFbOGeMFbCKbLRbOHeMGbOIbOJbOKbOLbOMbONeMHbOObOPbOQbORbOSbOTbOUeLtbKJbKJbKJbKJbKJbKJbKJbKJbKJbOVbOWbOXbOXeMccjKbOZbPaeLIeLIeLIeLIeLIeLIeLIeLIbIfeMtbPbbPceMIbPebPebPfeMwaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeMKeMJeMJeMLeMMeMMbQZbQZbQZbQZeMNaabaabaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMzbPibPjbPibMzbPkbPlbPmbPnbPobPpbPqbPrbPsbIybPtbPubPvbPwbIybOjbOjbPxbXibPybPzbPAbPBbPCcblbPDbPEbPFbPGbPHcblbPIbPJbPKeMybPLbPMbPNbPObPPbPQbPReMObPTeMPbPUbPVbPWbPXbPYbPZbQabQbbQcbQdbQebQfbQgbLKbQhbQibQjbQkbQlbQmbCSbQnbQobQpbQqbOKbQrbQrbQsbQteLubQubQvbQwbQxbQybQzbQAeLtbQBbQCbQDbQEbQDbQDbQFeMReMQbQGbQHbQIbQJeMcbQKbQLbJneKIbsabQMbQNbQObQObQNbQObQPeMtbQQbQReMIbPebQSbQTeMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeMSbQVbQWbQVeMMbQZbQZbQXbQYbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNSbPibPibPibRabRbbMCbRcbRdbRebMCbPqbRfbRgbIybIybIybIybIybIybRhbOjbRicbXbRmbRkbRkbRkbRocbldrybRnbRnbRnduveMTbRpbRqbRreMUbRsbRtbRubRvbRwbRxeMyeMAbRyeMBbRzbRAbRBbRCbRDeMBbLFbKmbLGbLHbREbRFbRGbRHeMVbRIbwrbvwbuKeMFbRMbRNbROeMWbRPbRQbRRbRSbRTbRUeLueLueLueLueLueMXeMZeMYeLtbRVbQDbQDbRWbQDbRXbRYeNbeNabRZbKSbSabSaeMcbJlbSbbJneKIeMtbcZeMteMteMteMteMteMteMtbSdbSeeMwbSfbSgbSheMwaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacbSibQVbQVbSjbQZbQZbQXbQXbSkbQXbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMzbPjbPjbPjbMzbSlbSmbSnbSobSpbMCbSqbSrbSsbStbSubSubSubSvbOjbOjbOjbPxbXibRlbRkbSwbRkbSxcblbSybRnbSzbRnbSAcblbSBbSCbSDeMybSEbSFbSGbSHbSIbSJeNdbSKbSLeNebSMbSNbSObSPbSQeMBbNjbKmbKmbSRbREbRFbSSbSTeNfbQibSVbSWbxgeNgbSZbTabTbeNhbTdbTebTfbTfbQrbTgeMGbThbTibTjbTkbTlbTmbTneNbbRVbTobQDbQDbQDbTpbTqeNbeNabTrbKSbSabSaeMcbTsbTtbJneKIbTubTvbTweMtbTxbTybTzbTAbTBbTCbTDeMwbTEbTFbTGeMweMteMteMteMteMteMteMteMtaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaeNibQZbSibQZbQZbQXbQXbQXbQXbQXbQXbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaabNSbTIbTJbTKbNSbTLbNXbNYbIwbIwbTMbTMbTMbIwbIwbOjbTNbTNbTObTPbOjbTQbTRbXibRlbRkbRkbRkbTScblbSybRnbRnbTTbTUeNjbTVbTWbTXeMyeMyeMyeMyeMyeNkeMyeMybTZbUaeMBeMBeNleMBeMCeMBeMBbUcbUdbUdbUcbUcbUebUfeNmeNnbUibuObUkbUleNoeNpbUnbTbeNqbUpbUqbUrbUsbUtbUueMGbUvbUwbUxbUybUzbUAbUBeNrbUCeNrbUDbUEbUFeNreNseNreNrbUGbUHbSabSaeMcbUIbSbbJnbUJbUKbULbUMbUNbUObUPbUPbUQbURbUSbUTbUUbUVbUWbUXbUYbUZbVabVbeNtbVcbVdbVeeNuaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaeMMbQZbVgbVhbVhbQXbQXbQXbQXbQXbQXbQXbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVibMybVjbMybVkbVlaabaaaaaabIwbVmbVnbVobIwaaabOjbVpbVqbVrbVsbSubVtbVvbXibVwbVxbVybRkcjPccZcjQbVAbVBbVCbVDcblbVEbVFbVGbVHbVIbVIbVIbVIbVJbVKbVLbVMbVMbVNbVNbVObVPbVQeMAbUcbVRbVSbVTbVUeNvbRFbVWeNmeNxeNweNybVZeMkeNzeNAbWbbWceNBeNBeNCeNBeNBeNBeNDeMGbWfbWgbWhbWibWjbWkbWleNrbWmbWnbWobWpbWqbWnbWrbWsbWnbWtbWubKTeMceMcbWvbWwbWxacFbWybWzbWAeNEbWBbWCbWDbWEbWFbWGbWHbWIbWJbWKbWJbWLbWKbWKbWKbWMbWNbWObWPeNFaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabQZbQZbWRbQXbQXbQXbQXbQXbQXbQXbQXbQXbQXbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabbWSbOjbOjbOjbWTbOjbOjbWUbXibWVbWWbWXbWYbWZcdgbXabXbbXcbXdbXeccZbXfbXgbXhccacepcepcepcepcfyceqcfCeNGbXjeNGeejbYLbXlbXmbXnbXobXpbXqbXrbXsbXtbXubXvbXwbXxbXybXzbXAbXBbXCbXDbXEbXFbXFbXFbXGckRbXIbXJbXKeNHeNHbXLeNHeNJeNIeNLeNKeNrbXPbXQbXRbXSbXRbXTbXUbXVbWneMcbXWeMceMcbXXbXYbSbbvqeKIeMtbXZeMteMtbYabYbbYcbYdbYebWKbYfbYgbYhbWDbYhbWDbYibWDbWDeMtbYjbYkbYleNMaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaabQZbQXbQXbQXbQXbQXbQXbYnbQXbYobQXbQXbQXbQXbQXbQZbQZaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWSbYpbYqbYrbOjbYsbXibYtbYubYvbRlbYwcfUbYxbSybYybYzbYAcfUbYBbYCckUcgYcgYbYEbYFbYGbYHbYIciobYJbDgbYKeMAbZXbDgbDgeNOeNNbYNbYObYPbXsbYQbYRbYSbYTbYUbYVbYWbYXbYYbYVbYVbYZbZabZabZabZbbZabZcbZabZdbZebZfbZgbZhbZibZjbZkbZleNrbZmbZnbZobZpbZobZqbZrbXRbZsbZtbZubvqbZvbvqbXYbSbbvqeKIbZwbZxbZyeMteMteMteMteMtbZzbWDbZAbZBbYibWDbZCbWDbSdbWDbZDeMtbZEbZFbZGeMtaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabQZbZHbZHbZHbZHbZHbZHbZIbQXbZJbZHbYobQXbQXbQXbQXbQZaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWSbZKbZLbZMbOjbYscjjcjjcjjcjjcjjcjjcblcblcblcblcblcblcblbZNbZObZPbZQbZRbZSbZTbZTbZUbZVciobDgbDgbZWedybXkbDgbDgbDgbZYbZZcaabXqcabeNPcacbZacadcaecafbLJcaecagbXFbXFbXFbXFbXFbXFcaebXFbXFbXFbLJcahcaicajcakcalcamcancaoeNrcapcaqbXRcarbXRcascatcaucavcawcaxcaybvqcazbXYbSbcaAeKIbyOcaBcaCcaDcDsbsabsaeMtcaEcaFcaGcaHcaIcaJcaKcaLckVcaNcaOeMtcaPcaQcaRcaSaacaacaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaacaTbQVbQVbQVbQVbQVbQVbQVcaUcgpbQXbQXbQXbQXcaVbQYbQZaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWSbWSbWSbWSbOjbYsbWSaaaaaaaaaaaacjpcaWcaXcaYcaZcbacbbcikcbccbdcbecbfcbgcbhcbicbicbjcbkckycjWcjWcjWcjWckAcjWbDgbDgbUccbmcbncbocbpcbqcbrcalcbscbtcbucbvcbwcbxcbybXFbXFcbzeNQeNRcbCeNReNQeKQeNSeNTeNTeNUcbEeNVeNpcbFeNWeNrcbHcbIcbJcbKcbLcbMcbNeNreNreKIeNXeKIeKIeKIcbOcbPcbQeKIbsacaBcbRcbScDscDscDseMteMteMteMteMteMteMteMteMteMteMteMteMteMteMteMteMtaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabQZbVhbVhbVhbVhbVhbVhcbTbQXbVgbVhcbUbQXbQXbQXbQXbQZaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbVaaaaabaabckBckBckBckBckBckBeHyckBbOjbWUclvaaaclCcnjcmFcobccbcccccdcceccfccgeNYcchcciccjcckcclccmccnccoccpccqckyccrccsccsccscctcjWbDgbDgeNZeNZeNZeNZeOaeNZccuccuccveNZeNZeObeNZeOdeOcccxccyccxeOecczccAccBcqAbrebreeOfccCccDccEeOgccFccGbVQeNreNreOheNrccHeNreOjeOieBmccKccLccMckWccNeOleOkeOneOmeOlbsacaBccPbsaccQeBAccSccTbsabsabsabsabsabsabsabsaccUccVeLVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQZbQXbQXbQXbQXbQXbQXbYnbQXcbUbQXbQXbQXbQXbQXbQZbQZaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaayabbgbbfbbfbbfbbfbbfbbfbbfaGiayaaySbbhbbibbjbbjbbjbbjbbjbbjcfvbbjbbjbbjaySaYpbblbbmaYrbbnaYxaYxbbobbpbbqbbrbboaYxaYxaYxbbsaYrbblaYvaZYaZXaZWaZZaZZbacbaaaZVaYMbbAbbBbbCbbDbbEbbFbbGbbHaSjcfwcgtaQqbXObXObXObbJbbKbbLbbMbbNbbNbbObbPbbNbbQbbNbbRbbSbbTbbUbbVbbWbXObXObXOaQqccIcgIaZaaSEaSEaPjbbYbavbaBbaxaXqbbZbcaaXqbcbbccbaCaXqaXtaZfaZfbcdbcebcfbcgbchbcibcjaZfbcJbaKbclaZqaZraZrbcmbcnbaNbTYaPvbcobLLbcpbcqbcraWnaWobcsaNRaNRbctaNRbcubcvaOebcwbcxbcyaZAaZAbczbcybcAaOebcBbaYaUQaUQaUQaUSaUQaUQbcCbcDbcEbcFbcGbcHaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIaabbdgaGeaDAbcKbbjbcLbcMbcNbcRbcPbcQbhlbcSbbjbcTbcUbcVbcWaYrbcXaYxaYxbbobbqbcYbbtbboaYxaYxbdabdbaYrbblaYvaZYaZYbbuaZYaZYaZYaZYaZYaYMbdcbbDbddbbDbdebbFaYNbdfaSjaSkaSkbdicgWbdubXObdjbalbdkbbNbbNaMIbdlbdpbdnbdpbdoeTDbdqbdmbdrbdsbdtbXObdvcgWbefbdwbdxaZaaSEaSEbauaXqbdyaXqaXqaXqbdzbdAaXqbcbbdBbaCaXqaXtaZfaZfbdCbdDbdEbdFbdGbdHbcjbdIbTYbdJbclaZqaZraZraZqbcnbdKbTYbdLchpbLLchqbLLbLLbdMaWobdNbdOaNRbdPbdQaRlbdRcfobdSbdTbdUbdVbdVbdWbdXbdYcfobdZbeaaUQbebaUQaUSaUQaUQbecbedbbcbbdbbdbeeaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbeObegbehaERaZKbbjbcLbeibejbcLbekbelbembenbbjbeobepbeqberaYrbesbetbeubevbewbexbeybezbezbezbeAbeBaYrbblbcUbeDbeEbeFbblbblbeGberbbvaYMbeIbeJbeKbeLbeMbeNaYNbdfaSeaSeaSebeQbePbfibeRbeSbeTbbNbeUbeVbeWbeXbeYbeZbfabfbbfcbfdbfebeSbffbfgbfhbfkbfjbfIbflbfmbfnaSEbfoaPjaXqbfpbfqbaCaXqbfrbfsaXqbftbfubaCaXqaXtaZfaZfaZfaZgaZfbfvaZfbdHbcjbfwbTYbfxbclaZqaZraZraZqbcnbfybTYbfzbfAbOYbfBbfCbfDbfEbfFbfGbfGbfGbfGbfGbfGbfHbfLbfJaZAaZAaZAaZAaZAaZAbfKbgvbfMbaYaUQaUQaUQaUSaUQaUQbfNaWDbfObfObfOaWDaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbfPbfQbfRbfSaZKbbjbfTbcLbfUbfUbfUbfVbcLbfWbbjbfXbfYbeqbfZbfZbfZbfZbgabfZbgbaYxbgcbgdbgebgebgfbggaYrbghbgibgjbgkbglbgmbgmbbwdIjbgobgpbgpbgpbgpbgpbgqaYMaYNbgrbgsbgtbgubgxchrbgBchsbgybeZbgzbgAcNxcNxcNxcNxbgIcNxdiMdiOdiNbgFbgzbgGbgHbXObgKchtbgRbgLbgMbgNaSEaSEbauaXqbgOaXqaXqaXqaLLaXqaXqbgPbgPbgQbgQbhaaZfaZfbgSbgTaZfaZfaZfbgUbgVbgWbTYbaNbclaZqaZqaZqaZqbcnaXEbTYbgXbgYbgYbgZbgYbhiaWnaWnaWnaWnbhbaWnaWnaWnbhcbgvaZAaZAaZAaZAaZAaZAaZAbfKbgvbfMbaYaUQaZDaZDaZEaZDaUQbhdaWDbhebhfbhgaWDaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbhHbhjbehbhkaWHbjQbcLbhmbfUbfUbfUbfVbhmbcLbbjbhnbhobeqbfZbhpbhqbhrbhsbfZbbxbhubhvaYrbhwbhxbhybhzaYrbblbhAbhBbhBbhCbhBbhBbhBbhBbhDbhEbhEbhEbhFbhEbhGbiWbhJbhIbhKchuchuchuchuchuchucjcbhRcjccNxcNxbhLbhMbhNbhObhPbhQbhLdiPcNxcjVbiccjVcjVcjVcjVcjVcjVcjVbgNaSEaSEaPjbhSbhTaXqbhUaXqbhVaXqbhWbhXbhYbgQbhZbTcbiabibbTcbTcbidbjvbjvbjvbTcbTcbTYcgrbifbigbigbigbigbifbihbTYbiibgYbgYbgZbijbLLbikbilbimbinbiobipbiqbirbisaOebitaMvbiuaZAaZAbiuaMvbivaOebiwbaYaUQbaZbaZbbabaZaUQbfNaWDbfObfObfOaWDaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbcIbixaDwbiybizbiAbbjbeibeibeibcLbiBbiCbiDbiEbbjbiFbiGbeqbfZdHcbfZbiHbiIbfZbiJbiKbiLaYrbhwbhxbhybiMaYrbblbhAbhBbiNbiObiPbiQbiRbhBbiSbiTbiUbiVbiWbiWbiWbiWbiXbiYbiZchubVzbjbbjcbjdbjebjfbjgbjhcNxbjibhNbjjbjkbjlbjkbjjbhNbjmcNxbjnbjobjpbjqbjrbjsbjtaSAcjVbjybjwbjwcmhaPjaPjaPjaPjbjFbaubjFcmSaPjbSYaPjaPjbTcbTcbTcbTcbjAbjBbjBbjBbjBbjCbjDbTYcncbjGcncbkFbkFcncbjGcncbTYbiibgYbgYbjHbijbLLbLLbLLbLLbLLchqbLLbLLbLLbLLaOecndcnQcnecnecnecnecoLaOeaOebjJbjKaUQaUQaUQaUSaUQaUQbecbbbbjLbbdbbdbjMaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGbayabjNaHcbehaySaySaySaySaySaySbjObjPbbjbbjbbjbbjbbjbbjccWbbjbbjbbjbjRbjRbjSbfZbjTbjUbiHbjVbfZbjWbjXbjWaYrbhwbhxbhybjYaYrbblbhAbhBbjZbkabkbbiQbkbbhBbiSbkcbkdbkebkfbkgbkhbiWbkibkjbiZcoMbklbkmbknbkobkobknbkpbkqcNxbkrbhNbhNbksbktbjkbjjbhNbkudiNbkvbkwbkxbkybkzbkAbkxbkBcjVbkCbkDbkEbkHbkGblhbkIbkJbkJbkJbkJbkJbkJbkKbkLbkMbkNbkJbkObkJbkJbkJbkJbkJbkJbkJbkJbkPbkQbkRbkRbkRbkRbkRbkRbkSblhbkTbkUbkUbkVbkWbkXbkWbkYbkWbkZblablbbkWblcbldbleblfblgblgblgblgblgblgblgblsblibljbljbljbljblkbljbllblmblnbloblpbcGblqaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablrblrblrblrblrblrblrblrblrblraaaaabbmkaGebltblublvblwblwblwblwblwblxblyblzblAblBblCbjSbfZbfZbfZblDbiIbfZaYraYraYraYrbhwblEblFblGaYrblHblIbhBblJblKbiQbkbblLbhBbiSblMbkdbkebkeblNblObiWblPbkjbiZcoNblRblSblTblUblVblWbkpblXcNxblYbksbhNblZbmablZbhNbksbmbdiPbmcbkxbkxbkybmdbkAbkxbmecjVbmfbkEbkEbkHbkGblhbkJbkJbkJbkJbkJbkJbkJbmgbkJbkJbkJbkJbkJbkJbmhbmibmibmibmibmibmibmibmibmibmibmibmibmibmibmjbmobmlblgblgbmmbgYbgYbgYbgYbgYbgZbgYbgYbgYbgYbgYbgYbgYbgYbgYbgYbgYbgYbmnbgYbmrbmpaUQaUQaUQaUQaUQaUQaUQbmqbedbbcbbdbbdbbeaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablrblrblrblrblrblrblrblrblrblrblrbeObegbntbmsbmtbmubmubmubmvbmubmueIGbmweNcberberberbXHbfZbhpbmxbmybjVbfZbmzbmAbmzaYraYraYraYrbmBaYrbmCbhAbhBbmDbmEbkbbmFbmGbhBbiSbiWbmHbkebkebkebmIbiWbmJbkjbiZcoObmLblSblTbmMbmNblWbkpbmOcNxbmPbmQbhNbmRbmSbmTbjjbmUbmVdiQbmXbmYbmZbnabnbbncbkxbndcjVbnebnfbkEbkHbkGblhbkJbngbkJbkJbkJbkJbnhbnibnibnibnibnjbkJbkJbkJbkJbnkbkJbngbnlbkJbnmbnnbnobkJbnpbnqbnqbnrbnsbnAbnubgYbgYbgYbgYbgYbgYbgYbnvbnwbnxbgYbgYbgYbgYbgYbgYbgYbgYbgYbgYbnybnzbnzboobnBbnCbnDbnEbnEbnEbnEbnFbnGbnHaabaaaaaaaabaKPaKPaKPaKPaKPaKPaaaaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablrblrblrblrblrblrblrblrblrblrblrbnIbnJbnKbnLbnMbmubnNbnObnPbnPbnQeJnbnSbnTbnUbnUbnVbnWbfZbfZbfZbiHbnXdHcberberberberbnYbblbblbnZbgmboabobbocbodboebofbogbohbhBboibiWbojbkebkebkebokbolbombkjbonchudwtbopbknbknbknbknbkpboqcNxdiRdiScNxcNxcNxcNxcNxcNxcNxdiPcjVbosbotboubovbowboxboycjVboAbozbozcpTcpTcpTcpTcpTcpTcpTcqxcqxcrkcqBboDboDcqBcrkcqxcqxcrtcrtcrtcrtcrtcrtcswcswboEcswcswcswcswcswctpboFcvyboGbgYbgYboHboHcxOcxOcxOcxOcxOboIbnzbnzbnybnzbgYbnzbnzbnzbnzboJcxQcxQcxQcxQboKcxYcxYcxYcxYcxYcxYcxYcxYcxYaaaaaaaaaaaaaKPaKPaKPaKPaKPaKPaaaaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablrblrblrblrblrblrblrblrblrblrblrbhHbhjbntbmsboLbmuboMbmuboNboObmueIGeIGaZSboPboQboQboRbfZbhpboSbiHboTdHcboUboVboWboXboYboZboZbpaboZbpbbpcbhBbpdbpecaMbpfbpgbocbphbiWbpibkebkebpjbpkbplbombkjbpmchubpnbpobppbpqaWSbpsbptchuchubpuczkbpvbpwbpxbpwbpyczkaaaczEcjVbpzbpAbpBbpCbowbkxbpDcjVbpEbpFbpGcpTbpKbpIbwpbpJbpLcAgbpNbpObpPbpQbpRbpRbpQbpSbpTbpUcrtbpVbpWbpXbpYcrtbpZbqabqbbqcbqdbqebqebqfctpbqgcBocAMbprcAMbqhbqhcxObqjbqkbqlcxObqibqnbqicxObqobnzboJcxQbqqbqWbqqcxQbqrbqscxQbqtbqubqvcDsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKPaKPaKPaKPaKPaKPaaaaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablrblrblrblrblrblrblrblrblrblraaabqwaTzbqxbizbqybmubqzbmubqAbqBbqCbqDbmubqEbqFbqGbqHboRbfZbfZbfZbfZbfZbfZbqIbqJbqKbqLbqMbhBbhBbhBbhBbhBbhBbhBbqNbhBbhBbhBbqObhBbqPbqQbqRbkebkebkebqSbolbqTbkjbqUchubqVbpocjccjccjcchubrschubqXbqYcDXbqZbrabrbbrcbrdcDYbrebrfcjVbrgbkxbrhbribowbrjbkxcjVbrkbrlbrmcpTbKXbrobrpbrqbrrbscbrtbpRbpRbpRbpRbpRbpRbpRbrubrvcDZbrxbrybrzbrAcrtbrBbrCbrDbrEbrFbrGbrCbqfctpbrHcBobrIbrJbrKbrLbrLcEFbrMbrNbrObrPbrQbrRbrScxOcFEbrTcGWcxQbrUbGybrWbrXbrXbrYcxQbrZbsabsbcDsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKPaKPaKPaKPaKPaKPaaaaKPaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGbayabjNaHcbhjbbfbbfbbfbsdbbfbtjaERbsebsfbmubsgbshbsibsjbskbslbsmbcWbblbblbblbsnbnUbnUbnUbnUbnUbnUbsobspbspbsqbsrbhBbssbstbsubsvbswbsxbsybszbhBbsBbsCbsDbphbolbqRbkebkebsEbiWbiWbsFbsGbsHcGXbsIbsJbsKbsLcIWbsMbsNcJFbsObsPcDYbsQbsRbsQbsRbsScDYbrebsTdjnbsUbsVbsWbsXbsYbsZbtadjnbtbbpFbpFcpTchFbtdbtebtfbSXcpTbrtbpRbpRbpRbpRbpRbpRbpRbthbtibtybtkbtlbrxbtmcrtbtnbtobtpbrEbqfbrGbtqbtrctpbtseKcbtubtvbtvbtwbtxbtNbtzbtAbtAbtAbtBbtAbtCeKdbtEbtFbtGeKebtHbtIbtJbtJbtJcifcxQbtLbsabtMcDsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKPaKPaKPaKPaKPaaaaKPaKPaKPaKPaKPaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabujbtObtPbtQbtRbtSbtSbtTbtUaDybmubtVbtWbsjbtXbmubmubmuberbtYbtZbuabubbuabuabuabubbuaberberbhBbhBbhBbucbhBbudbudbudbudbudbudbsybuebufbugbuhbuibuqbukbulbumbunbuobupbvFburbusbutbuubuvbuvbuwbuxeKfbuybuzeKgbuAbuBczkbuCbrcbuDbrabuEczkaaabuFeKheKibuGeKheKheKheKhbuHcjVbuIbpFbuJeKjbRKbuLbuMbuNbRJcpTbuPbuQbuRbuSbuTbuUbuVbuWbrubuXcrtbUjbtlbuZbvacrtbvbbvcbrDbrEbqfbrGbrCbqfctpbrHcBobvdbvebvfbvgbvheKkbvibvjbvkbvlbvmbvnbvocxObvpbvqbvrcxQbvsbvtbvubrXbvvbRLcxQbtLbsaciNcDsaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabujbvybvzbvAaDxaDxbvBbvCaDxbvDbmubvEbvGbvJbvHbmuaaaaaaaaaaabaabbvIbvIbvIbvIbvIbvIbvIaaaaaabvQbvKbvLbvMbvNbudbudbudbudbudbudbvObvPbvVbvRbvSbvTbvUbvWbiWbiWbvYbiWbiWbiWbwabvZbwceKlbwbeKmeKmeKneKmeKobxoeKpbwdbuBczkbwebpwbpwbpwbwfczkaaabuFeKhbwgbwhbwibwjbwkeKqbwleKrbwmbpFbwncpTbpKbwociLbwqbuYeKsbwtbwubwvbwwbwxbwybwzbwAbwBbwCeKtbwDbtlbwEbwFcrtbwGbwHbwIbwJbwKbwLbwMbqfctpbwNeKubwPbwQbwQbwRbwSeKvbwUbwVbwWbwXbwYbwZbxacxObxbbvqbxccxQbxdbxebxfbrXbrXbNMcxQbrZbsabxhcDsaaaaaaaaaaaaaabbxibxjbxkbxjbxkbxjbxlaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxmaDwbxnbxnbxpbbfbxqaGbayabxtbxqbmubxrbxsbxvbxubmuaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIaaaaaabxCbxwbudbxxbxybxybxybxybxybxzbxAbxybxBbxWbxDbxEbxFbxGbxHbiWbxIbkebxJbxKbxLbxMbxNbxOeKleKleKpbxPbxQbxRbxSbxTeKpbpubuBczkbxUbxVbyWbxXbxYczkaaabxZeKhbyabybbyceKwbydeKwbyeeKxciPbpFbygcpTeKzeKyeKAbyjeKCeKBbylbymbynbyobypbypbyqbyrbysbytcrtbwDbyubyvcrtcrtcsweKDeKFeKEcswctpctpctpeKGbyycBobyzbvebvfbyAbwQeKHbyCbyDbyDbyEbrObyFbyGeKJeKIbrTeKKcxQbyJbyKbrXbyLbyMbNLcxQbtLbyOcDscDsaaaaaaaaaaaaaabbyPbyQbyRbySbySbyTbyPaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbyXbzhbyYbFbbyZbzabzbbzbbzbbyZbudbsybuebudbudbufbzcbzdbzebzfbzgbzmbzibkebkebzjbzkbxMbxNbzlbABbznbzobzpbzqbzrbzsciQeKpbzubzvcDXbzwbzxbzybzzbzAcDYbrebzBeKhbzCbzDbzEeKwbzFeKwbzGeKxbzHbpFbzIcpTbzJbzKbzLbzMbzNeKLbzObzPeKMeKMeKNbzReKMeKMbzSbzTeKPeKObzUbzVbzWbzXbzYbzZbAabAbbAceKQbAdbAebAfbAgcBobAhbAibAjbAkbAlcEFbAmbyDbyDbAnbAobyFbApcxObAqbAqbArcxQbAsbAtbAubAvbrXbyNcxQbtLbAxcDsaaaaaaaaaaaaaaaaabbAybAzbyRbySbyRbAAbxkaabaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbAMbACbAMbADeHueHveHueHueHueHubAEbsybuebAFbhBbhBbAGbkebuhbzfbAHbAIbAJbAKbAKbALbBtbANbAObAPeKRbARbASbATbAUbAVbAWbAXeKpbwdbuBczkbAYbAZbBabBbbBcczkaaabxZeKSeKTeKSeKSeKSeKSeKSbBdeKSbBebpFbzIcpTbCFbBgbBgbBhbBieKBbBjbBkeKUbBmbBnbBobBpeKUbBqbBrbBsbBQbBubBvbBwbBwbBxbBybBzbBAbBBbBCbBDbBEbBFbBGbBHbBIbBIbBJbBKbBLcEFciTbrObrObBNbBObyFbBPbBSbBRbBUbBTeKVbBWeKXeKWbCceKYcxQcxQbBXeKIeKIeKZeLaeLaeLaeLbeKIbyPbySbyRbySbySbCbbyPaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbClbCdbClbCebudbzabzbbzbbzbbudbudbsybuebCfbCgbhBbChbkebuhbzfbCibCjbCkbkeblNbkebCVbxMbpFbCmeLcbARbCnbCobCpbCqbCrbCseLdeLfeLeeLgeLgbCubCvbCwczkczkaaabxZeKSbCxbCybCzbCAbCBbCCbCDeLhbCEbpFbzIeKsbBfbCGbCHbCIbCJeKBbCKbCLbCMbCNbCObCPbCQbCRbCSbCTbCUbDAbCWbCXbCYciWbDabDbbDcbDdbDeeKQbDfbDgbDhbDicAMbDjbDkbDlbDmbDmcEFbDnbDobDpcEFbDqbyFbDrcEFbDsbDtbDubDvbDwbDxbDybDzbDCbDBbDFbDDbDEbDObDGbDGbDHbDIbDJbDPbDLbxjbxkbDMbxkbxjbDNaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbDVbzhbEfbDQbudbzabudbudbudbudbudbsybuebCfbDRbhBbFnbkebDTbDUbkebEobkdbkebkebdhbxLbxMbpFbCmeLcbAReKpbDXbDYbDZbEabEbeLjbEcbEdbEeeLkcDYbEEeLlcDYbrebrebEheKSbEibEjbEkbElbEmbEmbEnbENbEpbpFbEqcpTeKBbEreLneLmbEteKBbCKbEueLobEvbEwbExbEyeLobCKbEzbEAeLpeLpeLpeLqeLpeLreLrbEBeLseLueLteLtbECeLueLueLteLteLweLveLweLwcEFcEFcEFcEFcEFeLxbESeLycEFbEGbEHbEIbEJbEJbEKbELbEMbFtbEObEPbEQbERbFKbETbETbEUbDwbEVeKIbGhbGWbGDbEZeKIbFaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhhbhhbhhbhhbhhbhhbhhbhhbhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbClbCdbClbFbbFcbFdbudbudbudbFcbudbsybuebCfbFebhBbFfbkebuhbzfbkebolbFgbkebkebFhbzkbxMbpFbFieLCbFkeKpbFlbFmeHrbFobFpeLjbFqbFrbFsbHsbFubFvbFweLDaaaaaaaaaeKSbFxbFybFzbFzbFAbFBbFCeKSbFDbFEbzIbFFbFGbFHbFIbFJbHPbFLbFMbCLeLEbFNbFObFPbFQeLEbCKbEzbFRbFSbFTbFUbFVbKHeLrbFXbFYbFZeLubGabGbbGcbKIbGebGfbIlbDBbIobEJbEJbGibGjbEJbGkbGlbGmbGnbGobEJbGpbGqbGreLHeLGeLJeLIeLKeLIeLIeLIbBXeKIeKIeKZeLbeKIbGvbGwbGxbrVbGzbGAbGBbIpaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbIqbGEbIqbGFbGGbGHbGHbGHbGHbGHbGIbGJbGKbCfbGLbhBbGMbGNbGObGPbGQeLNeLMeLPeLObIybIybGUbpFbGVbIrbAReKpbGXbGYbGZbDYbHaeLjbHbbHcbHdeLQbHebzybHfeLDaaaaaaaaaeKSbHgbHhbHibHjbFAbFBbFCeKSbHkbHlbHmbHnbHobHpbHqbHrbIsbHtbHubHveLoeLoeLRbHxeLoeLobCKbEzbHybHzbHAbHBbHCbHDeLrbHEbHFbHGeLSbHIbHJbHKbHKbHLbHMbItbHObIubDwbDwbHQbDwbHRbDwbHSbDwbHTbHUbHUbHVbHWbHXeLUbJobJhbIbbIcbIdbIeeLIbIfeLVaaaaaaaaaeKIbIhbIibIjbIkbIvbImbIneKIaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIbIxbIIbIFbhBbhBbIJbzhbzhbzhbIMbhBbhBbIRbJjbJibhBbIwbIwbIwbJLbIwbIybIzbIAbIBbICbIybxMbpFbIDbvXbvXeKpeKpeKpeKpeKpbIEeLjeLgeLeeLXeLWeLYbJNeLDeLDczkczkczkeKSeKTeKSeKSeKSeKSeKSeKSeKSbIGbpFbIHeLZbUcbKdbKrbUcbUccjIbIKbILbKwbINbIObIPbIQbLIbFMbISbITbIUbIVbIWbIXbIYbIZbJabJbbJceMabJebJfbJgbGcbHZeLteLtbKJbKJbKJbKJbMgbKJbKJbKJeMbbMOeMceMcbJkbJlbJmbJneLUbIabJpbJqbJrbJsbJteLIbIfeMdaaaaaaaaaeKIbJvbJweKIbDPeKIeKIbDPeKIaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabJxaabaaaaaaaaaaaabIwbJybJzbJAbJBbIybJCbJDbJEbJFbIybxMbpFbJGbJHbJIbJJbJKbMQbJMbNabJObJPbJQbJRbJSbJTbJUbJVbJWbJXbJYbJZbKabKbbKcbNcbKebozbKfbpFbKgbKhbKibpFbKjbUcbKkbKlbKmbKnbKobCKbKpbKqbNWbKsbKtbKubKvbNXbKxbKybKzeLpbKAbHBbKBbKCeMebKEbKFbKGeLubGdbGcbGcbGcbFWeLtbKJbKKbKLbKMbKNbKObKPbKQbKJbKRbKSbKTeMceMcbKUbJmbKVeMfbAwbKYbKZbLabLbbLceLIbLdcDsaaaaaaaaaeKIeKIeKIeKIaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIbvIbvIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIwbLebLfbLgbLhbLibLjbLkbLlbLmbIybxMbLnbLobpFbpFbzIbLpbozbKebNcbLqbLrbLqbLsbLtbLtbLubLvbLwbLtbLtbLxbLtbLybLtbNcbKebozbLzbLAbLBbLCbLDbLEbpFbUcbLFbKlbLGbLHbNYbCKbLJbLKeMheMgeMibLOeMkeMjbCKbLRbLSeLpbLTbLUbLUbLVeMlbLWbLXbLYeLubLZbMabGcbMbbMceLtbKJbMdbMebMfbOrbMhbMibMjbKJbMkbKSbMlbMleMcbMmbMnbMobMpbMqbMrbMsbMtbMubMveLIbIfcDsbMwaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvIbvIbvIbvIbvIaaaaaaaaaaaaaaaaaaaaaaaabMxbMybMzbMybMAaaaaaaaaabIwbIwbMBbMCbLgbMDbMEbMFbJEbMGbMHbIybxMbMIbMJbMKbMLbMMbMNbOvbMPbOwbMRbMSbMTbMUbMVbMVbMWbMXbMXbMXbMXbMXbMXbMYbMZbOybNbbOzbNdbMLbNebNfbNgbNhbNibUcbNjbKlbKmbNkbNYbCKbLJbLKeMmbNmbNnbNobNpeMnbCSbNrbNseLpeLpeMoeMpeLpeMleLreMreMqeLubNvbNwbNxbNybNzeLtbKJbNAbNBbKMbNCbNDbNEbNFbKJbNGbKSbMlbMleMcbNHbNIbNJeMsbNKbtcbtgbNNbNObNPeLIbIfeMteMueMteMweMveMweMweMwaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNSbNTbNUbNVbNSbOZbPkbPabIwbNZbOabObbOcbOdbOebOfbOgbOgbOhbIybOibOjbOkbXibXibOlbOmbOnbXicblcblbOobOpbOqcblcblbPZbNcbNceMxeMyeMyeMyeMzbOteMyeMyeMAbOueMBeMBbRpeMBbRqeMCeMBeMDbRrbREbUceMEbOBbLJbOCeMFbODbOEbOFbOGeMFbCKbLRbOHeMGbOIbOJbOKbOLbOMbONeMHbOObOPbOQbORbOSbOTbOUeLtbKJbKJbKJbKJbKJbKJbKJbKJbKJbOVbOWbOXbOXeMcbSlbUdbTLeLIeLIeLIeLIeLIeLIeLIeLIbIfeMtbPbbPceMIbPebPebPfeMwaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeMKeMJeMJeMLeMMeMMbQZbQZbQZbQZeMNaabaabaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMzbPibPjbPibMzbUebPlbPmbPnbPobPpbPqbPrbPsbIybPtbPubPvbPwbIybOjbOjbPxbXibPybPzbPAbPBbPCcblbPDbPEbPFbPGbPHcblbPIbPJbPKeMybPLbPMbPNbPObPPbPQbPReMObPTeMPbPUbPVbPWbPXbPYbUfbQabQbbQcbQdbQebQfbQgbLKbQhbQibQjbQkbQlbQmbCSbQnbQobQpbQqbOKbQrbQrbQsbQteLubQubQvbQwbQxbQybQzbQAeLtbQBbQCbQDbQEbQDbQDbQFeMReMQbQGbQHbQIbQJeMcbQKbQLbJneKIbsabQMbQNbQObQObQNbQObQPeMtbQQbQReMIbPebQSbQTeMwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeMSbQVbQWbQVeMMbQZbQZbQXbQYbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNSbPibPibPibRabRbbMCbRcbRdbRebMCbPqbRfbRgbIybIybIybIybIybIybRhbOjbRicbXbRmbRkbRkbRkbRocbldrybRnbRnbRnduveMTbUJbUCbUNeMUbRsbRtbRubRvbRwbRxeMyeMAbRyeMBbRzbRAbRBbRCbRDeMBbLFbKmbLGbLHbVmbRFbRGbRHeMVbRIbwrbvwbuKeMFbRMbRNbROeMWbRPbRQbRRbRSbRTbRUeLueLueLueLueLueMXeMZeMYeLtbRVbQDbQDbRWbQDbRXbRYeNbeNabRZbKSbSabSaeMcbJlbSbbJneKIeMtbcZeMteMteMteMteMteMteMtbSdbSeeMwbSfbSgbSheMwaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacbSibQVbQVbSjbQZbQZbQXbQXbSkbQXbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMzbPjbPjbPjbMzbVnbSmbSnbSobSpbMCbSqbSrbSsbStbSubSubSubSvbOjbOjbOjbPxbXibRlbRkbSwbRkbSxcblbSybRnbSzbRnbSAcblbSBbSCbSDeMybSEbSFbSGbSHbSIbSJeNdbSKbSLeNebSMbSNbSObSPbSQeMBbNjbKmbKmbSRbVmbRFbSSbSTeNfbQibSVbSWbxgeNgbSZbTabTbeNhbTdbTebTfbTfbQrbTgeMGbThbTibTjbTkbTlbTmbTneNbbRVbTobQDbQDbQDbTpbTqeNbeNabTrbKSbSabSaeMcbTsbTtbJneKIbTubTvbTweMtbTxbTybTzbTAbTBbTCbTDeMwbTEbTFbTGeMweMteMteMteMteMteMteMteMtaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaeNibQZbSibQZbQZbQXbQXbQXbQXbQXbQXbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaaaaaaaabyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVbyVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaabNSbTIbTJbTKbNSbVobPkbPabIwbIwbTMbTMbTMbIwbIwbOjbTNbTNbTObTPbOjbTQbTRbXibRlbRkbRkbRkbTScblbSybRnbRnbTTbTUeNjbTVbTWbTXeMyeMyeMyeMyeMyeNkeMyeMybTZbUaeMBeMBeNleMBeMCeMBeMBbUcbWbbWbbUcbUcbWcbWMeNmeNnbUibuObUkbUleNoeNpbUnbTbeNqbUpbUqbUrbUsbUtbUueMGbUvbUwbUxbUybUzbUAbUBeNrbXteNrbUDbUEbUFeNreNseNreNrbUGbUHbSabSaeMcbUIbSbbJnbXWbUKbULbUMbYQbUObUPbUPbUQbURbUSbUTbUUbUVbUWbUXbUYbUZbVabVbeNtbVcbVdbVeeNuaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaeMMbQZbVgbVhbVhbQXbQXbQXbQXbQXbQXbQXbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyUbyUbyUbyUbyUbyUbyUbyUbyUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVibMybVjbMybVkbVlaabaaaaaabIwbZtbZebZQbIwaaabOjbVpbVqbVrbVsbSubVtbVvbXibVwbVxbVybRkcjPccZcjQbVAbVBbVCbVDcblbVEbVFbVGbVHbVIbVIbVIbVIbVJbVKbVLbVMbVMbVNbVNbVObVPbVQeMAbUcbVRbVSbVTbVUeNvbRFbVWeNmeNxeNweNybVZeMkeNzeNAcahcaveNBeNBeNCeNBeNBeNBeNDeMGbWfbWgbWhbWibWjbWkbWleNrbWmbWnbWobWpbWqbWnbWrbWsbWnbWtbWubKTeMceMcbWvbWwbWxacFbWybWzbWAeNEbWBbWCbWDbWEbWFbWGbWHbWIbWJbWKbWJbWLbWKbWKbWKcawbWNbWObWPeNFaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabQZbQZbWRbQXbQXbQXbQXbQXbQXbQXbQXbQXbQXbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabbWSbOjbOjbOjbWTbOjbOjbWUbXibWVbWWbWXbWYbWZcdgbXabXbbXcbXdbXeccZbXfbXgbXhccacepcepcepcepcfyceqcfCeNGbXjeNGeejbYLbXlbXmbXnbXobXpbXqbXrbXscbcbXubXvbXwbXxbXybXzbXAbXBbXCbXDbXEbXFbXFbXFbXGckRbXIbXJbXKeNHeNHbXLeNHeNJeNIeNLeNKeNrbXPbXQbXRbXSbXRbXTbXUbXVbWneMccbdeMceMcbXXbXYbSbbvqeKIeMtbXZeMteMtbYabYbbYcbYdbYebWKbYfbYgbYhbWDbYhbWDbYibWDbWDeMtbYjbYkbYleNMaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaabQZbQXbQXbQXbQXbQXbQXbYnbQXbYobQXbQXbQXbQXbQXbQZbQZaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWSbYpbYqbYrbOjbYsbXibYtbYubYvbRlbYwcfUbYxbSybYybYzbYAcfUbYBbYCckUcgYcgYbYEbYFbYGbYHbYIciobYJbDgbYKeMAbZXbDgbDgeNOeNNbYNbYObYPbXscbebYRbYSbYTbYUbYVbYWbYXbYYbYVbYVbYZbZabZabZabZbbZabZcbZabZdcckbZfbZgbZhbZibZjbZkbZleNrbZmbZnbZobZpbZobZqbZrbXRbZscezbZubvqbZvbvqbXYbSbbvqeKIbZwbZxbZyeMteMteMteMteMtbZzbWDbZAbZBbYibWDbZCbWDbSdbWDbZDeMtbZEbZFbZGeMtaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabQZbZHbZHbZHbZHbZHbZHbZIbQXbZJbZHbYobQXbQXbQXbQXbQZaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWSbZKbZLbZMbOjbYscjjcjjcjjcjjcjjcjjcblcblcblcblcblcblcblbZNbZObZPceEbZRbZSbZTbZTbZUbZVciobDgbDgbZWedybXkbDgbDgbDgbZYbZZcaabXqcabeNPcacbZacadcaecafbLJcaecagbXFbXFbXFbXFbXFbXFcaebXFbXFbXFbLJcfpcaicajcakcalcamcancaoeNrcapcaqbXRcarbXRcascatcaucfqcfrcaxcaybvqcazbXYbSbcaAeKIbyOcaBcaCcaDcDsbsabsaeMtcaEcaFcaGcaHcaIcaJcaKcaLckVcaNcaOeMtcaPcaQcaRcaSaacaacaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaacaTbQVbQVbQVbQVbQVbQVbQVcaUcgpbQXbQXbQXbQXcaVbQYbQZaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWSbWSbWSbWSbOjbYsbWSaaaaaaaaaaaacjpcaWcaXcaYcaZcbacbbcikcgucfQcgVcbfcbgcbhcbicbicbjcbkckycjWcjWcjWcjWckAcjWbDgbDgbUccbmcbncbocbpcbqcbrcalcbscbtcbucbvcbwcbxcbybXFbXFcbzeNQeNRcbCeNReNQeKQeNSeNTeNTeNUcbEeNVeNpcbFeNWeNrcbHcbIcbJcbKcbLcbMcbNeNreNreKIeNXeKIeKIeKIcbOcbPcbQeKIbsacaBcbRcbScDscDscDseMteMteMteMteMteMteMteMteMteMteMteMteMteMteMteMteMtaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabQZbVhbVhbVhbVhbVhbVhcbTbQXbVgbVhcbUbQXbQXbQXbQXbQZaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbVaaaaabaabckBckBckBckBckBckBeHyckBbOjbWUclvaaaclCcnjcmFcobccbcccccdcceccfccgeNYcchcciccjciscclccmccnccoccpccqckyccrccsccsccscctcjWbDgbDgeNZeNZeNZeNZeOaeNZccuccuccveNZeNZeObeNZeOdeOcccxccyccxeOecczccAccBcqAbrebreeOfccCccDccEeOgccFccGbVQeNreNreOheNrccHeNreOjeOieBmccKccLccMckWccNeOleOkcjKeOmeOlbsacaBccPbsaccQeBAccSccTbsabsabsabsabsabsabsabsaccUccVeLVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQZbQXbQXbQXbQXbQXbQXbYnbQXcbUbQXbQXbQXbQXbQXbQZbQZaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccXccYccYccYcovcfAcdacdbcdccddcdeeHFcdfbWUcqkaaacqXcdhcdicrccdkccccdlcdmcdncdocikcdpbYCbTWcbfcdqbZTcdrbZTcdscdtcducdvcdwcdwcdwcdxcjWbDgbDgeNZcdycdzcdAcdBcdCcdDcdDcdEcdFcdGcdHcdIcdJeOocdKbXJbXJeOpcdLcdMcdNeOqaaaaaaeOgcdOcdPcdQeOfcdRcdScdTcdUcdUcdVbBDcdWcdXcdYcdZcdXcdXcdXceacdXcdXcebceccedceecefcegcehceibQOcejciIbQObQObQObQOcekcelbQObQObQObQOcembsaeOraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQZbQZbWRbQXbQXbQXbQXbQXbQXbQXbQXbQXbQXbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceocricricricricrjcercescetceuceucevcoYcewbYscqkaaacqXcexceycezceAceBceCceDceAceAceEceFceGceHcCLcCLceIceJbZTceKceLceMcdwcdwcdwcdwceNcjWbDgbDgeNZceOcePceQceRceSceTceTceUceVceWceXceYceZeNZcfabXFcfbeKQcfccdMcfdeOqaaaaaaeOgcfecffcfgeOgbDhcfhcficficficficficficfjcfkcflcfmePiePicgscgzePicgycfpcfqcfrcgxcgqcgvcgwcgqcgqcgqcgqcgqcgqcgqcgqcgqcgqcgqcgqbsacfxbsaeMdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeNibQZbQZbZHbZHbQXbQXbQXbQXbQXbQXbQXbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrRcfzcsocfBcsocfEcfDcgQcfFcfFcfGcoYcgTbWUcqkaaacqXcfIcfJctfcfKccccfLcfMcfNcfOcikcdpbYCbYDcfPcgYcfQeOCcfRcfScfTcukcfVcdwcdwcfWcfXcjWbDgcfYeNZcfZcgacgbcgccgccgccgdcgecgccgccgfcgbcggeODcghbXFcgieKQcgjcdMcgkeOqaaaaaaeOgcglcgmcgneOgcgobDgcfYeOEeOEeOEeOEeOEcgBcgDeOGeOEeOEaaaaaaaaaaaaeOleOJcgueOKcgqchHchDchEbrnchGcgqchAchBchCcgEcgxcgCbpHcgKcgqcgFcgGcgHeOLcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgAcgLbQZbSibQZbQXbQXbQXbQXbQXbQXbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaacrRcgMcgNcgOcgPcetchYcetcgRcetcgScuPcgUcigcvjaaacxIcnjcyCcobcgZccccccchachbchceOMchdchechfchgcgYchhchichjchkchlckychmcdwcdwcdwchncjWbDgbDgeONeONeOOchoeOPeOReOQeONeOSeOUeOTchveOVeOOeOWcfabXFcfbeKQchwcdMcdNeOqaaaaaaeOgchxchychzeOgbDgbDgbDgeOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachMchLchOchNeOweOAeOIeOIeQIeQHeQMeQJdsbeQPeOxeOybpHeOucrzeOXeOXchSeOYeOXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQZchTchUchVbQZbQZbQXbQXchWbQXbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrRchXcsochZcsociacibcidciccgQckXcoYcjfbWUbWSaaaaaaaaaaaacjpcihciibgnbgncikcilcikcimbYCbTWcineOZcipciqcircircirciscitcdwciucdwcivcjWbDgbDgeONciwcixciycizciAciBeONciAciBcizciCciDciEeOWcghciFcgieKQckYcdMciGeOqeOEeOEeOgeOgeOgeOgeOgciHbDgbDgeOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachIcoTchKchJcnWcuIcwWcvGcyYcuJchCdKCdsbdsbcrAcsDbpHctrcrzeOXciZcjacjbeOXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaePacjdcjebSjeMMbQZbQZbQXbQYbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceocricricricricrjcercescetceuceucevcoYcewbYscqkaaacqXcexceyckzceAceBceCceDceAceAckQceFceGceHcCLcCLceIceJbZTceKceLceMcdwcdwcdwcdwceNcjWbDgbDgeNZceOcePceQceRceSceTceTceUceVceWceXceYceZeNZcfabXFcfbeKQcfccdMcfdeOqaaaaaaeOgcfecffcfgeOgbDhcfhcficficficficficficfjcfkcflcfmePiePicgscgzePicgyclmcnhcmrcgxcgqcgvcgwcgqcgqcgqcgqcgqcgqcgqcgqcgqcgqcgqcgqbsacfxbsaeMdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeNibQZbQZbZHbZHbQXbQXbQXbQXbQXbQXbQXbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrRcfzcsocfBcsocfEcfDcgQcfFcfFcfGcoYcgTbWUcqkaaacqXcfIcfJctfcfKccccfLcfMcfNcfOcikcdpbYCbYDcfPcgYcnqeOCcfRcfScfTcukcfVcdwcdwcfWcfXcjWbDgcfYeNZcfZcgacgbcgccgccgccgdcgecgccgccgfcgbcggeODcghbXFcgieKQcgjcdMcgkeOqaaaaaaeOgcglcgmcgneOgcgobDgcfYeOEeOEeOEeOEeOEcgBcgDeOGeOEeOEaaaaaaaaaaaaeOleOJcnWeOKcgqchHchDchEbrnchGcgqchAchBchCcgEcgxcgCbpHcgKcgqcgFcgGcgHeOLcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgJcgAcgLbQZbSibQZbQXbQXbQXbQXbQXbQXbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaacrRcgMcgNcgOcgPcetchYcetcgRcetcgScoVcgUcigcvjaaacxIcnjcyCcobcgZccccccchachbchceOMchdchechfchgcgYchhchichjchkchlckychmcdwcdwcdwchncjWbDgbDgeONeONeOOchoeOPeOReOQeONeOSeOUeOTchveOVeOOeOWcfabXFcfbeKQchwcdMcdNeOqaaaaaaeOgchxchychzeOgbDgbDgbDgeOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachMchLchOchNeOweOAeOIeOIeQIeQHeQMeQJdsbeQPeOxeOybpHeOucrzeOXeOXchSeOYeOXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQZchTchUchVbQZbQZbQXbQXchWbQXbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrRchXcsochZcsociacibcidciccgQckXcoYcjfbWUbWSaaaaaaaaaaaacjpcihciibgnbgncikcilcikcimbYCbTWcineOZcipciqcircircircpicitcdwciucdwcivcjWbDgbDgeONciwcixciycizciAciBeONciAciBcizciCciDciEeOWcghciFcgieKQckYcdMciGeOqeOEeOEeOgeOgeOgeOgeOgciHbDgbDgeOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachIcoTchKchJcpscuIcwWcvGcyYcuJchCdKCdsbdsbcrAcsDbpHctrcrzeOXciZcjacjbeOXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaePacjdcjebSjeMMbQZbQZbQXbQYbQXbQZbQZaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOabAcABcABcABcABcABcABcABcABcAIcAIcAIcAIcAIckBcoYcoYcoYcoYcoYcoYcjgeHwcgXcgXcgXcgXcgXcjpcikcikcikcikcikcikcikcjhbYCbTWcjiePbcjkcjlcjmcjncjocAXcjqcjrcjscjtcjucjWbDgbDgeONcjvcjwciycizcizcjxeONcjycizcizciCciycjzeOWeKQeKQeKQePccjAcdMcjBeOqcjCbDgbDgbDgbDgcjDbDgbDgbDgbDgeOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachQcjGeQYchPciUeRgeRkeRjeRneRmcgEdsbdsbdsbeReeRfbpHbpHcrzeOXcjScjTcjUeOXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaePdeMJeMJeMLeMMeMMbQZbQZbQZbQZeMNaabaabaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBRcjXcjYcjZckackackbckgckhckiclgclhckeckfckjckjckjckkcklckmckncknckockpckqckrcksckrckrckrckqckrckrcktckuckvckwbYCbTWckxePeckzcCccgYcDEcCLcDGcDFcDJcDIcDLcDKcDNbDgbDgeONckCckDckEckFckGckHeONckIckGckJckKckEckLeOWbDgbDgbDgckMchwcdMchwckNbDgbDgbDgbDgbDgbDgbDgbDgbDgbDgeOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaePfeOlckQeOmePfeQSeRdeRceQZeQXeQVeQWeQVeQTeQQcgxbpHbpHeQReOXckZclaclbeOXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBRcjXclccldclecldclfcqfcmscmtcllclkcllclmclnclnclnclnbYCbTXbTXbTXclncloclnclnclnclnclnclnclnclnclnclnclpclqclrclscltcluePgclwclxcGIclyclzclAclBcHKclDclEclFcHLcficlGePhcjLclIclJclKcizclLeONclHcizclKclMciyclNeOWclOePiePiePjclPclQclReOqePkeOHeOHePleOEeOEeOEeOFeOHeOGeOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeOlclWclXclYeOleRWeRIeRHeRKeRJeRNeRMeRVeRTeRYcgxbpHbpHcrzeOXePmcmgePoePnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBRcmicldcmjcmkcmlcmmcmpclicljcmncmocmqcmrcmucmvcmwcmwcmxccacmyccacmucmzcmucmucmucmucmucmucmucmucmucmucmAclncmBcmCcmDcmEcHPcmGcmHcmIcmJcmKcmLcmMcmNcmOcmPcmQcDIbXlcmRePpcmTcizciycizcizcmUePqcmVcizcizciCciycmWeOWcmXeOEaaaePreOqcmYeOqeOqaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeOleOleOleOleOleOleOleOleOlcmZcnacnbeOleRveRreRqeRpeRoeRueRtbpHeRsbpHciOeRyeRDeRxeOXePvcnfePvaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOabAcABcABcABcABcABcABeSEeSNeSNeSMclleSOcABcgXcngcolcolcnhcolcnicolcolcIdcIecolcolcIfcIgcIecolcolcolcolcnkcnlcnmcnncnocnpcnqcnrcnscnrcnrcntcnrcnucnvcnwcnxcnycDNbDgcmXePwcnzcnAcnBcnCcnDcnEeONcnFcnDcnGciCcnHcnIeOWcmXeOEaaaePrcnJcnKcnLeOqaaaaaaaaaaaacnMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeOlcnNcnOcnPePxcnReRlcnTePycnUeRSeRReOleRieSVeSUeSWeRweRweSSeSfeSTeSZeRaeSXeSYeTaeOXePAcnYePAaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuacuacuakqakqacuakqakqakqakUakqakqaabakUcnZaaaaabaabdyqdyqdyqcABbVucIqeSFeSGeSHeSIeSJeSKcoacIucoccodcoecofcogcohcoicojcokcolcojcomconcoocoocopcolcoqcorcoscotbTWcoucIBcowcoxcoycozcoycoAcoBcoCcoDcoEcoFcDNcDNcmXePweOWeOWcoGeOWeOWePBePDePCePCePCcoHePCePEePCcoIeOEaaaePrcoJcnKcoKeOqePGePFePFePHeOqeOqePJePIePIePKePIePIePKePLaaaaaaeOlcoPcoQcoPcoRcoScoTcoUePyePMcoVePMeOleRzeRBeRAeRAeRCeRweSgeSfeSebpHciOeSheSQeSRcgqaaacoWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaaaaaaaacuaaaaaaaabaabaaaaabaabaaaaaaaabaabaabaaacnZaaaaaaaaaaabaabdyqcABcABcABcABcABcABcABcABcKncoacIQcoZcpacpbcpccpccpccpccpdcpecpfcoocpgcoocoocphcoocpicpjcpkcplcotbTWcpmePNcpncoxcpocppcpqcoxcprcpscptcpucpvcpwcpxcpycpzcpAcpAcpBcpCcpDcpEcpFbXlbXlbXlcpGbDgbDgbVPbDgeOEaaaePrcpHcnKcpIePOcpJcpKcpLcpMcpNcpOcpPcpNcpOcpQcpNcpRcpSePPaaaaaaeOlcoPcoPcoPePQcpUcnScpVcpWcpXcpYciSeOleRLeRAeRAeRAeROeRweRweRwckPcjHcgqcgxcjFcgxcgqaaacqbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBRcjXcjYcjZckackackbckgckhckiclgclhckeckfckjckjckjckkcklckmckncknckockpckqckrcksckrckrckrckqckrckrcktckuckvckwbYCbTWckxePecsMcCccgYcDEcCLcDGcDFcDJcDIcDLcDKcDNbDgbDgeONckCckDckEckFckGckHeONckIckGckJckKckEckLeOWbDgbDgbDgckMchwcdMchwckNbDgbDgbDgbDgbDgbDgbDgbDgbDgbDgeOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaePfeOlcsReOmePfeQSeRdeRceQZeQXeQVeQWeQVeQTeQQcgxbpHbpHeQReOXckZclaclbeOXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBRcjXclccldclecldclfcqfcmscmtcllclkcllcuPclnclnclnclnbYCbTXbTXbTXclncloclnclnclnclnclnclnclnclnclnclnclpclqclrclscltcluePgclwclxcGIclyclzclAclBcHKclDclEclFcHLcficlGePhcjLclIclJclKcizclLeONclHcizclKclMciyclNeOWclOePiePiePjclPclQclReOqePkeOHeOHePleOEeOEeOEeOFeOHeOGeOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeOlclWclXclYeOleRWeRIeRHeRKeRJeRNeRMeRVeRTeRYcgxbpHbpHcrzeOXePmcmgePoePnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBRcmicldcmjcmkcmlcmmcmpclicljcmncmocmqcwycmucmvcmwcmwcmxccacmyccacmucmzcmucmucmucmucmucmucmucmucmucmucmAclncmBcmCcmDcmEcHPcmGcmHcmIcmJcmKcmLcmMcmNcmOcmPcmQcDIbXlcmRePpcmTcizciycizcizcmUePqcmVcizcizciCciycmWeOWcmXeOEaaaePreOqcmYeOqeOqaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeOleOleOleOleOleOleOleOleOlcmZcnacnbeOleRveRreRqeRpeRoeRueRtbpHeRsbpHciOeRyeRDeRxeOXePvcnfePvaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOabAcABcABcABcABcABcABeSEeSNeSNeSMclleSOcABcgXcngcolcolcztcolcnicolcolcIdcIecolcolcIfcIgcIecolcolcolcolcnkcnlcnmcnncnocnpcAzcnrcnscnrcnrcntcnrcnucnvcnwcnxcnycDNbDgcmXePwcnzcnAcnBcnCcnDcnEeONcnFcnDcnGciCcnHcnIeOWcmXeOEaaaePrcnJcnKcnLeOqaaaaaaaaaaaacnMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeOlcnNcnOcnPePxcnReRlcnTePycnUeRSeRReOleRieSVeSUeSWeRweRweSSeSfeSTeSZcADeSXeSYeTaeOXePAcnYePAaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuacuacuakqakqacuakqakqakqakUakqakqaabakUcnZaaaaabaabdyqdyqdyqcABbVucIqeSFeSGeSHeSIeSJeSKcoacIucoccodcoecofcogcohcoicojcokcolcojcomconcoocoocopcolcoqcorcoscotbTWcoucIBcowcoxcoycozcoycoAcoBcoCcoDcoEcoFcDNcDNcmXePweOWeOWcoGeOWeOWePBePDePCePCePCcoHePCePEePCcoIeOEaaaePrcoJcnKcoKeOqePGePFePFePHeOqeOqePJePIePIePKePIePIePKePLaaaaaaeOlcoPcoQcoPcoRcoScoTcoUePyePMcAHePMeOleRzeRBeRAeRAeRCeRweSgeSfeSebpHciOeSheSQeSRcgqaaacoWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaaaaaaaacuaaaaaaaabaabaaaaabaabaaaaaaaabaabaabaaacnZaaaaaaaaaaabaabdyqcABcABcABcABcABcABcABcABcKncoacIQcoZcpacpbcpccpccpccpccpdcpecpfcoocpgcoocoocphcoocBJcpjcpkcplcotbTWcpmePNcpncoxcpocppcpqcoxcprcBScptcpucpvcpwcpxcpycpzcpAcpAcpBcpCcpDcpEcpFbXlbXlbXlcpGbDgbDgbVPbDgeOEaaaePrcpHcnKcpIePOcpJcpKcpLcpMcpNcpOcpPcpNcpOcpQcpNcpRcpSePPaaaaaaeOlcoPcoPcoPePQcpUcnScpVcpWcpXcpYciSeOleRLeRAeRAeRAeROeRweRweRwckPcjHcgqcgxcjFcgxcgqaaacqbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaaaaacuaaacqccqdcqeaaacqccqdcqeaaacqccqdcqeaabckdaabaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaackccoacIQcqgcoocphcqhcoocoocoocqicoocqgcqgcoocoocoocoocqjcIScpjcqlclncqmbTWePNePNcqncoxcqocqpcqqcoxcqrcHKcqscqtcqucqvcITbVQbDgcqwbVQcqwbDgbDgbDgcmXclSeOEeOFeOHeOHeOHeOGeOEeOEaaaePRcqycqzcqAePScqCchwchwcqDcqEcqFcqGcqEcqFcqGcqEcqFcqGePPaaaaabeOlePyePyePyePycqHcoTcqIcqJcqKcqLcqNeOleSbeRAeSceRAeSdcjEciYciXciVciKcgqciRciRciJcgqaaacqbaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaacuaaacqccqQcqeaaacqccqQcqeaaacqccqQcqeaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabcIOcoacIUcqgcqRcoocqScqTcqUcqUcpgcoocqgcqVcoocoocoocoocqWcIVcqYcqZbSCcracrbePTcrdcrecoxcqocrfcrgcoxcrhcHKcDNcIXcDIcIZcIYcJfcJacJucJjcJCcJacJacJacJDcJaeOEaaaaaaaaaaaaaaaaaaaabaaaePrcrlcnKcrmePUcrnchwchwcqDcrocrpcrqcrrcrpcrqcrrcrpcrsePPaabaabeOlcnNcnOcnPePVcrucnScrvcrwcrxcrycjJeOleRAeRAeSieSkeREeRweRweRwcnVcnVcgqclZcmfcqacgqaaacqbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaagaaaaaaaaaakqaabcqccqQcqeaaacqccqQcqeaabcqccqQcqeaabaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaabaaaaaacJEcoacolcrCcoocrDcrEcrFcrGcrHcrGcrIcrGcrJcrKcojcrLcqgcqgcIScrMcrNcrOcrPcrQePWcrScrTcrUcrVcrWcrXcrYcrZcJXcwucwucxycvbcvccwtcsgcshcsicsjcskcslcsmcsncKaaabaaaaaaaaaaaaaaaaaaaabaabePRcspcsqcsrcsscstchwchwchwcsuchwchwchwchwchwchwchwcsvePXaaaaaaeOlcoPcoPcoPcsxcoScoTcsycszcsAcuHeRPeOleOleOleOleOleRweRwcgqcgqckTckScgqcgqcgqcgqcgqaaacqbaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaaabaaacqccqQcqeaabcqccqQcqeaaacqccqQcqeaaaaaaaaaaaaaaaaaaaabaabaabaaaaabaaaaabaabaaaaaacKncsGcolclTcsIcsIcsJcolcolcolcolcolcolcolcolcolcolcolcolcolcbWcsKcbWcKrcbWcgXcsLcsMcsNcsOcsPcsQcsRcsScJXcAPcGKcHucsUcsVcsWcsXcsYcsZctactbctcctdctecKvaabctgctgctgctgctgaaaaaaaabePrcthcnKctictjctkctlchwchwctmchwchwchwchwchwctnchwctoePZaaaaaaeOlcoPcoPcoPePVctqcnScsBctscttcjRctvctwctxctycDneOlaabaabaaaaabaabaabaabaaaaaaaaaaaaaaacqbaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaaabaaacqccqQcqeaabcqccqQcqeaaacqccqQcqeaaaaaaaaaaaaaaaaaaaabaabaabaaaaabaaaaabaabaaaaaacKncsGcolclTcsIcsIcsJcolcolcolcolcolcolcolcolcolcolcolcolcolcbWcsKcbWcKrcbWcgXcsLcCqcsNcsOcsPcsQcCEcsScJXcAPcGKcHucsUcsVcsWcsXcsYcsZctactbctcctdctecKvaabctgctgctgctgctgaaaaaaaabePrcthcnKctictjctkctlchwchwctmchwchwchwchwchwctnchwctoePZaaaaaaeOlcoPcoPcoPePVctqcnScsBctscttcjRctvctwctxctycDneOlaabaabaaaaabaabaabaabaaaaaaaaaaaaaaacqbaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaacuacuakqaabaaacqccqQcqeaabcqccqQcqeaaacqccqQcqeaabaaaaaaaaaaaaaaaaaaaaaaaaaabcKzcKwcKwcKwcKwcKneOzcoaeOvctHctIctIctJeImctKctLctLctLctLctMctNctOctNctNctPctPctNctQeIoeIneIpeIpctRctSctTctUctVctWctWctXeIqcAOcyDczFcubcsVcxzcsXcudcuecufcugcuhcuicujeIrculcumcuncuocupctgaaaaaacuqeQaeQbcureQceQbcuscutcuucuvcuycuwcuxcuycuzcuAcuBcuCcuDePPaaaaaaeOlePyePyePyePycuEcoTcsycuFcuGcuHcsCcjOcjNcvCcjMePzcnXaabaabaabaaaaaaaaaaaaaaaaaaaaaaaacqbaabaaaaaaaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaacuaaaaabaaaaabaabcuLaabaabaabcuLaabaaaaabcuLaabaaaaaaaaaaaaaaaaaaaaaaaaeIteIseIucuMcuNcuOeIvcuQcuRcuSeOveOvcuTcuUcolcolcuVcHqcHqcHqcHqeIweIyeIxeIyeIyeIyeIpeIpeIzeIAcuWcuXcuYctWcuZctTctWctWctWctWcvacJXcIDcIEcHucubcsVcubcvdcudcuecvecvfcvgcvhcvieIBaabcvkcvlcupcvmctgaaaaaaaaaeQacvncvocvpeQbcvqcvrcvscvtcvucqGcqFcvucvvcvwcvxcqGcqFePPaaaaaaeOlcnNcnOcnPeQdcrucnScvzcvAcvBcvCcvDckOeRQeRUcvHeOlaabaabaagaaaaaaaaaaaaaaaaaaaaaaaaaaacqbaabaaaaaaaaaaabaabaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaakqaabcvIcvJcvJcvKcvLcvMcvMcvMcvLcvMcvMcvMcvLcvMcvMcvNcvJcvJcvJcvJcvJcvOcvPcvQcvRcvScvTcvUcvVcvWbYrcoacvXeOvcolcolcolcvYcuVcHqcvZcwacwbcwccwdcwecwfcwgcwhcwicwjcwkcwlcwmcwncwocwpcwqctTcwrctWctWctWcwscJXcHScHScubcwvcwwcwxcwycwzcwAcwBcwCcwDcwEcwFeIrcwGcumcwHcupcupctgaaaaaaaabeQacwIcvocwJeQbcwKcwLctlcwMcvucwNcwOcvucwPcwQcvxcwNcwRePPaaaaaaeOlcoPcoQcoPcwScoScoTcwTcvAcwUcoTcoTeRXePyePyePyeOlaaaaaaaaaaaacqOcqOcqOcnZaabaabaabaabcqPaabaabaabaabaabakUcqOcqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaakqaabcvIcvJcvJcvKcvLcvMcvMcvMcvLcvMcvMcvMcvLcvMcvMcvNcvJcvJcvJcvJcvJcvOcvPcvQcvRcvScvTcvUcvVcvWbYrcoacvXeOvcolcolcolcvYcuVcHqcvZcwacwbcwccwdcwecwfcwgcwhcwicwjcwkcwlcwmcwncwocwpcwqctTcwrctWctWctWcwscJXcHScHScubcwvcwwcwxcCIcwzcwAcwBcwCcwDcwEcwFeIrcwGcumcwHcupcupctgaaaaaaaabeQacwIcvocwJeQbcwKcwLctlcwMcvucwNcwOcvucwPcwQcvxcwNcwRePPaaaaaaeOlcoPcoQcoPcwScoScoTcwTcvAcwUcoTcoTeRXePyePyePyeOlaaaaaaaaaaaacqOcqOcqOcnZaabaabaabaabcqPaabaabaabaabaabakUcqOcqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaacuaaaaabaaaaabaabcwXaabaaaaabcwXaabaaaaabcwXaabaaaaaaaaaaaaaaaaaaaaaaaaeIteIseICcwYcwZcxacKwcxbbYrcxccuRcuRcuRcuRcxdcuRcvWcHqcxecxfcxgcxhcxicxjcxkcxlcxmcxncxocxpcxqcxrcxscxtcxuctSctTcxvcxwctWctWcxxcJXcsecsfcubcxAcsVcxBeIDcxCcxDcxEcxFcxGcxHcxGeIEaabctgctgctgctgctgaabaabaabeQecxJcvocwJeQbcxKcxLcxMcxNeQgeQfeQheQhcxPeQheQjeQieQbeQkaaaaaaeOlcoPcoPcoPeQdcxRcxScxTcqMcxUctwctwctwcxVcxWcxXeQlaaaaaaaaaaaacqOaaaaabaaaaabaaaaaaaaacrBaaaaabaabaaaaaaaaaaaacqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaacuacuakqaabaabcqccyacqeaaacqccyacqeaaacqccyacqeaabaaaaaaaaaaaaaaaaaaaaaaabaabeIFcKwcKwcKwcKweOscfHcybbYrcycbYrbYrcuVcydbYrcHqcyecyfcygcyhcyicyjcykcylcymcyncyocypcyqcyrcyscytcyucyvcywcyxcyycyzcyAclUeIHcsTcwxcyEcyFcyGcyHcyIcyJcyKcyLcyMcyNcyOcyPeIIculcumcyQcyRcyRctgaaaaaaaabeQacyScvocyTeQbcyUcyVcyVcyWeQbcyXcvFctzczaczbczcczdczaeQmaaacuqeOleOleOleOleOlczecoTczfcnSczgcnSczhcnSczicnSczjeQnaaaaaaaaaaaacqOaaacsEcsEcsEcsEcsEaabcsFaabcsEcsEcsEcsEcsEaaacqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAraaaaaaaaacAraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaaaaaaacqccyacqeaabcqccyacqeaaacqccyacqeaaaaaaaaaaabaaaaaaaaaaaaaabaabaabaaaaaaaabaabczlczlczlczlczlczlczlczmczlczlcHqcznczocxgcxgczpczqczrczsczteIpczuczvcwmczwczxeIpczyctWctTczAbeCczCcyAczDeIJbeHczGczHczIczJczGczKczLczMczNcubczOczPczQeIKaabcvkczRczSczTctgaaaaaaaaaeQaeQbczUeQoeQbczVczWczXczYczZcvocAacAbczacAccAdcAecAfeQpaabaaaaaaaaaaaaaaaeOlcAhcAicAjcAkcAlcAmcAncAocAlcAmcApeOlaaaaaaaaaaaacqOaabctActBctBctBctBctCctDctEctFctFctFctFctGaabcqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacArcArcArcArcAraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaakqaabcqccyacqeaaacqccyacqeaaacqccyacqeaabaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaabaabaabczlcAscAscAtcAucAvcAvcAwcAxcAycAzcygcyhcxgcxgcxgcAAcxgcxgcxgeIpeILcACcADcAEcAFeIMeINcAHeIOcAJcAKcALeIQeIPeIRcANcuccuacxAcsVcAQcARcAScATcAUcubczOcAVcAWeIScAYcumcAZcyRcyRctgaabaaaaaaeQecyZcBbcBccBdcBecBfcBecBecBgcBhcBicBjcBjcBkcBlcBmcBneQqaabaabaaaaaaaaaaaaeOlcBpcBqcBrePycBscBtcBuePycBvcBwcBxeOlaaaaaaaaaaaacqOaabcuKcuKcuKcuKcuKaaacsFaaacuKcuKcuKcuKcuKaabcqOaaaaaaaaaaaacAraaaaaacAraaaaaacArcArcArcArcArcArcAraaaaaacAraaaaaacAraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaakqaabcqccyacqeaaacqccyacqeaabcqccyacqeaabaabaabaaaaabaaaaaaaabaabaaaaaaaaaaabaaaaaaczlcAscAscAtcBycBycBycBzcBzcBAcHqcBBcBCcBDcBEcBFcBGcBHcBIcBIclVcBJcBKcxgcxgcxgcBLcBMcBNeITcBOcBPcBQeIVeIUcHqeIWeIWcBTcxAcsVcBUcBVcBWcBXcBYcubcBZcCacCbeIXcCdctgctgctgctgctgaaaaaaaaaeQaczzcCfcCgcChcCicCjcCicCicCkcClcCmcCncBncCocCpcAeczaeQraabaabaaaaaaaaaaaaeOlcCrcoPcoPePycCscoPcoPePycCscoPcoPeOlaaaaaaaaaaaacqOaaaaabaaaaabaabaabaaacsFaaaaabaaaaabaaaaabaaacqOaaaaaaaaaaaacArcArcArcAraaacArcArcArcArcArcArcArcArcAraaacArcArcArcAraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaakUaabcqccCvcqeaaacqccCvcqeaaacqccCvcqeaabakqaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaabczlcCwcCxcBycBycBycCyeIYeIYeIZeIYeIYeIYeIYcCzcCAcCBcCCcCDcCDcCDcCEcCFcCGcCDcCDcCDcCFcCHcCIcCJcBPcCKeJaeIUcCMcCNeJbcCOcCPcCQcCRcCScAUcCTcCUcCVcCWcCXcCYeIIcCZcumcDacDbcDbctgaaaaaaaaaeQacDmcDdcDecDfcDgcDhcDiczacDjcDkcDlcCecBacDocDccDqcDreQsaaaaaaaaaaaaaaaaaaeOlcDtcoPcoPePycDucoPcoPePycDucoPcoPeOlaaaaaaaaaaaacqOaaacsEcsEcsEcsEcsEaabcsFaabcsEcsEcsEcsEcsEaabcqOaaaaaaaaaaaacArcArcArcAraaacArcArcArcArcArcArcArcArcAraaacArcArcArcAraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaakqaaaaabaaaaaaaaaaabaabaabaaaaaaaabaabaaaakqaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabczlcmacBycBycBycBycByeIYcDvcDwcDxcDycDzeIYcDAcDBcDCczocxgcxgcDDeJdeJceJecDHeJgeJfeJhcHqeJicCJcBPcDMeJjeIUcHqcDOeIWcDPcDQcubcCRcCScDRcubcCUcCVczOczPcDSeIKcDTcvkcDUcDVcDWctgaaaaaaaaaeQteQveQueQueQweQxeQxeQycEacEbcEccEdcEccEeeQzeQzeQkeQAeQzaaaaaaaaaaaaaaaaaaeOlcoPcoPcoPePycEfcoPcoPePycEfcoPcoPeOlaaaaaaaaaaaacqOaabctActBctBctBctBctCctDctEctFctFctFctFcxZaabcqOaaaaaaaaaaaacArcArcArcAraaacArcArcArcArcArcArcArcArcAraaacArcArcArcAraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaacuacuakqacuacuakUakqakqakqakqacuakqakqacucEgaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczlcEhcBzcEicEjcEkcEleIYcEmcEncEocEpcEqcErcEscEtcEuczocxgcEvcEweJkcExcEycEzcEAcEBeJlcECcDCczocEDcEEeITeJmcHqeOteIWcEGcEHcubcCRcCScAUcubcEIcCVczOcEJcEKeIScELcumcEMcDbcDbctgaaaaaaaaacENaaaaaaaaaaaaaaaaaaeQacEOczaczacEPcEQcEReQzaaccEScETcEUaaaaaaaaaaaaaaaaaaeOleOleOleOleOleOleOleOleOlcEVcEVcEVeOlaaaaaaaaaaaacqOaabcuKcuKcuKcuKcuKaaacsFaabcuKcuKcuKcuKcuKaaacqOaaaaaaaaaaaacArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcAraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabczlczlczlcEWcEXcEYcEZeIYcFacFbcFccFccFdcFecCDcFfcFgcFhcFicFjcFjcFkcFlcFmcFncFocFpcFkcFqcFrcFscFtcxgcFucFvcFwcDOeIWcFxcFycubcCRcubcFzcubcCUcCVczOczPcFAeIKcDTctgctgctgctgctgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQacFBczaczaczYcFCcFDeQzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacENaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaaaaaaaaaaaaaaacnZaaaaabaaaaabaaaaabaaacAqaaaaabaaaaabaabaabaabcqOaaaaaaaaaaaacArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcAraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaaaaaaacqccyacqeaabcqccyacqeaaacqccyacqeaaaaaaaaaaabaaaaaaaaaaaaaabaabaabaaaaaaaabaabczlczlczlczlczlczlczlczmczlczlcHqcznczocxgcxgczpczqczrczscDHeIpczuczvcwmczwczxeIpczyctWctTczAbeCczCcyAczDeIJbeHczGczHczIczJczGczKczLczMczNcubczOczPczQeIKaabcvkczRczSczTctgaaaaaaaaaeQaeQbczUeQoeQbczVczWczXczYczZcvocAacAbczacAccAdcAecAfeQpaabaaaaaaaaaaaaaaaeOlcAhcAicAjcAkcAlcAmcAncAocAlcAmcApeOlaaaaaaaaaaaacqOaabctActBctBctBctBctCctDctEctFctFctFctFctGaabcqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacArcArcArcArcAraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaakqaabcqccyacqeaaacqccyacqeaaacqccyacqeaabaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaabaabaabczlcAscAscAtcAucAvcAvcAwcAxcAycErcygcyhcxgcxgcxgcAAcxgcxgcxgeIpeILcACcFecAEcAFeIMeINcFkeIOcAJcAKcALeIQeIPeIRcANcuccuacxAcsVcAQcARcAScATcAUcubczOcAVcAWeIScAYcumcAZcyRcyRctgaabaaaaaaeQecyZcBbcBccBdcBecBfcBecBecBgcBhcBicBjcBjcBkcBlcBmcBneQqaabaabaaaaaaaaaaaaeOlcBpcBqcBrePycBscBtcBuePycBvcBwcBxeOlaaaaaaaaaaaacqOaabcuKcuKcuKcuKcuKaaacsFaaacuKcuKcuKcuKcuKaabcqOaaaaaaaaaaaacAraaaaaacAraaaaaacArcArcArcArcArcArcAraaaaaacAraaaaaacAraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaakqaabcqccyacqeaaacqccyacqeaabcqccyacqeaabaabaabaaaaabaaaaaaaabaabaaaaaaaaaaabaaaaaaczlcAscAscAtcBycBycBycBzcBzcBAcHqcBBcBCcBDcBEcBFcBGcBHcBIcBIclVcKscBKcxgcxgcxgcBLcBMcBNeITcBOcBPcBQeIVeIUcHqeIWeIWcBTcxAcsVcBUcBVcBWcBXcBYcubcBZcCacCbeIXcCdctgctgctgctgctgaaaaaaaaaeQaczzcCfcCgcChcCicCjcCicCicCkcClcCmcCncBncCocCpcAeczaeQraabaabaaaaaaaaaaaaeOlcCrcoPcoPePycCscoPcoPePycCscoPcoPeOlaaaaaaaaaaaacqOaaaaabaaaaabaabaabaaacsFaaaaabaaaaabaaaaabaaacqOaaaaaaaaaaaacArcArcArcAraaacArcArcArcArcArcArcArcArcAraaacArcArcArcAraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaakUaabcqccCvcqeaaacqccCvcqeaaacqccCvcqeaabakqaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaabczlcCwcCxcBycBycBycCyeIYeIYeIZeIYeIYeIYeIYcCzcCAcCBcCCcCDcCDcCDcLncCFcCGcCDcCDcCDcCFcCHcLscCJcBPcCKeJaeIUcCMcCNeJbcCOcCPcCQcCRcCScAUcCTcCUcCVcCWcCXcCYeIIcCZcumcDacDbcDbctgaaaaaaaaaeQacDmcDdcDecDfcDgcDhcDiczacDjcDkcDlcCecBacDocDccDqcDreQsaaaaaaaaaaaaaaaaaaeOlcDtcoPcoPePycDucoPcoPePycDucoPcoPeOlaaaaaaaaaaaacqOaaacsEcsEcsEcsEcsEaabcsFaabcsEcsEcsEcsEcsEaabcqOaaaaaaaaaaaacArcArcArcAraaacArcArcArcArcArcArcArcArcAraaacArcArcArcAraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaakqaaaaabaaaaaaaaaaabaabaabaaaaaaaabaabaaaakqaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabczlcmacBycBycBycBycByeIYcDvcDwcDxcDycDzeIYcDAcDBcDCczocxgcxgcDDeJdeJceJecLWeJgeJfeJhcHqeJicCJcBPcDMeJjeIUcHqcDOeIWcDPcDQcubcCRcCScDRcubcCUcCVczOczPcDSeIKcDTcvkcDUcDVcDWctgaaaaaaaaaeQteQveQueQueQweQxeQxeQycEacEbcEccEdcEccEeeQzeQzeQkeQAeQzaaaaaaaaaaaaaaaaaaeOlcoPcoPcoPePycEfcoPcoPePycEfcoPcoPeOlaaaaaaaaaaaacqOaabctActBctBctBctBctCctDctEctFctFctFctFcxZaabcqOaaaaaaaaaaaacArcArcArcAraaacArcArcArcArcArcArcArcArcAraaacArcArcArcAraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaacuacuakqacuacuakUakqakqakqakqacuakqakqacucEgaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczlcEhcBzcEicEjcEkcEleIYcEmcEncEocEpcEqcLXcEscEtcEuczocxgcEvcEweJkcExcEycEzcEAcEBeJlcECcDCczocEDcEEeITeJmcHqeOteIWcEGcEHcubcCRcCScAUcubcEIcCVczOcEJcEKeIScELcumcEMcDbcDbctgaaaaaaaaacENaaaaaaaaaaaaaaaaaaeQacEOczaczacEPcEQcEReQzaaccEScETcEUaaaaaaaaaaaaaaaaaaeOleOleOleOleOleOleOleOleOlcEVcEVcEVeOlaaaaaaaaaaaacqOaabcuKcuKcuKcuKcuKaaacsFaabcuKcuKcuKcuKcuKaaacqOaaaaaaaaaaaacArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcAraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabczlczlczlcEWcEXcEYcEZeIYcFacFbcFccFccFdcMccCDcFfcFgcFhcFicFjcFjcMjcFlcFmcFncFocFpcMjcFqcFrcFscFtcxgcFucFvcFwcDOeIWcFxcFycubcCRcubcFzcubcCUcCVczOczPcFAeIKcDTctgctgctgctgctgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQacFBczaczaczYcFCcFDeQzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacENaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaaaaaaaaaaaaaaacnZaaaaabaaaaabaaaaabaaacAqaaaaabaaaaabaabaabaabcqOaaaaaaaaaaaacArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcAraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabcFGcFHcFIcFJaabaabeIYcFKcFLcFccFccFMeIYcFNcFOcFPcFQcFRcFScFTcHqcFUcFVcFWcxgcFXcHqcFYcFZcGacFQcFQcGbcGccHqcGdeIWcGecGfcubcCRcubcBUcBVcGgcGhcCWcGicGjeIIcGkcumcGlcGmcGmctgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQtcGncGocGpcGqcGrcGseQzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqOaaacsEcsEcsEcsEcsEaabcqPaabcsEcsEcsEcsEcsEaabcqOaaaaaaaaaaaacArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcAraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabcFGcGtcGucGvaabaaaeIYcGwcFLcFccFccGxeIYcGycGzcHqcGAcGBcGBcGBcHqcGCcGDcGEcGFcGGcHqcGBcGBcGBcGAcHqcGHcGycHqcDOeIWcGJcsacGLcGMcGNcGOcGPcGQcyNcGRczPcGSeIKcDTcvkcGTcGUcGVctgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQzeQBeQCeQCeQCeQCeQDeQzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqOaabctActBctBctBctBcCtcCucCtctFctFctFctFcxZaabcqOaaaaaaaaaaaacArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcAraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGYaaaaaaaaacGYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcFGcGZcHacFGcHbaaaeIYcHccHdcFccFccHeeIYcHfcHgcHqcHhcHicHjcHkeJocHlcHmcHncHocGGeJocHicHicHicHpcHqcHrcHscHqcDOcHtcCRcHvcHwcGPcHxcHycHzcHAcHBcHCcHDcHEeIScELcumcHFcGmcGmctgaabaabaaaaaaaaaaaaaaaaaaaaaaaacENaaaaaaaaaaaaaaaaaacENaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqOaabcuKcuKcuKcuKcuKaaacqPaaacuKcuKcuKcuKcuKaaacqOaaaaaaaaacArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcArcAraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -13370,7 +13369,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaabaaaaaaaabaabacucHqcHqeJDcIRaaaaaaaabaaacKeaabaacaacaacaabaabcJhaabaaaaaacIReJDcHqcHqcCMcHqctgctgctgctgctgctgctgctgctgctgctgctgctgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJbcJbcJbcJbcJbcJbcJbcJbcJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYcGYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabcHqeJTeJScIRaaaaaaaabaaaaaaaabaabaabaabaabaaaaaaaabaaaaaacIReJQeJRcHqcJGcHqcHqcHqcHqcHqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJbcJbcJbcJbcJbcJbcJbcJbcJbaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfcKfcKfcKfcKfaaaaaaaaacGYcGYcGYcGYaaaaaacGYcGYcGYcGYcGYcGYcGYaaaaaacGYcGYcGYcGYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaabcHqeJPcIRcKgaaaaaacKhaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaacIRcIReJPcHqcCMeJWdrBcKAcKBcKlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJbcJbcJbcJbcJbcJbcJbcJbcJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaacGYcGYcGYcGYcGYcGYcGYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcHqeJXcKocIRaabaabaabcJhaaaaaacJhaaaaaaaaaaaacJhaabcKpaabcIRcKqeJYcHqcCMcKscKtcxgcKkcKuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJbcJbcJbcJbcJbcJbcJbcJbcJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaacGYcGYcGYcGYcGYcGYcGYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcHqeJXcKocIRaabaabaabcJhaaaaaacJhaaaaaaaaaaaacJhaabcKpaabcIRcKqeJYcHqcCMcMKcKtcxgcKkcKuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJbcJbcJbcJbcJbcJbcJbcJbcJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaacGYcGYcGYcGYcGYcGYcGYaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHqeJZeKacKxaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaaaaacKyeKaeKbcHqcCMcHqcKicKjcKkcKCaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJbcJbcJbcJbcJbcJbcJbcJbcJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaacGYcGYcGYcGYcGYcGYcGYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeJdcHqeIQcIycKxaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaabaaaaaacKycIxeIQcHqcHqcCMcHqcHqcHqcKDcHqaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJbcJbcJbcJbcJbcJbcJbcJbcJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaacGYcGYcGYcGYcGYcGYcGYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaacHqcHqcIycIccIccIccIccIccIccIccIccIccIccIccIccIccIxcHqcHqcHqcHqcJGcHqaaaaabcKEcKFaabaaaaaaaaaaabaaaaaaaaaaabaaaaaaaaaaabaaaaaaaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJbcJbcJbcJbcJbcJbcJbcJbcJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -13382,18 +13381,18 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeJdcHqcHqcHqcHqcHqcHqaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaabcKScLbaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaabdiZcLcdiZcLdcLedjadjadjadjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabdiZcLfcLgcLhcLidjbcLjcLkdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaabdiZcLfcLlcLmcLmcLncLocLpdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaabdiZcLqcLrcLmcLmcLscLtcLudjaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaabdiZcLfcLlcLmcLmcNKcLocLpdjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaabdiZcLqcLrcLmcLmcNQcLtcLudjaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabdiZdiZdjlcLmcLmdjadjmdjadjaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaofaofaaaaabaaacLvcLwcLmcLmcLxcLycLvaabaabaabaofaofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuacucLzcLzacuacuaaacLAcLBcLCcLDcLEcLFcLAaaaacuacucLzcLzacuacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucLGcLHcLIcLJacuacucLKcLLcLMcLNcLmcLOcLKacuacucLPcLQcLRcLSacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfaaacKfcKfcKfcKfcKfaaacKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucLGcLHcLRcLUcLVdjpdjpdjAcLWdjpcLXdjBdjpdjpcLVcLYcLHcLRcLSacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmaaacKmcKmcKmcKmcKmaaacKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfaaacKfcKfcKfcKfcKfaaacKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucLGcLZcMacMbcMbcMccMdcMecMfcMgcMgcMhcMicMjcMkcMkcMlcMmcLSacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmaaacKmcKmcKmcKmcKmaaacKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfaaacKfcKfcKfcKfcKfaaacKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucLGcLHcLRcLUcLVdjpdjpdjAdwrdjpdwsdjBdjpdjpcLVcLYcLHcLRcLSacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmaaacKmcKmcKmcKmcKmaaacKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfaaacKfcKfcKfcKfcKfaaacKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucLGcLZcMacMbcMbdDZcMdcMecMfcMgcMgcMhcMidJycMkcMkcMlcMmcLSacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmaaacKmcKmcKmcKmcKmaaacKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaacKfcKfcKfcKfcKfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucLGcMncMocMpcMpdjpcMqcMrcMrcMscMrcMrcMtdjpcMpcMpcMucMvcLSacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaacKmcKmcKmcKmcKmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucLGcMncLSaaaaaadjpcMwcMxcMycMzcMAcMBcMCdjpaaaaaacLGcMvcLSacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucLGcMDdjCdjCdjCdjpcMEcMFcMrcMrcMGcMHcMIdjpdjCdjCdjCcMJcLSacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucLGcMncLSaaaaaadjEdjDdjEdjLcMKdjEdjEdjMdjEaaaaaacLGcMvcLSacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucLGcMncLSaaaaaadjEdjDdjEdjLdKVdjEdjEdjMdjEaaaaaacLGcMvcLSacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaacucLGcMncLSaaaaaadjEcMLcMMcMNcMOcMPcMQcMRdjEaaaaaacLGcMvcLSacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTcLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucLGcMncLSaaadjEdjEcMScMQbjjbjjbjjcMQcMTdjEdjEaaacLGcMvcLSacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTcLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucLGcMncLSaaadjEdjEcMUbjjbjjcMVbjjbjjcMWdjEdjEaaacLGcMvcLSacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -13406,7 +13405,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucLGcMncLSaaaaaaaaadjUdjUdjUdkedjUdjUdjUaaaaaaaaacLGcMvcLSacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucLGcMncLSaaaaabaaadkfcNycNzdkqcNAcNBdkfaaaaaaaaacLGcMvcLSacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucLGcMncNCcLVcNDcNDdkfcNEcNFcNGcNHcNIdkfcLVcLVcLVcNhcMvcLSacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucLGcNJcMbcMbcMbcMbcNKcNLcNMcNNcNOcNPcNQcNRcMkcMkcMkcNScLSacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacucLGcNJcMbcMbcMbcMbdKWcNLcNMcNNcNOcNPdKXcNRcMkcMkcMkcNScLSacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTaaacLTcLTcLTcLTcLTaaacLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuaaacMpcMpcMpcMpcMpdkfcNTcNUcNVcNWcNXdkrcNYcMpcMpcNZcNZaaaacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTaaacLTcLTcLTcLTcLTaaacLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuacuacuacuacuacuacudkfcOacObcOccOdcOedkfacuacuacuacuacuacuacuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaacLTcLTcLTcLTcLTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdkfdkfcOfcOgcOhdkfdkfaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -14079,13 +14078,13 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdHddHpdHpdHddJrdJqdJrdJqdJrdJqdJqdJmdJqdJmdJqdJmdJqdJmdHBdHedHedHedHBdJidJidJidJidJjdJjdJjdJjdJidJidJidJidJidJidHddHfdHfdHdaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdHddHpdHpdHddJqdJqdJqdJqdJqdJqdJqdJqdJmdJmdJmdJmdHddHddHddHedHedHedHddHddHddJidJidJjdJjdJjdJjdJidJidJidJidJidJidHddHfdHfdHBaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHpdHpdHpdJudJrdJqdJrdJqdJrdJqdJrdJrdJrdJqdJqdHddHddHedHedHedHedHedHedHedHddHddJjdJjdJjdJjdJjdJidJidJidJvdJvdJvdHddHfdHfdHBaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJudHpdHpdHpdJqdJqdJqdJqdJqdJqdJqdJqdJqdJqdJqdHddHedHedHedHedHedHedHedHedHedHddJjdJjdJjdJjdJjdJjdJwdJxdJydJzdJAdHddHfdHfdHBaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJudHpdHpdHpdJqdJqdJqdJqdJqdJqdJqdJqdJqdJqdJqdHddHedHedHedHedHedHedHedHedHedHddJjdJjdJjdJjdJjdJjdJwdJxdLfdJzdJAdHddHfdHfdHBaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJudHpdHpdJudJrdJrdJrdJrdJrdJrdJrdJrdJrdJqdJqdHddHedHedHedHedHedHedHedHedHedHddJjdJjdJjdJidJidJidJBdJwdJCdJDdJEdHddHfdHfdHBaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJudJudJudJudJrdJrdJmdJrdJrdJmdJmdJmdJmdJmdJmdJFdHedHedHedHedHedHedHedHedHedJtdJjdJjdJjdJidJidJidJidJidJvdJvdJvdHddHfdHfdHBaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJudJudJudJudJmdJrdJmdJrdJmdJqdJmdJqdJmdJqdJmdJFdHedHedHedHedHedHedHedHedHedJtdJjdJjdJjdJjdJjdJjdJGdJHdJydJIdJJdHddHfdHfdHBaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJudJudJudJudJmdJrdJmdJrdJmdJqdJmdJqdJmdJqdJmdJFdHedHedHedHedHedHedHedHedHedJtdJjdJjdJjdJjdJjdJjdJGdJHdLfdJIdJJdHddHfdHfdHBaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJudJudJudJudJrdJrdJrdJrdJrdJmdJmdJmdJmdJmdJmdJFdHedHedHedHedHedHedHedHedHedJtdJjdJjdJjdJjdJjdJjdJjdJGdJCdJKdJLdHddHfdHfdHBaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJudJudJudJudJrdJrdJrdJrdJrdJrdJrdJrdJrdJqdJqdHddHedHedHedHedHedHedHedHedHedHddJjdJjdJjdJjdJjdJjdJjdJjdJvdJvdJvdHddHfdHfdHBaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJMdJNdJNdJNdJNdJNdJNdJNdJNdJNdJNdJNdJMdJqdJqdJqdJqdJqdHddHedHedHedHedHedHedHedHedHedHddJjdJjdJjdJjdJjdJjdJGdJOdJydJPdJQdHddHfdHfdHBaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJMdJNdJNdJNdJNdJNdJNdJNdJNdJNdJNdJNdJMdJqdJqdJqdJqdJqdHddHedHedHedHedHedHedHedHedHedHddJjdJjdJjdJjdJjdJjdJGdJOdLfdJPdJQdHddHfdHfdHBaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJMdJRdJSdJRdJSdJRdJRdJRdJRdJRdJRdJSdJNdJrdJqdJrdJmdJmdHddHddHedHedHedHedHedHedHedHddHddJvdJvdJjdJjdJTdJGdJjdJGdJCdJUdJVdHddHpdHpdHBaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJMdJRdJRdJRdJRdJRdJSdJRdJSdJMdJSdJSdJNaaaaabaaadJSdJRdJSdHddHddHddHedHedHedHddHddHdaabaabdJvdJvdJvdJvdJvdJvdJvdJvdJvdJvdHddHfdHfdHBaacaabaacaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJMdJRdJSdJRdJSdJRdJRdJRdJRdJRdJRdJWdJNaabaabaabdJRdJRdJRdJRdJRdHddHedHedHedHddJSdJSdJRdJRdJSdJRdJSdJRdJRdJRdJRdJSdJRdJSdHfdHpdHpdHfaabaabaabaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -14245,34 +14244,34 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKNdKLdKLdKLdKLdKLdKLdKLdKLaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKOdKPdKQdKQdKRdKRdKRdKRdKRdKSdKRdKTdKUdKLdKLdKLdKLdKLdKLdKLdKLdKVdKWdKWdKXaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKOdKYdKZdKLdKLdKLdKLdKLdKLdLadLadLadLbdLcdKUdKLdKLdKLdLddLedKRdKRdLfdLgdLhdLicKJcKJdKQdLjdLkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKOdKPdKQdKQdKRdKRdKRdKRdKRdKSdKRdKTdKUdKLdKLdKLdKLdKLdKLdKLdKLdMbdLidLidLVaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKOdKYdKZdKLdKLdKLdKLdKLdKLdLadLadLadLbdLcdKUdKLdKLdKLdLddLedKRdKRdMsdLgdLhdMccKJcKJdKQdLjdLkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLldKZdKLdKLdKLdKLdKLdKLdKLdLadLmdLndLodLbdLcdLpdLadLqdLrdLsdLtdLtdLtdLudLvdLtdLtdLtdLtdLwcKOdLkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLxdKLdKLdKLdKLdKLdKLdKLdKLdLadLydLzdLAdLBdLCdLDdLEdLFdLGdLHdLIdLJdLHdLKdLudLHdLLdLMdLtaabdLNcLbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLOaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdLPdLPdKLdKLdLPdLPdLPdLPdKLdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLaaaaaaaaaaaaaaaaaaaaaaaadKOdLQdKLdKLdKLdKLdLRdLRdLRdLRdLRdLSdLTdLUdLVdLWdLWdLWdLXdLYdLHdLZdMadMbdLudLudMcdMadLZdLtaabaabdMdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdLPdKLdKLdKLdKLdKLdKLdLPdLPdKLdKLdKLdKLdLPdLPdLPdLPdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLaaaaaaaaadMedMfcKJcKJcKJdMgdMhdKLdKLdKLdKLdLRdLRdMidMjdLRdMkdMkdMkdMkdMldLWdMmdMndModLHdLHePtdLHdMpdMqdMrdMrdMrdMrdMrdMsdMtdMuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMvdMwdMvaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdLPdKLdKLdKLdLPdLPdKLdLPdLPdLPdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdLPaaaaaadMxdMhaabaabaabaabaabdKLdKLdKLdKLdLRdMydMzdMAdMBdMCdMDdMEdMFdMGdMHdMIdMJdMKdLHdMLdMMePtdMNdMOdMPdMQdMRdMSdMTdMUdMVdMWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMXdMYdMXaabaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaadLxaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdLRdMZdNadNbdLRciMdNddMCdNedNfdNgdNhdNidNjdNkdNldNmdNndNodNpdMrdNqdNrdNsdNtdNudNvdMWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNwdNxdNydNzaabaaaaaadKLdKLdKLdKLdKLdKLdKLdLPdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaadLxaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdLRdMZdNadNAdLReRZdMCchRdNDdNEdNFdNGdNFdNHdNFdNFdNFdNFdNIdNJdMrdNKdNrdNLdNMdNNdMVdMWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNOdNOdNPdNQdNRdMXaabaaaaaadKLdKLdKLdKLdLPdLPdLPdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdNSaabdLxaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdLRdMZdNTdNUdLReSadNWdNXdNYdNZdOadObdOcdOddOedOfdOgdNFdOhdOidMrdOjdOkdOldOmdMrdOndOoaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOpdOqdOrdOsdOtdOudOvaabaabdLPdLPdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdOwdOwdOxaabdLxaaaaabaabaabaabaabdKLdLtdLtdLtdLtdLtdOydOzdLtdMkdMkdOAdOBdOCdNFdODdOEdOFdOGdOHdOIdNFdOJdOKdOLdOMdONdOOdOPdMrdOQdKLaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMaaadKMdKMdKMdKMdKMaaadKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadORdNOdOSdOTdOUdNRdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdOwdOwdOwaaaaaadLxdOWdOWdOWdOWdOWdOWdOWdLHdOXdOYdOZdPadPbdPcdPddPedPfdPgdPhdPidNFdPjdPkdPldPmdPndPodPpdPqdPrdPsdPsdPsdPtdPudPvdPwdPxdPxdPyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMaaadKMdKMdKMdKMdKMaaadKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdPzdPAdPBdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdOwaaaaaadLxdOWdOWdOWdOWdOWdOWdOWdPCdPDdPEdPFdPGdPHdPIdPJdPKdPLdPMdPNdPOdPPdPQdPRdPSdPTdPUdPVdPWdPXdPYdPsdPZdQadQbdQcdPsdQddKLdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdQedQfdQgdQhdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaadLxdOWdOWdOWdOWdOWdOWdOWdQidQjdOYdQkdQldQmdQndQodQpdQqdLtdQrdQsdQtdQudQvdQwdQxdQydQzdNFdQAdQBdQCdQDdQDdQEdQFdQGdQHdQIdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdQJdQKdQLdOVdQMdQNdOVdOVdOVdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaadLxdOWdOWdOWdOWdOWdOWdOWdQOdQjdOYdQkdQldQPdQQdQodQRdQSdLtdQTdQUdNFdQVdNFdNFdNFdNFdQWdNFdQXdQYdPsdQZdRadRbdRcdRddOQdRedKNdKNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdRfdRgdRhdRidRjdRkdMvdOudRldOVdRmdRndOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaadLxdOWdOWdOWdOWdOWdOWdOWdLHdQjdOYdRodQldRpdRqdQodRrdRsdLtdRtdRudRvdRwdRxdRydRzdNFdRAdRBdRCdRDdREdRFdRGdRHdRIdRJdOQdKLdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdRKdSydRgdRMdRNdROdRPdRQdRldRRdRndRndRmdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaadRSdRTdRUdRVdRWdRXdRUdRYdRZdSadSbdLHdScdSddLtdLtdLtdLtdLtdSedSfdSgdRwdShdRydSidNFdSjdSkdSldSmdSndSodSpdSqdSrdSsdStdSudLtdSvdMfcKJcKJcKJcKJcKJcKJdLjdSwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadSxdRKdSydRKdRhdRhdQMdSzdRNdOVdQhdSAdOVdRndSBdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaadSCdSDdSEdSFdSGdSGdSHdSIdSJdSKdSLdSMdSNdSOdSPdSQdSRdSSdSTdSUdSVdSWdSXdSYdSZdTadNFdTbdTcdTddTedPsdPsdTfdPsdPsdPsdTgdThdTidTjdTkdTldTldTmdTldTldTldTncLbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdTodTpdRhdTqdTrdRhdPBdTsdROdTtdTudTvdOVdOVdOVdOVdOVdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLaaaaaaaaaaaaaaadTwdTxdSGdSGdSGdSGdTydTzdTAdTBdTCdTDdTEdTFdSPdTGdTHdTIdTJdTKdTLdTMdTNdTOdTPdTQdTRdTSdTPdTTdTUdTVdTWdTXdTYdTVdTZdTVdTPdUadUbdUcdUddUedUfdUgdUhdUidTldMdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdUjdUkdUldRhdTrdUmdRMdUndRNdUodOVdUpdUqdOVdUrdRldUsdUtdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLaaaaaaaaaaaaaaadUudUvdSGdSGdUwdSGdUxdUydUzdUAdUBdUCdUDdUEdSPdUFdUGdUHdUIdUJdUKdULdUMdUNdUOdUPdUQdURdUSdUPdUTdUQdUUdUPdUQdUVdUWdUXdUYdUZdVadVbdVcdVddVedVfdVfdVgdTldMdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabdLPdLPdOVdRkdVhdVidVjdUldVkdRNdROdVldMvdOudVmdOVdUrdQhdRldUtdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdVndVndVndVndVndVndKLdKLdKLdKLdKLdKLdKLaaaaaaaaaaaadVodVpdSGdVqdVrdVsdVtdVudVvdVwdVxdVydVzdVAdSPdVBdVCdVDdVEdVEdVEdVEdVFdVGdVHdVIdVGdVJdVKdVLdVJdVMdVNdVOdVMdVMdVPdVQdVRdVSdTldVTdVUdTldVVdVfdVfdVWdTldMdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdOVdOVdOVdOVdOVdOVdRjdRNdVXdVhdRNdTsdVYdVldVldRQdRldUpdOVdUrdPBdVZdUtdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdVndVndVndWadWadWadWadVndVndVndKLdKLdKLdKLdWbdWcaaaaaaaaadWddWedRUdWfdWgdWgdWgdWgdWhdWidWjdLHdWkdWkdSPdWldVEdWmdVEdWndWodWpdWqdVGdWrdWsdWtdVJdWudWvdWwdVMdWxdWydWzdVMdWAdWBdVRdWCdWDdTldTldTldWEdWFdWGdUidTldMdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdOVdWHdOueHhdWIdOVdWJdWKdWLdOVdTtdOVdWMdWNdWOdOVdOudWPdMYdWQdPBdQgdMYdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdVndVndWadWadWadWadWadWadWadWadVndVndKLdKLdWRdWScKJcKJdKQcKJdMgdMhaabaabdWTdWUdWVdWWdWXdWYdWZdXadXbdXcdXddXedXfdXgdXhdXidXjdXkdXldVGdXmdXndXodVJdXpdXqdXrdVMdXsdXtdXudVMdXvdXwdXxdXydXzdXAdXBdTldTldTldTldTldXCdLQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLOaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdLPdLPdKLdKLdLPdLPdLPdLPdKLdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLaaaaaaaaaaaaaaaaaaaaaaaadKOdLQdKLdKLdKLdKLdLRdLRdLRdLRdLRdLSdLTdLUdMtdLWdLWdLWdLXdLYdLHdLZdMadMBdLudLudMudMadLZdLtaabaabdMdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdLPdKLdKLdKLdKLdKLdKLdLPdLPdKLdKLdKLdKLdLPdLPdLPdLPdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLaaaaaaaaadMedMfcKJcKJcKJdMgdMhdKLdKLdKLdKLdLRdLRdMidMjdLRdMkdMkdMkdMkdMldLWdMmdMndModLHdLHePtdLHdMpdMqdMrdMrdMrdMrdMrdNHdNndMWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMvdMwdMvaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdLPdKLdKLdKLdLPdLPdKLdLPdLPdLPdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdLPaaaaaadMxdMhaabaabaabaabaabdKLdKLdKLdKLdLRdMydMzdMAdOadMCdMDdMEdMFdMGdMHdMIdMJdMKdLHdMLdMMePtdMNdMOdMPdMQdMRdMSdMTdMUdMVdOhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMXdMYdMXaabaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaadLxaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdLRdMZdNadNbdLRciMdNddMCdNedNfdNgdNhdNidNjdNkdNldNmdOidNodNpdMrdNqdNrdNsdNtdNudNvdOhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNwdNxdNydNzaabaaaaaadKLdKLdKLdKLdKLdKLdKLdLPdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaadLxaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdLRdMZdNadNAdLReRZdMCchRdNDdNEdNFdNGdNFdOndNFdNFdNFdNFdNIdNJdMrdNKdNrdNLdNMdNNdMVdOhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNOdNOdNPdNQdNRdMXaabaaaaaadKLdKLdKLdKLdLPdLPdLPdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdNSaabdLxaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdLRdMZdNTdNUdLReSadNWdNXdNYdNZdOodObdOcdOddOedOfdOgdNFdOBdOzdMrdOjdOkdOldOmdMrdPgdOLaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOpdOqdOrdOsdOtdOudOvaabaabdLPdLPdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdOwdOwdOxaabdLxaaaaabaabaabaabaabdKLdLtdLtdLtdLtdLtdOydPtdLtdMkdMkdOAdPCdOCdNFdODdOEdOFdOGdOHdOIdNFdOJdOKdPMdOMdONdOOdOPdMrdOQdKLaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMaaadKMdKMdKMdKMdKMaaadKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadORdNOdOSdOTdOUdNRdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdOwdOwdOwaaaaaadLxdOWdOWdOWdOWdOWdOWdOWdLHdOXdOYdOZdPadPbdPcdPddPedPfdPPdPhdPidNFdPjdPkdPldPmdPndPodPpdPqdPrdPsdPsdPsdPWdPudPvdPwdPxdPxdPyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMaaadKMdKMdKMdKMdKMaaadKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdPzdPAdPBdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdOwaaaaaadLxdOWdOWdOWdOWdOWdOWdOWdQidPDdPEdPFdPGdPHdPIdPJdPKdPLdQOdPNdPOdQCdPQdPRdPSdPTdPUdPVdQTdPXdPYdPsdPZdQadQbdQcdPsdQddKLdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaadKMdKMdKMdKMdKMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdQedQfdQgdQhdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaadLxdOWdOWdOWdOWdOWdOWdOWdQUdQjdOYdQkdQldQmdQndQodQpdQqdLtdQrdQsdQtdQudQvdQwdQxdQydQzdNFdQAdQBdQVdQDdQDdQEdQFdQGdQHdQIdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdQJdQKdQLdOVdQMdQNdOVdOVdOVdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaadLxdOWdOWdOWdOWdOWdOWdOWdQWdQjdOYdQkdQldQPdQQdQodQRdQSdLtdRTdRJdNFdRddNFdNFdNFdNFdRUdNFdQXdQYdPsdQZdRadRbdRcdRVdOQdRedKNdKNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdRfdRgdRhdRidRjdRkdMvdOudRldOVdRmdRndOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaadLxdOWdOWdOWdOWdOWdOWdOWdLHdQjdOYdRodQldRpdRqdQodRrdRsdLtdRtdRudRvdRwdRxdRydRzdNFdRAdRBdRCdRDdREdRFdRGdRHdRIdRXdOQdKLdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdRKdSydRgdRMdRNdROdRPdRQdRldRRdRndRndRmdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaadRSdStdRYdSCdRWdSadRYdSbdRZdTedTddLHdScdSddLtdLtdLtdLtdLtdSedSfdSgdRwdShdRydSidNFdSjdSkdSldSmdSndSodSpdSqdSrdSsdTfdSudLtdSvdMfcKJcKJcKJcKJcKJcKJdLjdSwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadSxdRKdSydRKdRhdRhdQMdSzdRNdOVdQhdSAdOVdRndSBdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaadTmdSDdSEdSFdSGdSGdSHdSIdSJdSKdSLdSMdSNdSOdSPdSQdSRdSSdSTdSUdSVdSWdSXdSYdSZdTadNFdTbdTcdTzdTwdPsdPsdTDdPsdPsdPsdTgdThdTidTjdTkdTldTldTJdTldTldTldTncLbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdTodTpdRhdTqdTrdRhdPBdTsdROdTtdTudTvdOVdOVdOVdOVdOVdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLaaaaaaaaaaaaaaadTMdTxdSGdSGdSGdSGdTydTZdTAdTBdTCdUudTEdTFdSPdTGdTHdTIdUWdTKdTLdULdTNdTOdTPdTQdTRdTSdTPdTTdTUdTVdTWdTXdTYdTVdVadTVdTPdUadUbdUcdUddUedUfdUgdUhdUidTldMdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdUjdUkdUldRhdTrdUmdRMdUndRNdUodOVdUpdUqdOVdUrdRldUsdUtdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLaaaaaaaaaaaaaaadVddUvdSGdSGdUwdSGdUxdUydUzdUAdUBdUCdUDdUEdSPdUFdUGdUHdUIdUJdUKdVodUMdUNdUOdUPdUQdURdUSdUPdUTdUQdUUdUPdUQdUVdVPdUXdUYdUZdVFdVbdVcdVSdVedVfdVfdVgdTldMdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabdLPdLPdOVdRkdVhdVidVjdUldVkdRNdROdVldMvdOudVmdOVdUrdQhdRldUtdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdVndVndVndVndVndVndKLdKLdKLdKLdKLdKLdKLaaaaaaaaaaaadWedVpdSGdVqdVrdVsdVtdVudVvdVwdVxdVydVzdVAdSPdVBdVCdVDdVEdVEdVEdVEdWfdVGdVHdVIdVGdVJdVKdVLdVJdVMdVNdVOdVMdVMdWldVQdVRdWidTldVTdVUdTldVVdVfdVfdVWdTldMdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdOVdOVdOVdOVdOVdOVdRjdRNdVXdVhdRNdTsdVYdVldVldRQdRldUpdOVdUrdPBdVZdUtdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdVndVndVndWadWadWadWadVndVndVndKLdKLdKLdKLdWbdWcaaaaaaaaadWddXbdRYdXfdWgdWgdWgdWgdWhealdWjdLHdWkdWkdSPdYwdVEdWmdVEdWndWodWpdWqdVGdWrdWsdWtdVJdWudWvdWwdVMdWxdWydWzdVMdWAdWBdVRdWCdWDdTldTldTldWEdWFdWGdUidTldMdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdOVdWHdOueHhdWIdOVdWJdWKdWLdOVdTtdOVdWMdWNdWOdOVdOudWPdMYdWQdPBdQgdMYdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdVndVndWadWadWadWadWadWadWadWadVndVndKLdKLdWRdWScKJcKJdKQcKJdMgdMhaabaabdWTdWUdWVdWWdWXdWYdWZdXaegQdXcdXddXeeamdXgdXhdXidXjdXkdXldVGdXmdXndXodVJdXpdXqdXrdVMdXsdXtdXudVMdXvdXwdXxdXydXzdXAdXBdTldTldTldTldTldXCdLQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdOVdWHdPBdOudRMdTtdWPdVhdOudVhdQgdOudOudXDdRldOudPBdPBdOVdMYdXEdPBdOudOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdVndVndWadWadWadWadWadWadWadWadWadWadVndVndXFdXGdXHdKLaaaaaaaaaaaaaaaaaaaabdWTdXIdXJdXKdXLdXMdXNdXOdWkdXPdXQdSPdVEdWmdVEdXRdVEdXSdXTdVGdXUdXVdXWdVJdXXdXYdXZdVMdYadYbdYcdVMdYddYedYfdYgdYhdYhdYidWDdYjdKPcKJcKJdYkdYlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdOVdWHdYmdPBdPBdTtdPBdVZdQMdPBdYndQgdVZdVmdMYdPBdYodQhdOVdVhdMYdWPdOudOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdVndYpdWadWadWadWadWadWadWadWadWadWadWadYqdVndYrdYsdVndVnaaaaaaaaaaaaaaaaaaaabdWTdYtdYudYvdYwdYvdYxdYydWkdWkdYzdSPdYAdYBdYCdYDdVEdYEdYFdVGdYGdYHdYIdVJdYJdYKdYLdVMdYMdYNdYOdVMdYPdYQdWDdYRdYSdYTdYSdWDdYUdYVdLPaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdOVdWHdYmdPBdPBdTtdPBdVZdQMdPBdYndQgdVZdVmdMYdPBdYodQhdOVdVhdMYdWPdOudOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdVndYpdWadWadWadWadWadWadWadWadWadWadWadYqdVndYrdYsdVndVnaaaaaaaaaaaaaaaaaaaabdWTdYtdYudYvegZdYvdYxdYydWkdWkdYzdSPdYAdYBdYCdYDdVEdYEdYFdVGdYGdYHdYIdVJdYJdYKdYLdVMdYMdYNdYOdVMdYPdYQdWDdYRdYSdYTdYSdWDdYUdYVdLPaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdOVdWHdYWdRMdRjdOVdYXdOVdYYdYZdOVdROdOVdYYdYZdOVdRNdWPdOVdXDdTvdMYdUpdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdVndZadWadWadWadWadWadWadWadWadWadWadWadZbdYpdZcdYpdVnaaaaaaaaaaaaaaaaaaaaaaabdWTdZddYydYydZedZfdZgdYydZhdWkdZidSPdZjdZjdZjdZjdVEdZkdXkdVGdZldZmdZndVJdZodZpdZqdVMdZrdZsdZtdVMdZudZvdZwdWDdWDdWDdWDdZxdZydKLdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdOVdOVdOVdOVdOVdOVdYXdOVdZzdRldROdUpdQhdRNdVkdRNdTvdRMdOVdYYdZAdZBdZCdOVdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdVndYqdWadWadWadWadWadWadWadWadWadWadWadWadZDdZEdZFaaaaaaaaaaaaaaaaaaaaaaabaabdWTdZGdZGdZHdZIdZJdZKdZLdZMdWkdZNdSPdWadWadWadWadVEdZOdZPdVGdZQdZRdZSdVJdZTdZUdZVdVMdZWdZXdZYdVMdZZeaadZwdKLdLPdKLeabeaceaddKLdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdOVdYXdOVdRldUpeaedTsdNRdRMdRldOVdRNdQhdOVeafeageageahdOVdKNdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdVndVndWadWadWadWadWadWadWadWadWadWadWadWaeaieajeakaaaaaaaaaaaaaaaaaaaabaabaabdWTdWTealeamdWTdWTeaneaoeandWTeapdWadWadWadWadWadVEdVEdVEdVGdVGdVGdVGdVJdVJdVJdVJdVMdVMdVMdVMdVMdZwdZweaqeardKRdKReasdYVdKLdKLdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdOVdYXdOVdRldUpeaedTsdNRdRMdRldOVdRNdQhdOVeafeageageahdOVdKNdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdVndVndWadWadWadWadWadWadWadWadWadWadWadWaeaieajeakaaaaaaaaaaaaaaaaaaaabaabaabdWTdWTehgehjdWTdWTeaneaoeandWTeapdWadWadWadWadWadVEdVEdVEdVGdVGdVGdVGdVJdVJdVJdVJdVMdVMdVMdVMdVMdZwdZweaqeardKRdKReasdYVdKLdKLdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdOVdYXdOVdUpdOudTvdRldRNdQhdTvdOVdYXdOVdOVdUrdMYeageateaudKNdKNdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdVndVndWadWadWadWadWadWadWadWadWadWadWadWaeaveaweaxaaaaaaaaaaaaaaaaabeayeazeaAeaBeaCeaDeaEeaFdWTeaGeaHeaIdWTeapdWadWadWadWadWaeaJeaKeaLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLeaMeaNdYVeaOdKLdKLdKLdKLdKLdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdOVdYXdOVdOVdOVdOVdOVdOVdOVdOVdOVdYXdOVdUrdMYdUsdMYeaheaPdKNdKNdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdVndWadWadWadWadWadWadWadWadWadWadWadWadWaeaQeaReaSeaTeaTeaTeaTeaTeaTeaUeaVeaWeaXeaXeaYeaZebadWTebbebcebddWTeapdWadWadWadWadWaeaieawebedKLdKLdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLeaMeaNdYVebfdKNebfdKLdKLdKLdKLdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSaaaaaaaaaaaaaaadNSdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdOVdYXdYXdYXdYXeFreFidYXdYXdYXdYXdYXdOVdUrdUsdUsdUsdUtdOVdKNdKNdKNdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdVndWadWadWadWadWadWadWadWadWadWadWadWadWadWaebgebhebhebhebhebhebhebhebhebgdWadWadWadWadWadWadWTeanebieandWTebjdWadWadWadWadWaebkeblebmdKRdKRdKRdKRebndKRdKRdKRdKRdKReboebpebqebrdYVdKNdKNdKNebfdWbdKLdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -14370,32 +14369,32 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSebMebMebMebMeb aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSebMebMdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSebMebMebMdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdWadWaeaQeaWefyefyefyefyefyefyefyefzegsegudNSdNSdNSdNSdNSdNSdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPegvegvegvegvegvegvegvdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdKLdVndWadWadWadWaebJdZbdYpdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSebMebMebMebMdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdWadWadWadWaegqegwegwegwegwegwegwegwegxegyegudNSdNSdNSdNSdNSdNSdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPegvegzegAegBegCegDegvdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdLPdKLdVndVndWadWadWaebJdWadVndKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSebMebMebMebMebMebMdNSdNSdNSdNSdNSdNSdNSdNSdVndWadWadWaeaQegEebuebuebuebuebuebuegFegsegGegHdNSdNSdNSdNSdNSdVndKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPegvegIegJegKegLegMegvdLPdLPdLPdLPdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdLPdKLdKLdVndWadWadWaebJdWadVndKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSebMebMebMdNSebMebMebMdNSdNSdNSdNSdNSdNSdVndVndVndWadWadWadWadNSdNSdNSdNSdNSdNSegregsegudNSdNSdNSdWadWadWadVndKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdZjegNegOdLPegPegvegvegvegQegvegvegvdLPdLPdLPdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdVndWadWadWaebJdWadVndVndKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSebMebMebMdNSebMebMebMdNSdNSdNSdNSdNSdNSdVndVndVndWadWadWadWadNSdNSdNSdNSdNSdNSegregsegudNSdNSdNSdWadWadWadVndKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdZjegNegOdLPegPegvegvegvehkegvegvegvdLPdLPdLPdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdVndWadWadWaebJdWadVndVndKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSebMebMdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdKLdKLdVndVndWadWadWadNSdNSdNSdNSdNSdNSdNSegregsegudNSdWadWadWadWadWadVndVndKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPegRegOegSdLPegPegTegUegPegVegPdVndVndKLdKLdKLdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdVndVndWadWaebJdWadWadVndVndVndKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSebMdKLdKLdVndVndVndWadWadNSdNSdNSdNSdNSdNSdNSegWegsegudWadWadWadWadWadWadWadVndKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdZjdYpdKLegPegXegYegZehaegPdWadVndVndKLdKLdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdVndWadWaebJdWadWadWadWadVndVndVndKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSebMdKLdKLdVndVndVndWadWadNSdNSdNSdNSdNSdNSdNSegWegsegudWadWadWadWadWadWadWadVndKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdZjdYpdKLegPegXegYehtehaegPdWadVndVndKLdKLdKLdKLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdVndWadWaebJdWadWadWadWadVndVndVndKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSebMebMebMdKLdKLdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSegoegqegodWadWadWadWadWadWadWadVndVndKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPehbdLPdKLegPegPegPegPehcegPdWadWadVndVndYpdVndVnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdVndVndWaebJdWadWadWadWadWadWadVndVndKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSebMebMebMdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSebMebMebMdKLdKLdNSdNSdNSdNSdNSdNSdNSdNSdNSdWadWaegpdZjegpdWadWadWadWadWadWadWadWadVndKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPehddLPdLPegPegTeheegPehfehgdWadWadWadWaehhdWadVndVnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdYpdYpdYpdYpdYpdYpdVndWaebJdWadWadWadWadWadWadWadVndVndVndKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSebMebMebMebMebMebMdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSebMebMebMebMebMdNSdNSdNSdNSdNSdNSdNSdNSdNSdWadWadWadWadZjdZjdZjdZjehiehiehidWadWadWadVndKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPehddLPdLPegPegXegYehjegVehkdWadWadWadWadWadWadWadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdYpehlehmehnehnehodWadWaebJdWadWadWadWadWadWadWadWadKNdVndVndKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSebMebMebMebMebMebMebMebMdNSdNSdNSdNSdNSdNSdNSebMebMebMebMebMebMdNSdNSdNSdNSdNSdNSdNSdNSdNSdWadWadWadWadWadWadWadWaehpehqehrdWadWadWadVndKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdVndVndVndVndVndVndVndKLdKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPegPehsegPegPegPegPegPegPegVehtdWadWadWadWadWadWadWadWadWadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdYpehuehvehwehwehxdWaedcebzebAdWadWadWadWadWadWadWadKNdKNdVndKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSebMebMebMebMebMebMdNSdNSdNSdNSdNSdNSdNSebMebMebMebMebMebMdNSdNSdNSdNSdWadWaehyehyehyehyehyehyehzehAehBehyehyehyehyehydWadWadWadVndKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdVndVndWadWadWadWadWadVndVndVndVndVndKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPegPegPegPegPehCehDehEegPegTehFegPehGegPegPegPehHehIehJegPdWadWadWadWadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdVndYpehKehLehMehMehNdWaebvebFebxdWadWadWadWadWadWadWadWadWadVndVndKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSebMebMebMebMebMebMdNSdNSdNSdNSdNSdNSdNSebMebMebMebMebMdNSdNSdVndWadWadWaehyehOehPehQehRehSehTehUehVehWehXehYehZeiaebAdWadWadVndVndVndVndKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdVndVndWadWadWadWadWadWadWadWadWadWadVndVndVndVndVndKLdKLdKLdKLdLPdLPdLPegPeibeiceideieeiceicegPegXegYeifegVegPeigeiheiieiieiiehgdWadWadWadWadWadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaadVndVndVndWadWadWadWadWadWadWadWaeijeikeileimeikeikdWadWadWadWadWadWadVndKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSebMebMebMdNSdNSdNSdNSdNSdNSdNSdNSebMebMebMdNSdNSdKLdVndWadWadWaehyeineioeipeiqeioeireioeioeiseiteiuehZeiveiwdWadWadWadWadWadVndVndVndKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdVndVndYpdWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadVndVndKLdKLdKLdKLdKLdKLegPeixeiceiyeizeiAeiBegPegPegPegPegVegPeigeiCeiCeiCeiDehkdWadWadWadWadWadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaadWadWadWadWadWadWadWadWadWadWadWaeijeiEeiFeiFeiGeikdWaeiHdWadWadWadZbdYpdVndKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSebMebMebMdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdKLdVndWadWadWaehyeiIeioeioeiJeioeireiKeioeioeiLeiMeiNeiaebxdWadWadWadWadWadWadWadVndVndVndVndKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdVndVndWaehhdWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadVndVndVndVndKLdKLdKLegPeiOeiPeiQeiceiReiSeiTeiDeiUeiVeiWegPeiXeiCeiYeiZejaehtdWadWadWadWadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadWadWadWadWadWaejbejbejcejdeijejeejfejgejheikeikeikeikdWadWadWadWadVndVndKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdLPdLPdVndVndWadWaehyejieioejjejkejlejmejneioehyehyehyehyehyehyedcebAdWadWadWadWadWadWadWadWadVndVndVndKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdVndWadWadWadWadWadWadWadWadWadWadWaedcebAdWadWadWadWadWadWadWadWadWadVndVndKLdKLegPegPegPegPePuegPegPejoejpejqejoejpegPegPegPegPegPejregPegPejsejtdWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadWadWaejuejdejvejwejxejyejzejAejAejBejCejDejEejFebAdWadWadWadYqdVndKLdKLdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdLPdLPdKLdVndWadWaehyejGejHejIeiqejJejKejLejMejNejOejPejQejRejSefhefieczeczeczeczeczebTdWadWadWadWadVndVndVndKLdKLdKLdKLdKLdLPdLPdLPdKLdKLdKLdKLdVndVndWadWaeffeczeczeczeczeczeczeczeczefhefieczeczeczeczebTdWadWadWadWadWadVndKLdKLdKLdKLdKLePuejTejUejVeiCejaejWeiDejaeiTejXejYejZeiDejaeiCekaekbekcehIehJekdekdekdekdekdekdekdekdekeekeekeekeekeekeekeejcekfekgekhejwekiekjekkeklejAejAekmeknekoekpekqekrdWadWadWadYqdVndKLdKLdLPdLPdLPdLPdLPdLPdKLdKLdKLdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSdLPdLPdKLdVndWadWaehyehyehyehyehyeksektekuehyehyekvehyehyehyehyebvebxdWadWadWadWadWaebJdWadWadWadWadVndWadVndVndKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdVndVndWadWadWaebJdWadWadWadWadWadWadWadWaebvebxdWadWadWadWaebJdWadWadWadWadWadVndVndYpdVndVndKLegPegPegPegPeiCejaekwekxekyeiVekzekAekAekBekBekCekAekDekEekAekEekFekFekFekFekFekFekFekFekGekGekGekGekGekGekGekHekIekHekJekIekKekLekMekNekOekPekQejFekRekSejFebxdWadWadWadWadVndVndKLdKLdLPdLPdLPdLPdLPdKLdKLdKLdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdLPdLPdKLdVndVndWadWadWadWadWaehyekTekUekVekWehyekXekYdZjdWadWadWadWadWaebLdWadWadWaebSeczeczebTdWadWadWadWadVndKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdVndWadWaeffeczefgdWadWadWadWadVndWadWaebLdWadWadWadWadWadWaebJdWadWadWadWadWadWadWaehhdWadVndVndVndVndVnegPeiCekZelaelbelbelaelceldeleelbelbelfelaelgelhelieljelkelkelkelkelkelkelkelkellellellellellellelmelneloelpelqelrelselteluejbejbejbejbejbejbejbejbelvelwelxelwdZjdYqdVndKLdKLdLPdLPdLPdLPdKLdKLdKLdKLdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdKLdVndVndWadWadWadWaehyelyelzelAelBehydWadWadWadWadWadWadVndVndYpdVndWadWadWadWadWaebJdWadWadWadWadWadVndKLdKLdKLdKLdKLdVndVndVndVndVndWaeffefgdWadWadWadVndVndVndVndVndVndYpdWadWadWadWadWadWaebJdWadWadWadWadWadWadWadWadWadWadWadVndVnegPegPelCelDelCegPegPelEelFecmegPegPegPelHelCegPelIdWadWadWaaaaaaaaaaaaaaabaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaelJejdejwelKelLelMelNelOelOelPejbelQelRelSelTelTelUelTdZjdWadVndKLdKLdLPdLPdLPdLPdKLdKLdKLdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSebMebMebMdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSebMebMebMdKLdKLdNSdNSdNSdNSdNSdNSdNSdNSdNSdWadWaegpdZjegpdWadWadWadWadWadWadWadWadVndKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPehddLPdLPegPegTeheegPehfehzdWadWadWadWaehhdWadVndVnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdKLdYpdYpdYpdYpdYpdYpdVndWaebJdWadWadWadWadWadWadWadVndVndVndKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSebMebMebMebMebMebMdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSebMebMebMebMebMdNSdNSdNSdNSdNSdNSdNSdNSdNSdWadWadWadWadZjdZjdZjdZjehiehiehidWadWadWadVndKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPehddLPdLPegPegXegYehAegVehBdWadWadWadWadWadWadWadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdKLdYpehlehmehnehnehodWadWaebJdWadWadWadWadWadWadWadWadKNdVndVndKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSebMebMebMebMebMebMebMebMdNSdNSdNSdNSdNSdNSdNSebMebMebMebMebMebMdNSdNSdNSdNSdNSdNSdNSdNSdNSdWadWadWadWadWadWadWadWaehpehqehrdWadWadWadVndKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdVndVndVndVndVndVndVndKLdKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPegPehsegPegPegPegPegPegPegVehHdWadWadWadWadWadWadWadWadWadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdKLdKLdYpehuehvehwehwehxdWaedcebzebAdWadWadWadWadWadWadWadKNdKNdVndKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSebMebMebMebMebMebMdNSdNSdNSdNSdNSdNSdNSebMebMebMebMebMebMdNSdNSdNSdNSdWadWaehyehyehyehyehyehyehJehIeifehyehyehyehyehydWadWadWadVndKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdVndVndWadWadWadWadWadVndVndVndVndVndKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPegPegPegPegPehCehDehEegPegTehFegPehGegPegPegPeiJeimeilegPdWadWadWadWadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaadKLdKLdKLdVndYpehKehLehMehMehNdWaebvebFebxdWadWadWadWadWadWadWadWadWadVndVndKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSebMebMebMebMebMebMdNSdNSdNSdNSdNSdNSdNSebMebMebMebMebMdNSdNSdVndWadWadWaehyehOehPehQehRehSehTehUehVehWehXehYehZeiaebAdWadWadVndVndVndVndKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdVndVndWadWadWadWadWadWadWadWadWadWadVndVndVndVndVndKLdKLdKLdKLdLPdLPdLPegPeibeiceideieeiceicegPegXegYejcegVegPeigeiheiieiieiiehzdWadWadWadWadWadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaadVndVndVndWadWadWadWadWadWadWadWaeijeikejqejdeikeikdWadWadWadWadWadWadVndKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSebMebMebMdNSdNSdNSdNSdNSdNSdNSdNSebMebMebMdNSdNSdKLdVndWadWadWaehyeineioeipeiqeioeireioeioeiseiteiuehZeiveiwdWadWadWadWadWadVndVndVndKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdVndVndYpdWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadVndVndKLdKLdKLdKLdKLdKLegPeixeiceiyeizeiAeiBegPegPegPegPegVegPeigeiCeiCeiCeiDehBdWadWadWadWadWadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaadWadWadWadWadWadWadWadWadWadWadWaeijeiEeiFeiFeiGeikdWaeiHdWadWadWadZbdYpdVndKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSebMebMebMdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdKLdVndWadWadWaehyeiIeioeioejreioeireiKeioeioeiLeiMeiNeiaebxdWadWadWadWadWadWadWadVndVndVndVndKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdVndVndWaehhdWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadVndVndVndVndKLdKLdKLegPeiOeiPeiQeiceiReiSeiTeiDeiUeiVeiWegPeiXeiCeiYeiZejaehHdWadWadWadWadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadWadWadWadWadWaejbejbejtejseijejeejfejgejheikeikeikeikdWadWadWadWadVndVndKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdLPdLPdVndVndWadWaehyejieioejjejkejlejmejneioehyehyehyehyehyehyedcebAdWadWadWadWadWadWadWadWadVndVndVndKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdVndWadWadWadWadWadWadWadWadWadWadWaedcebAdWadWadWadWadWadWadWadWadWadVndVndKLdKLegPegPegPegPePuegPegPejoejpejuejoejpegPegPegPegPegPejSegPegPekcejVdWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadWadWaekfejsejvejwejxejyejzejAejAejBejCejDejEejFebAdWadWadWadYqdVndKLdKLdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdNSdLPdLPdKLdVndWadWaehyejGejHejIeiqejJejKejLejMejNejOejPejQejRekgefhefieczeczeczeczeczebTdWadWadWadWadVndVndVndKLdKLdKLdKLdKLdLPdLPdLPdKLdKLdKLdKLdVndVndWadWaeffeczeczeczeczeczeczeczeczefhefieczeczeczeczebTdWadWadWadWadWadVndKLdKLdKLdKLdKLePuejTejUekkeiCejaejWeiDejaeiTejXejYejZeiDejaeiCekaekbekueimeilekdekdekdekdekdekdekdekdekeekeekeekeekeekeekeejtekHekEekhejwekiekjelheklejAejAekmeknekoekpekqekrdWadWadWadYqdVndKLdKLdLPdLPdLPdLPdLPdLPdKLdKLdKLdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdNSdNSdLPdLPdKLdVndWadWaehyehyehyehyehyeksekteliehyehyekvehyehyehyehyebvebxdWadWadWadWadWaebJdWadWadWadWadVndWadVndVndKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdVndVndWadWadWaebJdWadWadWadWadWadWadWadWaebvebxdWadWadWadWaebJdWadWadWadWadWadVndVndYpdVndVndKLegPegPegPegPeiCejaekwekxekyeiVekzekAekAekBekBekCekAekDeljekAeljekFekFekFekFekFekFekFekFekGekGekGekGekGekGekGelnekIelnekJekIekKekLekMekNekOekPekQejFekRekSejFebxdWadWadWadWadVndVndKLdKLdLPdLPdLPdLPdLPdKLdKLdKLdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNSdNSdLPdLPdKLdVndVndWadWadWadWadWaehyekTekUekVekWehyekXekYdZjdWadWadWadWadWaebLdWadWadWaebSeczeczebTdWadWadWadWadVndKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdVndWadWaeffeczefgdWadWadWadWadVndWadWaebLdWadWadWadWadWadWaebJdWadWadWadWadWadWadWaehhdWadVndVndVndVndVnegPeiCekZelaelbelbelaelceldeleelbelbelfelaelgeloelDelpelkelkelkelkelkelkelkelkellellellellellellelmelJelIelFelqelrelselteluejbejbejbejbejbejbejbejbelvelwelxelwdZjdYqdVndKLdKLdLPdLPdLPdLPdKLdKLdKLdKLdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdKLdVndVndWadWadWadWaehyelyelzelAelBehydWadWadWadWadWadWadVndVndYpdVndWadWadWadWadWaebJdWadWadWadWadWadVndKLdKLdKLdKLdKLdVndVndVndVndVndWaeffefgdWadWadWadVndVndVndVndVndVndYpdWadWadWadWadWadWaebJdWadWadWadWadWadWadWadWadWadWadWadVndVnegPegPelCemRelCegPegPelEemSecmegPegPegPelHelCegPenodWadWadWaaaaaaaaaaaaaaabaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaeqBejsejwelKelLelMelNelOelOelPejbelQelRelSelTelTelUelTdZjdWadVndKLdKLdLPdLPdLPdLPdKLdKLdKLdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdKLdVndVndWadWadWaehyehyehyehyehyehydWadWadVndVndVndVndVndKLdKLdVndVndWadWadWadWaebJdWadWadWadWadWadWadVndVndVndVndVndVndWadWadWadWadWaebJdWadWadVndVndVndKLdKLdKLdKLdKLdVndWadWadWadWadWadWaebJdWadWadWaedcebAdWadWadWadWadWadWadWadVnegPelVelWelXelYegPelZemaembemcemdegPegPemeemfegPdWadWadWadWadWadWaaaaaaaaabaaaaaaaaaaabaabaabaabaabaabaabaabaabejbemgemhekLejbejbejbejbemiejbemjejbejbdZjdZjemkdZjdZjdWadVndKLdKLdLPdLPdLPdKLdKLdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdKLdKLdVndWadWadWadWadWadWadWadWadWadWadWadVndKLdKLdKLdKLdKLdKLdKLdVndVndWadWadWaebSeczeczeczebTdWadWadWadWadWadWadWadWadWadWadWadWadWaebJdWadVndVndKLdKLdKLdKLdKLdKLdKLdVndVndWadWadWadWadWaebSeczeczeczefhefieczeczeczebTdWadWadWadWaegPemlemmemnemoegPempemqemqemremsegPegPemtemuegPdWadWadWadWadWadWaaabaabaabaabaabaabaabemvemvemvemvemvaabaaaaaaejbemwemxekLemyemzemAelOelOemBelOelPejbdWadWaemCdWadWadVndVndKLdKLdLPdLPdKLdKLdKLdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdKLdVndWadWadWadWadWadWadWadWadWadVndVndVndKLdKLdKLdKLdKLdKLdKLdKLdVndVndVndWadWadWadWadWaebSebTdWadWaedcebAdWadWaeffeczeczeczeczeczefgdWadVndKLdKLdKLdKLdLPdLPdLPdKLdKLdVndVndVndWadWadWadWadWadWadWaebvebxdWadWadWaebJdWadWadWadWaegPegPegPegPegPegPemDemEemFemGemsegPegPemHelCegPdWadWadWadWadWadWaaaaaaaaabaaaaaaaaaaabemvemvemvemvemvaabaaaejuejdemIemJemKejbejbejbejbejbejbemLemMejbdWadWadWadWadWadVndKLdKLdLPdLPdLPdKLdKLdKLdKLdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdVndVndVndVndWadWadWadWadVndVndVndKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdVndVndVndWaebLdWadWaebSeczeczefhefieczeczefgdWadWadWadWadWadWadWadVndKLdKLdKLdLPdLPdLPdLPdLPdKLdKLdKLdVndVndVndVndWadWadWadWadWadWadWadWadWaebSeczeczebTdWadWadWadWadWadWaegPegPegPegPegPegPegPemNemOemPemQdWadWadWadWadWaaaaaaaaaaaabaaaaaaaaaaabemvemvemvemvemvemRekfemSemTeHiemUekLemVemWemXemYemZenaenbemMejbdWadWadWadWadVndVndKLdKLdLPdLPdKLdKLdKLdKLdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdKLdVndWadWadWadWadWadWadWadWadWadVndVndVndKLdKLdKLdKLdKLdKLdKLdKLdVndVndVndWadWadWadWadWaebSebTdWadWaedcebAdWadWaeffeczeczeczeczeczefgdWadVndKLdKLdKLdKLdLPdLPdLPdKLdKLdVndVndVndWadWadWadWadWadWadWaebvebxdWadWadWaebJdWadWadWadWaegPegPegPegPegPegPemDemEemFemGemsegPegPemHelCegPdWadWadWadWadWadWaaaaaaaaabaaaaaaaaaaabemvemvemvemvemvaabaaaekfejsemIemJemKejbejbejbejbejbejbemLemMejbdWadWadWadWadWadVndKLdKLdLPdLPdLPdKLdKLdKLdKLdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdVndVndVndVndWadWadWadWadVndVndVndKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdVndVndVndWaebLdWadWaebSeczeczefhefieczeczefgdWadWadWadWadWadWadWadVndKLdKLdKLdLPdLPdLPdLPdLPdKLdKLdKLdVndVndVndVndWadWadWadWadWadWadWadWadWaebSeczeczebTdWadWadWadWadWadWaegPegPegPegPegPegPegPemNemOemPemQdWadWadWadWadWaaaaaaaaaaaabaaaaaaaaaaabemvemvemvemvemveyKekHeqHemTeHiemUekLemVemWemXemYemZenaenbemMejbdWadWadWadWadVndVndKLdKLdLPdLPdKLdKLdKLdKLdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdKLdVndVndVndVndVndVndKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdKLdKLdKLdKLdKLdVndVndYpdVndWadWadWadWaebvebxdWadWadWadWaebLdWadVndVndVndVndVndKLdKLdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdVndVndVndVndVndVndVndVndWadWadWadWadWaebJdWadWadWadWadWadWadWadWaebvencendendendendeneebxdWadWadWadWadWadWaaabaabaabaabaabaabaabaabemvemvemvemvemvenfengenheniejwemUekLejwejwenjejwenkenlenmennejbdWadWadWadWadVndKLdKLdKLdLPdLPdKLdKLdKLdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdVndVndWadWadWadWadWadWadWadWadWadYpdVndVndKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdVndVndWadWadWadWaebJdWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWaaaaaaaaaaaaaaaaaaaaabemvemvemvemvemvejcekfenoenpejwemUenqelrelrenrelrelrensentenuejbdWadWadWaecJdYpdKLdKLdKLdLPdKLdKLdKLdKLdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdKLdLPdLPdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdVndVndVndWadWadWadVndVndVndVndVndKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdVndWadWadWadWaebSeczeczeczeczeczeczeczeczeczeczeczeczeczeczeczeczeczebTdWadWadWadWadWadWaaaaaaaaaaaaaaaaaabemvemvemvemvemvenvaaaelJejdenwemUekLejwejwenxenyejwejwemLenzejbdWadWadWadWadVndKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdVndVndWadWadWadWadWadWadWadWadWadYpdVndVndKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdVndVndWadWadWadWaebJdWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWaaaaaaaaaaaaaaaaaaaaabemvemvemvemvemvejtekHeyNenpejwemUenqelrelrenrelrelrensentenuejbdWadWadWaecJdYpdKLdKLdKLdLPdKLdKLdKLdKLdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdKLdLPdLPdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdVndVndVndWadWadWadVndVndVndVndVndKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdVndWadWadWadWaebSeczeczeczeczeczeczeczeczeczeczeczeczeczeczeczeczeczebTdWadWadWadWadWadWaaaaaaaaaaaaaaaaaabemvemvemvemvemvenvaaaeqBejsenwemUekLejwejwenxenyejwejwemLenzejbdWadWadWadWadVndKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdVndVndVndVndVndKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdVndVndVndWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWaebJdWaedcebAdWadWadWaeaLeaLaaaaaaaaaaabemvemvemvemvemvaabaaaaaaenAenAemUenBelrenCenDenEenFenGenmemMejbdWadWadWadWadVndKLdKLdKLdKLdLPdKLdKLdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdVndVndVndWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWadWaebSeczefhefieczeczeczenHenIenJenJenJenJenJenJenJenJenJenJenJenJenKenLenMejwejwejwenNenOenPenQenRenSejbdWadWadVndVndVndKLdKLdLPdLPdLPdKLdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdVndVndVndWadWadWadWadWadWadWadVndVndWadWadWadWadWadWadWadWadWaebvebxdWadWadWaeaLeaLaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaenAenAejbejcejdejbejbejbejbejbejbejbejbdWadWadVndKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdVndVndVndWadWadWadWadWadWadWadVndVndWadWadWadWadWadWadWadWadWaebvebxdWadWadWaeaLeaLaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaenAenAejbejtejsejbejbejbejbejbejbejbejbdWadWadVndKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdVndVndVndVndVndVndVndVndVndVndYpefedWadWadWadWadWadWadWadWadWadWadWadWadWadWaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadWadWadWadWadWadWadWadWadWadWadWadWadWadWadVndKLdKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdVndWadWadWadWadWadWadWadWadWadWadWadWadWaebLdWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadWadWadWadWadWadWadWadWadWadWadWadWadWadVndVndKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdLPdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdKLdVndWadWadWadWadWadWadWadWadWadWadWadWadVndYpdVndVnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadWadWadWadWadWadWadWadWadWadWadZbdYpdVndKLdKLdLPdLPdLPdLPdLPdLPdLPdLPdLPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -14532,9 +14531,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeqgeqjeqjeqkeqleHjeqmeqgeqneqjeqjeqgeqjeqjeqgaaaaaaepAepIepCaaaepAepIepCaaadyqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeqgeqjeqjeqoeqpeqpeqqeqreqseqjeqjeqgeqgeqieqgaaaaaaepAeqtepCaaaepAeqtepCaaadyqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeqgeqjeqjeqneqjeqjequeqgeqveqjeqweqgeqjeqjeqgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaabaacaacaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeqgeqxeqxeqyeqzeqAeqgeqgeqjeqjeqveqgeqgeqBeqgaaadyqdyqdyqdyqdyqdyqdyqdyqdyqdyqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaabaacaacaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeqgeqxeqxeqyeqzeqAeqgeqgeqjeqjeqveqgeqgeBseqgaaadyqdyqdyqdyqdyqdyqdyqdyqdyqdyqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaiaaaaaaaabaacaacaaceqCaabaabaabaaaaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeqgeqjeqjeqneqjeqjeqgeqgeqveqjeqjeqjeqjeqjeqgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaieqDaabaabeqDaacaacaacaacaaceqDaabaabeqDaaiaabaabaabaaaaaaaaaaaaaaaaaaaaaeqEeqEaaiaaiaaieqgeqFeqjeqGeqjeqjeqHeqIeqjeqjeqjeqjeqjeqjeqgdyqdyqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaieqDaabaabeqDaacaacaacaacaaceqDaabaabeqDaaiaabaabaabaaaaaaaaaaaaaaaaaaaaaeqEeqEaaiaaiaaieqgeqFeqjeqGeqjeqjeBweqIeqjeqjeqjeqjeqjeqjeqgdyqdyqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabeqJeqJeqJeqJaaceqCaacaacaaceqJeqJeqJeqJaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaeqEaaiaaieqgeqKeqLeqMeqKeqKeqgeqgeqgeqgeqgeqgeqgeqgeqgeqNdyqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeqJeqJeqJeqJeqOeqJeqPeqJeqQeqReqSeqJeqJeqJeqJeqJeqJaabaabaaaaaaaaaaaaaaaeqEaaaaaaaaaaaiaaiaaieqgeqjeqjeqneqjeqjeqTeqUeqVeqWeqXeqYeqZeqWeraerbdyqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeqJeqJeqJercerdereerferceqRergergerhergercereerceqJeqJeqJaabaaaaaaaaaaaaaaaaaaaaaeqEaaaaaaaaaaaaeqgeqFeqjeqGeqjeqjeqTerierierjerierierierierkerldyqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -14591,8 +14590,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabeyieyceyceyceyjeyceyceyceyceyceyceykeyleymeyneyoeypeyqeyreyceyceyceyceyceyceyceyceyceyceyceyseyteyueyieyceycexZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeyieyieyieyceyceyceyceyceyceyceyceyveyweyxeyyeyzeyAeyBeyCeyceyceyceyceyceyceyceyceyceyceyceyaeyceyceyceyceycexZaaaaaaaaaaaaaaaexXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabeyDeyEeyFeyFeyFexLeyFeyFeyFeyFeyFexLeyFeyFeyFeyFeyFexLeyFeyFeyFeyFeyFexLeyFeyFeyFeyFexLeyaeyieyieyceyceyceyGcLVcLVcLVaaaaaaaaaevhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdyqdyqdyqdyqdyqdyqdyqdyqdyqdyqaaqdyqdyqdyqdyqdyqeryeryerydyqdyqdyqaaidyqdyqdyqdyqeyHeyIeyHeyieyceyceyieyJeyKeyLeyMeyiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaeyHeyNeyHeyOeyOexNeyPexNeyPexNcMpcMpcMpaaaaaaaaaexXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdyqdyqdyqdyqdyqdyqdyqdyqdyqdyqaaqdyqdyqdyqdyqdyqeryeryerydyqdyqdyqaaidyqdyqdyqdyqeyHeyIeyHeyieyceyceyieyJeBHeyLeyMeyiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaeyHeBLeyHeyOeyOexNeyPexNeyPexNcMpcMpcMpaaaaaaaaaexXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeoMaacaaceyHeyQeyReySeyHeyTeyTexNeyUexNeyUexNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaceyHeyVeyHeyWeyXeyYeyYexNeyUexNeyUexNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaaceyHeyZezaeyWeyYezbeyYexNeyUexNeyUexNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -14858,31 +14857,31 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvVeATeAUeAVdvVeAWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvVeAUeAUeAXdCadAdeBaeAZeAYdCadCaelGdDYdCgdCgdCgeBbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCkeCjeCjeBleBceBceBceBceAReBdeARdCaeBeeBfeBgeBheBidCaeBjeBkeBkeBkeBkeClaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCmeBCeBneBoeBpeBqeBreBseBteBueBveBweBxeByeBzeBgczBdCaeBBeBkeBkeBkeBkeClaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCmeSPeBDeBEeBFeBGeBGeBHeBIeBJeBKeBLeBMeBNeBOeBPeBQeBReBSeBkeBkeBkeBkeClaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCmeBTeBUeBVeBWeBXeBYeBZeCaeCbeCceCdeCeeCfeCgeBgeChdCaeCieBkeBkeBkeBkeDlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCmeBCeBneBoeBpeBqeBreBZeBteBueBveBReBxeByeBzeBgczBdCaeBBeBkeBkeBkeBkeClaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCmeSPeBDeBEeBFeBGeBGeDGeBIeBJeBKeCdeBMeBNeBOeBPeBQeEHeBSeBkeBkeBkeBkeClaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCmeBTeBUeBVeBWeBXeBYeFfeCaeCbeCceFbeCeeCfeCgeBgeChdCaeCieBkeBkeBkeBkeDlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeDCeDteDteDseBceBceBceBceCneCoeCpdCaeCqeCreCseCteCudCaeBkeCveCweCxeBkelGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvVeCneCoeCydCadCaeBaeAZeAYdCadCaelGdDYdCgeDNelGelGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeEeeEdeEdeEdeEdeDWeEzeEzeEzeCneCzeCAeDdeCBeCCeCCeCCeCCeCDeCCeCCeCCeCEeCFeDdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeFoeCGeCGeCGeCGeCHeCIeCJeEzeCKeCLeCMeDdeCCeCNeCNeCOeCOeCCeCPeCQeCReCSeCTeFpeCVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeFoeCGeCGeCGeCGeCGeCGeCWeEzeCneCoeCXeDdeCYeCNeCNeCOeCOeCCeCZeDaeDbeDceCCeFqaaaeDdeDdeDdeDdeDdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeFoeCGeCHeDeeCHeDfeDgeDgeDgeDieDjeDkeFQeDmeDneDneDneDneDoeCPeDpeDbeDqeDreGseGreDueDveDweDxeDdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeFoeCGeCHeDeeCHeDfeDgeDgeGteDieDjeDkeFQeDmeDneDneDneDneDoeCPeDpeDbeDqeDreGseGreDueDveDweDxeDdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeFoeCGeDyeDeeCHeDzeDAeDBeGveDDeDEeDFeGueDHeCCeDIeCUeDKeCCeCCeCCeDLeCCeDMeGWaaaeDOeDPeDQeDxeDRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeFoeCGeCGeCGeCGeCGeCGeDSeEzeDTeDUeDVeHgeDXeDYeDYeDYeDYeDZeCQeCPeEaeDJeEceHEeHDeEfeEgeEheDxeDdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeFoeCGeCGeCGeCGeCGeEieEjeHHeBteEkeEleDdeEmeEneEoeEpeEpeCCeEqeDKeEreDreEseFqaaaeDdeDdeDdeDdeDdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeHKeHJeHJeHJeHJeHIeEzeEzeEzeEteEueEveDdeEweEneEoeEpeEpeCCeDpeCPeAieDreEyeHLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvVeEAeCoeEBeDdeCCeECeCCeCCeCCeCCeCCeCCeCCeECeCCeDdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeHOeHNeHNeHMdvVdvVdvVdvVeDTeEDeEBeDdeDdeDdeDdeDdeHReHQeHQeHQeHPeDdeDdeDdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeHSeEEeEEeEEeDTeDTeDTeEFeDTeCzeDVeEGeBIeEHeEIeEJeEKeEKeELeEMeENeEOeEPeHTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeHSeEEeEQeEReBIeBIeBIeBIeBIeESeETeEUeEUeDGeEVeEWeEVeEVeEVeEVeEXeEYeEZeHTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeHSeEEeEEeFaeFbeDheDheDheFceFdeFeeDheDheFfeFgeFheEbeFjeEbeFkeFleFmeFneHTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeHXeHWeHWeHVeHUeHUeHUeHUeIaeHZeHYeHUeHUeHUeHUeExeFseFteEbeFueFveFweFxeHTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeHSeEEeEEeEEeDTeDTeDTeEFeDTeCzeDVeEGeBIeHYeEIeEJeEKeEKeELeEMeENeEOeEPeHTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeHSeEEeEQeEReBIeBIeBIeBIeBIeESeETeEUeEUeHZeEVeEWeEVeEVeEVeEVeEXeEYeEZeHTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeHSeEEeEEeFaeDheDheDheDheFceFdeFeeDheDheHYeFgeFheEbeFjeEbeFkeFleFmeFneHTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeHXeHWeHWeHVeHUeHUeHUeHUeIeeIdeIaeHUeHUeHUeHUeExeFseFteEbeFueFveFweFxeHTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeHUeFyeFzeFAeFBeFCeFDeFEeFFeFGeHUeFmeFHeFmeFIeFmeFveFmeFmeHTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeHUeFJeFzeFKeFLeFMeFNeFOeFzeFPeHUeHTeIbeHTeHTeHTeIbeHTeHTeHTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeHUeFReFzeFSeFTeFUeFVeFWeFzeFXeHUeFYeFZeFYeHTeFYeFZeFYeHTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeHUeGaeGbeGceGdeGeeGfeGceGbeGgeHUeFYeGheFYeHTeFYeGieFYeHTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeHUeGjeGkeGleGleGmeGneGoeGpeGqeHUeFYeFYeFYeHTeFYeFYeFYeHTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeIceIceIceIceIfeIeeHUeHUeGteHUeHUeIdeIgeHUeIceIceIceHTeHTeHTeHTeHTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeIceIceIceIceLzeLieHUeHUeIgeHUeHUeIfeLAeHUeIceIceIceHTeHTeHTeHTeHTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeIceGweGxeGyeGzeGAeHUeGBeGCeGDeHUeGEeGFeGGeGHeGIeIcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeIceGJeGKeGKeGKeGKeHUeGLeGMeGNeHUeGOeGPeGPeGPeGPeIcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeIceGQeGReGSeGReGKeHUeGNeGTeGNeHUeGPeGPeGUeGPeGVeIcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/paradise.dme b/paradise.dme index ba458be8dd2..c67c19c9dac 100644 --- a/paradise.dme +++ b/paradise.dme @@ -135,6 +135,7 @@ #include "code\datums\computerfiles.dm" #include "code\datums\datacore.dm" #include "code\datums\datumvars.dm" +#include "code\datums\gas_mixture.dm" #include "code\datums\martial.dm" #include "code\datums\medical_effects.dm" #include "code\datums\mind.dm" @@ -817,6 +818,9 @@ #include "code\game\verbs\who.dm" #include "code\js\byjax.dm" #include "code\js\menus.dm" +#include "code\LINDA\LINDA_fire.dm" +#include "code\LINDA\LINDA_system.dm" +#include "code\LINDA\LINDA_turf_tile.dm" #include "code\modules\admin\admin.dm" #include "code\modules\admin\admin_investigate.dm" #include "code\modules\admin\admin_memo.dm" @@ -1579,11 +1583,6 @@ #include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_dnaswitch.dm" #include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_emp.dm" #include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_forcefield.dm" -#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasco2.dm" -#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasnitro.dm" -#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasoxy.dm" -#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gasplasma.dm" -#include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_gassleeping.dm" #include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_goodfeeling.dm" #include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_heal.dm" #include "code\modules\research\xenoarchaeology\artifact\effects\unknown_effect_heat.dm" @@ -1697,21 +1696,6 @@ #include "code\modules\virus2\helpers.dm" #include "code\modules\virus2\isolator.dm" #include "code\modules\virus2\items_devices.dm" -#include "code\ZAS\_docs.dm" -#include "code\ZAS\_gas_mixture.dm" -#include "code\ZAS\Airflow.dm" -#include "code\ZAS\Atom.dm" -#include "code\ZAS\Connection.dm" -#include "code\ZAS\ConnectionGroup.dm" -#include "code\ZAS\ConnectionManager.dm" -#include "code\ZAS\Controller.dm" -#include "code\ZAS\Debug.dm" -#include "code\ZAS\Diagnostic.dm" -#include "code\ZAS\Fire.dm" -#include "code\ZAS\Plasma.dm" -#include "code\ZAS\Turf.dm" -#include "code\ZAS\Variable Settings.dm" -#include "code\ZAS\Zone.dm" #include "interface\interface.dm" #include "interface\skin.dmf" #include "maps\cyberiad.dmm"