diff --git a/baystation12.dme b/baystation12.dme index 838233ddf56..e3de1ac51f4 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -48,6 +48,7 @@ #include "code\_onclick\hud\other_mobs.dm" #include "code\_onclick\hud\robot.dm" #include "code\_onclick\hud\screen_objects.dm" +#include "code\ATMOSPHERICS\_atmos_setup.dm" #include "code\ATMOSPHERICS\atmospherics.dm" #include "code\ATMOSPHERICS\datum_pipe_network.dm" #include "code\ATMOSPHERICS\datum_pipeline.dm" @@ -982,6 +983,7 @@ #include "code\modules\mob\living\carbon\metroid\login.dm" #include "code\modules\mob\living\carbon\metroid\metroid.dm" #include "code\modules\mob\living\carbon\metroid\powers.dm" +#include "code\modules\mob\living\carbon\metroid\say.dm" #include "code\modules\mob\living\carbon\metroid\subtypes.dm" #include "code\modules\mob\living\carbon\metroid\update_icons.dm" #include "code\modules\mob\living\carbon\monkey\death.dm" diff --git a/baystation12.int b/baystation12.int index b82874fded5..0f2de8e2116 100644 --- a/baystation12.int +++ b/baystation12.int @@ -1,6 +1,9 @@ // BEGIN_INTERNALS /* MAP_ICON_TYPE: 0 +LAST_COMPILE_VERSION: 506.1247 +DIR: maps +LAST_COMPILE_TIME: 1405542427 AUTO_FILE_DIR: OFF */ // END_INTERNALS diff --git a/code/ATMOSPHERICS/_atmos_setup.dm b/code/ATMOSPHERICS/_atmos_setup.dm new file mode 100644 index 00000000000..5f105c8e6c8 --- /dev/null +++ b/code/ATMOSPHERICS/_atmos_setup.dm @@ -0,0 +1,202 @@ +//-------------------------------------------- +// Pipe colors +// +// Add them here and to the pipe_colors list +// to automatically add them to all relevant +// atmospherics devices. +//-------------------------------------------- + +#define PIPE_COLOR_GREY "#ffffff" //yes white is grey +#define PIPE_COLOR_RED "#ff0000" +#define PIPE_COLOR_BLUE "#0000ff" +#define PIPE_COLOR_CYAN "#00ffff" +#define PIPE_COLOR_GREEN "#00ff00" +#define PIPE_COLOR_YELLOW "#ffcc00" +#define PIPE_COLOR_PURPLE "#5c1ec0" + +var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_RED, "blue" = PIPE_COLOR_BLUE, "cyan" = PIPE_COLOR_CYAN, "green" = PIPE_COLOR_GREEN, "yellow" = PIPE_COLOR_YELLOW, "purple" = PIPE_COLOR_PURPLE) + +/proc/pipe_color_lookup(var/color) + for(var/C in pipe_colors) + if(color == pipe_colors[C]) + return "[C]" + +/proc/pipe_color_check(var/color) + if(!color) + return 1 + for(var/C in pipe_colors) + if(color == pipe_colors[C]) + return 1 + return 0 + +//-------------------------------------------- +// Icon cache generation +//-------------------------------------------- + +/datum/pipe_icon_manager + var/list/pipe_icons[] + var/list/manifold_icons[] + var/list/device_icons[] + var/list/underlays_down[] + var/list/underlays_exposed[] + var/list/underlays_intact[] + var/list/pipe_underlays_exposed[] + var/list/pipe_underlays_intact[] + var/list/omni_icons[] + +/datum/pipe_icon_manager/New() + check_icons() + +/datum/pipe_icon_manager/proc/get_atmos_icon(var/device, var/dir, var/color, var/state) + check_icons() + + device = "[device]" + state = "[state]" + color = "[color]" + dir = "[dir]" + + switch(device) + if("pipe") + return pipe_icons[state + color] + if("manifold") + return manifold_icons[state + color] + if("device") + return device_icons[state] + if("omni") + return omni_icons[state] + if("underlay_intact") + return underlays_intact[dir + color] + if("underlay_exposed") + return underlays_exposed[dir + color] + if("underlay_down") + return underlays_down[dir + color] + if("pipe_underlay_exposed") + return pipe_underlays_exposed[dir + color] + if("pipe_underlay_intact") + return pipe_underlays_intact[dir + color] + +/datum/pipe_icon_manager/proc/check_icons() + if(!pipe_icons) + gen_pipe_icons() + if(!manifold_icons) + gen_manifold_icons() + if(!device_icons) + gen_device_icons() + if(!omni_icons) + gen_omni_icons() + if(!underlays_intact || !underlays_down || !underlays_exposed || !pipe_underlays_exposed || !pipe_underlays_intact) + gen_underlay_icons() + +/datum/pipe_icon_manager/proc/gen_pipe_icons() + if(!pipe_icons) + pipe_icons = new() + + var/icon/pipe = new('icons/atmos/pipes.dmi') + + for(var/state in pipe.IconStates()) + if(!state || findtext(state, "map")) + continue + + var/cache_name = state + var/image/I = image('icons/atmos/pipes.dmi', icon_state = state) + pipe_icons[cache_name] = I + + for(var/pipe_color in pipe_colors) + I = image('icons/atmos/pipes.dmi', icon_state = state) + I.color = pipe_colors[pipe_color] + pipe_icons[state + "[pipe_colors[pipe_color]]"] = I + +/datum/pipe_icon_manager/proc/gen_manifold_icons() + if(!manifold_icons) + manifold_icons = new() + + var/icon/pipe = new('icons/atmos/manifold.dmi') + + for(var/state in pipe.IconStates()) + if(findtext(state, "clamps")) + var/image/I = image('icons/atmos/manifold.dmi', icon_state = state) + manifold_icons[state] = I + continue + + if(state == "core" || state == "4way") + var/image/I = image('icons/atmos/manifold.dmi', icon_state = state) + manifold_icons[state] = I + for(var/pipe_color in pipe_colors) + I = image('icons/atmos/manifold.dmi', icon_state = state) + I.color = pipe_colors[pipe_color] + manifold_icons[state + pipe_colors[pipe_color]] = I + +/datum/pipe_icon_manager/proc/gen_device_icons() + if(!device_icons) + device_icons = new() + + var/icon/device + + device = new('icons/atmos/vent_pump.dmi') + for(var/state in device.IconStates()) + if(!state || findtext(state, "map")) + continue + device_icons["vent" + state] = image('icons/atmos/vent_pump.dmi', icon_state = state) + + device = new('icons/atmos/vent_scrubber.dmi') + for(var/state in device.IconStates()) + if(!state || findtext(state, "map")) + continue + device_icons["scrubber" + state] = image('icons/atmos/vent_scrubber.dmi', icon_state = state) + +/datum/pipe_icon_manager/proc/gen_omni_icons() + if(!omni_icons) + omni_icons = new() + + var/icon/omni = new('icons/atmos/omni_devices.dmi') + + for(var/state in omni.IconStates()) + if(!state || findtext(state, "map")) + continue + omni_icons[state] = image('icons/atmos/omni_devices.dmi', icon_state = state) + +/datum/pipe_icon_manager/proc/gen_underlay_icons() + if(!underlays_intact) + underlays_intact = new() + if(!underlays_exposed) + underlays_exposed = new() + if(!underlays_down) + underlays_down = new() + if(!pipe_underlays_exposed) + pipe_underlays_exposed = new() + if(!pipe_underlays_intact) + pipe_underlays_intact = new() + + var/icon/pipe = new('icons/atmos/pipe_underlays.dmi') + + for(var/state in pipe.IconStates()) + if(state == "") + continue + + for(var/D in cardinal) + var/image/I = image('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D) + switch(state) + if("intact") + underlays_intact["[D]"] = I + if("exposed") + underlays_exposed["[D]"] = I + if("down") + underlays_down["[D]"] = I + if("pipe_exposed") + pipe_underlays_exposed["[D]"] = I + if("pipe_intact") + pipe_underlays_intact["[D]"] = I + for(var/pipe_color in pipe_colors) + I = image('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D) + I.color = pipe_colors[pipe_color] + switch(state) + if("intact") + underlays_intact["[D]" + pipe_colors[pipe_color]] = I + if("exposed") + underlays_exposed["[D]" + pipe_colors[pipe_color]] = I + if("down") + underlays_down["[D]" + pipe_colors[pipe_color]] = I + if("pipe_exposed") + pipe_underlays_exposed["[D]" + pipe_colors[pipe_color]] = I + if("pipe_intact") + pipe_underlays_intact["[D]" + pipe_colors[pipe_color]] = I \ No newline at end of file diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm index 1b89db43be1..a33b79158e9 100644 --- a/code/ATMOSPHERICS/atmospherics.dm +++ b/code/ATMOSPHERICS/atmospherics.dm @@ -9,49 +9,96 @@ Pipes -> Pipelines Pipelines + Other Objects -> Pipe network */ - -obj/machinery/atmospherics +/obj/machinery/atmospherics anchored = 1 idle_power_usage = 0 active_power_usage = 0 power_channel = ENVIRON var/nodealert = 0 + var/initialize_directions = 0 + var/pipe_color + + var/global/datum/pipe_icon_manager/icon_manager +/obj/machinery/atmospherics/New() + if(!icon_manager) + icon_manager = new() + + if(!pipe_color) + pipe_color = color + color = null + + if(!pipe_color_check(pipe_color)) + pipe_color = null + ..() -obj/machinery/atmospherics/var/initialize_directions = 0 -obj/machinery/atmospherics/var/pipe_color +/obj/machinery/atmospherics/attackby(atom/A, mob/user as mob) + if(istype(A, /obj/item/device/pipe_painter)) + return + ..() -obj/machinery/atmospherics/process() +/obj/machinery/atmospherics/proc/add_underlay(var/turf/T, var/obj/machinery/atmospherics/node, var/direction) + if(node) + if(T.intact && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe)) + underlays += icon_manager.get_atmos_icon("underlay_down", direction, color_cache_name(node)) + else + underlays += icon_manager.get_atmos_icon("underlay_intact", direction, color_cache_name(node)) + else + underlays += icon_manager.get_atmos_icon("underlay_exposed", direction, pipe_color) + +/obj/machinery/atmospherics/proc/update_underlays() + if(check_icon_cache()) + return 1 + else + return 0 + +/obj/machinery/atmospherics/proc/check_icon_cache(var/safety = 0) + if(!istype(icon_manager)) + if(!safety) //to prevent infinite loops + icon_manager = new() + check_icon_cache(1) + return 0 + + return 1 + +/obj/machinery/atmospherics/proc/color_cache_name(var/obj/machinery/atmospherics/node) + //Don't use this for standard pipes + if(!istype(node)) + return null + + return node.pipe_color + +/obj/machinery/atmospherics/process() build_network() -obj/machinery/atmospherics/proc/network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference) +/obj/machinery/atmospherics/proc/network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference) // Check to see if should be added to network. Add self if so and adjust variables appropriately. // Note don't forget to have neighbors look as well! return null -obj/machinery/atmospherics/proc/build_network() +/obj/machinery/atmospherics/proc/build_network() // Called to build a network from this node return null -obj/machinery/atmospherics/proc/return_network(obj/machinery/atmospherics/reference) +/obj/machinery/atmospherics/proc/return_network(obj/machinery/atmospherics/reference) // Returns pipe_network associated with connection to reference // Notes: should create network if necessary // Should never return null return null -obj/machinery/atmospherics/proc/reassign_network(datum/pipe_network/old_network, datum/pipe_network/new_network) +/obj/machinery/atmospherics/proc/reassign_network(datum/pipe_network/old_network, datum/pipe_network/new_network) // Used when two pipe_networks are combining -obj/machinery/atmospherics/proc/return_network_air(datum/network/reference) +/obj/machinery/atmospherics/proc/return_network_air(datum/network/reference) // Return a list of gas_mixture(s) in the object // associated with reference pipe_network for use in rebuilding the networks gases list // Is permitted to return null -obj/machinery/atmospherics/proc/disconnect(obj/machinery/atmospherics/reference) +/obj/machinery/atmospherics/proc/disconnect(obj/machinery/atmospherics/reference) -obj/machinery/atmospherics/update_icon() +/obj/machinery/atmospherics/update_icon() return null \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm b/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm index 9d2a8e32e8a..52f57b29582 100644 --- a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm +++ b/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm @@ -76,6 +76,7 @@ obj/machinery/atmospherics/binary break update_icon() + update_underlays() build_network() if(!network1 && node1) @@ -127,4 +128,7 @@ obj/machinery/atmospherics/binary del(network2) node2 = null + update_icon() + update_underlays() + return null \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm b/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm index ac451871dc2..6a21d08245b 100644 --- a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm @@ -1,6 +1,6 @@ /obj/machinery/atmospherics/binary/dp_vent_pump - icon = 'icons/obj/atmospherics/dp_vent_pump.dmi' - icon_state = "off" + icon = 'icons/atmos/vent_pump.dmi' + icon_state = "map_dp_vent" //node2 is output port //node1 is input port @@ -10,15 +10,6 @@ level = 1 - high_volume - name = "Large Dual Port Air Vent" - - New() - ..() - - air1.volume = 1000 - air2.volume = 1000 - var/on = 0 var/pump_direction = 1 //0 = siphoning, 1 = releasing @@ -26,174 +17,199 @@ var/input_pressure_min = 0 var/output_pressure_max = 0 + var/frequency = 0 + var/id = null + var/datum/radio_frequency/radio_connection + var/pressure_checks = 1 //1: Do not pass external_pressure_bound //2: Do not pass input_pressure_min //4: Do not pass output_pressure_max +/obj/machinery/atmospherics/binary/dp_vent_pump/New() + ..() + icon = null + +/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume + name = "Large Dual Port Air Vent" + +/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume/New() + ..() + air1.volume = 1000 + air2.volume = 1000 + +/obj/machinery/atmospherics/binary/dp_vent_pump/update_icon(var/safety = 0) + if(!check_icon_cache()) + return + + overlays.Cut() + + var/vent_icon = "vent" + + var/turf/T = get_turf(src) + if(!istype(T)) + return + + if(T.intact && node1 && node2 && node1.level == 1 && node2.level == 1 && istype(node1, /obj/machinery/atmospherics/pipe) && istype(node2, /obj/machinery/atmospherics/pipe)) + vent_icon += "h" + + if(!powered()) + vent_icon += "off" + else + vent_icon += "[on ? "[pump_direction ? "out" : "in"]" : "off"]" + + overlays += icon_manager.get_atmos_icon("device", , , vent_icon) + +/obj/machinery/atmospherics/binary/dp_vent_pump/update_underlays() + if(..()) + underlays.Cut() + var/turf/T = get_turf(src) + if(!istype(T)) + return + if(T.intact && node1 && node2 && node1.level == 1 && node2.level == 1 && istype(node1, /obj/machinery/atmospherics/pipe) && istype(node2, /obj/machinery/atmospherics/pipe)) + return + else + add_underlay(T, node1, turn(dir, -180)) + add_underlay(T, node2, dir) + +/obj/machinery/atmospherics/binary/dp_vent_pump/hide(var/i) update_icon() - if(on) - if(pump_direction) - icon_state = "[level == 1 && istype(loc, /turf/simulated) ? "h" : "" ]out" - else - icon_state = "[level == 1 && istype(loc, /turf/simulated) ? "h" : "" ]in" - else - icon_state = "[level == 1 && istype(loc, /turf/simulated) ? "h" : "" ]off" - on = 0 + update_underlays() - return +/obj/machinery/atmospherics/binary/dp_vent_pump/process() + ..() - hide(var/i) //to make the little pipe section invisible, the icon changes. - if(on) - if(pump_direction) - icon_state = "[i == 1 && istype(loc, /turf/simulated) ? "h" : "" ]out" - else - icon_state = "[i == 1 && istype(loc, /turf/simulated) ? "h" : "" ]in" - else - icon_state = "[i == 1 && istype(loc, /turf/simulated) ? "h" : "" ]off" - on = 0 - return + if(!on) + return 0 - process() - ..() + var/datum/gas_mixture/environment = loc.return_air() + var/environment_pressure = environment.return_pressure() - if(!on) - return 0 + if(pump_direction) //input -> external + var/pressure_delta = 10000 - var/datum/gas_mixture/environment = loc.return_air() - var/environment_pressure = environment.return_pressure() + if(pressure_checks&1) + pressure_delta = min(pressure_delta, (external_pressure_bound - environment_pressure)) + if(pressure_checks&2) + pressure_delta = min(pressure_delta, (air1.return_pressure() - input_pressure_min)) - if(pump_direction) //input -> external - var/pressure_delta = 10000 + if(pressure_delta > 0) + if(air1.temperature > 0) + var/transfer_moles = pressure_delta*environment.volume/(air1.temperature * R_IDEAL_GAS_EQUATION) - if(pressure_checks&1) - pressure_delta = min(pressure_delta, (external_pressure_bound - environment_pressure)) - if(pressure_checks&2) - pressure_delta = min(pressure_delta, (air1.return_pressure() - input_pressure_min)) + var/datum/gas_mixture/removed = air1.remove(transfer_moles) - if(pressure_delta > 0) - if(air1.temperature > 0) - var/transfer_moles = pressure_delta*environment.volume/(air1.temperature * R_IDEAL_GAS_EQUATION) + loc.assume_air(removed) - var/datum/gas_mixture/removed = air1.remove(transfer_moles) + if(network1) + network1.update = 1 - loc.assume_air(removed) + else //external -> output + var/pressure_delta = 10000 - if(network1) - network1.update = 1 + if(pressure_checks&1) + pressure_delta = min(pressure_delta, (environment_pressure - external_pressure_bound)) + if(pressure_checks&4) + pressure_delta = min(pressure_delta, (output_pressure_max - air2.return_pressure())) - else //external -> output - var/pressure_delta = 10000 + if(pressure_delta > 0) + if(environment.temperature > 0) + var/transfer_moles = pressure_delta*air2.volume/(environment.temperature * R_IDEAL_GAS_EQUATION) - if(pressure_checks&1) - pressure_delta = min(pressure_delta, (environment_pressure - external_pressure_bound)) - if(pressure_checks&4) - pressure_delta = min(pressure_delta, (output_pressure_max - air2.return_pressure())) + var/datum/gas_mixture/removed = loc.remove_air(transfer_moles) - if(pressure_delta > 0) - if(environment.temperature > 0) - var/transfer_moles = pressure_delta*air2.volume/(environment.temperature * R_IDEAL_GAS_EQUATION) + air2.merge(removed) - var/datum/gas_mixture/removed = loc.remove_air(transfer_moles) + if(network2) + network2.update = 1 - air2.merge(removed) - - if(network2) - network2.update = 1 - - return 1 + return 1 //Radio remote control - proc - set_frequency(new_frequency) - radio_controller.remove_object(src, frequency) - frequency = new_frequency - if(frequency) - radio_connection = radio_controller.add_object(src, frequency, filter = RADIO_ATMOSIA) +/obj/machinery/atmospherics/binary/dp_vent_pump/proc/set_frequency(new_frequency) + radio_controller.remove_object(src, frequency) + frequency = new_frequency + if(frequency) + radio_connection = radio_controller.add_object(src, frequency, filter = RADIO_ATMOSIA) - broadcast_status() - if(!radio_connection) - return 0 +/obj/machinery/atmospherics/binary/dp_vent_pump/proc/broadcast_status() + if(!radio_connection) + return 0 - var/datum/signal/signal = new - signal.transmission_method = 1 //radio signal - signal.source = src + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src - signal.data = list( - "tag" = id, - "device" = "ADVP", - "power" = on, - "direction" = pump_direction?("release"):("siphon"), - "checks" = pressure_checks, - "input" = input_pressure_min, - "output" = output_pressure_max, - "external" = external_pressure_bound, - "sigtype" = "status" - ) - radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) + signal.data = list( + "tag" = id, + "device" = "ADVP", + "power" = on, + "direction" = pump_direction?("release"):("siphon"), + "checks" = pressure_checks, + "input" = input_pressure_min, + "output" = output_pressure_max, + "external" = external_pressure_bound, + "sigtype" = "status" + ) + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) - return 1 + return 1 - var/frequency = 0 - var/id = null - var/datum/radio_frequency/radio_connection +/obj/machinery/atmospherics/binary/dp_vent_pump/initialize() + ..() + if(frequency) + set_frequency(frequency) - initialize() - ..() - if(frequency) - set_frequency(frequency) +/obj/machinery/atmospherics/binary/dp_vent_pump/receive_signal(datum/signal/signal) + if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) + return 0 + if(signal.data["power"]) + on = text2num(signal.data["power"]) - receive_signal(datum/signal/signal) + if(signal.data["power_toggle"]) + on = !on - if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) - return 0 - if("power" in signal.data) - on = text2num(signal.data["power"]) + if(signal.data["direction"]) + pump_direction = text2num(signal.data["direction"]) - if("power_toggle" in signal.data) - on = !on + if(signal.data["checks"]) + pressure_checks = text2num(signal.data["checks"]) - if("direction" in signal.data) - pump_direction = text2num(signal.data["direction"]) + if(signal.data["purge"]) + pressure_checks &= ~1 + pump_direction = 0 - if("checks" in signal.data) - pressure_checks = text2num(signal.data["checks"]) + if(signal.data["stabalize"]) + pressure_checks |= 1 + pump_direction = 1 - if("purge" in signal.data) - pressure_checks &= ~1 - pump_direction = 0 + if(signal.data["set_input_pressure"]) + input_pressure_min = between( + 0, + text2num(signal.data["set_input_pressure"]), + ONE_ATMOSPHERE*50 + ) - if("stabalize" in signal.data) - pressure_checks |= 1 - pump_direction = 1 + if(signal.data["set_output_pressure"]) + output_pressure_max = between( + 0, + text2num(signal.data["set_output_pressure"]), + ONE_ATMOSPHERE*50 + ) - if("set_input_pressure" in signal.data) - input_pressure_min = between( - 0, - text2num(signal.data["set_input_pressure"]), - ONE_ATMOSPHERE*50 - ) + if(signal.data["set_external_pressure"]) + external_pressure_bound = between( + 0, + text2num(signal.data["set_external_pressure"]), + ONE_ATMOSPHERE*50 + ) - if("set_output_pressure" in signal.data) - output_pressure_max = between( - 0, - text2num(signal.data["set_output_pressure"]), - ONE_ATMOSPHERE*50 - ) - - if("set_external_pressure" in signal.data) - external_pressure_bound = between( - 0, - text2num(signal.data["set_external_pressure"]), - ONE_ATMOSPHERE*50 - ) - - if("status" in signal.data) - spawn(2) - broadcast_status() - return //do not update_icon - //if(signal.data["tag"]) + if(signal.data["status"]) spawn(2) broadcast_status() - update_icon() \ No newline at end of file + return //do not update_icon + + spawn(2) + broadcast_status() + update_icon() \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm index a126928e2da..4766883a645 100644 --- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm +++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm @@ -1,8 +1,9 @@ -obj/machinery/atmospherics/binary/passive_gate +/obj/machinery/atmospherics/binary/passive_gate //Tries to achieve target pressure at output (like a normal pump) except // Uses no power but can not transfer gases from a low pressure area to a high pressure area - icon = 'icons/obj/atmospherics/passive_gate.dmi' - icon_state = "intact_off" + icon = 'icons/atmos/passive_gate.dmi' + icon_state = "map" + level = 1 name = "Passive gate" desc = "A one-way air valve that does not require power" @@ -14,175 +15,161 @@ obj/machinery/atmospherics/binary/passive_gate var/id = null var/datum/radio_frequency/radio_connection - update_icon() - if(stat & NOPOWER) - icon_state = "intact_off" - else if(node1 && node2) - icon_state = "intact_[on?("on"):("off")]" - else - if(node1) - icon_state = "exposed_1_off" - else if(node2) - icon_state = "exposed_2_off" - else - icon_state = "exposed_3_off" - return +/obj/machinery/atmospherics/binary/passive_gate/update_icon() + icon_state = "[on ? "on" : "off"]" - process() - ..() - if(!on) - return 0 +/obj/machinery/atmospherics/binary/passive_gate/update_underlays() + if(..()) + underlays.Cut() + var/turf/T = get_turf(src) + if(!istype(T)) + return + add_underlay(T, node1, turn(dir, 180)) + add_underlay(T, node2, dir) - var/output_starting_pressure = air2.return_pressure() - var/input_starting_pressure = air1.return_pressure() +/obj/machinery/atmospherics/binary/passive_gate/hide(var/i) + update_underlays() - if(output_starting_pressure >= min(target_pressure,input_starting_pressure-10)) - //No need to pump gas if target is already reached or input pressure is too low - //Need at least 10 KPa difference to overcome friction in the mechanism - return 1 +/obj/machinery/atmospherics/binary/passive_gate/process() + ..() + if(!on) + return 0 - //Calculate necessary moles to transfer using PV = nRT - if((air1.total_moles() > 0) && (air1.temperature>0)) - var/pressure_delta = min(target_pressure - output_starting_pressure, (input_starting_pressure - output_starting_pressure)/2) - //Can not have a pressure delta that would cause output_pressure > input_pressure + var/output_starting_pressure = air2.return_pressure() + var/input_starting_pressure = air1.return_pressure() - var/transfer_moles = pressure_delta*air2.volume/(air1.temperature * R_IDEAL_GAS_EQUATION) + if(output_starting_pressure >= min(target_pressure,input_starting_pressure-10)) + //No need to pump gas if target is already reached or input pressure is too low + //Need at least 10 KPa difference to overcome friction in the mechanism + return 1 - //Actually transfer the gas - var/datum/gas_mixture/removed = air1.remove(transfer_moles) - air2.merge(removed) + //Calculate necessary moles to transfer using PV = nRT + if((air1.total_moles() > 0) && (air1.temperature>0)) + var/pressure_delta = min(target_pressure - output_starting_pressure, (input_starting_pressure - output_starting_pressure)/2) + //Can not have a pressure delta that would cause output_pressure > input_pressure - if(network1) - network1.update = 1 + var/transfer_moles = pressure_delta*air2.volume/(air1.temperature * R_IDEAL_GAS_EQUATION) - if(network2) - network2.update = 1 + //Actually transfer the gas + var/datum/gas_mixture/removed = air1.remove(transfer_moles) + air2.merge(removed) + if(network1) + network1.update = 1 - //Radio remote control + if(network2) + network2.update = 1 - proc - set_frequency(new_frequency) - radio_controller.remove_object(src, frequency) - frequency = new_frequency - if(frequency) - radio_connection = radio_controller.add_object(src, frequency, filter = RADIO_ATMOSIA) +//Radio remote control - broadcast_status() - if(!radio_connection) - return 0 +/obj/machinery/atmospherics/binary/passive_gate/proc/set_frequency(new_frequency) + radio_controller.remove_object(src, frequency) + frequency = new_frequency + if(frequency) + radio_connection = radio_controller.add_object(src, frequency, filter = RADIO_ATMOSIA) - var/datum/signal/signal = new - signal.transmission_method = 1 //radio signal - signal.source = src +/obj/machinery/atmospherics/binary/passive_gate/proc/broadcast_status() + if(!radio_connection) + return 0 - signal.data = list( - "tag" = id, - "device" = "AGP", - "power" = on, - "target_output" = target_pressure, - "sigtype" = "status" - ) + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src - radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) + signal.data = list( + "tag" = id, + "device" = "AGP", + "power" = on, + "target_output" = target_pressure, + "sigtype" = "status" + ) - return 1 + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) - interact(mob/user as mob) - var/dat = {"Power: [on?"On":"Off"]
- Desirable output pressure: - [round(target_pressure,0.1)]kPa | Change - "} + return 1 - user << browse("[src.name] control[dat]", "window=atmo_pump") - onclose(user, "atmo_pump") +/obj/machinery/atmospherics/binary/passive_gate/interact(mob/user as mob) + var/dat = {"Power: [on?"On":"Off"]
+ Desirable output pressure: + [round(target_pressure,0.1)]kPa | Change + "} - initialize() - ..() - if(frequency) - set_frequency(frequency) + user << browse("[src.name] control[dat]", "window=atmo_pump") + onclose(user, "atmo_pump") - receive_signal(datum/signal/signal) - if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) - return 0 +/obj/machinery/atmospherics/binary/passive_gate/initialize() + ..() + if(frequency) + set_frequency(frequency) - if("power" in signal.data) - on = text2num(signal.data["power"]) +/obj/machinery/atmospherics/binary/passive_gate/receive_signal(datum/signal/signal) + if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) + return 0 - if("power_toggle" in signal.data) - on = !on + if("power" in signal.data) + on = text2num(signal.data["power"]) - if("set_output_pressure" in signal.data) - target_pressure = between( - 0, - text2num(signal.data["set_output_pressure"]), - ONE_ATMOSPHERE*50 - ) + if("power_toggle" in signal.data) + on = !on - if("status" in signal.data) - spawn(2) - broadcast_status() - return //do not update_icon + if("set_output_pressure" in signal.data) + target_pressure = between( + 0, + text2num(signal.data["set_output_pressure"]), + ONE_ATMOSPHERE*50 + ) + if("status" in signal.data) spawn(2) broadcast_status() - update_icon() + return //do not update_icon + + spawn(2) + broadcast_status() + update_icon() + return + +/obj/machinery/atmospherics/binary/passive_gate/attack_hand(user as mob) + if(..()) return - - - - attack_hand(user as mob) - if(..()) - return - src.add_fingerprint(usr) - if(!src.allowed(user)) - user << "\red Access denied." - return - usr.set_machine(src) - interact(user) + src.add_fingerprint(usr) + if(!src.allowed(user)) + user << "\red Access denied." return + usr.set_machine(src) + interact(user) + return - Topic(href,href_list) - if(..()) return - if(href_list["power"]) - on = !on - if(href_list["set_press"]) - var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",src.target_pressure) as num - src.target_pressure = max(0, min(4500, new_pressure)) - usr.set_machine(src) - src.update_icon() - src.updateUsrDialog() - return - - power_change() - ..() - update_icon() - - - - attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) - if (!istype(W, /obj/item/weapon/wrench)) - return ..() - if (on) - user << "\red You cannot unwrench this [src], turn it off first." - return 1 - var/turf/T = src.loc - if (level==1 && isturf(T) && T.intact) - user << "\red You must remove the plating first." - return 1 - var/datum/gas_mixture/int_air = return_air() - var/datum/gas_mixture/env_air = loc.return_air() - if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) - user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." - add_fingerprint(user) - return 1 - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - user << "\blue You begin to unfasten \the [src]..." - if (do_after(user, 40)) - user.visible_message( \ - "[user] unfastens \the [src].", \ - "\blue You have unfastened \the [src].", \ - "You hear ratchet.") - new /obj/item/pipe(loc, make_from=src) - del(src) +/obj/machinery/atmospherics/binary/passive_gate/Topic(href,href_list) + if(..()) return + if(href_list["power"]) + on = !on + if(href_list["set_press"]) + var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",src.target_pressure) as num + src.target_pressure = max(0, min(4500, new_pressure)) + usr.set_machine(src) + src.update_icon() + src.updateUsrDialog() + return +/obj/machinery/atmospherics/binary/passive_gate/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) + if (!istype(W, /obj/item/weapon/wrench)) + return ..() + if (on) + user << "\red You cannot unwrench this [src], turn it off first." + return 1 + var/datum/gas_mixture/int_air = return_air() + var/datum/gas_mixture/env_air = loc.return_air() + if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) + user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." + add_fingerprint(user) + return 1 + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user << "\blue You begin to unfasten \the [src]..." + if (do_after(user, 40)) + user.visible_message( \ + "[user] unfastens \the [src].", \ + "\blue You have unfastened \the [src].", \ + "You hear ratchet.") + new /obj/item/pipe(loc, make_from=src) + del(src) \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm index 0a0a56fb747..944ed53de16 100644 --- a/code/ATMOSPHERICS/components/binary_devices/pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm @@ -12,9 +12,10 @@ Thus, the two variables affect pump operation are set in New(): but overall network volume is also increased as this increases... */ -obj/machinery/atmospherics/binary/pump - icon = 'icons/obj/atmospherics/pump.dmi' - icon_state = "intact_off" +/obj/machinery/atmospherics/binary/pump + icon = 'icons/atmos/pump.dmi' + icon_state = "map_off" + level = 1 name = "Gas pump" desc = "A pump" @@ -26,180 +27,181 @@ obj/machinery/atmospherics/binary/pump var/id = null var/datum/radio_frequency/radio_connection - highcap - name = "High capacity gas pump" - desc = "A high capacity pump" +/obj/machinery/atmospherics/binary/pump/highcap + name = "High capacity gas pump" + desc = "A high capacity pump" - target_pressure = 15000000 + target_pressure = 15000000 - on - on = 1 - icon_state = "intact_on" +/obj/machinery/atmospherics/binary/pump/on + icon_state = "map_on" + on = 1 - update_icon() - if(stat & NOPOWER) - icon_state = "intact_off" - else if(node1 && node2) - icon_state = "intact_[on?("on"):("off")]" - else - if(node1) - icon_state = "exposed_1_off" - else if(node2) - icon_state = "exposed_2_off" - else - icon_state = "exposed_3_off" - return +/obj/machinery/atmospherics/binary/pump/update_icon() + if(!powered()) + icon_state = "off" + else + icon_state = "[on ? "on" : "off"]" - process() -// ..() - if(stat & (NOPOWER|BROKEN)) +/obj/machinery/atmospherics/binary/pump/update_underlays() + if(..()) + underlays.Cut() + var/turf/T = get_turf(src) + if(!istype(T)) return - if(!on) - return 0 + add_underlay(T, node1, turn(dir, -180)) + add_underlay(T, node2, dir) - var/output_starting_pressure = air2.return_pressure() +/obj/machinery/atmospherics/binary/pump/hide(var/i) + update_underlays() - if( (target_pressure - output_starting_pressure) < 0.01) - //No need to pump gas if target is already reached! - return 1 +/obj/machinery/atmospherics/binary/pump/process() +// ..() + if(stat & (NOPOWER|BROKEN)) + return + if(!on) + return 0 - //Calculate necessary moles to transfer using PV=nRT - if((air1.total_moles() > 0) && (air1.temperature>0)) - var/pressure_delta = target_pressure - output_starting_pressure - var/transfer_moles = pressure_delta*air2.volume/(air1.temperature * R_IDEAL_GAS_EQUATION) - - //Actually transfer the gas - var/datum/gas_mixture/removed = air1.remove(transfer_moles) - air2.merge(removed) - - if(network1) - network1.update = 1 - - if(network2) - network2.update = 1 + var/output_starting_pressure = air2.return_pressure() + if( (target_pressure - output_starting_pressure) < 0.01) + //No need to pump gas if target is already reached! return 1 - //Radio remote control + //Calculate necessary moles to transfer using PV=nRT + if((air1.total_moles() > 0) && (air1.temperature>0)) + var/pressure_delta = target_pressure - output_starting_pressure + var/transfer_moles = pressure_delta*air2.volume/(air1.temperature * R_IDEAL_GAS_EQUATION) - proc - set_frequency(new_frequency) - radio_controller.remove_object(src, frequency) - frequency = new_frequency - if(frequency) - radio_connection = radio_controller.add_object(src, frequency, filter = RADIO_ATMOSIA) + //Actually transfer the gas + var/datum/gas_mixture/removed = air1.remove(transfer_moles) + air2.merge(removed) - broadcast_status() - if(!radio_connection) - return 0 + if(network1) + network1.update = 1 - var/datum/signal/signal = new - signal.transmission_method = 1 //radio signal - signal.source = src + if(network2) + network2.update = 1 - signal.data = list( - "tag" = id, - "device" = "AGP", - "power" = on, - "target_output" = target_pressure, - "sigtype" = "status" - ) + return 1 - radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) +//Radio remote control - return 1 +/obj/machinery/atmospherics/binary/pump/proc/set_frequency(new_frequency) + radio_controller.remove_object(src, frequency) + frequency = new_frequency + if(frequency) + radio_connection = radio_controller.add_object(src, frequency, filter = RADIO_ATMOSIA) - interact(mob/user as mob) - var/dat = {"Power: [on?"On":"Off"]
- Desirable output pressure: - [round(target_pressure,0.1)]kPa | Change - "} +/obj/machinery/atmospherics/binary/pump/proc/broadcast_status() + if(!radio_connection) + return 0 - user << browse("[src.name] control[dat]", "window=atmo_pump") - onclose(user, "atmo_pump") + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src - initialize() - ..() - if(frequency) - set_frequency(frequency) + signal.data = list( + "tag" = id, + "device" = "AGP", + "power" = on, + "target_output" = target_pressure, + "sigtype" = "status" + ) - receive_signal(datum/signal/signal) - if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) - return 0 + radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) - if("power" in signal.data) - on = text2num(signal.data["power"]) + return 1 - if("power_toggle" in signal.data) - on = !on +/obj/machinery/atmospherics/binary/pump/interact(mob/user as mob) + var/dat = {"Power: [on?"On":"Off"]
+ Desirable output pressure: + [round(target_pressure,0.1)]kPa | Change + "} - if("set_output_pressure" in signal.data) - target_pressure = between( - 0, - text2num(signal.data["set_output_pressure"]), - ONE_ATMOSPHERE*50 - ) + user << browse("[src.name] control[dat]", "window=atmo_pump") + onclose(user, "atmo_pump") - if("status" in signal.data) - spawn(2) - broadcast_status() - return //do not update_icon +/obj/machinery/atmospherics/binary/pump/initialize() + ..() + if(frequency) + set_frequency(frequency) +/obj/machinery/atmospherics/binary/pump/receive_signal(datum/signal/signal) + if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) + return 0 + + if(signal.data["power"]) + on = text2num(signal.data["power"]) + + if(signal.data["power_toggle"]) + on = !on + + if(signal.data["set_output_pressure"]) + target_pressure = between( + 0, + text2num(signal.data["set_output_pressure"]), + ONE_ATMOSPHERE*50 + ) + + if(signal.data["status"]) spawn(2) broadcast_status() - update_icon() + return //do not update_icon + + spawn(2) + broadcast_status() + update_icon() + return + + +/obj/machinery/atmospherics/binary/pump/attack_hand(user as mob) + if(..()) return - - - attack_hand(user as mob) - if(..()) - return - src.add_fingerprint(usr) - if(!src.allowed(user)) - user << "\red Access denied." - return - usr.set_machine(src) - interact(user) + src.add_fingerprint(usr) + if(!src.allowed(user)) + user << "\red Access denied." return + usr.set_machine(src) + interact(user) + return - Topic(href,href_list) - if(..()) return - if(href_list["power"]) - on = !on - if(href_list["set_press"]) - var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",src.target_pressure) as num - src.target_pressure = max(0, min(4500, new_pressure)) - usr.set_machine(src) - src.update_icon() - src.updateUsrDialog() - return +/obj/machinery/atmospherics/binary/pump/Topic(href,href_list) + if(..()) return + if(href_list["power"]) + on = !on + if(href_list["set_press"]) + var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",src.target_pressure) as num + src.target_pressure = max(0, min(4500, new_pressure)) + usr.set_machine(src) + src.update_icon() + src.updateUsrDialog() + return - power_change() - ..() +/obj/machinery/atmospherics/binary/pump/power_change() + var/old_stat = stat + ..() + if(old_stat != stat) update_icon() - attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) - if (!istype(W, /obj/item/weapon/wrench)) - return ..() - if (!(stat & NOPOWER) && on) - user << "\red You cannot unwrench this [src], turn it off first." - return 1 - var/turf/T = src.loc - if (level==1 && isturf(T) && T.intact) - user << "\red You must remove the plating first." - return 1 - var/datum/gas_mixture/int_air = return_air() - var/datum/gas_mixture/env_air = loc.return_air() - if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) - user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." - add_fingerprint(user) - return 1 - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - user << "\blue You begin to unfasten \the [src]..." - if (do_after(user, 40)) - user.visible_message( \ - "[user] unfastens \the [src].", \ - "\blue You have unfastened \the [src].", \ - "You hear ratchet.") - new /obj/item/pipe(loc, make_from=src) - del(src) +/obj/machinery/atmospherics/binary/pump/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) + if (!istype(W, /obj/item/weapon/wrench)) + return ..() + if (!(stat & NOPOWER) && on) + user << "\red You cannot unwrench this [src], turn it off first." + return 1 + var/datum/gas_mixture/int_air = return_air() + var/datum/gas_mixture/env_air = loc.return_air() + if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) + user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." + add_fingerprint(user) + return 1 + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user << "\blue You begin to unfasten \the [src]..." + if (do_after(user, 40)) + user.visible_message( \ + "[user] unfastens \the [src].", \ + "\blue You have unfastened \the [src].", \ + "You hear ratchet.") + new /obj/item/pipe(loc, make_from=src) + del(src) \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm index e2dddfa97c1..65eaabe40ab 100644 --- a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm @@ -12,9 +12,10 @@ Thus, the two variables affect pump operation are set in New(): but overall network volume is also increased as this increases... */ -obj/machinery/atmospherics/binary/volume_pump - icon = 'icons/obj/atmospherics/volume_pump.dmi' - icon_state = "intact_off" +/obj/machinery/atmospherics/binary/volume_pump + icon = 'icons/atmos/volume_pump.dmi' + icon_state = "map_off" + level = 1 name = "Volumetric gas pump" desc = "A volumetric pump" @@ -26,174 +27,168 @@ obj/machinery/atmospherics/binary/volume_pump var/id = null var/datum/radio_frequency/radio_connection - on - on = 1 - icon_state = "intact_on" +/obj/machinery/atmospherics/binary/volume_pump/on + on = 1 + icon_state = "map_on" - update_icon() - if(stat & NOPOWER) - icon_state = "intact_off" - else if(node1 && node2) - icon_state = "intact_[on?("on"):("off")]" - else - if(node1) - icon_state = "exposed_1_off" - else if(node2) - icon_state = "exposed_2_off" - else - icon_state = "exposed_3_off" - return +/obj/machinery/atmospherics/binary/volume_pump/update_icon() + if(!powered()) + icon_state = "off" + else + icon_state = "[on ? "on" : "off"]" - process() -// ..() - if(stat & (NOPOWER|BROKEN)) +/obj/machinery/atmospherics/binary/volume_pump/update_underlays() + if(..()) + underlays.Cut() + var/turf/T = get_turf(src) + if(!istype(T)) return - if(!on) - return 0 + add_underlay(T, node1, turn(dir, -180)) + add_underlay(T, node2, dir) + +/obj/machinery/atmospherics/binary/volume_pump/hide(var/i) + update_underlays() + +/obj/machinery/atmospherics/binary/volume_pump/process() +// ..() + if(stat & (NOPOWER|BROKEN)) + return + if(!on) + return 0 // Pump mechanism just won't do anything if the pressure is too high/too low - var/input_starting_pressure = air1.return_pressure() - var/output_starting_pressure = air2.return_pressure() - - if((input_starting_pressure < 0.01) || (output_starting_pressure > 9000)) - return 1 - - var/transfer_ratio = max(1, transfer_rate/air1.volume) - - var/datum/gas_mixture/removed = air1.remove_ratio(transfer_ratio) - - air2.merge(removed) - - if(network1) - network1.update = 1 - - if(network2) - network2.update = 1 + var/input_starting_pressure = air1.return_pressure() + var/output_starting_pressure = air2.return_pressure() + if((input_starting_pressure < 0.01) || (output_starting_pressure > 9000)) return 1 - proc - set_frequency(new_frequency) - radio_controller.remove_object(src, frequency) - frequency = new_frequency - if(frequency) - radio_connection = radio_controller.add_object(src, frequency) + var/transfer_ratio = max(1, transfer_rate/air1.volume) - broadcast_status() - if(!radio_connection) - return 0 + var/datum/gas_mixture/removed = air1.remove_ratio(transfer_ratio) - var/datum/signal/signal = new - signal.transmission_method = 1 //radio signal - signal.source = src + air2.merge(removed) - signal.data = list( - "tag" = id, - "device" = "APV", - "power" = on, - "transfer_rate" = transfer_rate, - "sigtype" = "status" - ) - radio_connection.post_signal(src, signal) + if(network1) + network1.update = 1 - return 1 + if(network2) + network2.update = 1 - interact(mob/user as mob) - var/dat = {"Power: [on?"On":"Off"]
- Desirable output flow: - [round(transfer_rate,1)]l/s | Change - "} + return 1 - user << browse("[src.name] control[dat]", "window=atmo_pump") - onclose(user, "atmo_pump") +/obj/machinery/atmospherics/binary/volume_pump/proc/set_frequency(new_frequency) + radio_controller.remove_object(src, frequency) + frequency = new_frequency + if(frequency) + radio_connection = radio_controller.add_object(src, frequency) +/obj/machinery/atmospherics/binary/volume_pump/proc/broadcast_status() + if(!radio_connection) + return 0 + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src - initialize() - ..() + signal.data = list( + "tag" = id, + "device" = "APV", + "power" = on, + "transfer_rate" = transfer_rate, + "sigtype" = "status" + ) + radio_connection.post_signal(src, signal) - set_frequency(frequency) + return 1 - receive_signal(datum/signal/signal) - if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) - return 0 +/obj/machinery/atmospherics/binary/volume_pump/interact(mob/user as mob) + var/dat = {"Power: [on?"On":"Off"]
+ Desirable output flow: + [round(transfer_rate,1)]l/s | Change + "} - if("power" in signal.data) - on = text2num(signal.data["power"]) + user << browse("[src.name] control[dat]", "window=atmo_pump") + onclose(user, "atmo_pump") - if("power_toggle" in signal.data) - on = !on +/obj/machinery/atmospherics/binary/volume_pump/initialize() + ..() + set_frequency(frequency) - if("set_transfer_rate" in signal.data) - transfer_rate = between( - 0, - text2num(signal.data["set_transfer_rate"]), - air1.volume - ) +/obj/machinery/atmospherics/binary/volume_pump/receive_signal(datum/signal/signal) + if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) + return 0 - if("status" in signal.data) - spawn(2) - broadcast_status() - return //do not update_icon + if(signal.data["power"]) + on = text2num(signal.data["power"]) + if(signal.data["power_toggle"]) + on = !on + + if(signal.data["set_transfer_rate"]) + transfer_rate = between( + 0, + text2num(signal.data["set_transfer_rate"]), + air1.volume + ) + + if(signal.data["status"]) spawn(2) broadcast_status() + return //do not update_icon + + spawn(2) + broadcast_status() + update_icon() + +/obj/machinery/atmospherics/binary/volume_pump/attack_hand(user as mob) + if(..()) + return + src.add_fingerprint(usr) + if(!src.allowed(user)) + user << "\red Access denied." + return + usr.set_machine(src) + interact(user) + return + +/obj/machinery/atmospherics/binary/volume_pump/Topic(href,href_list) + if(..()) return + if(href_list["power"]) + on = !on + if(href_list["set_transfer_rate"]) + var/new_transfer_rate = input(usr,"Enter new output volume (0-200l/s)","Flow control",src.transfer_rate) as num + src.transfer_rate = max(0, min(200, new_transfer_rate)) + usr.set_machine(src) + src.update_icon() + src.updateUsrDialog() + return + +/obj/machinery/atmospherics/binary/volume_pump/power_change() + var/old_stat = stat + ..() + if(old_stat != stat) update_icon() - - attack_hand(user as mob) - if(..()) - return - src.add_fingerprint(usr) - if(!src.allowed(user)) - user << "\red Access denied." - return - usr.set_machine(src) - interact(user) - return - - Topic(href,href_list) - if(..()) return - if(href_list["power"]) - on = !on - if(href_list["set_transfer_rate"]) - var/new_transfer_rate = input(usr,"Enter new output volume (0-200l/s)","Flow control",src.transfer_rate) as num - src.transfer_rate = max(0, min(200, new_transfer_rate)) - usr.set_machine(src) - src.update_icon() - src.updateUsrDialog() - return - - power_change() - ..() - update_icon() - - - - attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) - if (!istype(W, /obj/item/weapon/wrench)) - return ..() - if (!(stat & NOPOWER) && on) - user << "\red You cannot unwrench this [src], turn it off first." - return 1 - var/turf/T = src.loc - if (level==1 && isturf(T) && T.intact) - user << "\red You must remove the plating first." - return 1 - var/datum/gas_mixture/int_air = return_air() - var/datum/gas_mixture/env_air = loc.return_air() - if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) - user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." - add_fingerprint(user) - return 1 - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - user << "\blue You begin to unfasten \the [src]..." - if (do_after(user, 40)) - user.visible_message( \ - "[user] unfastens \the [src].", \ - "\blue You have unfastened \the [src].", \ - "You hear ratchet.") - new /obj/item/pipe(loc, make_from=src) - del(src) - +/obj/machinery/atmospherics/binary/volume_pump/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) + if (!istype(W, /obj/item/weapon/wrench)) + return ..() + if (!(stat & NOPOWER) && on) + user << "\red You cannot unwrench this [src], turn it off first." + return 1 + var/datum/gas_mixture/int_air = return_air() + var/datum/gas_mixture/env_air = loc.return_air() + if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) + user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." + add_fingerprint(user) + return 1 + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user << "\blue You begin to unfasten \the [src]..." + if (do_after(user, 40)) + user.visible_message( \ + "[user] unfastens \the [src].", \ + "\blue You have unfastened \the [src].", \ + "You hear ratchet.") + new /obj/item/pipe(loc, make_from=src) + del(src) \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/omni_devices/_omni_extras.dm b/code/ATMOSPHERICS/components/omni_devices/_omni_extras.dm index ae827881ad5..b48c2f40333 100644 --- a/code/ATMOSPHERICS/components/omni_devices/_omni_extras.dm +++ b/code/ATMOSPHERICS/components/omni_devices/_omni_extras.dm @@ -11,33 +11,6 @@ #define ATM_P 6 //Phoron #define ATM_N2O 7 -//-------------------------------------------- -// Omni device cached icon list -//-------------------------------------------- -var/global/list/omni_icons[] - -/proc/gen_omni_icons() - omni_icons = new() - var/icon/omni = new('icons/obj/atmospherics/omni_devices.dmi') - - for(var/state in omni.IconStates()) - if(!state || findtext(state, "map")) - continue - - var/image/I = image('icons/obj/atmospherics/omni_devices.dmi', icon_state = state) - - if(findtext(state, "pipe")) - for(var/pipe_color in pipe_colors) - I = image('icons/obj/atmospherics/omni_devices.dmi', icon_state = state) - I.color = pipe_colors[pipe_color] - var/cache_name = state - if(I.color) - cache_name += "_[pipe_colors[pipe_color]]" - omni_icons[cache_name] = I - else - omni_icons[state] = I - - //-------------------------------------------- // Omni port datum // @@ -83,16 +56,6 @@ var/global/list/omni_icons[] // Need to find somewhere else for these //-------------------------------------------- -#define PIPE_COLOR_RED "#ff0000" -#define PIPE_COLOR_BLUE "#0000ff" -#define PIPE_COLOR_CYAN "#00ffff" -#define PIPE_COLOR_GREEN "#00ff00" -#define PIPE_COLOR_YELLOW "#ffcc00" -#define PIPE_COLOR_PURPLE "#5c1ec0" - -var/global/list/pipe_colors = list("grey" = null, "red" = PIPE_COLOR_RED, "blue" = PIPE_COLOR_BLUE, "cyan" = PIPE_COLOR_CYAN, "green" = PIPE_COLOR_GREEN, "yellow" = PIPE_COLOR_YELLOW, "purple" = PIPE_COLOR_PURPLE) - - //returns a text string based on the direction flag input // if capitalize is true, it will return the string capitalized // otherwise it will return the direction string in lower case diff --git a/code/ATMOSPHERICS/components/omni_devices/filter.dm b/code/ATMOSPHERICS/components/omni_devices/filter.dm index d52090b0c7c..1d1d335cb8a 100644 --- a/code/ATMOSPHERICS/components/omni_devices/filter.dm +++ b/code/ATMOSPHERICS/components/omni_devices/filter.dm @@ -112,14 +112,14 @@ return -/obj/machinery/atmospherics/omni/filter/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/atmospherics/omni/filter/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) usr.set_machine(src) var/list/data = new() data = build_uidata() - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "omni_filter.tmpl", "Omni Filter Control", 330, 330) diff --git a/code/ATMOSPHERICS/components/omni_devices/mixer.dm b/code/ATMOSPHERICS/components/omni_devices/mixer.dm index 64af4057b00..3b5dd1780fe 100644 --- a/code/ATMOSPHERICS/components/omni_devices/mixer.dm +++ b/code/ATMOSPHERICS/components/omni_devices/mixer.dm @@ -137,14 +137,14 @@ return 1 -/obj/machinery/atmospherics/omni/mixer/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/atmospherics/omni/mixer/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) usr.set_machine(src) var/list/data = new() data = build_uidata() - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "omni_mixer.tmpl", "Omni Mixer Control", 360, 330) diff --git a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm index 0e46546a20a..24c771f94da 100644 --- a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm +++ b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm @@ -3,10 +3,11 @@ //-------------------------------------------- /obj/machinery/atmospherics/omni name = "omni device" - icon = 'icons/obj/atmospherics/omni_devices.dmi' + icon = 'icons/atmos/omni_devices.dmi' icon_state = "base" use_power = 1 initialize_directions = 0 + level = 1 var/on = 0 var/configuring = 0 @@ -70,12 +71,6 @@ update_icon() /obj/machinery/atmospherics/omni/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) - if(istype(W, /obj/item/device/pipe_painter)) //for updating the color of connected pipe ends - for(var/datum/omni_port/P in ports) - P.update = 1 - update_ports() - return - if(!istype(W, /obj/item/weapon/wrench)) return ..() @@ -106,8 +101,8 @@ return /obj/machinery/atmospherics/omni/proc/build_icons() - if(!omni_icons) - gen_omni_icons() + if(!check_icon_cache()) + return var/core_icon = null if(istype(src, /obj/machinery/atmospherics/omni/mixer)) @@ -119,13 +114,16 @@ //directional icons are layers 1-4, with the core icon on layer 5 if(core_icon) - overlays_off[5] = omni_icons[core_icon] - overlays_on[5] = omni_icons[core_icon + "_glow"] + overlays_off[5] = icon_manager.get_atmos_icon("omni", , , core_icon) + overlays_on[5] = icon_manager.get_atmos_icon("omni", , , core_icon + "_glow") - overlays_error[1] = omni_icons[core_icon] - overlays_error[2] = omni_icons["error"] + overlays_error[1] = icon_manager.get_atmos_icon("omni", , , core_icon) + overlays_error[2] = icon_manager.get_atmos_icon("omni", , , "error") /obj/machinery/atmospherics/omni/proc/update_port_icons() + if(!check_icon_cache()) + return + for(var/datum/omni_port/P in ports) if(P.update) var/ref_layer = 0 @@ -145,11 +143,11 @@ var/list/port_icons = select_port_icons(P) if(port_icons) if(P.node) - underlays_current[ref_layer] = omni_icons[port_icons["pipe_icon"]] + underlays_current[ref_layer] = port_icons["pipe_icon"] else underlays_current[ref_layer] = null - overlays_off[ref_layer] = omni_icons[port_icons["off_icon"]] - overlays_on[ref_layer] = omni_icons[port_icons["on_icon"]] + overlays_off[ref_layer] = port_icons["off_icon"] + overlays_on[ref_layer] = port_icons["on_icon"] else underlays_current[ref_layer] = null overlays_off[ref_layer] = null @@ -175,14 +173,29 @@ if(ATM_O2 to ATM_N2O) ic_on += "_filter" ic_off += "_out" - - var/pipe_state = ic_dir + "_pipe" - if(P.node) - if(P.node.color) - pipe_state += "_[P.node.color]" + ic_on = icon_manager.get_atmos_icon("omni", , , ic_on) + ic_off = icon_manager.get_atmos_icon("omni", , , ic_off) + + var/pipe_state + var/turf/T = get_turf(src) + if(!istype(T)) + return + if(T.intact && istype(P.node, /obj/machinery/atmospherics/pipe) && P.node.level == 1 ) + pipe_state = icon_manager.get_atmos_icon("underlay_down", P.dir, color_cache_name(P.node)) + else + pipe_state = icon_manager.get_atmos_icon("underlay_intact", P.dir, color_cache_name(P.node)) + return list("on_icon" = ic_on, "off_icon" = ic_off, "pipe_icon" = pipe_state) +/obj/machinery/atmospherics/omni/update_underlays() + for(var/datum/omni_port/P in ports) + P.update = 1 + update_ports() + +/obj/machinery/atmospherics/omni/hide(var/i) + update_underlays() + /obj/machinery/atmospherics/omni/proc/update_ports() sort_ports() update_port_icons() diff --git a/code/ATMOSPHERICS/components/portables_connector.dm b/code/ATMOSPHERICS/components/portables_connector.dm index 9ecc82b3244..75d32718fa9 100644 --- a/code/ATMOSPHERICS/components/portables_connector.dm +++ b/code/ATMOSPHERICS/components/portables_connector.dm @@ -1,6 +1,6 @@ /obj/machinery/atmospherics/portables_connector - icon = 'icons/obj/atmospherics/portables_connector.dmi' - icon_state = "intact" + icon = 'icons/atmos/connector.dmi' + icon_state = "map_connector" name = "Connector Port" desc = "For connecting portables devices related to atmospherics control." @@ -16,142 +16,139 @@ var/on = 0 use_power = 0 - level = 0 + level = 1 - New() - initialize_directions = dir - ..() +/obj/machinery/atmospherics/portables_connector/New() + initialize_directions = dir + ..() - update_icon() - if(node) - icon_state = "[level == 1 && istype(loc, /turf/simulated) ? "h" : "" ]intact" - dir = get_dir(src, node) - else - icon_state = "exposed" +/obj/machinery/atmospherics/portables_connector/update_icon() + icon_state = "connector" +/obj/machinery/atmospherics/portables_connector/update_underlays() + if(..()) + underlays.Cut() + var/turf/T = get_turf(src) + if(!istype(T)) + return + add_underlay(T, node, dir) + +/obj/machinery/atmospherics/portables_connector/hide(var/i) + update_underlays() + +/obj/machinery/atmospherics/portables_connector/process() + ..() + if(!on) return - - hide(var/i) //to make the little pipe section invisible, the icon changes. - if(node) - icon_state = "[i == 1 && istype(loc, /turf/simulated) ? "h" : "" ]intact" - dir = get_dir(src, node) - else - icon_state = "exposed" - - process() - ..() - if(!on) - return - if(!connected_device) - on = 0 - return - if(network) - network.update = 1 - return 1 + if(!connected_device) + on = 0 + return + if(network) + network.update = 1 + return 1 // Housekeeping and pipe network stuff below - network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference) - if(reference == node) - network = new_network +/obj/machinery/atmospherics/portables_connector/network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference) + if(reference == node) + network = new_network - if(new_network.normal_members.Find(src)) - return 0 + if(new_network.normal_members.Find(src)) + return 0 - new_network.normal_members += src + new_network.normal_members += src - return null + return null - Del() - loc = null +/obj/machinery/atmospherics/portables_connector/Del() + loc = null - if(connected_device) - connected_device.disconnect() + if(connected_device) + connected_device.disconnect() - if(node) - node.disconnect(src) - del(network) + if(node) + node.disconnect(src) + del(network) - node = null + node = null - ..() + ..() - initialize() - if(node) return +/obj/machinery/atmospherics/portables_connector/initialize() + if(node) return - var/node_connect = dir + var/node_connect = dir - for(var/obj/machinery/atmospherics/target in get_step(src,node_connect)) - if(target.initialize_directions & get_dir(target,src)) - node = target - break + for(var/obj/machinery/atmospherics/target in get_step(src,node_connect)) + if(target.initialize_directions & get_dir(target,src)) + node = target + break - update_icon() + update_icon() + update_underlays() +/obj/machinery/atmospherics/portables_connector/build_network() + if(!network && node) + network = new /datum/pipe_network() + network.normal_members += src + network.build_network(node, src) + + +/obj/machinery/atmospherics/portables_connector/return_network(obj/machinery/atmospherics/reference) build_network() - if(!network && node) - network = new /datum/pipe_network() - network.normal_members += src - network.build_network(node, src) + + if(reference==node) + return network + + if(reference==connected_device) + return network + + return null + +/obj/machinery/atmospherics/portables_connector/reassign_network(datum/pipe_network/old_network, datum/pipe_network/new_network) + if(network == old_network) + network = new_network + + return 1 + +/obj/machinery/atmospherics/portables_connector/return_network_air(datum/pipe_network/reference) + var/list/results = list() + + if(connected_device) + results += connected_device.air_contents + + return results + +/obj/machinery/atmospherics/portables_connector/disconnect(obj/machinery/atmospherics/reference) + if(reference==node) + del(network) + node = null + + update_underlays() + + return null - return_network(obj/machinery/atmospherics/reference) - build_network() - - if(reference==node) - return network - - if(reference==connected_device) - return network - - return null - - reassign_network(datum/pipe_network/old_network, datum/pipe_network/new_network) - if(network == old_network) - network = new_network - +/obj/machinery/atmospherics/portables_connector/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) + if (!istype(W, /obj/item/weapon/wrench)) + return ..() + if (connected_device) + user << "\red You cannot unwrench this [src], dettach [connected_device] first." return 1 - - return_network_air(datum/pipe_network/reference) - var/list/results = list() - - if(connected_device) - results += connected_device.air_contents - - return results - - disconnect(obj/machinery/atmospherics/reference) - if(reference==node) - del(network) - node = null - - return null - - - attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) - if (!istype(W, /obj/item/weapon/wrench)) - return ..() - if (connected_device) - user << "\red You cannot unwrench this [src], dettach [connected_device] first." - return 1 - if (locate(/obj/machinery/portable_atmospherics, src.loc)) - return 1 - var/turf/T = src.loc - if (level==1 && isturf(T) && T.intact) - user << "\red You must remove the plating first." - return 1 - var/datum/gas_mixture/int_air = return_air() - var/datum/gas_mixture/env_air = loc.return_air() - if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) - user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." - add_fingerprint(user) - return 1 - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - user << "\blue You begin to unfasten \the [src]..." - if (do_after(user, 40)) - user.visible_message( \ - "[user] unfastens \the [src].", \ - "\blue You have unfastened \the [src].", \ - "You hear ratchet.") - new /obj/item/pipe(loc, make_from=src) - del(src) + if (locate(/obj/machinery/portable_atmospherics, src.loc)) + return 1 + var/datum/gas_mixture/int_air = return_air() + var/datum/gas_mixture/env_air = loc.return_air() + if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) + user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." + add_fingerprint(user) + return 1 + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user << "\blue You begin to unfasten \the [src]..." + if (do_after(user, 40)) + user.visible_message( \ + "[user] unfastens \the [src].", \ + "\blue You have unfastened \the [src].", \ + "You hear ratchet.") + new /obj/item/pipe(loc, make_from=src) + del(src) diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm index 16a863a2e1f..594190bdb8a 100755 --- a/code/ATMOSPHERICS/components/trinary_devices/filter.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm @@ -1,11 +1,11 @@ -obj/machinery/atmospherics/trinary/filter - icon = 'icons/obj/atmospherics/filter.dmi' - icon_state = "intact_off" +/obj/machinery/atmospherics/trinary/filter + icon = 'icons/atmos/filter.dmi' + icon_state = "map" density = 0 + level = 1 name = "Gas filter" - var/on = 0 var/temp = null // -- TLE var/target_pressure = ONE_ATMOSPHERE @@ -24,141 +24,159 @@ Filter types: var/frequency = 0 var/datum/radio_frequency/radio_connection - proc - set_frequency(new_frequency) - radio_controller.remove_object(src, frequency) - frequency = new_frequency - if(frequency) - radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA) +/obj/machinery/atmospherics/trinary/filter/proc/set_frequency(new_frequency) + radio_controller.remove_object(src, frequency) + frequency = new_frequency + if(frequency) + radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA) - New() - if(radio_controller) - initialize() - ..() +/* I don't know why this is here, but it's ugly, so I'm disabling it +/obj/machinery/atmospherics/trinary/filter/New() + ..() + if(radio_controller) + initialize() +*/ +/obj/machinery/atmospherics/trinary/filter/update_icon() + if(istype(src, /obj/machinery/atmospherics/trinary/filter/m_filter)) + icon_state = "m" + else + icon_state = "" + + if(!powered()) + icon_state += "off" + else if(node2 && node3 && node1) + icon_state += on ? "on" : "off" + else + icon_state += "off" + on = 0 - update_icon() - if(stat & NOPOWER) - icon_state = "intact_off" - else if(node2 && node3 && node1) - icon_state = "intact_[on?("on"):("off")]" +/obj/machinery/atmospherics/trinary/filter/update_underlays() + if(..()) + underlays.Cut() + var/turf/T = get_turf(src) + if(!istype(T)) + return + + add_underlay(T, node1, turn(dir, -180)) + + if(istype(src, /obj/machinery/atmospherics/trinary/filter/m_filter)) + add_underlay(T, node2, turn(dir, 90)) else - icon_state = "intact_off" - on = 0 + add_underlay(T, node2, turn(dir, -90)) - return + add_underlay(T, node3, dir) - power_change() - var/old_stat = stat - ..() - if(old_stat != stat) - update_icon() +/obj/machinery/atmospherics/trinary/filter/hide(var/i) + update_underlays() - process() - ..() - if(!on) - return 0 +/obj/machinery/atmospherics/trinary/filter/power_change() + var/old_stat = stat + ..() + if(old_stat != stat) + update_icon() - var/output_starting_pressure = air3.return_pressure() +/obj/machinery/atmospherics/trinary/filter/process() + ..() + if(!on) + return 0 - if(output_starting_pressure >= target_pressure || air2.return_pressure() >= target_pressure ) - //No need to mix if target is already full! - return 1 - - //Calculate necessary moles to transfer using PV=nRT - - var/pressure_delta = target_pressure - output_starting_pressure - var/transfer_moles - - if(air1.temperature > 0) - transfer_moles = pressure_delta*air3.volume/(air1.temperature * R_IDEAL_GAS_EQUATION) - - //Actually transfer the gas - - if(transfer_moles > 0) - var/datum/gas_mixture/removed = air1.remove(transfer_moles) - - if(!removed) - return - var/datum/gas_mixture/filtered_out = new - filtered_out.temperature = removed.temperature - - switch(filter_type) - if(0) //removing hydrocarbons - filtered_out.phoron = removed.phoron - removed.phoron = 0 - - if(removed.trace_gases.len>0) - for(var/datum/gas/trace_gas in removed.trace_gases) - if(istype(trace_gas, /datum/gas/oxygen_agent_b)) - removed.trace_gases -= trace_gas - filtered_out.trace_gases += trace_gas - - if(1) //removing O2 - filtered_out.oxygen = removed.oxygen - removed.oxygen = 0 - - if(2) //removing N2 - filtered_out.nitrogen = removed.nitrogen - removed.nitrogen = 0 - - if(3) //removing CO2 - filtered_out.carbon_dioxide = removed.carbon_dioxide - removed.carbon_dioxide = 0 - - if(4)//removing N2O - if(removed.trace_gases.len>0) - for(var/datum/gas/trace_gas in removed.trace_gases) - if(istype(trace_gas, /datum/gas/sleeping_agent)) - removed.trace_gases -= trace_gas - filtered_out.trace_gases += trace_gas - - else - filtered_out = null - - - air2.merge(filtered_out) - air3.merge(removed) - - if(network2) - network2.update = 1 - - if(network3) - network3.update = 1 - - if(network1) - network1.update = 1 + var/output_starting_pressure = air3.return_pressure() + if(output_starting_pressure >= target_pressure || air2.return_pressure() >= target_pressure ) + //No need to mix if target is already full! return 1 - initialize() - set_frequency(frequency) - ..() + //Calculate necessary moles to transfer using PV=nRT - attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) - if (!istype(W, /obj/item/weapon/wrench)) - return ..() - var/turf/T = src.loc - if (level==1 && isturf(T) && T.intact) - user << "\red You must remove the plating first." - return 1 - var/datum/gas_mixture/int_air = return_air() - var/datum/gas_mixture/env_air = loc.return_air() - if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) - user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." - add_fingerprint(user) - return 1 - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - user << "\blue You begin to unfasten \the [src]..." - if (do_after(user, 40)) - user.visible_message( \ - "[user] unfastens \the [src].", \ - "\blue You have unfastened \the [src].", \ - "You hear ratchet.") - new /obj/item/pipe(loc, make_from=src) - del(src) + var/pressure_delta = target_pressure - output_starting_pressure + var/transfer_moles + + if(air1.temperature > 0) + transfer_moles = pressure_delta*air3.volume/(air1.temperature * R_IDEAL_GAS_EQUATION) + + //Actually transfer the gas + + if(transfer_moles > 0) + var/datum/gas_mixture/removed = air1.remove(transfer_moles) + + if(!removed) + return + var/datum/gas_mixture/filtered_out = new + filtered_out.temperature = removed.temperature + + switch(filter_type) + if(0) //removing hydrocarbons + filtered_out.phoron = removed.phoron + removed.phoron = 0 + + if(removed.trace_gases.len>0) + for(var/datum/gas/trace_gas in removed.trace_gases) + if(istype(trace_gas, /datum/gas/oxygen_agent_b)) + removed.trace_gases -= trace_gas + filtered_out.trace_gases += trace_gas + + if(1) //removing O2 + filtered_out.oxygen = removed.oxygen + removed.oxygen = 0 + + if(2) //removing N2 + filtered_out.nitrogen = removed.nitrogen + removed.nitrogen = 0 + + if(3) //removing CO2 + filtered_out.carbon_dioxide = removed.carbon_dioxide + removed.carbon_dioxide = 0 + + if(4)//removing N2O + if(removed.trace_gases.len>0) + for(var/datum/gas/trace_gas in removed.trace_gases) + if(istype(trace_gas, /datum/gas/sleeping_agent)) + removed.trace_gases -= trace_gas + filtered_out.trace_gases += trace_gas + + else + filtered_out = null -obj/machinery/atmospherics/trinary/filter/attack_hand(user as mob) // -- TLE + air2.merge(filtered_out) + air3.merge(removed) + + if(network2) + network2.update = 1 + + if(network3) + network3.update = 1 + + if(network1) + network1.update = 1 + + return 1 + +/obj/machinery/atmospherics/trinary/filter/initialize() + set_frequency(frequency) + ..() + +/obj/machinery/atmospherics/trinary/filter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) + if (!istype(W, /obj/item/weapon/wrench)) + return ..() + var/datum/gas_mixture/int_air = return_air() + var/datum/gas_mixture/env_air = loc.return_air() + if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) + user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." + add_fingerprint(user) + return 1 + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user << "\blue You begin to unfasten \the [src]..." + if (do_after(user, 40)) + user.visible_message( \ + "[user] unfastens \the [src].", \ + "\blue You have unfastened \the [src].", \ + "You hear ratchet.") + new /obj/item/pipe(loc, make_from=src) + del(src) + + +/obj/machinery/atmospherics/trinary/filter/attack_hand(user as mob) // -- TLE if(..()) return @@ -211,7 +229,7 @@ obj/machinery/atmospherics/trinary/filter/attack_hand(user as mob) // -- TLE onclose(user, "atmo_filter") return -obj/machinery/atmospherics/trinary/filter/Topic(href, href_list) // -- TLE +/obj/machinery/atmospherics/trinary/filter/Topic(href, href_list) // -- TLE if(..()) return usr.set_machine(src) @@ -234,9 +252,8 @@ obj/machinery/atmospherics/trinary/filter/Topic(href, href_list) // -- TLE */ return -obj/machinery/atmospherics/trinary/filter/m_filter - icon = 'icons/obj/atmospherics/m_filter.dmi' - icon_state = "intact_off" +/obj/machinery/atmospherics/trinary/filter/m_filter + icon_state = "mmap" dir = SOUTH initialize_directions = SOUTH|NORTH|EAST @@ -253,7 +270,9 @@ obj/machinery/atmospherics/trinary/filter/m_filter/New() if(WEST) initialize_directions = WEST|SOUTH|EAST -obj/machinery/atmospherics/trinary/filter/m_filter/initialize() +/obj/machinery/atmospherics/trinary/filter/m_filter/initialize() + set_frequency(frequency) + if(node1 && node2 && node3) return var/node1_connect = turn(dir, -180) @@ -276,3 +295,4 @@ obj/machinery/atmospherics/trinary/filter/m_filter/initialize() break update_icon() + update_underlays() \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm index 4d94acbfba3..228be72020d 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm @@ -1,169 +1,190 @@ -obj/machinery/atmospherics/trinary/mixer - icon = 'icons/obj/atmospherics/mixer.dmi' - icon_state = "intact_off" +/obj/machinery/atmospherics/trinary/mixer + icon = 'icons/atmos/mixer.dmi' + icon_state = "map" density = 0 + level = 1 name = "Gas mixer" - var/on = 0 - var/target_pressure = ONE_ATMOSPHERE var/node1_concentration = 0.5 var/node2_concentration = 0.5 //node 3 is the outlet, nodes 1 & 2 are intakes - update_icon() - if(stat & NOPOWER) - icon_state = "intact_off" - else if(node2 && node3 && node1) - icon_state = "intact_[on?("on"):("off")]" +/obj/machinery/atmospherics/trinary/mixer/update_icon(var/safety = 0) + if(istype(src, /obj/machinery/atmospherics/trinary/mixer/m_mixer)) + icon_state = "m" + else if(istype(src, /obj/machinery/atmospherics/trinary/mixer/t_mixer)) + icon_state = "t" + else + icon_state = "" + + if(!powered()) + icon_state += "off" + else if(node2 && node3 && node1) + icon_state += on ? "on" : "off" + else + icon_state += "off" + on = 0 + +/obj/machinery/atmospherics/trinary/mixer/update_underlays() + if(..()) + underlays.Cut() + var/turf/T = get_turf(src) + if(!istype(T)) + return + + if(istype(src, /obj/machinery/atmospherics/trinary/mixer/t_mixer)) + add_underlay(T, node1, turn(dir, -90)) else - icon_state = "intact_off" - on = 0 + add_underlay(T, node1, turn(dir, -180)) - return + if(istype(src, /obj/machinery/atmospherics/trinary/mixer/m_mixer) || istype(src, /obj/machinery/atmospherics/trinary/mixer/t_mixer)) + add_underlay(T, node2, turn(dir, 90)) + else + add_underlay(T, node2, turn(dir, -90)) - power_change() - var/old_stat = stat - ..() - if(old_stat != stat) - update_icon() + add_underlay(T, node3, dir) - New() - ..() - air3.volume = 300 +/obj/machinery/atmospherics/trinary/mixer/hide(var/i) + update_underlays() - process() - ..() - if(!on) - return 0 +/obj/machinery/atmospherics/trinary/mixer/power_change() + var/old_stat = stat + ..() + if(old_stat != stat) + update_icon() - var/output_starting_pressure = air3.return_pressure() +/obj/machinery/atmospherics/trinary/mixer/New() + ..() + air3.volume = 300 - if(output_starting_pressure >= target_pressure) - //No need to mix if target is already full! - return 1 +/obj/machinery/atmospherics/trinary/mixer/process() + ..() + if(!on) + return 0 - //Calculate necessary moles to transfer using PV=nRT - - var/pressure_delta = target_pressure - output_starting_pressure - var/transfer_moles1 = 0 - var/transfer_moles2 = 0 - - if(air1.temperature > 0) - transfer_moles1 = (node1_concentration*pressure_delta)*air3.volume/(air1.temperature * R_IDEAL_GAS_EQUATION) - - if(air2.temperature > 0) - transfer_moles2 = (node2_concentration*pressure_delta)*air3.volume/(air2.temperature * R_IDEAL_GAS_EQUATION) - - var/air1_moles = air1.total_moles() - var/air2_moles = air2.total_moles() - - if((air1_moles < transfer_moles1) || (air2_moles < transfer_moles2)) - if(!transfer_moles1 || !transfer_moles2) return - var/ratio = min(air1_moles/transfer_moles1, air2_moles/transfer_moles2) - - transfer_moles1 *= ratio - transfer_moles2 *= ratio - - //Actually transfer the gas - - if(transfer_moles1 > 0) - var/datum/gas_mixture/removed1 = air1.remove(transfer_moles1) - air3.merge(removed1) - - if(transfer_moles2 > 0) - var/datum/gas_mixture/removed2 = air2.remove(transfer_moles2) - air3.merge(removed2) - - if(network1 && transfer_moles1) - network1.update = 1 - - if(network2 && transfer_moles2) - network2.update = 1 - - if(network3) - network3.update = 1 + var/output_starting_pressure = air3.return_pressure() + if(output_starting_pressure >= target_pressure) + //No need to mix if target is already full! return 1 - attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) - if (!istype(W, /obj/item/weapon/wrench)) - return ..() - var/turf/T = src.loc - if (level==1 && isturf(T) && T.intact) - user << "\red You must remove the plating first." - return 1 - var/datum/gas_mixture/int_air = return_air() - var/datum/gas_mixture/env_air = loc.return_air() - if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) - user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." - add_fingerprint(user) - return 1 - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - user << "\blue You begin to unfasten \the [src]..." - if (do_after(user, 40)) - user.visible_message( \ - "[user] unfastens \the [src].", \ - "\blue You have unfastened \the [src].", \ - "You hear ratchet.") - new /obj/item/pipe(loc, make_from=src) - del(src) + //Calculate necessary moles to transfer using PV=nRT - attack_hand(user as mob) - if(..()) - return - src.add_fingerprint(usr) - if(!src.allowed(user)) - user << "\red Access denied." - return - usr.set_machine(src) - var/dat = {"Power: [on?"On":"Off"]
- Desirable output pressure: - [target_pressure]kPa | Change -
- Node 1 Concentration: - - - - - [node1_concentration]([node1_concentration*100]%) - + - + -
- Node 2 Concentration: - - - - - [node2_concentration]([node2_concentration*100]%) - + - + - "} + var/pressure_delta = target_pressure - output_starting_pressure + var/transfer_moles1 = 0 + var/transfer_moles2 = 0 - user << browse("[src.name] control[dat]", "window=atmo_mixer") - onclose(user, "atmo_mixer") + if(air1.temperature > 0) + transfer_moles1 = (node1_concentration*pressure_delta)*air3.volume/(air1.temperature * R_IDEAL_GAS_EQUATION) + + if(air2.temperature > 0) + transfer_moles2 = (node2_concentration*pressure_delta)*air3.volume/(air2.temperature * R_IDEAL_GAS_EQUATION) + + var/air1_moles = air1.total_moles() + var/air2_moles = air2.total_moles() + + if((air1_moles < transfer_moles1) || (air2_moles < transfer_moles2)) + if(!transfer_moles1 || !transfer_moles2) return + var/ratio = min(air1_moles/transfer_moles1, air2_moles/transfer_moles2) + + transfer_moles1 *= ratio + transfer_moles2 *= ratio + + //Actually transfer the gas + + if(transfer_moles1 > 0) + var/datum/gas_mixture/removed1 = air1.remove(transfer_moles1) + air3.merge(removed1) + + if(transfer_moles2 > 0) + var/datum/gas_mixture/removed2 = air2.remove(transfer_moles2) + air3.merge(removed2) + + if(network1 && transfer_moles1) + network1.update = 1 + + if(network2 && transfer_moles2) + network2.update = 1 + + if(network3) + network3.update = 1 + + return 1 + +/obj/machinery/atmospherics/trinary/mixer/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) + if (!istype(W, /obj/item/weapon/wrench)) + return ..() + var/datum/gas_mixture/int_air = return_air() + var/datum/gas_mixture/env_air = loc.return_air() + if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) + user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." + add_fingerprint(user) + return 1 + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user << "\blue You begin to unfasten \the [src]..." + if (do_after(user, 40)) + user.visible_message( \ + "[user] unfastens \the [src].", \ + "\blue You have unfastened \the [src].", \ + "You hear ratchet.") + new /obj/item/pipe(loc, make_from=src) + del(src) + +/obj/machinery/atmospherics/trinary/mixer/attack_hand(user as mob) + if(..()) return - - Topic(href,href_list) - if(..()) return - if(href_list["power"]) - on = !on - if(href_list["set_press"]) - var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",src.target_pressure) as num - src.target_pressure = max(0, min(4500, new_pressure)) - if(href_list["node1_c"]) - var/value = text2num(href_list["node1_c"]) - src.node1_concentration = max(0, min(1, src.node1_concentration + value)) - src.node2_concentration = max(0, min(1, src.node2_concentration - value)) - if(href_list["node2_c"]) - var/value = text2num(href_list["node2_c"]) - src.node2_concentration = max(0, min(1, src.node2_concentration + value)) - src.node1_concentration = max(0, min(1, src.node1_concentration - value)) - src.update_icon() - src.updateUsrDialog() + src.add_fingerprint(usr) + if(!src.allowed(user)) + user << "\red Access denied." return + usr.set_machine(src) + var/dat = {"Power: [on?"On":"Off"]
+ Desirable output pressure: + [target_pressure]kPa | Change +
+ Node 1 Concentration: + - + - + [node1_concentration]([node1_concentration*100]%) + + + + +
+ Node 2 Concentration: + - + - + [node2_concentration]([node2_concentration*100]%) + + + + + "} + + user << browse("[src.name] control[dat]", "window=atmo_mixer") + onclose(user, "atmo_mixer") + return + +/obj/machinery/atmospherics/trinary/mixer/Topic(href,href_list) + if(..()) return + if(href_list["power"]) + on = !on + if(href_list["set_press"]) + var/new_pressure = input(usr,"Enter new output pressure (0-4500kPa)","Pressure control",src.target_pressure) as num + src.target_pressure = max(0, min(4500, new_pressure)) + if(href_list["node1_c"]) + var/value = text2num(href_list["node1_c"]) + src.node1_concentration = max(0, min(1, src.node1_concentration + value)) + src.node2_concentration = max(0, min(1, src.node2_concentration - value)) + if(href_list["node2_c"]) + var/value = text2num(href_list["node2_c"]) + src.node2_concentration = max(0, min(1, src.node2_concentration + value)) + src.node1_concentration = max(0, min(1, src.node1_concentration - value)) + src.update_icon() + src.updateUsrDialog() + return obj/machinery/atmospherics/trinary/mixer/t_mixer - icon = 'icons/obj/atmospherics/t_mixer.dmi' - icon_state = "intact_off" + icon_state = "tmap" dir = SOUTH initialize_directions = SOUTH|EAST|WEST @@ -205,10 +226,10 @@ obj/machinery/atmospherics/trinary/mixer/t_mixer/initialize() break update_icon() + update_underlays() obj/machinery/atmospherics/trinary/mixer/m_mixer - icon = 'icons/obj/atmospherics/m_mixer.dmi' - icon_state = "intact_off" + icon_state = "mmap" dir = SOUTH initialize_directions = SOUTH|NORTH|EAST @@ -249,4 +270,5 @@ obj/machinery/atmospherics/trinary/mixer/m_mixer/initialize() node3 = target break - update_icon() \ No newline at end of file + update_icon() + update_underlays() \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm index d3f1116a430..655e58ea384 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm @@ -2,6 +2,8 @@ obj/machinery/atmospherics/trinary dir = SOUTH initialize_directions = SOUTH|NORTH|WEST use_power = 1 + + var/on = 0 var/datum/gas_mixture/air1 var/datum/gas_mixture/air2 @@ -94,6 +96,7 @@ obj/machinery/atmospherics/trinary break update_icon() + update_underlays() build_network() if(!network1 && node1) @@ -160,5 +163,7 @@ obj/machinery/atmospherics/trinary else if(reference==node3) del(network3) node3 = null + + update_underlays() return null \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/tvalve.dm b/code/ATMOSPHERICS/components/tvalve.dm index 83f592c315f..603feb02949 100644 --- a/code/ATMOSPHERICS/components/tvalve.dm +++ b/code/ATMOSPHERICS/components/tvalve.dm @@ -1,10 +1,11 @@ -obj/machinery/atmospherics/tvalve - icon = 'icons/obj/atmospherics/valve.dmi' - icon_state = "tvalve0" +/obj/machinery/atmospherics/tvalve + icon = 'icons/atmos/tvalve.dmi' + icon_state = "map_tvalve0" name = "manual switching valve" desc = "A pipe valve" + level = 1 dir = SOUTH initialize_directions = SOUTH|NORTH|WEST @@ -19,415 +20,466 @@ obj/machinery/atmospherics/tvalve var/datum/pipe_network/network_node2 var/datum/pipe_network/network_node3 - update_icon(animation) - if(animation) - flick("tvalve[src.state][!src.state]",src) +/obj/machinery/atmospherics/tvalve/bypass + icon_state = "map_tvalve1" + state = 1 + +/obj/machinery/atmospherics/tvalve/update_icon(animation) + if(animation) + flick("tvalve[src.state][!src.state]",src) + else + icon_state = "tvalve[state]" + +/obj/machinery/atmospherics/tvalve/update_underlays() + if(..()) + underlays.Cut() + var/turf/T = get_turf(src) + if(!istype(T)) + return + add_underlay(T, node1, turn(dir, -180)) + + if(istype(src, /obj/machinery/atmospherics/tvalve/mirrored)) + add_underlay(T, node2, turn(dir, 90)) else - icon_state = "tvalve[state]" + add_underlay(T, node2, turn(dir, -90)) + + add_underlay(T, node3, dir) - New() - initialize_directions() - ..() - - proc/initialize_directions() - switch(dir) - if(NORTH) - initialize_directions = SOUTH|NORTH|EAST - if(SOUTH) - initialize_directions = NORTH|SOUTH|WEST - if(EAST) - initialize_directions = WEST|EAST|SOUTH - if(WEST) - initialize_directions = EAST|WEST|NORTH - - network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference) - if(reference == node1) - network_node1 = new_network - if(state) - network_node2 = new_network - else - network_node3 = new_network - else if(reference == node2) - network_node2 = new_network - if(state) - network_node1 = new_network - else if(reference == node3) - network_node3 = new_network - if(!state) - network_node1 = new_network - - if(new_network.normal_members.Find(src)) - return 0 - - new_network.normal_members += src - - if(state) - if(reference == node1) - if(node2) - return node2.network_expand(new_network, src) - else if(reference == node2) - if(node1) - return node1.network_expand(new_network, src) - else - if(reference == node1) - if(node3) - return node3.network_expand(new_network, src) - else if(reference == node3) - if(node1) - return node1.network_expand(new_network, src) - - return null - - Del() - loc = null - - if(node1) - node1.disconnect(src) - del(network_node1) - if(node2) - node2.disconnect(src) - del(network_node2) - if(node3) - node3.disconnect(src) - del(network_node3) - - node1 = null - node2 = null - node3 = null - - ..() - - proc/go_to_side() - - if(state) return 0 - - state = 1 - update_icon() - - if(network_node1) - del(network_node1) - if(network_node3) - del(network_node3) - build_network() - - if(network_node1&&network_node2) - network_node1.merge(network_node2) - network_node2 = network_node1 - - if(network_node1) - network_node1.update = 1 - else if(network_node2) - network_node2.update = 1 - - return 1 - - proc/go_straight() - - if(!state) - return 0 - - state = 0 - update_icon() - - if(network_node1) - del(network_node1) - if(network_node2) - del(network_node2) - build_network() - - if(network_node1&&network_node3) - network_node1.merge(network_node3) - network_node3 = network_node1 - - if(network_node1) - network_node1.update = 1 - else if(network_node3) - network_node3.update = 1 - - return 1 - - attack_ai(mob/user as mob) - return - - attack_paw(mob/user as mob) - return attack_hand(user) - - attack_hand(mob/user as mob) - src.add_fingerprint(usr) - update_icon(1) - sleep(10) - if (src.state) - src.go_straight() - else - src.go_to_side() - - process() - ..() - machines.Remove(src) - -/* if(open && (!node1 || !node2)) - close() - if(!node1) - if(!nodealert) - //world << "Missing node from [src] at [src.x],[src.y],[src.z]" - nodealert = 1 - else if (!node2) - if(!nodealert) - //world << "Missing node from [src] at [src.x],[src.y],[src.z]" - nodealert = 1 - else if (nodealert) - nodealert = 0 -*/ - - return - - initialize() - var/node1_dir - var/node2_dir - var/node3_dir - - node1_dir = turn(dir, 180) - node2_dir = turn(dir, -90) - node3_dir = dir - - for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir)) - if(target.initialize_directions & get_dir(target,src)) - node1 = target - break - for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir)) - if(target.initialize_directions & get_dir(target,src)) - node2 = target - break - for(var/obj/machinery/atmospherics/target in get_step(src,node3_dir)) - if(target.initialize_directions & get_dir(target,src)) - node3 = target - break - - build_network() - if(!network_node1 && node1) - network_node1 = new /datum/pipe_network() - network_node1.normal_members += src - network_node1.build_network(node1, src) - - if(!network_node2 && node2) - network_node2 = new /datum/pipe_network() - network_node2.normal_members += src - network_node2.build_network(node2, src) - - if(!network_node3 && node3) - network_node3 = new /datum/pipe_network() - network_node3.normal_members += src - network_node3.build_network(node3, src) - - - return_network(obj/machinery/atmospherics/reference) - build_network() - - if(reference==node1) - return network_node1 - - if(reference==node2) - return network_node2 - - if(reference==node3) - return network_node3 - - return null - - reassign_network(datum/pipe_network/old_network, datum/pipe_network/new_network) - if(network_node1 == old_network) - network_node1 = new_network - if(network_node2 == old_network) - network_node2 = new_network - if(network_node3 == old_network) - network_node3 = new_network - - return 1 - - return_network_air(datum/network/reference) - return null - - disconnect(obj/machinery/atmospherics/reference) - if(reference==node1) - del(network_node1) - node1 = null - - else if(reference==node2) - del(network_node2) - node2 = null - - else if(reference==node3) - del(network_node3) - node2 = null - - return null - - digital // can be controlled by AI - name = "digital switching valve" - desc = "A digitally controlled valve." - icon = 'icons/obj/atmospherics/digital_valve.dmi' - - attack_ai(mob/user as mob) - return src.attack_hand(user) - - attack_hand(mob/user as mob) - if(!src.allowed(user)) - user << "\red Access denied." - return - ..() - - //Radio remote control - - proc - set_frequency(new_frequency) - radio_controller.remove_object(src, frequency) - frequency = new_frequency - if(frequency) - radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA) - - var/frequency = 0 - var/id = null - var/datum/radio_frequency/radio_connection - - initialize() - ..() - if(frequency) - set_frequency(frequency) - - receive_signal(datum/signal/signal) - if(!signal.data["tag"] || (signal.data["tag"] != id)) - return 0 - - switch(signal.data["command"]) - if("valve_open") - if(!state) - go_to_side() - - if("valve_close") - if(state) - go_straight() - - if("valve_toggle") - if(state) - go_straight() - else - go_to_side() - - attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) - if (!istype(W, /obj/item/weapon/wrench)) - return ..() - if (istype(src, /obj/machinery/atmospherics/tvalve/digital)) - user << "\red You cannot unwrench this [src], it's too complicated." - return 1 - var/turf/T = src.loc - if (level==1 && isturf(T) && T.intact) - user << "\red You must remove the plating first." - return 1 - var/datum/gas_mixture/int_air = return_air() - var/datum/gas_mixture/env_air = loc.return_air() - if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) - user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." - add_fingerprint(user) - return 1 - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - user << "\blue You begin to unfasten \the [src]..." - if (do_after(user, 40)) - user.visible_message( \ - "[user] unfastens \the [src].", \ - "\blue You have unfastened \the [src].", \ - "You hear ratchet.") - new /obj/item/pipe(loc, make_from=src) - del(src) - -obj/machinery/atmospherics/tvalve/mirrored - icon_state = "tvalvem0" +/obj/machinery/atmospherics/tvalve/hide(var/i) + update_underlays() +/obj/machinery/atmospherics/tvalve/New() initialize_directions() - switch(dir) - if(NORTH) - initialize_directions = SOUTH|NORTH|WEST - if(SOUTH) - initialize_directions = NORTH|SOUTH|EAST - if(EAST) - initialize_directions = WEST|EAST|NORTH - if(WEST) - initialize_directions = EAST|WEST|SOUTH + ..() - initialize() - var/node1_dir - var/node2_dir - var/node3_dir +/obj/machinery/atmospherics/tvalve/proc/initialize_directions() + switch(dir) + if(NORTH) + initialize_directions = SOUTH|NORTH|EAST + if(SOUTH) + initialize_directions = NORTH|SOUTH|WEST + if(EAST) + initialize_directions = WEST|EAST|SOUTH + if(WEST) + initialize_directions = EAST|WEST|NORTH - node1_dir = turn(dir, 180) - node2_dir = turn(dir, 90) - node3_dir = dir - - for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir)) - if(target.initialize_directions & get_dir(target,src)) - node1 = target - break - for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir)) - if(target.initialize_directions & get_dir(target,src)) - node2 = target - break - for(var/obj/machinery/atmospherics/target in get_step(src,node3_dir)) - if(target.initialize_directions & get_dir(target,src)) - node3 = target - break - - update_icon(animation) - if(animation) - flick("tvalvem[src.state][!src.state]",src) +/obj/machinery/atmospherics/tvalve/network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference) + if(reference == node1) + network_node1 = new_network + if(state) + network_node2 = new_network else - icon_state = "tvalvem[state]" + network_node3 = new_network + else if(reference == node2) + network_node2 = new_network + if(state) + network_node1 = new_network + else if(reference == node3) + network_node3 = new_network + if(!state) + network_node1 = new_network - digital // can be controlled by AI - name = "digital switching valve" - desc = "A digitally controlled valve." - icon = 'icons/obj/atmospherics/digital_valve.dmi' + if(new_network.normal_members.Find(src)) + return 0 - attack_ai(mob/user as mob) - return src.attack_hand(user) + new_network.normal_members += src - attack_hand(mob/user as mob) - if(!src.allowed(user)) - user << "\red Access denied." - return - ..() + if(state) + if(reference == node1) + if(node2) + return node2.network_expand(new_network, src) + else if(reference == node2) + if(node1) + return node1.network_expand(new_network, src) + else + if(reference == node1) + if(node3) + return node3.network_expand(new_network, src) + else if(reference == node3) + if(node1) + return node1.network_expand(new_network, src) - //Radio remote control -eh? + return null - proc - set_frequency(new_frequency) - radio_controller.remove_object(src, frequency) - frequency = new_frequency - if(frequency) - radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA) +/obj/machinery/atmospherics/tvalve/Del() + loc = null - var/frequency = 0 - var/id = null - var/datum/radio_frequency/radio_connection + if(node1) + node1.disconnect(src) + del(network_node1) + if(node2) + node2.disconnect(src) + del(network_node2) + if(node3) + node3.disconnect(src) + del(network_node3) - initialize() - ..() - if(frequency) - set_frequency(frequency) + node1 = null + node2 = null + node3 = null - receive_signal(datum/signal/signal) - if(!signal.data["tag"] || (signal.data["tag"] != id)) - return 0 + ..() - switch(signal.data["command"]) - if("valve_open") - if(!state) - go_to_side() +/obj/machinery/atmospherics/tvalve/proc/go_to_side() - if("valve_close") - if(state) - go_straight() + if(state) return 0 - if("valve_toggle") - if(state) - go_straight() - else - go_to_side() \ No newline at end of file + state = 1 + update_icon() + + if(network_node1) + del(network_node1) + if(network_node3) + del(network_node3) + build_network() + + if(network_node1&&network_node2) + network_node1.merge(network_node2) + network_node2 = network_node1 + + if(network_node1) + network_node1.update = 1 + else if(network_node2) + network_node2.update = 1 + + return 1 + +/obj/machinery/atmospherics/tvalve/proc/go_straight() + + if(!state) + return 0 + + state = 0 + update_icon() + + if(network_node1) + del(network_node1) + if(network_node2) + del(network_node2) + build_network() + + if(network_node1&&network_node3) + network_node1.merge(network_node3) + network_node3 = network_node1 + + if(network_node1) + network_node1.update = 1 + else if(network_node3) + network_node3.update = 1 + + return 1 + +/obj/machinery/atmospherics/tvalve/attack_ai(mob/user as mob) + return + +/obj/machinery/atmospherics/tvalve/attack_paw(mob/user as mob) + return attack_hand(user) + +/obj/machinery/atmospherics/tvalve/attack_hand(mob/user as mob) + src.add_fingerprint(usr) + update_icon(1) + sleep(10) + if (src.state) + src.go_straight() + else + src.go_to_side() + +/obj/machinery/atmospherics/tvalve/process() + ..() + . = PROCESS_KILL + //machines.Remove(src) + + return + +/obj/machinery/atmospherics/tvalve/initialize() + var/node1_dir + var/node2_dir + var/node3_dir + + node1_dir = turn(dir, 180) + node2_dir = turn(dir, -90) + node3_dir = dir + + for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir)) + if(target.initialize_directions & get_dir(target,src)) + node1 = target + break + for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir)) + if(target.initialize_directions & get_dir(target,src)) + node2 = target + break + for(var/obj/machinery/atmospherics/target in get_step(src,node3_dir)) + if(target.initialize_directions & get_dir(target,src)) + node3 = target + break + + update_icon() + update_underlays() + +/obj/machinery/atmospherics/tvalve/build_network() + if(!network_node1 && node1) + network_node1 = new /datum/pipe_network() + network_node1.normal_members += src + network_node1.build_network(node1, src) + + if(!network_node2 && node2) + network_node2 = new /datum/pipe_network() + network_node2.normal_members += src + network_node2.build_network(node2, src) + + if(!network_node3 && node3) + network_node3 = new /datum/pipe_network() + network_node3.normal_members += src + network_node3.build_network(node3, src) + + +/obj/machinery/atmospherics/tvalve/return_network(obj/machinery/atmospherics/reference) + build_network() + + if(reference==node1) + return network_node1 + + if(reference==node2) + return network_node2 + + if(reference==node3) + return network_node3 + + return null + +/obj/machinery/atmospherics/tvalve/reassign_network(datum/pipe_network/old_network, datum/pipe_network/new_network) + if(network_node1 == old_network) + network_node1 = new_network + if(network_node2 == old_network) + network_node2 = new_network + if(network_node3 == old_network) + network_node3 = new_network + + return 1 + +/obj/machinery/atmospherics/tvalve/return_network_air(datum/network/reference) + return null + +/obj/machinery/atmospherics/tvalve/disconnect(obj/machinery/atmospherics/reference) + if(reference==node1) + del(network_node1) + node1 = null + + else if(reference==node2) + del(network_node2) + node2 = null + + else if(reference==node3) + del(network_node3) + node2 = null + + update_underlays() + + return null + +/obj/machinery/atmospherics/tvalve/digital // can be controlled by AI + name = "digital switching valve" + desc = "A digitally controlled valve." + icon = 'icons/atmos/digital_tvalve.dmi' + + var/frequency = 0 + var/id = null + var/datum/radio_frequency/radio_connection + +/obj/machinery/atmospherics/tvalve/digital/bypass + icon_state = "map_tvalve1" + state = 1 + +/obj/machinery/atmospherics/tvalve/digital/power_change() + var/old_stat = stat + ..() + if(old_stat != stat) + update_icon() + +/obj/machinery/atmospherics/tvalve/digital/update_icon() + ..() + if(!powered()) + icon_state = "tvalvenopower" + +/obj/machinery/atmospherics/tvalve/digital/attack_ai(mob/user as mob) + return src.attack_hand(user) + +/obj/machinery/atmospherics/tvalve/digital/attack_hand(mob/user as mob) + if(!powered()) + return + if(!src.allowed(user)) + user << "\red Access denied." + return + ..() + +//Radio remote control + +/obj/machinery/atmospherics/tvalve/digital/proc/set_frequency(new_frequency) + radio_controller.remove_object(src, frequency) + frequency = new_frequency + if(frequency) + radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA) + + + +/obj/machinery/atmospherics/tvalve/digital/initialize() + ..() + if(frequency) + set_frequency(frequency) + +/obj/machinery/atmospherics/tvalve/digital/receive_signal(datum/signal/signal) + if(!signal.data["tag"] || (signal.data["tag"] != id)) + return 0 + + switch(signal.data["command"]) + if("valve_open") + if(!state) + go_to_side() + + if("valve_close") + if(state) + go_straight() + + if("valve_toggle") + if(state) + go_straight() + else + go_to_side() + +/obj/machinery/atmospherics/tvalve/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) + if (!istype(W, /obj/item/weapon/wrench)) + return ..() + if (istype(src, /obj/machinery/atmospherics/tvalve/digital)) + user << "\red You cannot unwrench this [src], it's too complicated." + return 1 + var/datum/gas_mixture/int_air = return_air() + var/datum/gas_mixture/env_air = loc.return_air() + if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) + user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." + add_fingerprint(user) + return 1 + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user << "\blue You begin to unfasten \the [src]..." + if (do_after(user, 40)) + user.visible_message( \ + "[user] unfastens \the [src].", \ + "\blue You have unfastened \the [src].", \ + "You hear ratchet.") + new /obj/item/pipe(loc, make_from=src) + del(src) + +/obj/machinery/atmospherics/tvalve/mirrored + icon_state = "map_tvalvem0" + +/obj/machinery/atmospherics/tvalve/mirrored/bypass + icon_state = "map_tvalvem1" + state = 1 + +/obj/machinery/atmospherics/tvalve/mirrored/initialize_directions() + switch(dir) + if(NORTH) + initialize_directions = SOUTH|NORTH|WEST + if(SOUTH) + initialize_directions = NORTH|SOUTH|EAST + if(EAST) + initialize_directions = WEST|EAST|NORTH + if(WEST) + initialize_directions = EAST|WEST|SOUTH + +/obj/machinery/atmospherics/tvalve/mirrored/initialize() + var/node1_dir + var/node2_dir + var/node3_dir + + node1_dir = turn(dir, 180) + node2_dir = turn(dir, 90) + node3_dir = dir + + for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir)) + if(target.initialize_directions & get_dir(target,src)) + node1 = target + break + for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir)) + if(target.initialize_directions & get_dir(target,src)) + node2 = target + break + for(var/obj/machinery/atmospherics/target in get_step(src,node3_dir)) + if(target.initialize_directions & get_dir(target,src)) + node3 = target + break + + update_icon() + update_underlays() + +/obj/machinery/atmospherics/tvalve/mirrored/update_icon(animation) + if(animation) + flick("tvalvem[src.state][!src.state]",src) + else + icon_state = "tvalvem[state]" + +/obj/machinery/atmospherics/tvalve/mirrored/digital // can be controlled by AI + name = "digital switching valve" + desc = "A digitally controlled valve." + icon = 'icons/atmos/digital_tvalve.dmi' + + var/frequency = 0 + var/id = null + var/datum/radio_frequency/radio_connection + +/obj/machinery/atmospherics/tvalve/mirrored/digital/bypass + icon_state = "map_tvalvem1" + state = 1 + +/obj/machinery/atmospherics/tvalve/mirrored/digital/power_change() + var/old_stat = stat + ..() + if(old_stat != stat) + update_icon() + +/obj/machinery/atmospherics/tvalve/mirrored/digital/update_icon() + ..() + if(!powered()) + icon_state = "tvalvemnopower" + +/obj/machinery/atmospherics/tvalve/mirrored/digital/attack_ai(mob/user as mob) + return src.attack_hand(user) + +/obj/machinery/atmospherics/tvalve/mirrored/digital/attack_hand(mob/user as mob) + if(!powered()) + return + if(!src.allowed(user)) + user << "\red Access denied." + return + ..() + +//Radio remote control -eh? + +/obj/machinery/atmospherics/tvalve/mirrored/digital/proc/set_frequency(new_frequency) + radio_controller.remove_object(src, frequency) + frequency = new_frequency + if(frequency) + radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA) + +/obj/machinery/atmospherics/tvalve/mirrored/digital/initialize() + ..() + if(frequency) + set_frequency(frequency) + +/obj/machinery/atmospherics/tvalve/mirrored/digital/receive_signal(datum/signal/signal) + if(!signal.data["tag"] || (signal.data["tag"] != id)) + return 0 + + switch(signal.data["command"]) + if("valve_open") + if(!state) + go_to_side() + + if("valve_close") + if(state) + go_straight() + + if("valve_toggle") + if(state) + go_straight() + else + go_to_side() \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/unary/outlet_injector.dm b/code/ATMOSPHERICS/components/unary/outlet_injector.dm index f070882ba82..c821b629e04 100644 --- a/code/ATMOSPHERICS/components/unary/outlet_injector.dm +++ b/code/ATMOSPHERICS/components/unary/outlet_injector.dm @@ -1,7 +1,8 @@ /obj/machinery/atmospherics/unary/outlet_injector - icon = 'icons/obj/atmospherics/outlet_injector.dmi' - icon_state = "off" + icon = 'icons/atmos/injector.dmi' + icon_state = "map_injector" use_power = 1 + layer = 3 name = "Air Injector" desc = "Has a valve and pump attached to it" @@ -17,131 +18,122 @@ level = 1 - update_icon() - if(node) - if(on && !(stat & NOPOWER)) - icon_state = "[level == 1 && istype(loc, /turf/simulated) ? "h" : "" ]on" - else - icon_state = "[level == 1 && istype(loc, /turf/simulated) ? "h" : "" ]off" - else - icon_state = "exposed" - on = 0 +/obj/machinery/atmospherics/unary/outlet_injector/update_icon() + if(!powered()) + icon_state = "off" + else + icon_state = "[on ? "on" : "off"]" - return - - power_change() - var/old_stat = stat - ..() - if(old_stat != stat) - update_icon() - - - process() - ..() - injecting = 0 - - if(!on || stat & NOPOWER) - return 0 - - if(air_contents.temperature > 0) - var/transfer_moles = (air_contents.return_pressure())*volume_rate/(air_contents.temperature * R_IDEAL_GAS_EQUATION) - - var/datum/gas_mixture/removed = air_contents.remove(transfer_moles) - - loc.assume_air(removed) - - if(network) - network.update = 1 - - return 1 - - proc/inject() - if(on || injecting) - return 0 - - injecting = 1 - - if(air_contents.temperature > 0) - var/transfer_moles = (air_contents.return_pressure())*volume_rate/(air_contents.temperature * R_IDEAL_GAS_EQUATION) - - var/datum/gas_mixture/removed = air_contents.remove(transfer_moles) - - loc.assume_air(removed) - - if(network) - network.update = 1 - - flick("inject", src) - - proc - set_frequency(new_frequency) - radio_controller.remove_object(src, frequency) - frequency = new_frequency - if(frequency) - radio_connection = radio_controller.add_object(src, frequency) - - broadcast_status() - if(!radio_connection) - return 0 - - var/datum/signal/signal = new - signal.transmission_method = 1 //radio signal - signal.source = src - - signal.data = list( - "tag" = id, - "device" = "AO", - "power" = on, - "volume_rate" = volume_rate, - //"timestamp" = world.time, - "sigtype" = "status" - ) - - radio_connection.post_signal(src, signal) - - return 1 - - initialize() - ..() - - set_frequency(frequency) - - receive_signal(datum/signal/signal) - if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) - return 0 - - if("power" in signal.data) - on = text2num(signal.data["power"]) - - if("power_toggle" in signal.data) - on = !on - - if("inject" in signal.data) - spawn inject() +/obj/machinery/atmospherics/unary/outlet_injector/update_underlays() + if(..()) + underlays.Cut() + var/turf/T = get_turf(src) + if(!istype(T)) return + add_underlay(T, node, dir) - if("set_volume_rate" in signal.data) - var/number = text2num(signal.data["set_volume_rate"]) - volume_rate = between(0, number, air_contents.volume) - - if("status" in signal.data) - spawn(2) - broadcast_status() - return //do not update_icon - - //log_admin("DEBUG \[[world.timeofday]\]: outlet_injector/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]") - //return - spawn(2) - broadcast_status() +/obj/machinery/atmospherics/unary/outlet_injector/power_change() + var/old_stat = stat + ..() + if(old_stat != stat) update_icon() - hide(var/i) //to make the little pipe section invisible, the icon changes. - if(node) - if(on) - icon_state = "[i == 1 && istype(loc, /turf/simulated) ? "h" : "" ]on" - else - icon_state = "[i == 1 && istype(loc, /turf/simulated) ? "h" : "" ]off" - else - icon_state = "[i == 1 && istype(loc, /turf/simulated) ? "h" : "" ]exposed" - on = 0 - return \ No newline at end of file +/obj/machinery/atmospherics/unary/outlet_injector/process() + ..() + injecting = 0 + + if(!on || stat & NOPOWER) + return 0 + + if(air_contents.temperature > 0) + var/transfer_moles = (air_contents.return_pressure())*volume_rate/(air_contents.temperature * R_IDEAL_GAS_EQUATION) + + var/datum/gas_mixture/removed = air_contents.remove(transfer_moles) + + loc.assume_air(removed) + + if(network) + network.update = 1 + + return 1 + +/obj/machinery/atmospherics/unary/outlet_injector/proc/inject() + if(on || injecting) + return 0 + + injecting = 1 + + if(air_contents.temperature > 0) + var/transfer_moles = (air_contents.return_pressure())*volume_rate/(air_contents.temperature * R_IDEAL_GAS_EQUATION) + + var/datum/gas_mixture/removed = air_contents.remove(transfer_moles) + + loc.assume_air(removed) + + if(network) + network.update = 1 + + flick("inject", src) + +/obj/machinery/atmospherics/unary/outlet_injector/proc/set_frequency(new_frequency) + radio_controller.remove_object(src, frequency) + frequency = new_frequency + if(frequency) + radio_connection = radio_controller.add_object(src, frequency) + +/obj/machinery/atmospherics/unary/outlet_injector/proc/broadcast_status() + if(!radio_connection) + return 0 + + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src + + signal.data = list( + "tag" = id, + "device" = "AO", + "power" = on, + "volume_rate" = volume_rate, + "sigtype" = "status" + ) + + radio_connection.post_signal(src, signal) + + return 1 + +/obj/machinery/atmospherics/unary/outlet_injector/initialize() + ..() + + set_frequency(frequency) + +/obj/machinery/atmospherics/unary/outlet_injector/receive_signal(datum/signal/signal) + if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) + return 0 + + if(signal.data["power"]) + on = text2num(signal.data["power"]) + + if(signal.data["power_toggle"]) + on = !on + + if(signal.data["inject"]) + spawn inject() + return + + if(signal.data["set_volume_rate"]) + var/number = text2num(signal.data["set_volume_rate"]) + volume_rate = between(0, number, air_contents.volume) + + if(signal.data["status"]) + spawn(2) + broadcast_status() + return //do not update_icon + + //log_admin("DEBUG \[[world.timeofday]\]: outlet_injector/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]") + //return + spawn(2) + broadcast_status() + update_icon() + +/obj/machinery/atmospherics/unary/outlet_injector/hide(var/i) + update_underlays() \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/unary/unary_base.dm b/code/ATMOSPHERICS/components/unary/unary_base.dm index b755071487e..2c5f63f6079 100644 --- a/code/ATMOSPHERICS/components/unary/unary_base.dm +++ b/code/ATMOSPHERICS/components/unary/unary_base.dm @@ -50,6 +50,7 @@ break update_icon() + update_underlays() build_network() if(!network && node) @@ -85,4 +86,7 @@ del(network) node = null + update_icon() + update_underlays() + return null \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index f4e9cb97509..e2cd25cfbad 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -4,8 +4,8 @@ #undefine /obj/machinery/atmospherics/unary/vent_pump - icon = 'icons/obj/atmospherics/vent_pump.dmi' - icon_state = "off" + icon = 'icons/atmos/vent_pump.dmi' + icon_state = "map_vent" name = "Air Vent" desc = "Has a valve and pump attached to it" @@ -40,316 +40,329 @@ var/radio_filter_out var/radio_filter_in - on - on = 1 - icon_state = "out" +/obj/machinery/atmospherics/unary/vent_pump/on + on = 1 + icon_state = "map_vent_out" - siphon - pump_direction = 0 - icon_state = "off" +/obj/machinery/atmospherics/unary/vent_pump/siphon + pump_direction = 0 - on - on = 1 - icon_state = "in" +/obj/machinery/atmospherics/unary/vent_pump/siphon/on + on = 1 + icon_state = "map_vent_in" - New() - initial_loc = get_area(loc) - if (initial_loc.master) - initial_loc = initial_loc.master - area_uid = initial_loc.uid - if (!id_tag) - assign_uid() - id_tag = num2text(uid) - if(ticker && ticker.current_state == 3)//if the game is running - src.initialize() - src.broadcast_status() - ..() +/obj/machinery/atmospherics/unary/vent_pump/New() + icon = null + initial_loc = get_area(loc) + if (initial_loc.master) + initial_loc = initial_loc.master + area_uid = initial_loc.uid + if (!id_tag) + assign_uid() + id_tag = num2text(uid) + if(ticker && ticker.current_state == 3)//if the game is running + src.initialize() + src.broadcast_status() + ..() - high_volume - name = "Large Air Vent" - power_channel = EQUIP - New() - ..() - air_contents.volume = 1000 +/obj/machinery/atmospherics/unary/vent_pump/high_volume + name = "Large Air Vent" + power_channel = EQUIP - update_icon() - if(welded) - icon_state = "[level == 1 && istype(loc, /turf/simulated) ? "h" : "" ]weld" - return - if(on && !(stat & (NOPOWER|BROKEN))) - if(pump_direction) - icon_state = "[level == 1 && istype(loc, /turf/simulated) ? "h" : "" ]out" - else - icon_state = "[level == 1 && istype(loc, /turf/simulated) ? "h" : "" ]in" - else - icon_state = "[level == 1 && istype(loc, /turf/simulated) ? "h" : "" ]off" +/obj/machinery/atmospherics/unary/vent_pump/high_volume/New() + ..() + air_contents.volume = 1000 +/obj/machinery/atmospherics/unary/vent_pump/update_icon(var/safety = 0) + if(!check_icon_cache()) return - process() - ..() - if(stat & (NOPOWER|BROKEN)) + overlays.Cut() + + var/vent_icon = "vent" + + var/turf/T = get_turf(src) + if(!istype(T)) + return + + if(T.intact && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe)) + vent_icon += "h" + + if(welded) + vent_icon += "weld" + else if(!powered()) + vent_icon += "off" + else + vent_icon += "[on ? "[pump_direction ? "out" : "in"]" : "off"]" + + overlays += icon_manager.get_atmos_icon("device", , , vent_icon) + +/obj/machinery/atmospherics/unary/vent_pump/update_underlays() + if(..()) + underlays.Cut() + var/turf/T = get_turf(src) + if(!istype(T)) return - if (!node) - on = 0 - //broadcast_status() // from now air alarm/control computer should request update purposely --rastaf0 - if(!on) - return 0 - - if(welded) - return 0 - - var/datum/gas_mixture/environment = loc.return_air() - var/environment_pressure = environment.return_pressure() - - if(pump_direction) //internal -> external - var/pressure_delta = 10000 - - if(pressure_checks&1) - pressure_delta = min(pressure_delta, (external_pressure_bound - environment_pressure)) - if(pressure_checks&2) - pressure_delta = min(pressure_delta, (air_contents.return_pressure() - internal_pressure_bound)) - - if(pressure_delta > 0.5) - if(air_contents.temperature > 0) - var/transfer_moles = pressure_delta*environment.volume/(air_contents.temperature * R_IDEAL_GAS_EQUATION) - - var/datum/gas_mixture/removed = air_contents.remove(transfer_moles) - - loc.assume_air(removed) - - if(network) - network.update = 1 - - else //external -> internal - var/pressure_delta = 10000 - if(pressure_checks&1) - pressure_delta = min(pressure_delta, (environment_pressure - external_pressure_bound)) - if(pressure_checks&2) - pressure_delta = min(pressure_delta, (internal_pressure_bound - air_contents.return_pressure())) - - if(pressure_delta > 0.5) - if(environment.temperature > 0) - var/transfer_moles = pressure_delta*air_contents.volume/(environment.temperature * R_IDEAL_GAS_EQUATION) - - var/datum/gas_mixture/removed = loc.remove_air(transfer_moles) - if (isnull(removed)) //in space - return - - air_contents.merge(removed) - - if(network) - network.update = 1 - - return 1 - - //Radio remote control - - proc - set_frequency(new_frequency) - radio_controller.remove_object(src, frequency) - frequency = new_frequency - if(frequency) - radio_connection = radio_controller.add_object(src, frequency,radio_filter_in) - - broadcast_status() - if(!radio_connection) - return 0 - - var/datum/signal/signal = new - signal.transmission_method = 1 //radio signal - signal.source = src - - signal.data = list( - "area" = src.area_uid, - "tag" = src.id_tag, - "device" = "AVP", - "power" = on, - "direction" = pump_direction?("release"):("siphon"), - "checks" = pressure_checks, - "internal" = internal_pressure_bound, - "external" = external_pressure_bound, - "timestamp" = world.time, - "sigtype" = "status" - ) - - if(!initial_loc.air_vent_names[id_tag]) - var/new_name = "[initial_loc.name] Vent Pump #[initial_loc.air_vent_names.len+1]" - initial_loc.air_vent_names[id_tag] = new_name - src.name = new_name - initial_loc.air_vent_info[id_tag] = signal.data - - radio_connection.post_signal(src, signal, radio_filter_out) - - return 1 - - - initialize() - ..() - - //some vents work his own spesial way - radio_filter_in = frequency==1439?(RADIO_FROM_AIRALARM):null - radio_filter_out = frequency==1439?(RADIO_TO_AIRALARM):null - if(frequency) - set_frequency(frequency) - - receive_signal(datum/signal/signal) - if(stat & (NOPOWER|BROKEN)) + if(T.intact && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe)) return - //log_admin("DEBUG \[[world.timeofday]\]: /obj/machinery/atmospherics/unary/vent_pump/receive_signal([signal.debug_print()])") - if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || (signal.data["sigtype"]!="command")) - return 0 + else + add_underlay(T, node, dir) - if(signal.data["purge"] != null) - pressure_checks &= ~1 - pump_direction = 0 +/obj/machinery/atmospherics/unary/vent_pump/hide() + update_icon() + update_underlays() - if(signal.data["stabalize"] != null) - pressure_checks |= 1 - pump_direction = 1 +/obj/machinery/atmospherics/unary/vent_pump/process() + ..() + if(stat & (NOPOWER|BROKEN)) + return + if (!node) + on = 0 + //broadcast_status() // from now air alarm/control computer should request update purposely --rastaf0 + if(!on) + return 0 - if(signal.data["power"] != null) - on = text2num(signal.data["power"]) + if(welded) + return 0 - if(signal.data["power_toggle"] != null) - on = !on + var/datum/gas_mixture/environment = loc.return_air() + var/environment_pressure = environment.return_pressure() - if(signal.data["checks"] != null) - if (signal.data["checks"] == "default") - pressure_checks = pressure_checks_default - else - pressure_checks = text2num(signal.data["checks"]) + if(pump_direction) //internal -> external + var/pressure_delta = 10000 - if(signal.data["checks_toggle"] != null) - pressure_checks = (pressure_checks?0:3) + if(pressure_checks&1) + pressure_delta = min(pressure_delta, (external_pressure_bound - environment_pressure)) + if(pressure_checks&2) + pressure_delta = min(pressure_delta, (air_contents.return_pressure() - internal_pressure_bound)) - if(signal.data["direction"] != null) - pump_direction = text2num(signal.data["direction"]) + if(pressure_delta > 0.5) + if(air_contents.temperature > 0) + var/transfer_moles = pressure_delta*environment.volume/(air_contents.temperature * R_IDEAL_GAS_EQUATION) - if(signal.data["set_internal_pressure"] != null) - if (signal.data["set_internal_pressure"] == "default") - internal_pressure_bound = internal_pressure_bound_default - else - internal_pressure_bound = between( - 0, - text2num(signal.data["set_internal_pressure"]), - ONE_ATMOSPHERE*50 - ) + var/datum/gas_mixture/removed = air_contents.remove(transfer_moles) - if(signal.data["set_external_pressure"] != null) - if (signal.data["set_external_pressure"] == "default") - external_pressure_bound = external_pressure_bound_default - else - external_pressure_bound = between( - 0, - text2num(signal.data["set_external_pressure"]), - ONE_ATMOSPHERE*50 - ) + loc.assume_air(removed) - if(signal.data["adjust_internal_pressure"] != null) + if(network) + network.update = 1 + + else //external -> internal + var/pressure_delta = 10000 + if(pressure_checks&1) + pressure_delta = min(pressure_delta, (environment_pressure - external_pressure_bound)) + if(pressure_checks&2) + pressure_delta = min(pressure_delta, (internal_pressure_bound - air_contents.return_pressure())) + + if(pressure_delta > 0.5) + if(environment.temperature > 0) + var/transfer_moles = pressure_delta*air_contents.volume/(environment.temperature * R_IDEAL_GAS_EQUATION) + + var/datum/gas_mixture/removed = loc.remove_air(transfer_moles) + if (isnull(removed)) //in space + return + + air_contents.merge(removed) + + if(network) + network.update = 1 + + return 1 + +//Radio remote control + +/obj/machinery/atmospherics/unary/vent_pump/proc/set_frequency(new_frequency) + radio_controller.remove_object(src, frequency) + frequency = new_frequency + if(frequency) + radio_connection = radio_controller.add_object(src, frequency,radio_filter_in) + +/obj/machinery/atmospherics/unary/vent_pump/proc/broadcast_status() + if(!radio_connection) + return 0 + + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src + + signal.data = list( + "area" = src.area_uid, + "tag" = src.id_tag, + "device" = "AVP", + "power" = on, + "direction" = pump_direction?("release"):("siphon"), + "checks" = pressure_checks, + "internal" = internal_pressure_bound, + "external" = external_pressure_bound, + "timestamp" = world.time, + "sigtype" = "status" + ) + + if(!initial_loc.air_vent_names[id_tag]) + var/new_name = "[initial_loc.name] Vent Pump #[initial_loc.air_vent_names.len+1]" + initial_loc.air_vent_names[id_tag] = new_name + src.name = new_name + initial_loc.air_vent_info[id_tag] = signal.data + + radio_connection.post_signal(src, signal, radio_filter_out) + + return 1 + + +/obj/machinery/atmospherics/unary/vent_pump/initialize() + ..() + + //some vents work his own spesial way + radio_filter_in = frequency==1439?(RADIO_FROM_AIRALARM):null + radio_filter_out = frequency==1439?(RADIO_TO_AIRALARM):null + if(frequency) + set_frequency(frequency) + +/obj/machinery/atmospherics/unary/vent_pump/receive_signal(datum/signal/signal) + if(stat & (NOPOWER|BROKEN)) + return + //log_admin("DEBUG \[[world.timeofday]\]: /obj/machinery/atmospherics/unary/vent_pump/receive_signal([signal.debug_print()])") + if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || (signal.data["sigtype"]!="command")) + return 0 + + if(signal.data["purge"] != null) + pressure_checks &= ~1 + pump_direction = 0 + + if(signal.data["stabalize"] != null) + pressure_checks |= 1 + pump_direction = 1 + + if(signal.data["power"] != null) + on = text2num(signal.data["power"]) + + if(signal.data["power_toggle"] != null) + on = !on + + if(signal.data["checks"] != null) + if (signal.data["checks"] == "default") + pressure_checks = pressure_checks_default + else + pressure_checks = text2num(signal.data["checks"]) + + if(signal.data["checks_toggle"] != null) + pressure_checks = (pressure_checks?0:3) + + if(signal.data["direction"] != null) + pump_direction = text2num(signal.data["direction"]) + + if(signal.data["set_internal_pressure"] != null) + if (signal.data["set_internal_pressure"] == "default") + internal_pressure_bound = internal_pressure_bound_default + else internal_pressure_bound = between( 0, - internal_pressure_bound + text2num(signal.data["adjust_internal_pressure"]), + text2num(signal.data["set_internal_pressure"]), ONE_ATMOSPHERE*50 ) - if(signal.data["adjust_external_pressure"] != null) - - + if(signal.data["set_external_pressure"] != null) + if (signal.data["set_external_pressure"] == "default") + external_pressure_bound = external_pressure_bound_default + else external_pressure_bound = between( 0, - external_pressure_bound + text2num(signal.data["adjust_external_pressure"]), + text2num(signal.data["set_external_pressure"]), ONE_ATMOSPHERE*50 ) - if(signal.data["init"] != null) - name = signal.data["init"] - return + if(signal.data["adjust_internal_pressure"] != null) + internal_pressure_bound = between( + 0, + internal_pressure_bound + text2num(signal.data["adjust_internal_pressure"]), + ONE_ATMOSPHERE*50 + ) - if(signal.data["status"] != null) - spawn(2) - broadcast_status() - return //do not update_icon + if(signal.data["adjust_external_pressure"] != null) - //log_admin("DEBUG \[[world.timeofday]\]: vent_pump/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]") + + external_pressure_bound = between( + 0, + external_pressure_bound + text2num(signal.data["adjust_external_pressure"]), + ONE_ATMOSPHERE*50 + ) + + if(signal.data["init"] != null) + name = signal.data["init"] + return + + if(signal.data["status"] != null) spawn(2) broadcast_status() - update_icon() - return + return //do not update_icon - hide(var/i) //to make the little pipe section invisible, the icon changes. - if(welded) - icon_state = "[i == 1 && istype(loc, /turf/simulated) ? "h" : "" ]weld" - return - if(on&&node) - if(pump_direction) - icon_state = "[i == 1 && istype(loc, /turf/simulated) ? "h" : "" ]out" - else - icon_state = "[i == 1 && istype(loc, /turf/simulated) ? "h" : "" ]in" - else - icon_state = "[i == 1 && istype(loc, /turf/simulated) ? "h" : "" ]off" - on = 0 - return + //log_admin("DEBUG \[[world.timeofday]\]: vent_pump/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]") + spawn(2) + broadcast_status() + update_icon() + return - attackby(obj/item/W, mob/user) - if(istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - if (WT.remove_fuel(0,user)) - user << "\blue Now welding the vent." - if(do_after(user, 20)) - if(!src || !WT.isOn()) return - playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) - if(!welded) - user.visible_message("[user] welds the vent shut.", "You weld the vent shut.", "You hear welding.") - welded = 1 - update_icon() - else - user.visible_message("[user] unwelds the vent.", "You unweld the vent.", "You hear welding.") - welded = 0 - update_icon() +/obj/machinery/atmospherics/unary/vent_pump/attackby(obj/item/W, mob/user) + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if (WT.remove_fuel(0,user)) + user << "\blue Now welding the vent." + if(do_after(user, 20)) + if(!src || !WT.isOn()) return + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + if(!welded) + user.visible_message("[user] welds the vent shut.", "You weld the vent shut.", "You hear welding.") + welded = 1 + update_icon() else - user << "\blue The welding tool needs to be on to start this task." + user.visible_message("[user] unwelds the vent.", "You unweld the vent.", "You hear welding.") + welded = 0 + update_icon() else - user << "\blue You need more welding fuel to complete this task." - return 1 - examine() - set src in oview(1) - ..() - if(welded) - usr << "It seems welded shut." - - power_change() - if(powered(power_channel)) - stat &= ~NOPOWER + user << "\blue The welding tool needs to be on to start this task." else - stat |= NOPOWER + user << "\blue You need more welding fuel to complete this task." + return 1 + else + ..() + +/obj/machinery/atmospherics/unary/vent_pump/examine() + set src in oview(1) + ..() + if(welded) + usr << "It seems welded shut." + +/obj/machinery/atmospherics/unary/vent_pump/power_change() + var/old_stat = stat + ..() + if(old_stat != stat) update_icon() - attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) - if (!istype(W, /obj/item/weapon/wrench)) - return ..() - if (!(stat & NOPOWER) && on) - user << "\red You cannot unwrench this [src], turn it off first." - return 1 - var/turf/T = src.loc - if (level==1 && isturf(T) && T.intact) - user << "\red You must remove the plating first." - return 1 - var/datum/gas_mixture/int_air = return_air() - var/datum/gas_mixture/env_air = loc.return_air() - if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) - user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." - add_fingerprint(user) - return 1 - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - user << "\blue You begin to unfasten \the [src]..." - if (do_after(user, 40)) - user.visible_message( \ - "[user] unfastens \the [src].", \ - "\blue You have unfastened \the [src].", \ - "You hear ratchet.") - new /obj/item/pipe(loc, make_from=src) - del(src) +/obj/machinery/atmospherics/unary/vent_pump/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) + if (!istype(W, /obj/item/weapon/wrench)) + return ..() + if (!(stat & NOPOWER) && on) + user << "\red You cannot unwrench this [src], turn it off first." + return 1 + var/turf/T = src.loc + if (node && node.level==1 && isturf(T) && T.intact) + user << "\red You must remove the plating first." + return 1 + var/datum/gas_mixture/int_air = return_air() + var/datum/gas_mixture/env_air = loc.return_air() + if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) + user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." + add_fingerprint(user) + return 1 + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user << "\blue You begin to unfasten \the [src]..." + if (do_after(user, 40)) + user.visible_message( \ + "[user] unfastens \the [src].", \ + "\blue You have unfastened \the [src].", \ + "You hear ratchet.") + new /obj/item/pipe(loc, make_from=src) + del(src) /obj/machinery/atmospherics/unary/vent_pump/Del() if(initial_loc) diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm index 3845b9ad61b..64514b3ebf7 100644 --- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm +++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm @@ -1,6 +1,6 @@ /obj/machinery/atmospherics/unary/vent_scrubber - icon = 'icons/obj/atmospherics/vent_scrubber.dmi' - icon_state = "off" + icon = 'icons/atmos/vent_scrubber.dmi' + icon_state = "map_scrubber" name = "Air Scrubber" desc = "Has a valve and pump attached to it" @@ -25,245 +25,256 @@ var/area_uid var/radio_filter_out var/radio_filter_in - New() - initial_loc = get_area(loc) - if (initial_loc.master) - initial_loc = initial_loc.master - area_uid = initial_loc.uid - if (!id_tag) - assign_uid() - id_tag = num2text(uid) - if(ticker && ticker.current_state == 3)//if the game is running - src.initialize() - src.broadcast_status() - ..() - update_icon() - if(node && on && !(stat & (NOPOWER|BROKEN))) - if(scrubbing) - icon_state = "[level == 1 && istype(loc, /turf/simulated) ? "h" : "" ]on" - else - icon_state = "[level == 1 && istype(loc, /turf/simulated) ? "h" : "" ]in" - else - icon_state = "[level == 1 && istype(loc, /turf/simulated) ? "h" : "" ]off" +/obj/machinery/atmospherics/unary/vent_scrubber/New() + icon = null + initial_loc = get_area(loc) + if (initial_loc.master) + initial_loc = initial_loc.master + area_uid = initial_loc.uid + if (!id_tag) + assign_uid() + id_tag = num2text(uid) + if(ticker && ticker.current_state == 3)//if the game is running + src.initialize() + src.broadcast_status() + ..() + +/obj/machinery/atmospherics/unary/vent_scrubber/update_icon(var/safety = 0) + if(!check_icon_cache()) return - proc - set_frequency(new_frequency) - radio_controller.remove_object(src, frequency) - frequency = new_frequency - radio_connection = radio_controller.add_object(src, frequency, radio_filter_in) + overlays.Cut() + + var/scrubber_icon = "scrubber" - broadcast_status() - if(!radio_connection) - return 0 + var/turf/T = get_turf(src) + if(!istype(T)) + return - var/datum/signal/signal = new - signal.transmission_method = 1 //radio signal - signal.source = src - signal.data = list( - "area" = area_uid, - "tag" = id_tag, - "device" = "AScr", - "timestamp" = world.time, - "power" = on, - "scrubbing" = scrubbing, - "panic" = panic, - "filter_co2" = scrub_CO2, - "filter_phoron" = scrub_Toxins, - "filter_n2o" = scrub_N2O, - "sigtype" = "status" - ) - if(!initial_loc.air_scrub_names[id_tag]) - var/new_name = "[initial_loc.name] Air Scrubber #[initial_loc.air_scrub_names.len+1]" - initial_loc.air_scrub_names[id_tag] = new_name - src.name = new_name - initial_loc.air_scrub_info[id_tag] = signal.data - radio_connection.post_signal(src, signal, radio_filter_out) + if(!powered()) + scrubber_icon += "off" + else + scrubber_icon += "[on ? "[scrubbing ? "on" : "in"]" : "off"]" - return 1 + overlays += icon_manager.get_atmos_icon("device", , , scrubber_icon) - initialize() - ..() - radio_filter_in = frequency==initial(frequency)?(RADIO_FROM_AIRALARM):null - radio_filter_out = frequency==initial(frequency)?(RADIO_TO_AIRALARM):null - if (frequency) - set_frequency(frequency) - - process() - ..() - if(stat & (NOPOWER|BROKEN)) +/obj/machinery/atmospherics/unary/vent_scrubber/update_underlays() + if(..()) + underlays.Cut() + var/turf/T = get_turf(src) + if(!istype(T)) return - if (!node) - on = 0 - //broadcast_status() - if(!on) - return 0 + if(T.intact && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe)) + return + else + add_underlay(T, node, dir) + +/obj/machinery/atmospherics/unary/vent_scrubber/proc/set_frequency(new_frequency) + radio_controller.remove_object(src, frequency) + frequency = new_frequency + radio_connection = radio_controller.add_object(src, frequency, radio_filter_in) + +/obj/machinery/atmospherics/unary/vent_scrubber/proc/broadcast_status() + if(!radio_connection) + return 0 + + var/datum/signal/signal = new + signal.transmission_method = 1 //radio signal + signal.source = src + signal.data = list( + "area" = area_uid, + "tag" = id_tag, + "device" = "AScr", + "timestamp" = world.time, + "power" = on, + "scrubbing" = scrubbing, + "panic" = panic, + "filter_co2" = scrub_CO2, + "filter_phoron" = scrub_Toxins, + "filter_n2o" = scrub_N2O, + "sigtype" = "status" + ) + if(!initial_loc.air_scrub_names[id_tag]) + var/new_name = "[initial_loc.name] Air Scrubber #[initial_loc.air_scrub_names.len+1]" + initial_loc.air_scrub_names[id_tag] = new_name + src.name = new_name + initial_loc.air_scrub_info[id_tag] = signal.data + radio_connection.post_signal(src, signal, radio_filter_out) + + return 1 + +/obj/machinery/atmospherics/unary/vent_scrubber/initialize() + ..() + radio_filter_in = frequency==initial(frequency)?(RADIO_FROM_AIRALARM):null + radio_filter_out = frequency==initial(frequency)?(RADIO_TO_AIRALARM):null + if (frequency) + set_frequency(frequency) + +/obj/machinery/atmospherics/unary/vent_scrubber/process() + ..() + if(stat & (NOPOWER|BROKEN)) + return + if (!node) + on = 0 + //broadcast_status() + if(!on) + return 0 - var/datum/gas_mixture/environment = loc.return_air() + var/datum/gas_mixture/environment = loc.return_air() - if(scrubbing) - if((environment.phoron>0.001) || (environment.carbon_dioxide>0.001) || (environment.trace_gases.len>0)) - var/transfer_moles = min(1, volume_rate/environment.volume)*environment.total_moles() + if(scrubbing) + if((environment.phoron>0.001) || (environment.carbon_dioxide>0.001) || (environment.trace_gases.len>0)) + var/transfer_moles = min(1, volume_rate/environment.volume)*environment.total_moles() - //Take a gas sample - var/datum/gas_mixture/removed = loc.remove_air(transfer_moles) - if (isnull(removed)) //in space - return - - //Filter it - var/datum/gas_mixture/filtered_out = new - filtered_out.temperature = removed.temperature - if(scrub_Toxins) - filtered_out.phoron = removed.phoron - removed.phoron = 0 - if(scrub_CO2) - filtered_out.carbon_dioxide = removed.carbon_dioxide - removed.carbon_dioxide = 0 - - if(removed.trace_gases.len>0) - for(var/datum/gas/trace_gas in removed.trace_gases) - if(istype(trace_gas, /datum/gas/oxygen_agent_b)) - removed.trace_gases -= trace_gas - filtered_out.trace_gases += trace_gas - else if(istype(trace_gas, /datum/gas/sleeping_agent) && scrub_N2O) - removed.trace_gases -= trace_gas - filtered_out.trace_gases += trace_gas - - - //Remix the resulting gases - air_contents.merge(filtered_out) - - loc.assume_air(removed) - - if(network) - network.update = 1 - - else //Just siphoning all air - if (air_contents.return_pressure()>=50*ONE_ATMOSPHERE) + //Take a gas sample + var/datum/gas_mixture/removed = loc.remove_air(transfer_moles) + if (isnull(removed)) //in space return - var/transfer_moles = environment.total_moles()*(volume_rate/environment.volume) + //Filter it + var/datum/gas_mixture/filtered_out = new + filtered_out.temperature = removed.temperature + if(scrub_Toxins) + filtered_out.phoron = removed.phoron + removed.phoron = 0 + if(scrub_CO2) + filtered_out.carbon_dioxide = removed.carbon_dioxide + removed.carbon_dioxide = 0 - var/datum/gas_mixture/removed = loc.remove_air(transfer_moles) + if(removed.trace_gases.len>0) + for(var/datum/gas/trace_gas in removed.trace_gases) + if(istype(trace_gas, /datum/gas/oxygen_agent_b)) + removed.trace_gases -= trace_gas + filtered_out.trace_gases += trace_gas + else if(istype(trace_gas, /datum/gas/sleeping_agent) && scrub_N2O) + removed.trace_gases -= trace_gas + filtered_out.trace_gases += trace_gas - air_contents.merge(removed) + + //Remix the resulting gases + air_contents.merge(filtered_out) + + loc.assume_air(removed) if(network) network.update = 1 - return 1 -/* //unused piece of code - hide(var/i) //to make the little pipe section invisible, the icon changes. - if(on&&node) - if(scrubbing) - icon_state = "[i == 1 && istype(loc, /turf/simulated) ? "h" : "" ]on" - else - icon_state = "[i == 1 && istype(loc, /turf/simulated) ? "h" : "" ]in" - else - icon_state = "[i == 1 && istype(loc, /turf/simulated) ? "h" : "" ]off" - on = 0 + else //Just siphoning all air + if (air_contents.return_pressure()>=50*ONE_ATMOSPHERE) + return + + var/transfer_moles = environment.total_moles()*(volume_rate/environment.volume) + + var/datum/gas_mixture/removed = loc.remove_air(transfer_moles) + + air_contents.merge(removed) + + if(network) + network.update = 1 + + return 1 + +/obj/machinery/atmospherics/unary/vent_scrubber/hide(var/i) //to make the little pipe section invisible, the icon changes. + update_icon() + +/obj/machinery/atmospherics/unary/vent_scrubber/receive_signal(datum/signal/signal) + if(stat & (NOPOWER|BROKEN)) return -*/ + if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || (signal.data["sigtype"]!="command")) + return 0 - receive_signal(datum/signal/signal) - if(stat & (NOPOWER|BROKEN)) - return - if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || (signal.data["sigtype"]!="command")) - return 0 + if(signal.data["power"] != null) + on = text2num(signal.data["power"]) + if(signal.data["power_toggle"] != null) + on = !on - if(signal.data["power"] != null) - on = text2num(signal.data["power"]) - if(signal.data["power_toggle"] != null) - on = !on + if(signal.data["panic_siphon"]) //must be before if("scrubbing" thing + panic = text2num(signal.data["panic_siphon"] != null) + if(panic) + on = 1 + scrubbing = 0 + volume_rate = 2000 + else + scrubbing = 1 + volume_rate = initial(volume_rate) + if(signal.data["toggle_panic_siphon"] != null) + panic = !panic + if(panic) + on = 1 + scrubbing = 0 + volume_rate = 2000 + else + scrubbing = 1 + volume_rate = initial(volume_rate) - if(signal.data["panic_siphon"]) //must be before if("scrubbing" thing - panic = text2num(signal.data["panic_siphon"] != null) - if(panic) - on = 1 - scrubbing = 0 - volume_rate = 2000 - else - scrubbing = 1 - volume_rate = initial(volume_rate) - if(signal.data["toggle_panic_siphon"] != null) - panic = !panic - if(panic) - on = 1 - scrubbing = 0 - volume_rate = 2000 - else - scrubbing = 1 - volume_rate = initial(volume_rate) + if(signal.data["scrubbing"] != null) + scrubbing = text2num(signal.data["scrubbing"]) + if(signal.data["toggle_scrubbing"]) + scrubbing = !scrubbing - if(signal.data["scrubbing"] != null) - scrubbing = text2num(signal.data["scrubbing"]) - if(signal.data["toggle_scrubbing"]) - scrubbing = !scrubbing + if(signal.data["co2_scrub"] != null) + scrub_CO2 = text2num(signal.data["co2_scrub"]) + if(signal.data["toggle_co2_scrub"]) + scrub_CO2 = !scrub_CO2 - if(signal.data["co2_scrub"] != null) - scrub_CO2 = text2num(signal.data["co2_scrub"]) - if(signal.data["toggle_co2_scrub"]) - scrub_CO2 = !scrub_CO2 + if(signal.data["tox_scrub"] != null) + scrub_Toxins = text2num(signal.data["tox_scrub"]) + if(signal.data["toggle_tox_scrub"]) + scrub_Toxins = !scrub_Toxins - if(signal.data["tox_scrub"] != null) - scrub_Toxins = text2num(signal.data["tox_scrub"]) - if(signal.data["toggle_tox_scrub"]) - scrub_Toxins = !scrub_Toxins + if(signal.data["n2o_scrub"] != null) + scrub_N2O = text2num(signal.data["n2o_scrub"]) + if(signal.data["toggle_n2o_scrub"]) + scrub_N2O = !scrub_N2O - if(signal.data["n2o_scrub"] != null) - scrub_N2O = text2num(signal.data["n2o_scrub"]) - if(signal.data["toggle_n2o_scrub"]) - scrub_N2O = !scrub_N2O + if(signal.data["init"] != null) + name = signal.data["init"] + return - if(signal.data["init"] != null) - name = signal.data["init"] - return - - if(signal.data["status"] != null) - spawn(2) - broadcast_status() - return //do not update_icon - -// log_admin("DEBUG \[[world.timeofday]\]: vent_scrubber/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]") + if(signal.data["status"] != null) spawn(2) broadcast_status() - update_icon() - return + return //do not update_icon - power_change() - if(powered(power_channel)) - stat &= ~NOPOWER - else - stat |= NOPOWER +// log_admin("DEBUG \[[world.timeofday]\]: vent_scrubber/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]") + spawn(2) + broadcast_status() + update_icon() + return + +/obj/machinery/atmospherics/unary/vent_scrubber/power_change() + var/old_stat = stat + ..() + if(old_stat != stat) update_icon() - attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) - if (!istype(W, /obj/item/weapon/wrench)) - return ..() - if (!(stat & NOPOWER) && on) - user << "\red You cannot unwrench this [src], turn it off first." - return 1 - var/turf/T = src.loc - if (level==1 && isturf(T) && T.intact) - user << "\red You must remove the plating first." - return 1 - var/datum/gas_mixture/int_air = return_air() - var/datum/gas_mixture/env_air = loc.return_air() - if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) - user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." - add_fingerprint(user) - return 1 - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - user << "\blue You begin to unfasten \the [src]..." - if (do_after(user, 40)) - user.visible_message( \ - "[user] unfastens \the [src].", \ - "\blue You have unfastened \the [src].", \ - "You hear ratchet.") - new /obj/item/pipe(loc, make_from=src) - del(src) +/obj/machinery/atmospherics/unary/vent_scrubber/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) + if (!istype(W, /obj/item/weapon/wrench)) + return ..() + if (!(stat & NOPOWER) && on) + user << "\red You cannot unwrench this [src], turn it off first." + return 1 + var/turf/T = src.loc + if (node && node.level==1 && isturf(T) && T.intact) + user << "\red You must remove the plating first." + return 1 + var/datum/gas_mixture/int_air = return_air() + var/datum/gas_mixture/env_air = loc.return_air() + if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) + user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." + add_fingerprint(user) + return 1 + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user << "\blue You begin to unfasten \the [src]..." + if (do_after(user, 40)) + user.visible_message( \ + "[user] unfastens \the [src].", \ + "\blue You have unfastened \the [src].", \ + "You hear ratchet.") + new /obj/item/pipe(loc, make_from=src) + del(src) /obj/machinery/atmospherics/unary/vent_scrubber/Del() if(initial_loc) diff --git a/code/ATMOSPHERICS/components/valve.dm b/code/ATMOSPHERICS/components/valve.dm index 09d0b64f866..75282275ebd 100644 --- a/code/ATMOSPHERICS/components/valve.dm +++ b/code/ATMOSPHERICS/components/valve.dm @@ -1,10 +1,11 @@ -obj/machinery/atmospherics/valve - icon = 'icons/obj/atmospherics/valve.dmi' - icon_state = "valve0" +/obj/machinery/atmospherics/valve + icon = 'icons/atmos/valve.dmi' + icon_state = "map_valve0" name = "manual valve" desc = "A pipe valve" + level = 1 dir = SOUTH initialize_directions = SOUTH|NORTH @@ -17,322 +18,297 @@ obj/machinery/atmospherics/valve var/datum/pipe_network/network_node1 var/datum/pipe_network/network_node2 - open - open = 1 - icon_state = "valve1" +/obj/machinery/atmospherics/valve/open + open = 1 + icon_state = "map_valve1" - update_icon(animation) - if(animation) - flick("valve[src.open][!src.open]",src) - else - icon_state = "valve[open]" +/obj/machinery/atmospherics/valve/update_icon(animation) + if(animation) + flick("valve[src.open][!src.open]",src) + else + icon_state = "valve[open]" - New() - switch(dir) - if(NORTH || SOUTH) - initialize_directions = NORTH|SOUTH - if(EAST || WEST) - initialize_directions = EAST|WEST - ..() +/obj/machinery/atmospherics/valve/update_underlays() + if(..()) + underlays.Cut() + var/turf/T = get_turf(src) + if(!istype(T)) + return + add_underlay(T, node1, get_dir(src, node1)) + add_underlay(T, node2, get_dir(src, node2)) - network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference) +/obj/machinery/atmospherics/valve/hide(var/i) + update_underlays() +/obj/machinery/atmospherics/valve/New() + switch(dir) + if(NORTH || SOUTH) + initialize_directions = NORTH|SOUTH + if(EAST || WEST) + initialize_directions = EAST|WEST + ..() - if(reference == node1) - network_node1 = new_network - if(open) - network_node2 = new_network - else if(reference == node2) - network_node2 = new_network - if(open) - network_node1 = new_network - - if(new_network.normal_members.Find(src)) - return 0 - - new_network.normal_members += src - +/obj/machinery/atmospherics/valve/network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference) + if(reference == node1) + network_node1 = new_network if(open) - if(reference == node1) - if(node2) - return node2.network_expand(new_network, src) - else if(reference == node2) - if(node1) - return node1.network_expand(new_network, src) + network_node2 = new_network + else if(reference == node2) + network_node2 = new_network + if(open) + network_node1 = new_network - return null + if(new_network.normal_members.Find(src)) + return 0 - Del() - loc = null + new_network.normal_members += src - if(node1) - node1.disconnect(src) - del(network_node1) - if(node2) - node2.disconnect(src) - del(network_node2) + if(open) + if(reference == node1) + if(node2) + return node2.network_expand(new_network, src) + else if(reference == node2) + if(node1) + return node1.network_expand(new_network, src) + return null + +/obj/machinery/atmospherics/valve/Del() + loc = null + + if(node1) + node1.disconnect(src) + del(network_node1) + if(node2) + node2.disconnect(src) + del(network_node2) + + node1 = null + node2 = null + + ..() + +/obj/machinery/atmospherics/valve/proc/open() + if(open) return 0 + + open = 1 + update_icon() + + if(network_node1&&network_node2) + network_node1.merge(network_node2) + network_node2 = network_node1 + + if(network_node1) + network_node1.update = 1 + else if(network_node2) + network_node2.update = 1 + + return 1 + +/obj/machinery/atmospherics/valve/proc/close() + if(!open) + return 0 + + open = 0 + update_icon() + + if(network_node1) + del(network_node1) + if(network_node2) + del(network_node2) + + build_network() + + return 1 + +/obj/machinery/atmospherics/valve/proc/normalize_dir() + if(dir==3) + dir = 1 + else if(dir==12) + dir = 4 + +/obj/machinery/atmospherics/valve/attack_ai(mob/user as mob) + return + +/obj/machinery/atmospherics/valve/attack_paw(mob/user as mob) + return attack_hand(user) + +/obj/machinery/atmospherics/valve/attack_hand(mob/user as mob) + src.add_fingerprint(usr) + update_icon(1) + sleep(10) + if (src.open) + src.close() + else + src.open() + +/obj/machinery/atmospherics/valve/process() + ..() + . = PROCESS_KILL + + return + +/obj/machinery/atmospherics/valve/initialize() + normalize_dir() + + var/node1_dir + var/node2_dir + + for(var/direction in cardinal) + if(direction&initialize_directions) + if (!node1_dir) + node1_dir = direction + else if (!node2_dir) + node2_dir = direction + + for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir)) + if(target.initialize_directions & get_dir(target,src)) + node1 = target + break + for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir)) + if(target.initialize_directions & get_dir(target,src)) + node2 = target + break + + build_network() + + update_icon() + update_underlays() + + if(openDuringInit) + close() + open() + openDuringInit = 0 + +/obj/machinery/atmospherics/valve/build_network() + if(!network_node1 && node1) + network_node1 = new /datum/pipe_network() + network_node1.normal_members += src + network_node1.build_network(node1, src) + + if(!network_node2 && node2) + network_node2 = new /datum/pipe_network() + network_node2.normal_members += src + network_node2.build_network(node2, src) + +/obj/machinery/atmospherics/valve/return_network(obj/machinery/atmospherics/reference) + build_network() + + if(reference==node1) + return network_node1 + + if(reference==node2) + return network_node2 + + return null + +/obj/machinery/atmospherics/valve/reassign_network(datum/pipe_network/old_network, datum/pipe_network/new_network) + if(network_node1 == old_network) + network_node1 = new_network + if(network_node2 == old_network) + network_node2 = new_network + + return 1 + +/obj/machinery/atmospherics/valve/return_network_air(datum/network/reference) + return null + +/obj/machinery/atmospherics/valve/disconnect(obj/machinery/atmospherics/reference) + if(reference==node1) + del(network_node1) node1 = null + + else if(reference==node2) + del(network_node2) node2 = null - ..() + update_underlays() - proc/open() + return null - if(open) return 0 +/obj/machinery/atmospherics/valve/digital // can be controlled by AI + name = "digital valve" + desc = "A digitally controlled valve." + icon = 'icons/atmos/digital_valve.dmi' + + var/frequency = 0 + var/id = null + var/datum/radio_frequency/radio_connection - open = 1 +/obj/machinery/atmospherics/valve/digital/attack_ai(mob/user as mob) + return src.attack_hand(user) + +/obj/machinery/atmospherics/valve/digital/attack_hand(mob/user as mob) + if(!powered()) + return + if(!src.allowed(user)) + user << "\red Access denied." + return + ..() + +/obj/machinery/atmospherics/valve/digital/open + open = 1 + icon_state = "map_valve1" + +/obj/machinery/atmospherics/valve/digital/power_change() + var/old_stat = stat + ..() + if(old_stat != stat) update_icon() - if(network_node1&&network_node2) - network_node1.merge(network_node2) - network_node2 = network_node1 +/obj/machinery/atmospherics/valve/digital/update_icon() + ..() + if(!powered()) + icon_state = "valve[open]nopower" - if(network_node1) - network_node1.update = 1 - else if(network_node2) - network_node2.update = 1 +/obj/machinery/atmospherics/valve/digital/proc/set_frequency(new_frequency) + radio_controller.remove_object(src, frequency) + frequency = new_frequency + if(frequency) + radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA) - return 1 +/obj/machinery/atmospherics/valve/digital/initialize() + ..() + if(frequency) + set_frequency(frequency) - proc/close() +/obj/machinery/atmospherics/valve/digital/receive_signal(datum/signal/signal) + if(!signal.data["tag"] || (signal.data["tag"] != id)) + return 0 - if(!open) - return 0 + switch(signal.data["command"]) + if("valve_open") + if(!open) + open() - open = 0 - update_icon() + if("valve_close") + if(open) + close() - if(network_node1) - del(network_node1) - if(network_node2) - del(network_node2) - - build_network() - - return 1 - - proc/normalize_dir() - if(dir==3) - dir = 1 - else if(dir==12) - dir = 4 - - attack_ai(mob/user as mob) - return - - attack_paw(mob/user as mob) - return attack_hand(user) - - attack_hand(mob/user as mob) - src.add_fingerprint(usr) - update_icon(1) - sleep(10) - if (src.open) - src.close() - else - src.open() - - process() - ..() - . = PROCESS_KILL - -/* if(open && (!node1 || !node2)) - close() - if(!node1) - if(!nodealert) - //world << "Missing node from [src] at [src.x],[src.y],[src.z]" - nodealert = 1 - else if (!node2) - if(!nodealert) - //world << "Missing node from [src] at [src.x],[src.y],[src.z]" - nodealert = 1 - else if (nodealert) - nodealert = 0 -*/ - - return - - initialize() - normalize_dir() - - var/node1_dir - var/node2_dir - - for(var/direction in cardinal) - if(direction&initialize_directions) - if (!node1_dir) - node1_dir = direction - else if (!node2_dir) - node2_dir = direction - - for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir)) - if(target.initialize_directions & get_dir(target,src)) - node1 = target - break - for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir)) - if(target.initialize_directions & get_dir(target,src)) - node2 = target - break - - build_network() - - if(openDuringInit) - close() - open() - openDuringInit = 0 - -/* - var/connect_directions - switch(dir) - if(NORTH) - connect_directions = NORTH|SOUTH - if(SOUTH) - connect_directions = NORTH|SOUTH - if(EAST) - connect_directions = EAST|WEST - if(WEST) - connect_directions = EAST|WEST + if("valve_toggle") + if(open) + close() else - connect_directions = dir - - for(var/direction in cardinal) - if(direction&connect_directions) - for(var/obj/machinery/atmospherics/target in get_step(src,direction)) - if(target.initialize_directions & get_dir(target,src)) - connect_directions &= ~direction - node1 = target - break - if(node1) - break - - for(var/direction in cardinal) - if(direction&connect_directions) - for(var/obj/machinery/atmospherics/target in get_step(src,direction)) - if(target.initialize_directions & get_dir(target,src)) - node2 = target - break - if(node1) - break -*/ - build_network() - if(!network_node1 && node1) - network_node1 = new /datum/pipe_network() - network_node1.normal_members += src - network_node1.build_network(node1, src) - - if(!network_node2 && node2) - network_node2 = new /datum/pipe_network() - network_node2.normal_members += src - network_node2.build_network(node2, src) - - - return_network(obj/machinery/atmospherics/reference) - build_network() - - if(reference==node1) - return network_node1 - - if(reference==node2) - return network_node2 - - return null - - reassign_network(datum/pipe_network/old_network, datum/pipe_network/new_network) - if(network_node1 == old_network) - network_node1 = new_network - if(network_node2 == old_network) - network_node2 = new_network + open() +/obj/machinery/atmospherics/valve/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) + if (!istype(W, /obj/item/weapon/wrench)) + return ..() + if (istype(src, /obj/machinery/atmospherics/valve/digital)) + user << "\red You cannot unwrench this [src], it's too complicated." return 1 - - return_network_air(datum/network/reference) - return null - - disconnect(obj/machinery/atmospherics/reference) - if(reference==node1) - del(network_node1) - node1 = null - - else if(reference==node2) - del(network_node2) - node2 = null - - return null - - digital // can be controlled by AI - name = "digital valve" - desc = "A digitally controlled valve." - icon = 'icons/obj/atmospherics/digital_valve.dmi' - - attack_ai(mob/user as mob) - return src.attack_hand(user) - - attack_hand(mob/user as mob) - if(!src.allowed(user)) - user << "\red Access denied." - return - ..() - - //Radio remote control - - proc - set_frequency(new_frequency) - radio_controller.remove_object(src, frequency) - frequency = new_frequency - if(frequency) - radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA) - - var/frequency = 0 - var/id = null - var/datum/radio_frequency/radio_connection - - initialize() - ..() - if(frequency) - set_frequency(frequency) - - receive_signal(datum/signal/signal) - if(!signal.data["tag"] || (signal.data["tag"] != id)) - return 0 - - switch(signal.data["command"]) - if("valve_open") - if(!open) - open() - - if("valve_close") - if(open) - close() - - if("valve_toggle") - if(open) - close() - else - open() - - attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) - if (!istype(W, /obj/item/weapon/wrench)) - return ..() - if (istype(src, /obj/machinery/atmospherics/valve/digital)) - user << "\red You cannot unwrench this [src], it's too complicated." - return 1 - var/turf/T = src.loc - if (level==1 && isturf(T) && T.intact) - user << "\red You must remove the plating first." - return 1 - var/datum/gas_mixture/int_air = return_air() - var/datum/gas_mixture/env_air = loc.return_air() - if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) - user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." - add_fingerprint(user) - return 1 - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - user << "\blue You begin to unfasten \the [src]..." - if (do_after(user, 40)) - user.visible_message( \ - "[user] unfastens \the [src].", \ - "\blue You have unfastened \the [src].", \ - "You hear ratchet.") - new /obj/item/pipe(loc, make_from=src) - del(src) + var/datum/gas_mixture/int_air = return_air() + var/datum/gas_mixture/env_air = loc.return_air() + if ((int_air.return_pressure()-env_air.return_pressure()) > 2*ONE_ATMOSPHERE) + user << "\red You cannot unwrench this [src], it too exerted due to internal pressure." + add_fingerprint(user) + return 1 + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + user << "\blue You begin to unfasten \the [src]..." + if (do_after(user, 40)) + user.visible_message( \ + "[user] unfastens \the [src].", \ + "\blue You have unfastened \the [src].", \ + "You hear ratchet.") + new /obj/item/pipe(loc, make_from=src) + del(src) \ No newline at end of file diff --git a/code/ATMOSPHERICS/mapdebugging.dm b/code/ATMOSPHERICS/mapdebugging.dm deleted file mode 100644 index 2dc39497136..00000000000 --- a/code/ATMOSPHERICS/mapdebugging.dm +++ /dev/null @@ -1,16 +0,0 @@ -client/verb/discon_pipes() - set name = "Show Disconnected Pipes" - set category = "Debug" - - for(var/obj/machinery/atmospherics/pipe/simple/P in world) - if(!P.node1 || !P.node2) - usr << "[P], [P.x], [P.y], [P.z], [P.loc.loc]" - - for(var/obj/machinery/atmospherics/pipe/manifold/P in world) - if(!P.node1 || !P.node2 || !P.node3) - usr << "[P], [P.x], [P.y], [P.z], [P.loc.loc]" - - for(var/obj/machinery/atmospherics/pipe/manifold4w/P in world) - if(!P.node1 || !P.node2 || !P.node3 || !P.node4) - usr << "[P], [P.x], [P.y], [P.z], [P.loc.loc]" -//With thanks to mini. Check before use, uncheck after. Do Not Use on a live server. \ No newline at end of file diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm index 11daee64c3d..7ee65162d76 100644 --- a/code/ATMOSPHERICS/pipes.dm +++ b/code/ATMOSPHERICS/pipes.dm @@ -1,4 +1,4 @@ -obj/machinery/atmospherics/pipe +/obj/machinery/atmospherics/pipe var/datum/gas_mixture/air_temporary //used when reconstructing a pipeline that broke var/datum/pipeline/parent @@ -12,51 +12,57 @@ obj/machinery/atmospherics/pipe var/alert_pressure = 80*ONE_ATMOSPHERE //minimum pressure before check_pressure(...) should be called -obj/machinery/atmospherics/pipe/proc/pipeline_expansion() +/obj/machinery/atmospherics/pipe/New() + ..() + //so pipes under walls are hidden + if(!istype(get_turf(src), /turf/simulated/floor)) + level = 1 + +/obj/machinery/atmospherics/pipe/proc/pipeline_expansion() return null -obj/machinery/atmospherics/pipe/proc/check_pressure(pressure) +/obj/machinery/atmospherics/pipe/proc/check_pressure(pressure) //Return 1 if parent should continue checking other pipes //Return null if parent should stop checking other pipes. Recall: del(src) will by default return null return 1 -obj/machinery/atmospherics/pipe/return_air() +/obj/machinery/atmospherics/pipe/return_air() if(!parent) parent = new /datum/pipeline() parent.build_pipeline(src) return parent.air -obj/machinery/atmospherics/pipe/build_network() +/obj/machinery/atmospherics/pipe/build_network() if(!parent) parent = new /datum/pipeline() parent.build_pipeline(src) return parent.return_network() -obj/machinery/atmospherics/pipe/network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference) +/obj/machinery/atmospherics/pipe/network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference) if(!parent) parent = new /datum/pipeline() parent.build_pipeline(src) return parent.network_expand(new_network, reference) -obj/machinery/atmospherics/pipe/return_network(obj/machinery/atmospherics/reference) +/obj/machinery/atmospherics/pipe/return_network(obj/machinery/atmospherics/reference) if(!parent) parent = new /datum/pipeline() parent.build_pipeline(src) return parent.return_network(reference) -obj/machinery/atmospherics/pipe/Del() +/obj/machinery/atmospherics/pipe/Del() del(parent) if(air_temporary) loc.assume_air(air_temporary) ..() -obj/machinery/atmospherics/pipe/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) +/obj/machinery/atmospherics/pipe/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) if (istype(src, /obj/machinery/atmospherics/pipe/tank)) return ..() if (istype(src, /obj/machinery/atmospherics/pipe/vent)) @@ -91,10 +97,44 @@ obj/machinery/atmospherics/pipe/attackby(var/obj/item/weapon/W as obj, var/mob/u del(meter) del(src) +/obj/machinery/atmospherics/proc/change_color(var/new_color) + //only pass valid pipe colors please ~otherwise your pipe will turn invisible + if(!pipe_color_check(new_color)) + return -obj/machinery/atmospherics/pipe/simple - icon = 'icons/obj/pipes.dmi' + pipe_color = new_color + update_icon() +/obj/machinery/atmospherics/pipe/add_underlay(var/obj/machinery/atmospherics/node, var/direction) + if(istype(src, /obj/machinery/atmospherics/pipe/tank)) //todo: move tanks to unary devices + return ..() + + if(node) + var/temp_dir = get_dir(src, node) + underlays += icon_manager.get_atmos_icon("pipe_underlay_intact", temp_dir, color_cache_name(node)) + return temp_dir + else if(direction) + underlays += icon_manager.get_atmos_icon("pipe_underlay_exposed", direction, pipe_color) + else + return null + +/obj/machinery/atmospherics/pipe/color_cache_name(var/obj/machinery/atmospherics/node) + if(istype(src, /obj/machinery/atmospherics/pipe/tank)) + return ..() + + if(istype(node, /obj/machinery/atmospherics/pipe/manifold) || istype(node, /obj/machinery/atmospherics/pipe/manifold4w)) + if(pipe_color == node.pipe_color) + return node.pipe_color + else + return null + else if(istype(node, /obj/machinery/atmospherics/pipe/simple)) + return node.pipe_color + else + return pipe_color + +/obj/machinery/atmospherics/pipe/simple + icon = 'icons/atmos/pipes.dmi' + icon_state = "" name = "pipe" desc = "A one meter section of regular pipe" @@ -113,12 +153,16 @@ obj/machinery/atmospherics/pipe/simple var/fatigue_pressure = 55*ONE_ATMOSPHERE alert_pressure = 55*ONE_ATMOSPHERE - level = 1 -obj/machinery/atmospherics/pipe/simple/New() +/obj/machinery/atmospherics/pipe/simple/New() ..() + + // Pipe colors and icon states are handled by an image cache - so color and icon should + // be null. For mapping purposes color is defined in the object definitions. + icon = null alpha = 255 + switch(dir) if(SOUTH || NORTH) initialize_directions = SOUTH|NORTH @@ -133,53 +177,18 @@ obj/machinery/atmospherics/pipe/simple/New() if(SOUTHWEST) initialize_directions = SOUTH|WEST - -obj/machinery/atmospherics/pipe/simple/hide(var/i) +/obj/machinery/atmospherics/pipe/simple/hide(var/i) if(level == 1 && istype(loc, /turf/simulated)) invisibility = i ? 101 : 0 update_icon() -obj/machinery/atmospherics/pipe/simple/process() +/obj/machinery/atmospherics/pipe/simple/process() if(!parent) //This should cut back on the overhead calling build_network thousands of times per cycle ..() else . = PROCESS_KILL - /*if(!node1) - parent.mingle_with_turf(loc, volume) - if(!nodealert) - //world << "Missing node from [src] at [src.x],[src.y],[src.z]" - nodealert = 1 - - else if(!node2) - parent.mingle_with_turf(loc, volume) - if(!nodealert) - //world << "Missing node from [src] at [src.x],[src.y],[src.z]" - nodealert = 1 - else if (nodealert) - nodealert = 0 - - - else if(parent) - var/environment_temperature = 0 - - if(istype(loc, /turf/simulated/)) - if(loc:blocks_air) - environment_temperature = loc:temperature - else - var/datum/gas_mixture/environment = loc.return_air() - environment_temperature = environment.temperature - - else - 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) - */ //Screw you heat lag - -obj/machinery/atmospherics/pipe/simple/check_pressure(pressure) +/obj/machinery/atmospherics/pipe/simple/check_pressure(pressure) var/datum/gas_mixture/environment = loc.return_air() var/pressure_difference = pressure - environment.return_pressure() @@ -194,7 +203,7 @@ obj/machinery/atmospherics/pipe/simple/check_pressure(pressure) else return 1 -obj/machinery/atmospherics/pipe/simple/proc/burst() +/obj/machinery/atmospherics/pipe/simple/proc/burst() src.visible_message("\red \bold [src] bursts!"); playsound(src.loc, 'sound/effects/bang.ogg', 25, 1) var/datum/effect/effect/system/smoke_spread/smoke = new @@ -202,13 +211,13 @@ obj/machinery/atmospherics/pipe/simple/proc/burst() smoke.start() del(src) -obj/machinery/atmospherics/pipe/simple/proc/normalize_dir() +/obj/machinery/atmospherics/pipe/simple/proc/normalize_dir() if(dir==3) dir = 1 else if(dir==12) dir = 4 -obj/machinery/atmospherics/pipe/simple/Del() +/obj/machinery/atmospherics/pipe/simple/Del() if(node1) node1.disconnect(src) if(node2) @@ -216,42 +225,42 @@ obj/machinery/atmospherics/pipe/simple/Del() ..() -obj/machinery/atmospherics/pipe/simple/pipeline_expansion() +/obj/machinery/atmospherics/pipe/simple/pipeline_expansion() return list(node1, node2) -obj/machinery/atmospherics/pipe/simple/update_icon() - switch(pipe_color) - if ("red") color = COLOR_RED - if ("blue") color = COLOR_BLUE - if ("cyan") color = COLOR_CYAN - if ("green") color = COLOR_GREEN - if ("yellow") color = "#FFCC00" - if ("purple") color = "#5C1EC0" - if ("grey") color = null +/obj/machinery/atmospherics/pipe/simple/change_color(var/new_color) + ..() + //for updating connected atmos device pipes (i.e. vents, manifolds, etc) + if(node1) + node1.update_underlays() + if(node2) + node2.update_underlays() - if(node1 && node2) - icon_state = "intact[invisibility ? "-f" : "" ]" +/obj/machinery/atmospherics/pipe/simple/update_icon(var/safety = 0) + if(!check_icon_cache()) + return - //var/node1_direction = get_dir(src, node1) - //var/node2_direction = get_dir(src, node2) + alpha = 255 - //dir = node1_direction|node2_direction + overlays.Cut() + if(!node1 && !node2) + var/turf/T = get_turf(src) + new /obj/item/pipe(loc, make_from=src) + for (var/obj/machinery/meter/meter in T) + if (meter.target == src) + new /obj/item/pipe_meter(T) + del(meter) + del(src) + else if(node1 && node2) + overlays += icon_manager.get_atmos_icon("pipe", , pipe_color, "intact") else - if(!node1 && !node2) - var/turf/T = get_turf(src) - new /obj/item/pipe(loc, make_from=src) - for (var/obj/machinery/meter/meter in T) - if (meter.target == src) - new /obj/item/pipe_meter(T) - del(meter) - del(src) - var/have_node1 = node1?1:0 - var/have_node2 = node2?1:0 - icon_state = "exposed[have_node1][have_node2][invisibility ? "-f" : "" ]" + overlays += icon_manager.get_atmos_icon("pipe", , pipe_color, "exposed[node1?1:0][node2?1:0]") +/obj/machinery/atmospherics/pipe/simple/update_underlays() + return -obj/machinery/atmospherics/pipe/simple/initialize() +/obj/machinery/atmospherics/pipe/simple/initialize() normalize_dir() var/node1_dir var/node2_dir @@ -276,12 +285,12 @@ obj/machinery/atmospherics/pipe/simple/initialize() del(src) return - var/turf/T = src.loc // hide if turf is not intact - hide(T.intact) + var/turf/T = get_turf(src) + if(istype(T)) + hide(T.intact) update_icon() - //update_icon() -obj/machinery/atmospherics/pipe/simple/disconnect(obj/machinery/atmospherics/reference) +/obj/machinery/atmospherics/pipe/simple/disconnect(obj/machinery/atmospherics/reference) if(reference == node1) if(istype(node1, /obj/machinery/atmospherics/pipe)) del(parent) @@ -296,55 +305,56 @@ obj/machinery/atmospherics/pipe/simple/disconnect(obj/machinery/atmospherics/ref return null - - - -obj/machinery/atmospherics/pipe/simple/visible - level = 2 +/obj/machinery/atmospherics/pipe/simple/visible icon_state = "intact" + level = 2 -obj/machinery/atmospherics/pipe/simple/visible/scrubbers - name="Scrubbers pipe" - color=COLOR_RED +/obj/machinery/atmospherics/pipe/simple/visible/scrubbers + name = "Scrubbers pipe" + color = PIPE_COLOR_RED -obj/machinery/atmospherics/pipe/simple/visible/supply - name="Air supply pipe" - color=COLOR_BLUE +/obj/machinery/atmospherics/pipe/simple/visible/supply + name = "Air supply pipe" + color = PIPE_COLOR_BLUE -obj/machinery/atmospherics/pipe/simple/visible/yellow - color="#FFCC00" +/obj/machinery/atmospherics/pipe/simple/visible/yellow + color = PIPE_COLOR_YELLOW -obj/machinery/atmospherics/pipe/simple/visible/cyan - color=COLOR_CYAN +/obj/machinery/atmospherics/pipe/simple/visible/cyan + color = PIPE_COLOR_CYAN -obj/machinery/atmospherics/pipe/simple/visible/green - color=COLOR_GREEN +/obj/machinery/atmospherics/pipe/simple/visible/green + color = PIPE_COLOR_GREEN +/obj/machinery/atmospherics/pipe/simple/visible/purple + color = PIPE_COLOR_PURPLE -obj/machinery/atmospherics/pipe/simple/hidden +/obj/machinery/atmospherics/pipe/simple/hidden + icon_state = "intact" level = 1 - icon_state = "intact-f" - alpha = 192 //set for the benefit of mapping - this is reset to opaque when the pipe is spawned in game + alpha = 128 //set for the benefit of mapping - this is reset to opaque when the pipe is spawned in game -obj/machinery/atmospherics/pipe/simple/hidden/scrubbers - name="Scrubbers pipe" - color=COLOR_RED +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers + name = "Scrubbers pipe" + color = PIPE_COLOR_RED -obj/machinery/atmospherics/pipe/simple/hidden/supply - name="Air supply pipe" - color=COLOR_BLUE +/obj/machinery/atmospherics/pipe/simple/hidden/supply + name = "Air supply pipe" + color = PIPE_COLOR_BLUE -obj/machinery/atmospherics/pipe/simple/hidden/yellow - color="#FFCC00" +/obj/machinery/atmospherics/pipe/simple/hidden/yellow + color = PIPE_COLOR_YELLOW -obj/machinery/atmospherics/pipe/simple/hidden/cyan - color=COLOR_CYAN +/obj/machinery/atmospherics/pipe/simple/hidden/cyan + color = PIPE_COLOR_CYAN -obj/machinery/atmospherics/pipe/simple/hidden/green - color=COLOR_GREEN +/obj/machinery/atmospherics/pipe/simple/hidden/green + color = PIPE_COLOR_GREEN +/obj/machinery/atmospherics/pipe/simple/hidden/purple + color = PIPE_COLOR_PURPLE -obj/machinery/atmospherics/pipe/simple/insulated +/obj/machinery/atmospherics/pipe/simple/insulated icon = 'icons/obj/atmospherics/red_pipe.dmi' icon_state = "intact" @@ -357,9 +367,9 @@ obj/machinery/atmospherics/pipe/simple/insulated level = 2 -obj/machinery/atmospherics/pipe/manifold - icon = 'icons/obj/atmospherics/pipe_manifold.dmi' - +/obj/machinery/atmospherics/pipe/manifold + icon = 'icons/atmos/manifold.dmi' + icon_state = "" name = "pipe manifold" desc = "A manifold composed of regular pipes" @@ -375,8 +385,11 @@ obj/machinery/atmospherics/pipe/manifold level = 1 layer = 2.4 //under wires with their 2.44 -obj/machinery/atmospherics/pipe/manifold/New() +/obj/machinery/atmospherics/pipe/manifold/New() + ..() alpha = 255 + icon = null + switch(dir) if(NORTH) initialize_directions = EAST|SOUTH|WEST @@ -387,43 +400,21 @@ obj/machinery/atmospherics/pipe/manifold/New() if(WEST) initialize_directions = NORTH|EAST|SOUTH - ..() - - - -obj/machinery/atmospherics/pipe/manifold/hide(var/i) +/obj/machinery/atmospherics/pipe/manifold/hide(var/i) if(level == 1 && istype(loc, /turf/simulated)) invisibility = i ? 101 : 0 update_icon() -obj/machinery/atmospherics/pipe/manifold/pipeline_expansion() +/obj/machinery/atmospherics/pipe/manifold/pipeline_expansion() return list(node1, node2, node3) -obj/machinery/atmospherics/pipe/manifold/process() +/obj/machinery/atmospherics/pipe/manifold/process() if(!parent) ..() else . = PROCESS_KILL -/* - if(!node1) - parent.mingle_with_turf(loc, 70) - if(!nodealert) - //world << "Missing node from [src] at [src.x],[src.y],[src.z]" - nodealert = 1 - else if(!node2) - parent.mingle_with_turf(loc, 70) - if(!nodealert) - //world << "Missing node from [src] at [src.x],[src.y],[src.z]" - nodealert = 1 - else if(!node3) - parent.mingle_with_turf(loc, 70) - if(!nodealert) - //world << "Missing node from [src] at [src.x],[src.y],[src.z]" - nodealert = 1 - else if (nodealert) - nodealert = 0 -*/ -obj/machinery/atmospherics/pipe/manifold/Del() + +/obj/machinery/atmospherics/pipe/manifold/Del() if(node1) node1.disconnect(src) if(node2) @@ -433,7 +424,7 @@ obj/machinery/atmospherics/pipe/manifold/Del() ..() -obj/machinery/atmospherics/pipe/manifold/disconnect(obj/machinery/atmospherics/reference) +/obj/machinery/atmospherics/pipe/manifold/disconnect(obj/machinery/atmospherics/reference) if(reference == node1) if(istype(node1, /obj/machinery/atmospherics/pipe)) del(parent) @@ -453,40 +444,51 @@ obj/machinery/atmospherics/pipe/manifold/disconnect(obj/machinery/atmospherics/r ..() -obj/machinery/atmospherics/pipe/manifold/update_icon() - if(node1&&node2&&node3) - switch(pipe_color) - if ("red") color = COLOR_RED - if ("blue") color = COLOR_BLUE - if ("cyan") color = COLOR_CYAN - if ("green") color = COLOR_GREEN - if ("yellow") color = "#FFCC00" - if ("purple") color = "#5C1EC0" - if ("grey") color = null - icon_state = "manifold[invisibility ? "-f" : "" ]" +/obj/machinery/atmospherics/pipe/manifold/change_color(var/new_color) + ..() + //for updating connected atmos device pipes (i.e. vents, manifolds, etc) + if(node1) + node1.update_underlays() + if(node2) + node2.update_underlays() + if(node3) + node3.update_underlays() +/obj/machinery/atmospherics/pipe/manifold/update_icon(var/safety = 0) + if(!check_icon_cache()) + return + + alpha = 255 + + if(!node1 && !node2 && !node3) + var/turf/T = get_turf(src) + new /obj/item/pipe(loc, make_from=src) + for (var/obj/machinery/meter/meter in T) + if (meter.target == src) + new /obj/item/pipe_meter(T) + del(meter) + del(src) else - var/connected = 0 - var/unconnected = 0 - var/connect_directions = (NORTH|SOUTH|EAST|WEST)&(~dir) + overlays.Cut() + overlays += icon_manager.get_atmos_icon("manifold", , pipe_color, "core") + overlays += icon_manager.get_atmos_icon("manifold", , , "clamps") + underlays.Cut() + + var/list/directions = list(NORTH, SOUTH, EAST, WEST) + directions -= dir - if(node1) - connected |= get_dir(src, node1) - if(node2) - connected |= get_dir(src, node2) - if(node3) - connected |= get_dir(src, node3) + directions -= add_underlay(node1) + directions -= add_underlay(node2) + directions -= add_underlay(node3) - unconnected = (~connected)&(connect_directions) + for(var/D in directions) + add_underlay(,D) - icon_state = "manifold_[connected]_[unconnected]" +/obj/machinery/atmospherics/pipe/manifold/update_underlays() + ..() + update_icon() - if(!connected) - del(src) - - return - -obj/machinery/atmospherics/pipe/manifold/initialize() +/obj/machinery/atmospherics/pipe/manifold/initialize() var/connect_directions = (NORTH|SOUTH|EAST|WEST)&(~dir) for(var/direction in cardinal) @@ -521,61 +523,63 @@ obj/machinery/atmospherics/pipe/manifold/initialize() if (node3) break - var/turf/T = src.loc // hide if turf is not intact - hide(T.intact) - //update_icon() + var/turf/T = get_turf(src) + if(istype(T)) + hide(T.intact) update_icon() - -obj/machinery/atmospherics/pipe/manifold/visible +/obj/machinery/atmospherics/pipe/manifold/visible + icon_state = "map" level = 2 - icon_state = "manifold" -obj/machinery/atmospherics/pipe/manifold/visible/supply - name="Air supply pipe" - color=COLOR_BLUE +/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers + name = "Scrubbers pipe" + color = PIPE_COLOR_RED -obj/machinery/atmospherics/pipe/manifold/visible/scrubbers - name="Scrubbers pipe" - color=COLOR_RED +/obj/machinery/atmospherics/pipe/manifold/visible/supply + name = "Air supply pipe" + color = PIPE_COLOR_BLUE -obj/machinery/atmospherics/pipe/manifold/visible/yellow - color="#FFCC00" +/obj/machinery/atmospherics/pipe/manifold/visible/yellow + color = PIPE_COLOR_YELLOW -obj/machinery/atmospherics/pipe/manifold/visible/cyan - color=COLOR_CYAN +/obj/machinery/atmospherics/pipe/manifold/visible/cyan + color = PIPE_COLOR_CYAN -obj/machinery/atmospherics/pipe/manifold/visible/green - color=COLOR_GREEN +/obj/machinery/atmospherics/pipe/manifold/visible/green + color = PIPE_COLOR_GREEN +/obj/machinery/atmospherics/pipe/manifold/visible/purple + color = PIPE_COLOR_PURPLE -obj/machinery/atmospherics/pipe/manifold/hidden +/obj/machinery/atmospherics/pipe/manifold/hidden + icon_state = "map" level = 1 - icon_state = "manifold-f" - alpha = 192 //set for the benefit of mapping - this is reset to opaque when the pipe is spawned in game + alpha = 128 //set for the benefit of mapping - this is reset to opaque when the pipe is spawned in game -obj/machinery/atmospherics/pipe/manifold/hidden/supply - name="Air supply pipe" - color=COLOR_BLUE +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers + name = "Scrubbers pipe" + color = PIPE_COLOR_RED -obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers - name="Scrubbers pipe" - color = COLOR_RED +/obj/machinery/atmospherics/pipe/manifold/hidden/supply + name = "Air supply pipe" + color = PIPE_COLOR_BLUE -obj/machinery/atmospherics/pipe/manifold/hidden/yellow - color="#FFCC00" +/obj/machinery/atmospherics/pipe/manifold/hidden/yellow + color = PIPE_COLOR_YELLOW -obj/machinery/atmospherics/pipe/manifold/hidden/cyan - color=COLOR_CYAN +/obj/machinery/atmospherics/pipe/manifold/hidden/cyan + color = PIPE_COLOR_CYAN -obj/machinery/atmospherics/pipe/manifold/hidden/green - color=COLOR_GREEN +/obj/machinery/atmospherics/pipe/manifold/hidden/green + color = PIPE_COLOR_GREEN +/obj/machinery/atmospherics/pipe/manifold/hidden/purple + color = PIPE_COLOR_PURPLE - -obj/machinery/atmospherics/pipe/manifold4w - icon = 'icons/obj/atmospherics/pipe_manifold.dmi' - +/obj/machinery/atmospherics/pipe/manifold4w + icon = 'icons/atmos/manifold.dmi' + icon_state = "" name = "4-way pipe manifold" desc = "A manifold composed of regular pipes" @@ -592,43 +596,21 @@ obj/machinery/atmospherics/pipe/manifold4w level = 1 layer = 2.4 //under wires with their 2.44 -obj/machinery/atmospherics/pipe/manifold4w/New() +/obj/machinery/atmospherics/pipe/manifold4w/New() ..() alpha = 255 + icon = null -obj/machinery/atmospherics/pipe/manifold4w/hide(var/i) - if(level == 1 && istype(loc, /turf/simulated)) - invisibility = i ? 101 : 0 - update_icon() - -obj/machinery/atmospherics/pipe/manifold4w/pipeline_expansion() +/obj/machinery/atmospherics/pipe/manifold4w/pipeline_expansion() return list(node1, node2, node3, node4) -obj/machinery/atmospherics/pipe/manifold4w/process() +/obj/machinery/atmospherics/pipe/manifold4w/process() if(!parent) ..() else . = PROCESS_KILL -/* - if(!node1) - parent.mingle_with_turf(loc, 70) - if(!nodealert) - //world << "Missing node from [src] at [src.x],[src.y],[src.z]" - nodealert = 1 - else if(!node2) - parent.mingle_with_turf(loc, 70) - if(!nodealert) - //world << "Missing node from [src] at [src.x],[src.y],[src.z]" - nodealert = 1 - else if(!node3) - parent.mingle_with_turf(loc, 70) - if(!nodealert) - //world << "Missing node from [src] at [src.x],[src.y],[src.z]" - nodealert = 1 - else if (nodealert) - nodealert = 0 -*/ -obj/machinery/atmospherics/pipe/manifold4w/Del() + +/obj/machinery/atmospherics/pipe/manifold4w/Del() if(node1) node1.disconnect(src) if(node2) @@ -640,7 +622,7 @@ obj/machinery/atmospherics/pipe/manifold4w/Del() ..() -obj/machinery/atmospherics/pipe/manifold4w/disconnect(obj/machinery/atmospherics/reference) +/obj/machinery/atmospherics/pipe/manifold4w/disconnect(obj/machinery/atmospherics/reference) if(reference == node1) if(istype(node1, /obj/machinery/atmospherics/pipe)) del(parent) @@ -665,37 +647,58 @@ obj/machinery/atmospherics/pipe/manifold4w/disconnect(obj/machinery/atmospherics ..() -obj/machinery/atmospherics/pipe/manifold4w/update_icon() - overlays.Cut() - if(node1&&node2&&node3&&node4) - switch(pipe_color) - if ("red") color = COLOR_RED - if ("blue") color = COLOR_BLUE - if ("cyan") color = COLOR_CYAN - if ("green") color = COLOR_GREEN - if ("yellow") color = "#FFCC00" - if ("purple") color = "#5C1EC0" - if ("grey") color = null - icon_state = "manifold4w[invisibility ? "-f" : "" ]" +/obj/machinery/atmospherics/pipe/manifold4w/change_color(var/new_color) + ..() + //for updating connected atmos device pipes (i.e. vents, manifolds, etc) + if(node1) + node1.update_underlays() + if(node2) + node2.update_underlays() + if(node3) + node3.update_underlays() + if(node4) + node4.update_underlays() +/obj/machinery/atmospherics/pipe/manifold4w/update_icon(var/safety = 0) + if(!check_icon_cache()) + return + + alpha = 255 + + if(!node1 && !node2 && !node3 && !node4) + var/turf/T = get_turf(src) + new /obj/item/pipe(loc, make_from=src) + for (var/obj/machinery/meter/meter in T) + if (meter.target == src) + new /obj/item/pipe_meter(T) + del(meter) + del(src) else - icon_state = "manifold4w_ex" - var/icon/con = new/icon('icons/obj/atmospherics/pipe_manifold.dmi',"manifold4w_con") //Since 4-ways are supposed to be directionless, they need an overlay instead it seems. + overlays.Cut() + overlays += icon_manager.get_atmos_icon("manifold", , pipe_color, "4way") + overlays += icon_manager.get_atmos_icon("manifold", , , "clamps_4way") + underlays.Cut() + + var/list/directions = list(NORTH, SOUTH, EAST, WEST) - if(node1) - overlays += new/image(con,dir=1) - if(node2) - overlays += new/image(con,dir=2) - if(node3) - overlays += new/image(con,dir=4) - if(node4) - overlays += new/image(con,dir=8) + directions -= add_underlay(node1) + directions -= add_underlay(node2) + directions -= add_underlay(node3) + directions -= add_underlay(node4) - if(!node1 && !node2 && !node3 && !node4) - del(src) - return + for(var/D in directions) + add_underlay(,D) -obj/machinery/atmospherics/pipe/manifold4w/initialize() +/obj/machinery/atmospherics/pipe/manifold4w/update_underlays() + ..() + update_icon() + +/obj/machinery/atmospherics/pipe/manifold4w/hide(var/i) + if(level == 1 && istype(loc, /turf/simulated)) + invisibility = i ? 101 : 0 + update_icon() + +/obj/machinery/atmospherics/pipe/manifold4w/initialize() for(var/obj/machinery/atmospherics/target in get_step(src,1)) if(target.initialize_directions & 2) @@ -717,58 +720,61 @@ obj/machinery/atmospherics/pipe/manifold4w/initialize() node4 = target break - var/turf/T = src.loc // hide if turf is not intact - hide(T.intact) - //update_icon() + var/turf/T = get_turf(src) + if(istype(T)) + hide(T.intact) update_icon() - -obj/machinery/atmospherics/pipe/manifold4w/visible +/obj/machinery/atmospherics/pipe/manifold4w/visible + icon_state = "map_4way" level = 2 - icon_state = "manifold4w" -obj/machinery/atmospherics/pipe/manifold4w/visible/supply - name="Air supply pipe" - color=COLOR_BLUE +/obj/machinery/atmospherics/pipe/manifold4w/visible/scrubbers + name = "Scrubbers pipe" + color = PIPE_COLOR_RED -obj/machinery/atmospherics/pipe/manifold4w/visible/scrubbers - name="Scrubbers pipe" - color=COLOR_RED +/obj/machinery/atmospherics/pipe/manifold4w/visible/supply + name = "Air supply pipe" + color = PIPE_COLOR_BLUE -obj/machinery/atmospherics/pipe/manifold4w/visible/yellow - color="#FFCC00" +/obj/machinery/atmospherics/pipe/manifold4w/visible/yellow + color = PIPE_COLOR_YELLOW -obj/machinery/atmospherics/pipe/manifold4w/visible/cyan - color=COLOR_CYAN +/obj/machinery/atmospherics/pipe/manifold4w/visible/cyan + color = PIPE_COLOR_CYAN -obj/machinery/atmospherics/pipe/manifold4w/visible/green - color=COLOR_GREEN +/obj/machinery/atmospherics/pipe/manifold4w/visible/green + color = PIPE_COLOR_GREEN +/obj/machinery/atmospherics/pipe/manifold4w/visible/purple + color = PIPE_COLOR_PURPLE -obj/machinery/atmospherics/pipe/manifold4w/hidden +/obj/machinery/atmospherics/pipe/manifold4w/hidden + icon_state = "map_4way" level = 1 - icon_state = "manifold4w-f" - alpha = 192 //set for the benefit of mapping - this is reset to opaque when the pipe is spawned in game + alpha = 128 //set for the benefit of mapping - this is reset to opaque when the pipe is spawned in game -obj/machinery/atmospherics/pipe/manifold4w/hidden/supply - name="Air supply pipe" - color=COLOR_BLUE +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers + name = "Scrubbers pipe" + color = PIPE_COLOR_RED -obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers - name="Scrubbers pipe" - color=COLOR_RED +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply + name = "Air supply pipe" + color = PIPE_COLOR_BLUE -obj/machinery/atmospherics/pipe/manifold4w/hidden/yellow - color="#FFCC00" +/obj/machinery/atmospherics/pipe/manifold4w/hidden/yellow + color = PIPE_COLOR_YELLOW -obj/machinery/atmospherics/pipe/manifold4w/hidden/cyan - color=COLOR_CYAN +/obj/machinery/atmospherics/pipe/manifold4w/hidden/cyan + color = PIPE_COLOR_CYAN -obj/machinery/atmospherics/pipe/manifold4w/hidden/green - color=COLOR_GREEN +/obj/machinery/atmospherics/pipe/manifold4w/hidden/green + color = PIPE_COLOR_GREEN +/obj/machinery/atmospherics/pipe/manifold4w/hidden/purple + color = PIPE_COLOR_PURPLE -obj/machinery/atmospherics/pipe/cap +/obj/machinery/atmospherics/pipe/cap name = "pipe endcap" desc = "An endcap for pipes" icon = 'icons/obj/pipes.dmi' @@ -783,7 +789,7 @@ obj/machinery/atmospherics/pipe/cap var/obj/machinery/atmospherics/node -obj/machinery/atmospherics/pipe/cap/New() +/obj/machinery/atmospherics/pipe/cap/New() ..() switch(dir) if(SOUTH) @@ -795,26 +801,26 @@ obj/machinery/atmospherics/pipe/cap/New() if(EAST) initialize_directions = WEST -obj/machinery/atmospherics/pipe/cap/hide(var/i) +/obj/machinery/atmospherics/pipe/cap/hide(var/i) if(level == 1 && istype(loc, /turf/simulated)) invisibility = i ? 101 : 0 update_icon() -obj/machinery/atmospherics/pipe/cap/pipeline_expansion() +/obj/machinery/atmospherics/pipe/cap/pipeline_expansion() return list(node) -obj/machinery/atmospherics/pipe/cap/process() +/obj/machinery/atmospherics/pipe/cap/process() if(!parent) ..() else . = PROCESS_KILL -obj/machinery/atmospherics/pipe/cap/Del() +/obj/machinery/atmospherics/pipe/cap/Del() if(node) node.disconnect(src) ..() -obj/machinery/atmospherics/pipe/cap/disconnect(obj/machinery/atmospherics/reference) +/obj/machinery/atmospherics/pipe/cap/disconnect(obj/machinery/atmospherics/reference) if(reference == node) if(istype(node, /obj/machinery/atmospherics/pipe)) del(parent) @@ -824,13 +830,13 @@ obj/machinery/atmospherics/pipe/cap/disconnect(obj/machinery/atmospherics/refere ..() -obj/machinery/atmospherics/pipe/cap/update_icon() +/obj/machinery/atmospherics/pipe/cap/update_icon() overlays = new() icon_state = "cap[invisibility ? "-f" : ""]" return -obj/machinery/atmospherics/pipe/cap/initialize() +/obj/machinery/atmospherics/pipe/cap/initialize() for(var/obj/machinery/atmospherics/target in get_step(src, dir)) if(target.initialize_directions & get_dir(target,src)) node = target @@ -838,151 +844,65 @@ obj/machinery/atmospherics/pipe/cap/initialize() var/turf/T = src.loc // hide if turf is not intact hide(T.intact) - //update_icon() update_icon() -obj/machinery/atmospherics/pipe/cap/visible +/obj/machinery/atmospherics/pipe/cap/visible level = 2 icon_state = "cap" -obj/machinery/atmospherics/pipe/cap/hidden +/obj/machinery/atmospherics/pipe/cap/hidden level = 1 icon_state = "cap-f" -obj/machinery/atmospherics/pipe/tank - icon = 'icons/obj/atmospherics/pipe_tank.dmi' - icon_state = "intact" +/obj/machinery/atmospherics/pipe/tank + icon = 'icons/atmos/tank.dmi' + icon_state = "air_map" name = "Pressure Tank" desc = "A large vessel containing pressurized gas." - volume = 2000 //in liters, 1 meters by 1 meters by 2 meters + volume = 10000 //in liters, 1 meters by 1 meters by 2 meters ~tweaked it a little to simulate a pressure tank without needing to recode them yet + level = 1 dir = SOUTH initialize_directions = SOUTH density = 1 var/obj/machinery/atmospherics/node1 -obj/machinery/atmospherics/pipe/tank/New() +/obj/machinery/atmospherics/pipe/tank/New() + icon_state = "air" initialize_directions = dir ..() -obj/machinery/atmospherics/pipe/tank/process() +/obj/machinery/atmospherics/pipe/tank/process() if(!parent) ..() else . = PROCESS_KILL -/* if(!node1) - parent.mingle_with_turf(loc, 200) - if(!nodealert) - //world << "Missing node from [src] at [src.x],[src.y],[src.z]" - nodealert = 1 - else if (nodealert) - nodealert = 0 -*/ -obj/machinery/atmospherics/pipe/tank/carbon_dioxide - name = "Pressure Tank (Carbon Dioxide)" - New() - air_temporary = new - air_temporary.volume = volume - air_temporary.temperature = T20C - - air_temporary.carbon_dioxide = (25*ONE_ATMOSPHERE)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) - - ..() - -obj/machinery/atmospherics/pipe/tank/phoron - icon = 'icons/obj/atmospherics/orange_pipe_tank.dmi' - name = "Pressure Tank (Phoron)" - - New() - air_temporary = new - air_temporary.volume = volume - air_temporary.temperature = T20C - - air_temporary.phoron = (25*ONE_ATMOSPHERE)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) - - ..() - -obj/machinery/atmospherics/pipe/tank/oxygen_agent_b - icon = 'icons/obj/atmospherics/red_orange_pipe_tank.dmi' - name = "Pressure Tank (Oxygen + Phoron)" - - New() - air_temporary = new - air_temporary.volume = volume - air_temporary.temperature = T0C - - var/datum/gas/oxygen_agent_b/trace_gas = new - trace_gas.moles = (25*ONE_ATMOSPHERE)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) - - air_temporary.trace_gases += trace_gas - - ..() - -obj/machinery/atmospherics/pipe/tank/oxygen - icon = 'icons/obj/atmospherics/blue_pipe_tank.dmi' - name = "Pressure Tank (Oxygen)" - - New() - air_temporary = new - air_temporary.volume = volume - air_temporary.temperature = T20C - - air_temporary.oxygen = (25*ONE_ATMOSPHERE)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) - - ..() - -obj/machinery/atmospherics/pipe/tank/nitrogen - icon = 'icons/obj/atmospherics/red_pipe_tank.dmi' - name = "Pressure Tank (Nitrogen)" - - New() - air_temporary = new - air_temporary.volume = volume - air_temporary.temperature = T20C - - air_temporary.nitrogen = (25*ONE_ATMOSPHERE)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) - - ..() - -obj/machinery/atmospherics/pipe/tank/air - icon = 'icons/obj/atmospherics/red_pipe_tank.dmi' - name = "Pressure Tank (Air)" - - New() - air_temporary = new - air_temporary.volume = volume - air_temporary.temperature = T20C - - air_temporary.oxygen = (25*ONE_ATMOSPHERE*O2STANDARD)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) - air_temporary.nitrogen = (25*ONE_ATMOSPHERE*N2STANDARD)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) - - ..() - -obj/machinery/atmospherics/pipe/tank/Del() +/obj/machinery/atmospherics/pipe/tank/Del() if(node1) node1.disconnect(src) ..() -obj/machinery/atmospherics/pipe/tank/pipeline_expansion() +/obj/machinery/atmospherics/pipe/tank/pipeline_expansion() return list(node1) -obj/machinery/atmospherics/pipe/tank/update_icon() - if(node1) - icon_state = "intact" +/obj/machinery/atmospherics/pipe/tank/update_underlays() + if(..()) + underlays.Cut() + var/turf/T = get_turf(src) + if(!istype(T)) + return + add_underlay(T, node1, dir) - dir = get_dir(src, node1) - - else - icon_state = "exposed" - -obj/machinery/atmospherics/pipe/tank/initialize() +/obj/machinery/atmospherics/pipe/tank/hide() + update_underlays() +/obj/machinery/atmospherics/pipe/tank/initialize() var/connect_direction = dir for(var/obj/machinery/atmospherics/target in get_step(src,connect_direction)) @@ -990,20 +910,23 @@ obj/machinery/atmospherics/pipe/tank/initialize() node1 = target break - update_icon() + update_underlays() -obj/machinery/atmospherics/pipe/tank/disconnect(obj/machinery/atmospherics/reference) +/obj/machinery/atmospherics/pipe/tank/disconnect(obj/machinery/atmospherics/reference) if(reference == node1) if(istype(node1, /obj/machinery/atmospherics/pipe)) del(parent) node1 = null - update_icon() + update_underlays() return null -obj/machinery/atmospherics/pipe/tank/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) - if (istype(W, /obj/item/device/analyzer) && get_dist(user, src) <= 1) +/obj/machinery/atmospherics/pipe/tank/attackby(var/obj/item/W as obj, var/mob/user as mob) + if(istype(W, /obj/item/device/pipe_painter)) + return + + if(istype(W, /obj/item/device/analyzer) && in_range(user, src)) for (var/mob/O in viewers(user, null)) O << "\red [user] has used the analyzer on \icon[icon]" @@ -1030,7 +953,95 @@ obj/machinery/atmospherics/pipe/tank/attackby(var/obj/item/weapon/W as obj, var/ else user << "\blue Tank is empty!" -obj/machinery/atmospherics/pipe/vent +/obj/machinery/atmospherics/pipe/tank/air + name = "Pressure Tank (Air)" + icon_state = "air_map" + +/obj/machinery/atmospherics/pipe/tank/air/New() + air_temporary = new + air_temporary.volume = volume + air_temporary.temperature = T20C + + air_temporary.oxygen = (25*ONE_ATMOSPHERE*O2STANDARD)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) + air_temporary.nitrogen = (25*ONE_ATMOSPHERE*N2STANDARD)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) + + ..() + icon_state = "air" + +/obj/machinery/atmospherics/pipe/tank/oxygen + name = "Pressure Tank (Oxygen)" + icon_state = "o2_map" + +/obj/machinery/atmospherics/pipe/tank/oxygen/New() + air_temporary = new + air_temporary.volume = volume + air_temporary.temperature = T20C + + air_temporary.oxygen = (25*ONE_ATMOSPHERE)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) + + ..() + icon_state = "o2" + +/obj/machinery/atmospherics/pipe/tank/nitrogen + name = "Pressure Tank (Nitrogen)" + icon_state = "n2_map" + +/obj/machinery/atmospherics/pipe/tank/nitrogen/New() + air_temporary = new + air_temporary.volume = volume + air_temporary.temperature = T20C + + air_temporary.nitrogen = (25*ONE_ATMOSPHERE)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) + + ..() + icon_state = "n2" + +/obj/machinery/atmospherics/pipe/tank/carbon_dioxide + name = "Pressure Tank (Carbon Dioxide)" + icon_state = "co2_map" + +/obj/machinery/atmospherics/pipe/tank/carbon_dioxide/New() + air_temporary = new + air_temporary.volume = volume + air_temporary.temperature = T20C + + air_temporary.carbon_dioxide = (25*ONE_ATMOSPHERE)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) + + ..() + icon_state = "co2" + +/obj/machinery/atmospherics/pipe/tank/phoron + name = "Pressure Tank (Phoron)" + icon_state = "phoron_map" + +/obj/machinery/atmospherics/pipe/tank/phoron/New() + air_temporary = new + air_temporary.volume = volume + air_temporary.temperature = T20C + + air_temporary.phoron = (25*ONE_ATMOSPHERE)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) + + ..() + icon_state = "phoron" + +/obj/machinery/atmospherics/pipe/tank/nitrous_oxide + name = "Pressure Tank (Nitrous Oxide)" + icon_state = "n2o_map" + +/obj/machinery/atmospherics/pipe/tank/nitrous_oxide/New() + air_temporary = new + air_temporary.volume = volume + air_temporary.temperature = T0C + + var/datum/gas/sleeping_agent/trace_gas = new + trace_gas.moles = (25*ONE_ATMOSPHERE)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature) + + air_temporary.trace_gases += trace_gas + + ..() + icon_state = "n2o" + +/obj/machinery/atmospherics/pipe/vent icon = 'icons/obj/atmospherics/pipe_vent.dmi' icon_state = "intact" @@ -1048,15 +1059,15 @@ obj/machinery/atmospherics/pipe/vent var/obj/machinery/atmospherics/node1 -obj/machinery/atmospherics/pipe/vent/New() +/obj/machinery/atmospherics/pipe/vent/New() initialize_directions = dir ..() -obj/machinery/atmospherics/pipe/vent/high_volume +/obj/machinery/atmospherics/pipe/vent/high_volume name = "Larger vent" volume = 1000 -obj/machinery/atmospherics/pipe/vent/process() +/obj/machinery/atmospherics/pipe/vent/process() if(!parent) if(build_killswitch <= 0) . = PROCESS_KILL @@ -1066,24 +1077,17 @@ obj/machinery/atmospherics/pipe/vent/process() return else parent.mingle_with_turf(loc, volume) -/* - if(!node1) - if(!nodealert) - //world << "Missing node from [src] at [src.x],[src.y],[src.z]" - nodealert = 1 - else if (nodealert) - nodealert = 0 -*/ -obj/machinery/atmospherics/pipe/vent/Del() + +/obj/machinery/atmospherics/pipe/vent/Del() if(node1) node1.disconnect(src) ..() -obj/machinery/atmospherics/pipe/vent/pipeline_expansion() +/obj/machinery/atmospherics/pipe/vent/pipeline_expansion() return list(node1) -obj/machinery/atmospherics/pipe/vent/update_icon() +/obj/machinery/atmospherics/pipe/vent/update_icon() if(node1) icon_state = "intact" @@ -1092,7 +1096,7 @@ obj/machinery/atmospherics/pipe/vent/update_icon() else icon_state = "exposed" -obj/machinery/atmospherics/pipe/vent/initialize() +/obj/machinery/atmospherics/pipe/vent/initialize() var/connect_direction = dir for(var/obj/machinery/atmospherics/target in get_step(src,connect_direction)) @@ -1102,7 +1106,7 @@ obj/machinery/atmospherics/pipe/vent/initialize() update_icon() -obj/machinery/atmospherics/pipe/vent/disconnect(obj/machinery/atmospherics/reference) +/obj/machinery/atmospherics/pipe/vent/disconnect(obj/machinery/atmospherics/reference) if(reference == node1) if(istype(node1, /obj/machinery/atmospherics/pipe)) del(parent) @@ -1112,7 +1116,7 @@ obj/machinery/atmospherics/pipe/vent/disconnect(obj/machinery/atmospherics/refer return null -obj/machinery/atmospherics/pipe/vent/hide(var/i) //to make the little pipe section invisible, the icon changes. +/obj/machinery/atmospherics/pipe/vent/hide(var/i) //to make the little pipe section invisible, the icon changes. if(node1) icon_state = "[i == 1 && istype(loc, /turf/simulated) ? "h" : "" ]intact" dir = get_dir(src, node1) diff --git a/code/WorkInProgress/Chinsky/overmap/ships/computers/engine_control.dm b/code/WorkInProgress/Chinsky/overmap/ships/computers/engine_control.dm index 07d6a4579be..41f2c4cdf9d 100644 --- a/code/WorkInProgress/Chinsky/overmap/ships/computers/engine_control.dm +++ b/code/WorkInProgress/Chinsky/overmap/ships/computers/engine_control.dm @@ -30,7 +30,7 @@ ui_interact(user) -/obj/machinery/computer/engines/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/computer/engines/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) if(!linked) return @@ -50,7 +50,7 @@ data["engines_info"] = enginfo - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "engines_control.tmpl", "[linked.name] Engines Control", 380, 530) ui.set_initial_data(data) diff --git a/code/WorkInProgress/Chinsky/overmap/ships/computers/helm.dm b/code/WorkInProgress/Chinsky/overmap/ships/computers/helm.dm index f81e569abcf..d78934f5749 100644 --- a/code/WorkInProgress/Chinsky/overmap/ships/computers/helm.dm +++ b/code/WorkInProgress/Chinsky/overmap/ships/computers/helm.dm @@ -70,7 +70,7 @@ ui_interact(user) -/obj/machinery/computer/helm/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/computer/helm/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) if(!linked) return @@ -101,7 +101,7 @@ data["locations"] = locations - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "helm.tmpl", "[linked.name] Helm Control", 380, 530) ui.set_initial_data(data) diff --git a/code/WorkInProgress/Chinsky/overmap/ships/computers/shuttle.dm b/code/WorkInProgress/Chinsky/overmap/ships/computers/shuttle.dm index c63ad2d763a..4ebc9469da3 100644 --- a/code/WorkInProgress/Chinsky/overmap/ships/computers/shuttle.dm +++ b/code/WorkInProgress/Chinsky/overmap/ships/computers/shuttle.dm @@ -44,7 +44,7 @@ var/datum/shuttle/ferry/shuttle = shuttle_controller.shuttles[shuttle_tag] return shuttle && destination && get_dist(home, destination) <= shuttle.range -/obj/machinery/computer/shuttle_control/explore/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/computer/shuttle_control/explore/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/data[0] var/datum/shuttle/ferry/shuttle = shuttle_controller.shuttles[shuttle_tag] if (!istype(shuttle)) @@ -103,7 +103,7 @@ "can_force" = can_go && shuttle.can_force(), ) - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "shuttle_control_console_exploration.tmpl", "[shuttle_tag] Shuttle Control", 470, 310) diff --git a/code/WorkInProgress/Sigyn/Department Sec/jobs.dm b/code/WorkInProgress/Sigyn/Department Sec/jobs.dm index 66e14b040c3..7f98a7b6ec2 100644 --- a/code/WorkInProgress/Sigyn/Department Sec/jobs.dm +++ b/code/WorkInProgress/Sigyn/Department Sec/jobs.dm @@ -83,9 +83,9 @@ proc/assign_sec_to_department(var/mob/living/carbon/human/H) else H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_in_backpack) - var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) - L.imp_in = H - L.implanted = 1 + + implant_loyalty(H) + return 1 /obj/item/device/radio/headset/headset_sec/department/New() diff --git a/code/WorkInProgress/Sigyn/Softcurity/jobs.dm b/code/WorkInProgress/Sigyn/Softcurity/jobs.dm index a214626d1c6..243dc47c75c 100644 --- a/code/WorkInProgress/Sigyn/Softcurity/jobs.dm +++ b/code/WorkInProgress/Sigyn/Softcurity/jobs.dm @@ -23,9 +23,9 @@ H.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/taser(H), slot_s_store) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_in_backpack) - var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) - L.imp_in = H - L.implanted = 1 + + H.implant_loyalty(src) // Will not do so if config is set to disallow. + return 1 @@ -52,9 +52,9 @@ H.equip_to_slot_or_del(new /obj/item/device/flash(H), slot_l_store) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_in_backpack) - var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) - L.imp_in = H - L.implanted = 1 + + H.implant_loyalty(src) // // Will not do so if config is set to disallow. + return 1 @@ -89,9 +89,7 @@ H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/evidence(H), slot_in_backpack) H.equip_to_slot_or_del(new /obj/item/device/detective_scanner(H), slot_in_backpack) - var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) - L.imp_in = H - L.implanted = 1 + H.implant_loyalty(src) // Will not do so if config is set to disallow. return 1 @@ -118,9 +116,9 @@ H.equip_to_slot_or_del(new /obj/item/device/flash(H), slot_l_store) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_in_backpack) - var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) - L.imp_in = H - L.implanted = 1 + + H.implant_loyalty(src) // Will not do so if config is set to disallow. + return 1 /datum/job/hop diff --git a/code/WorkInProgress/Sigyn/Softcurity/secure_closet.dm b/code/WorkInProgress/Sigyn/Softcurity/secure_closet.dm index 88f06f98e7c..e74c6fce6c4 100644 --- a/code/WorkInProgress/Sigyn/Softcurity/secure_closet.dm +++ b/code/WorkInProgress/Sigyn/Softcurity/secure_closet.dm @@ -70,7 +70,7 @@ new /obj/item/weapon/storage/backpack/satchel_sec(src) new /obj/item/weapon/cartridge/hos(src) new /obj/item/device/radio/headset/heads/hos(src) - new /obj/item/weapon/storage/lockbox/loyalty(src) + if (config.use_loyalty_implants) new /obj/item/weapon/storage/lockbox/loyalty(src) new /obj/item/weapon/storage/flashbang_kit(src) new /obj/item/weapon/storage/belt/security(src) new /obj/item/device/flash(src) diff --git a/code/WorkInProgress/kilakk/responseteam.dm b/code/WorkInProgress/kilakk/responseteam.dm index 6faafad342f..8e0cdbc6389 100644 --- a/code/WorkInProgress/kilakk/responseteam.dm +++ b/code/WorkInProgress/kilakk/responseteam.dm @@ -231,9 +231,7 @@ var/global/admin_emergency_team = 0 // Used for admin-spawned response teams // equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/regular(src), slot_in_backpack) // Regular medkit // Loyalty implants - var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(src) - L.imp_in = src - L.implanted = 1 + implant_loyalty(src) // ID cards var/obj/item/weapon/card/id/E = new(src) diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index d6918b1f7e0..037cde56083 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -81,12 +81,15 @@ than anything else in the game, atoms have separate procs for AI shift, ctrl, and alt clicking. */ + /mob/living/silicon/ai/ShiftClickOn(var/atom/A) A.AIShiftClick(src) /mob/living/silicon/ai/CtrlClickOn(var/atom/A) A.AICtrlClick(src) /mob/living/silicon/ai/AltClickOn(var/atom/A) A.AIAltClick(src) +/mob/living/silicon/ai/MiddleClickOn(var/atom/A) + A.AIMiddleClick(src) /* The following criminally helpful code is just the previous code cleaned up; @@ -103,7 +106,6 @@ Topic("aiDisable=7", list("aiDisable"="7"), 1) return - /atom/proc/AICtrlClick() return @@ -113,18 +115,42 @@ else Topic("aiDisable=4", list("aiDisable"="4"), 1) -/obj/machinery/power/apc/AICtrlClick() // turns off APCs. +/obj/machinery/power/apc/AICtrlClick() // turns off/on APCs. Topic("breaker=1", list("breaker"="1"), 0) // 0 meaning no window (consistency! wait...) +/obj/machinery/turretid/AICtrlClick() //turns off/on Turrets + src.enabled = !src.enabled + src.updateTurrets() /atom/proc/AIAltClick() return -/obj/machinery/door/airlock/AIAltClick() // Eletrifies doors. +/obj/machinery/door/airlock/AIAltClick() // Electrifies doors. if(!secondsElectrified) - // permenant shock + // permanent shock Topic("aiEnable=6", list("aiEnable"="6"), 1) // 1 meaning no window (consistency!) else - // disable/6 is not in Topic; disable/5 disables both temporary and permenant shock + // disable/6 is not in Topic; disable/5 disables both temporary and permanent shock Topic("aiDisable=5", list("aiDisable"="5"), 1) - return \ No newline at end of file + return + +/obj/machinery/turretid/AIAltClick() //toggles lethal on turrets + src.lethal = !src.lethal + src.updateTurrets() + +/atom/proc/AIMiddleClick() + return + +/obj/machinery/door/airlock/AIMiddleClick() // Toggles door bolt lights. + if(!src.lights) + Topic("aiEnable=10", list("aiEnable"="10"), 1) // 1 meaning no window (consistency!) + else + Topic("aiDisable=10", list("aiDisable"="10"), 1) + return + +// +// Override AdjacentQuick for AltClicking +// + +/mob/living/silicon/ai/TurfAdjacent(var/turf/T) + return (cameranet && cameranet.checkTurfVis(T)) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index b061f912a56..c3660d53bd2 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -249,14 +249,17 @@ /atom/proc/AltClick(var/mob/user) var/turf/T = get_turf(src) - if(T && T.AdjacentQuick(user)) - if(user.listed_turf == T) + if(T && user.TurfAdjacent(T)) + if(user. == T) user.listed_turf = null else user.listed_turf = T user.client.statpanel = T.name return +/mob/proc/TurfAdjacent(var/turf/T) + return T.AdjacentQuick(src) + /* Misc helpers diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 90a68b02b68..22c8a113009 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -63,7 +63,7 @@ slime.Discipline = 0 if(power >= 3) - if(istype(slime, /mob/living/carbon/slime/adult)) + if(slime.is_adult) if(prob(5 + round(power/2))) if(slime.Victim) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index f9d825d8963..66747abbb5b 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -112,6 +112,8 @@ var/revival_cloning = 1 var/revival_brain_life = -1 + var/use_loyalty_implants = 0 + //Used for modifying movement speed for mobs. //Unversal modifiers var/run_speed = 0 @@ -521,10 +523,21 @@ config.revival_cloning = value if("revival_brain_life") config.revival_brain_life = value + if("organ_health_multiplier") + config.organ_health_multiplier = value / 100 + if("organ_regeneration_multiplier") + config.organ_regeneration_multiplier = value / 100 + if("bones_can_break") + config.bones_can_break = value + if("limbs_can_break") + config.limbs_can_break = value + + if("run_speed") config.run_speed = value if("walk_speed") config.walk_speed = value + if("human_delay") config.human_delay = value if("robot_delay") @@ -537,14 +550,11 @@ config.slime_delay = value if("animal_delay") config.animal_delay = value - if("organ_health_multiplier") - config.organ_health_multiplier = value / 100 - if("organ_regeneration_multiplier") - config.organ_regeneration_multiplier = value / 100 - if("bones_can_break") - config.bones_can_break = value - if("limbs_can_break") - config.limbs_can_break = value + + + if("use_loyalty_implants") + config.use_loyalty_implants = 1 + else log_misc("Unknown setting in configuration: '[name]'") diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 936eea26d1c..b749bfb07e7 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -510,14 +510,9 @@ datum/mind I.Del() break H << "\blue Your loyalty implant has been deactivated." - if("add") - var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) - L.imp_in = H - L.implanted = 1 - var/datum/organ/external/affected = H.organs_by_name["head"] - affected.implants += L - L.part = affected + if("add") + H.implant_loyalty(H, override = TRUE) H << "\red You somehow have become the recepient of a loyalty transplant, and it just activated!" if(src in ticker.mode.revolutionaries) special_role = null @@ -541,6 +536,8 @@ datum/mind special_role = null current << "\red The nanobots in the loyalty implant remove all thoughts about being a traitor to Nanotrasen. Have a nice day!" log_admin("[key_name_admin(usr)] has de-traitor'ed [current].") + else + else if (href_list["revolution"]) current.hud_updateflag |= (1 << SPECIALROLE_HUD) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 7990329aa16..abca12f25e1 100755 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -681,14 +681,6 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee access = access_armory group = "Security" -/datum/supply_packs/loyalty - name = "Loyalty implant crate" - contains = list (/obj/item/weapon/storage/lockbox/loyalty) - cost = 60 - containertype = /obj/structure/closet/crate/secure - containername = "Loyalty implant crate" - access = access_armory - group = "Security" /datum/supply_packs/ballistic name = "Ballistic gear crate" @@ -725,6 +717,17 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee access = access_armory group = "Security" +/* +/datum/supply_packs/loyalty + name = "Loyalty implant crate" + contains = list (/obj/item/weapon/storage/lockbox/loyalty) + cost = 60 + containertype = /obj/structure/closet/crate/secure + containername = "Loyalty implant crate" + access = access_armory + group = "Security" +*/ + /datum/supply_packs/expenergy name = "Experimental energy gear crate" contains = list(/obj/item/clothing/suit/armor/laserproof, diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index dd662e40c09..fa97b27f2fb 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -52,8 +52,10 @@ icon_state = "soapnt" /obj/item/weapon/soap/deluxe - desc = "A deluxe Waffle Co. brand bar of soap. Smells of condoms." icon_state = "soapdeluxe" + +/obj/item/weapon/soap/deluxe/New() + desc = "A deluxe Waffle Co. brand bar of soap. Smells of [pick("lavender", "vanilla", "strawberry", "chocolate" ,"space")]." /obj/item/weapon/soap/syndie desc = "An untrustworthy bar of soap. Smells of fear." diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index 88b4294db56..94a1c687ff5 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -35,6 +35,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station var/debug = 0 var/powerupdate = 10 //We give everything 10 ticks to settle out it's power usage. var/requires_power = 1 + var/unlimited_power = 0 var/always_unpowered = 0 //this gets overriden to 1 for space in area/New() var/power_equip = 1 @@ -364,6 +365,7 @@ var/list/ghostteleportlocs = list() name = "\improper Syndicate Mothership" icon_state = "syndie-ship" requires_power = 0 + unlimited_power = 1 /area/syndicate_mothership/control name = "\improper Syndicate Control Room" @@ -436,6 +438,7 @@ var/list/ghostteleportlocs = list() name = "\improper Syndicate Station" icon_state = "yellow" requires_power = 0 + unlimited_power = 1 /area/syndicate_station/start name = "\improper Syndicate Forward Operating Base" diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index 235156d3d3e..af1fe64a9f3 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -345,7 +345,7 @@ * * @return nothing */ -/obj/machinery/computer/scan_consolenew/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/computer/scan_consolenew/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) if(user == connected.occupant || user.stat) return @@ -425,7 +425,7 @@ data["beakerVolume"] += R.volume // update the ui if it exists, returns null if no ui is passed/found - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) // the ui does not exist, so we'll create a new() one // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm diff --git a/code/game/gamemodes/epidemic/epidemic.dm b/code/game/gamemodes/epidemic/epidemic.dm index d0db2d66b90..4a0712c7128 100644 --- a/code/game/gamemodes/epidemic/epidemic.dm +++ b/code/game/gamemodes/epidemic/epidemic.dm @@ -71,7 +71,7 @@ world << sound('sound/AI/commandreport.ogg') // add an extra law to the AI to make sure it cooperates with the heads - var/extra_law = "Crew authorized to know of pathogen [virus_name]'s existence are: Heads of command, any crew member with loyalty implant. Do not allow unauthorized personnel to gain knowledge of [virus_name]. Aid authorized personnel in quarantining and neutrlizing the outbreak. This law overrides all other laws." + var/extra_law = "Crew authorized to know of pathogen [virus_name]'s existence are: Heads of command. Do not allow unauthorized personnel to gain knowledge of [virus_name]. Aid authorized personnel in quarantining and neutrlizing the outbreak. This law overrides all other laws." for(var/mob/living/silicon/ai/M in world) M.add_ion_law(extra_law) M << "\red " + extra_law diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index 80f2f3a4dde..53fbcba2f41 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -124,7 +124,7 @@ del(A) continue - var/obj/effect/landmark/uplinklocker = locate("landmark*Syndicate-Uplink") //i will be rewriting this shortly + var/obj/effect/landmark/uplinkdevice = locate("landmark*Syndicate-Uplink") //i will be rewriting this shortly var/obj/effect/landmark/nuke_spawn = locate("landmark*Nuclear-Bomb") var/nuke_code = "[rand(10000, 99999)]" @@ -153,8 +153,9 @@ update_all_synd_icons() - if(uplinklocker) - new /obj/structure/closet/syndicate/nuclear(uplinklocker.loc) + if(uplinkdevice) + var/obj/item/device/radio/uplink/U = new(uplinkdevice.loc) + U.hidden_uplink.uses = 40 if(nuke_spawn && synd_spawn.len > 0) var/obj/machinery/nuclearbomb/the_bomb = new /obj/machinery/nuclearbomb(nuke_spawn.loc) the_bomb.r_code = nuke_code @@ -166,6 +167,7 @@ /datum/game_mode/proc/prepare_syndicate_leader(var/datum/mind/synd_mind, var/nuke_code) + var/obj/effect/landmark/code_spawn = locate("landmark*Nuclear-Code") if (nuke_code) synd_mind.store_memory("Syndicate Nuclear Bomb Code: [nuke_code]", 0, 0) synd_mind.current << "The nuclear authorization code is: [nuke_code]" @@ -173,7 +175,7 @@ P.info = "The nuclear authorization code is: [nuke_code]" P.name = "nuclear bomb code" if (ticker.mode.config_tag=="nuclear") - P.loc = synd_mind.current.loc + P.loc = code_spawn.loc else var/mob/living/carbon/human/H = synd_mind.current P.loc = H.loc @@ -230,6 +232,7 @@ synd_mob.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/automatic/c20r(synd_mob), slot_belt) synd_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(synd_mob.back), slot_in_backpack) +/* Commented; nukes now have a suit cycler for changing rig-suits, they don't need to spawn with them var/obj/item/clothing/suit/space/rig/syndi/new_suit = new(synd_mob) var/obj/item/clothing/head/helmet/space/rig/syndi/new_helmet = new(synd_mob) @@ -245,8 +248,8 @@ if("Skrell") new_suit.species_restricted = list("Skrell") - synd_mob.equip_to_slot_or_del(new_suit, slot_wear_suit) - synd_mob.equip_to_slot_or_del(new_helmet, slot_head) + synd_mob.equip_to_slot_or_del(new_suit, slot_in_backpack) + synd_mob.equip_to_slot_or_del(new_helmet, slot_in_backpack)*/ // var/obj/item/weapon/implant/explosive/E = new/obj/item/weapon/implant/explosive(synd_mob) // E.imp_in = synd_mob diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index b75ed7c4587..3f141f2156a 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -32,13 +32,10 @@ H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H), slot_r_hand) else H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H.back), slot_in_backpack) - var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) - L.imp_in = H - L.implanted = 1 world << "[H.real_name] is the captain!" - var/datum/organ/external/affected = H.organs_by_name["head"] - affected.implants += L - L.part = affected + + H.implant_loyalty(src) + return 1 get_access() diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 0576e5b8238..57350f087a7 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -357,10 +357,8 @@ H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) else H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) - var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) - L.imp_in = H - L.implanted = 1 - var/datum/organ/external/affected = H.organs_by_name["head"] - affected.implants += L - L.part = affected + + H.implant_loyalty(H) + + return 1 diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index 69e9babb0ac..c83c0c0ea21 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -39,12 +39,7 @@ else H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_in_backpack) - var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) - L.imp_in = H - L.implanted = 1 - var/datum/organ/external/affected = H.organs_by_name["head"] - affected.implants += L - L.part = affected + H.implant_loyalty(H) return 1 @@ -165,4 +160,4 @@ else H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_in_backpack) - return 1 + return 1 diff --git a/code/game/machinery/Freezer.dm b/code/game/machinery/Freezer.dm index 7de58c6f220..3b3cfe87543 100644 --- a/code/game/machinery/Freezer.dm +++ b/code/game/machinery/Freezer.dm @@ -44,7 +44,7 @@ /obj/machinery/atmospherics/unary/cold_sink/freezer/attack_hand(mob/user as mob) src.ui_interact(user) -/obj/machinery/atmospherics/unary/cold_sink/freezer/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/atmospherics/unary/cold_sink/freezer/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) // this is the data which will be sent to the ui var/data[0] data["on"] = on ? 1 : 0 @@ -62,7 +62,7 @@ data["gasTemperatureClass"] = temp_class // update the ui if it exists, returns null if no ui is passed/found - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) // the ui does not exist, so we'll create a new() one // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm @@ -137,7 +137,7 @@ /obj/machinery/atmospherics/unary/heat_reservoir/heater/attack_hand(mob/user as mob) src.ui_interact(user) -/obj/machinery/atmospherics/unary/heat_reservoir/heater/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/atmospherics/unary/heat_reservoir/heater/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) // this is the data which will be sent to the ui var/data[0] data["on"] = on ? 1 : 0 @@ -153,7 +153,7 @@ data["gasTemperatureClass"] = temp_class // update the ui if it exists, returns null if no ui is passed/found - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) // the ui does not exist, so we'll create a new() one // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 3557f1f655a..96152823cab 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -241,7 +241,7 @@ update_flag /obj/machinery/portable_atmospherics/canister/attack_hand(var/mob/user as mob) return src.ui_interact(user) -/obj/machinery/portable_atmospherics/canister/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/portable_atmospherics/canister/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) if (src.destroyed) return @@ -261,7 +261,7 @@ update_flag data["holdingTank"] = list("name" = holding.name, "tankPressure" = round(holding.air_contents.return_pressure())) // update the ui if it exists, returns null if no ui is passed/found - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) // the ui does not exist, so we'll create a new() one // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index b019c4ee862..6ca6257cc2c 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -1,3 +1,15 @@ +/mob/living/silicon/ai/var/max_locations = 5 +/mob/living/silicon/ai/var/stored_locations[0] + +/mob/living/silicon/ai/proc/InvalidTurf(turf/T as turf) + if(!T) + return 1 + if(T.z == 2) + return 1 + if(T.z > 6) + return 1 + return 0 + /mob/living/silicon/ai/proc/get_camera_list() if(src.stat == 2) @@ -38,6 +50,59 @@ return +/mob/living/silicon/ai/proc/ai_store_location(loc as text) + set category = "AI Commands" + set name = "Store Camera Location" + set desc = "Stores your current camera location by the given name" + + loc = copytext(sanitize(loc), 1, MAX_MESSAGE_LEN) + if(!loc) + src << "\red Must supply a location name" + return + + if(stored_locations.len >= max_locations) + src << "\red Cannot store additional locations. Remove one first" + return + + if(loc in stored_locations) + src << "\red There is already a stored location by this name" + return + + var/L = src.eyeobj.getLoc() + if (InvalidTurf(get_turf(L))) + src << "\red Unable to store this location" + return + + stored_locations[loc] = L + src << "Location '[loc]' stored" + +/mob/living/silicon/ai/proc/sorted_stored_locations() + return sortList(stored_locations) + +/mob/living/silicon/ai/proc/ai_goto_location(loc in sorted_stored_locations()) + set category = "AI Commands" + set name = "Goto Camera Location" + set desc = "Returns to the selected camera location" + + if (!(loc in stored_locations)) + src << "\red Location [loc] not found" + return + + var/L = stored_locations[loc] + src.eyeobj.setLoc(L) + +/mob/living/silicon/ai/proc/ai_remove_location(loc in sorted_stored_locations()) + set category = "AI Commands" + set name = "Remove Camera Location" + set desc = "Removes the selected camera location" + + if (!(loc in stored_locations)) + src << "\red Location [loc] not found" + return + + stored_locations.Remove(loc) + src << "Location [loc] removed" + // Used to allow the AI is write in mob names/camera name from the CMD line. /datum/trackable var/list/names = list() @@ -55,12 +120,7 @@ for(var/mob/living/M in mob_list) // Easy checks first. // Don't detect mobs on Centcom. Since the wizard den is on Centcomm, we only need this. - var/turf/T = get_turf(M) - if(!T) - continue - if(T.z == 2) - continue - if(T.z > 6) + if(InvalidTurf(get_turf(M))) continue if(M == usr) continue diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index fd11787363f..b40f511a3bf 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -80,7 +80,7 @@ if(stat & (NOPOWER|BROKEN)) return ui_interact(user) -/obj/machinery/computer/card/ui_interact(mob/user, ui_key="main", datum/nanoui/ui=null) +/obj/machinery/computer/card/ui_interact(mob/user, ui_key="main", var/datum/nanoui/ui = null, var/force_open = 1) user.set_machine(src) var/data[0] @@ -133,7 +133,7 @@ data["regions"] = regions - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "identification_computer.tmpl", src.name, 600, 700) ui.set_initial_data(data) diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 528815ad07e..d7595e1a29d 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -57,7 +57,7 @@ /obj/machinery/computer/crew/interact(mob/user) ui_interact(user) -/obj/machinery/computer/crew/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/computer/crew/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) if(stat & (BROKEN|NOPOWER)) return user.set_machine(src) @@ -97,7 +97,7 @@ data["crewmembers"] = crewmembers - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if(!ui) ui = new(user, src, ui_key, "crew_monitor.tmpl", "Crew Monitoring Computer", 900, 600) ui.set_initial_data(data) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index b909404a1c9..a82828311cb 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -73,7 +73,7 @@ * * @return nothing */ -/obj/machinery/atmospherics/unary/cryo_cell/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/atmospherics/unary/cryo_cell/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) if(user == occupant || user.stat) return @@ -121,7 +121,7 @@ data["beakerVolume"] += R.volume // update the ui if it exists, returns null if no ui is passed/found - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) // the ui does not exist, so we'll create a new() one // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm diff --git a/code/game/machinery/door_control.dm b/code/game/machinery/door_control.dm index 2dcb0c0b2e0..496c55ecb6f 100644 --- a/code/game/machinery/door_control.dm +++ b/code/game/machinery/door_control.dm @@ -1,3 +1,7 @@ +#define CONTROL_POD_DOORS 0 +#define CONTROL_NORMAL_DOORS 1 +#define CONTROL_EMITTERS 2 + /obj/machinery/door_control name = "remote door-control" desc = "It controls doors, remotely." @@ -7,7 +11,7 @@ power_channel = ENVIRON var/id = null var/range = 10 - var/normaldoorcontrol = 0 + var/normaldoorcontrol = CONTROL_POD_DOORS var/desiredstate = 0 // Zero is closed, 1 is open. var/specialfunctions = 1 /* @@ -63,8 +67,59 @@ playsound(src.loc, "sparks", 100, 1) return src.attack_hand(user) +/obj/machinery/door_control/proc/handle_door() + for(var/obj/machinery/door/airlock/D in range(range)) + if(D.id_tag == src.id) + if(specialfunctions & OPEN) + if (D.density) + spawn(0) + D.open() + return + else + spawn(0) + D.close() + return + if(desiredstate == 1) + if(specialfunctions & IDSCAN) + D.aiDisabledIdScanner = 1 + if(specialfunctions & BOLTS) + D.lock() + if(specialfunctions & SHOCK) + D.secondsElectrified = -1 + if(specialfunctions & SAFE) + D.safe = 0 + else + if(specialfunctions & IDSCAN) + D.aiDisabledIdScanner = 0 + if(specialfunctions & BOLTS) + if(!D.isWireCut(4) && D.arePowerSystemsOn()) + D.unlock() + if(specialfunctions & SHOCK) + D.secondsElectrified = 0 + if(specialfunctions & SAFE) + D.safe = 1 + +/obj/machinery/door_control/proc/handle_pod() + for(var/obj/machinery/door/poddoor/M in world) + if(M.id == src.id) + if(M.density) + spawn(0) + M.open() + return + else + spawn(0) + M.close() + return + +/obj/machinery/door_control/proc/handle_emitters(mob/user as mob) + for(var/obj/machinery/power/emitter/E in range(range)) + if(E.id == src.id) + spawn(0) + E.activate(user) + return + /obj/machinery/door_control/attack_hand(mob/user as mob) - src.add_fingerprint(usr) + src.add_fingerprint(user) if(stat & (NOPOWER|BROKEN)) return @@ -77,49 +132,13 @@ icon_state = "doorctrl1" add_fingerprint(user) - if(normaldoorcontrol) - for(var/obj/machinery/door/airlock/D in range(range)) - if(D.id_tag == src.id) - if(specialfunctions & OPEN) - if (D.density) - spawn(0) - D.open() - return - else - spawn(0) - D.close() - return - if(desiredstate == 1) - if(specialfunctions & IDSCAN) - D.aiDisabledIdScanner = 1 - if(specialfunctions & BOLTS) - D.lock() - if(specialfunctions & SHOCK) - D.secondsElectrified = -1 - if(specialfunctions & SAFE) - D.safe = 0 - else - if(specialfunctions & IDSCAN) - D.aiDisabledIdScanner = 0 - if(specialfunctions & BOLTS) - if(!D.isWireCut(4) && D.arePowerSystemsOn()) - D.unlock() - if(specialfunctions & SHOCK) - D.secondsElectrified = 0 - if(specialfunctions & SAFE) - D.safe = 1 - - else - for(var/obj/machinery/door/poddoor/M in world) - if (M.id == src.id) - if (M.density) - spawn( 0 ) - M.open() - return - else - spawn( 0 ) - M.close() - return + switch(normaldoorcontrol) + if(CONTROL_NORMAL_DOORS) + handle_door() + if(CONTROL_POD_DOORS) + handle_pod() + if(CONTROL_EMITTERS) + handle_emitters(user) desiredstate = !desiredstate spawn(15) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 7c34359236d..bb3fdbaa233 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -540,8 +540,8 @@ About the new airlock wires panel: /obj/machinery/door/airlock/proc/canAIControl() return ((src.aiControlDisabled!=1) && (!src.isAllPowerCut())); -/obj/machinery/door/airlock/proc/canAIHack() - return ((src.aiControlDisabled==1) && (!hackProof) && (!src.isAllPowerCut())); +/obj/machinery/door/airlock/proc/canAIHack(var/user as mob) + return (isAI(user) && src.aiControlDisabled==1 && !hackProof && !src.isAllPowerCut()); /obj/machinery/door/airlock/proc/arePowerSystemsOn() return (src.secondsMainPowerLost==0 || src.secondsBackupPowerLost==0) @@ -651,12 +651,8 @@ About the new airlock wires panel: return /obj/machinery/door/airlock/attack_ai(mob/user as mob) - if(!src.canAIControl()) - if(src.canAIHack()) - src.hack(user) - return - else - user << "Airlock AI control has been blocked with a firewall. Unable to hack." + if (!check_synth_access(user)) + return //Separate interface for the AI. user.set_machine(src) @@ -772,7 +768,7 @@ About the new airlock wires panel: user << "Alert cancelled. Airlock control has been restored without our assistance." src.aiHacking=0 return - else if(!src.canAIHack()) + else if(!src.canAIHack(user)) user << "We've lost our connection! Unable to hack airlock." src.aiHacking=0 return @@ -784,7 +780,7 @@ About the new airlock wires panel: user << "Alert cancelled. Airlock control has been restored without our assistance." src.aiHacking=0 return - else if(!src.canAIHack()) + else if(!src.canAIHack(user)) user << "We've lost our connection! Unable to hack airlock." src.aiHacking=0 return @@ -794,7 +790,7 @@ About the new airlock wires panel: user << "Alert cancelled. Airlock control has been restored without our assistance." src.aiHacking=0 return - else if(!src.canAIHack()) + else if(!src.canAIHack(user)) user << "We've lost our connection! Unable to hack airlock." src.aiHacking=0 return @@ -889,6 +885,17 @@ About the new airlock wires panel: ..(user) return +/obj/machinery/door/airlock/proc/check_synth_access(mob/user as mob) + if(emagged) + user << "Unable to interface: Airlock is unresponsive." + return 0 + if(!src.canAIControl()) + if(src.canAIHack(user)) + src.hack(user) + else + user << "Airlock AI control has been blocked with a firewall." + return 0 + return 1 /obj/machinery/door/airlock/Topic(href, href_list, var/nowindow = 0) if(!nowindow) @@ -951,7 +958,10 @@ About the new airlock wires panel: src.signalers[wirenum] = null - if(istype(usr, /mob/living/silicon) && src.canAIControl()) + if(istype(usr, /mob/living/silicon)) + if (!check_synth_access(usr)) + return + //AI //aiDisable - 1 idscan, 2 disrupt main power, 3 disrupt backup power, 4 drop door bolts, 5 un-electrify door, 7 close door, 8 door safties, 9 door speed //aiEnable - 1 idscan, 4 raise door bolts, 5 electrify door for 30 seconds, 6 electrify door indefinitely, 7 open door, 8 door safties, 9 door speed @@ -961,10 +971,11 @@ About the new airlock wires panel: if(1) //disable idscan if(src.isWireCut(AIRLOCK_WIRE_IDSCAN)) - usr << "The IdScan wire has been cut - So, you can't disable it, but it is already disabled anyways." + usr << "The IdScan wire has been cut - The IdScan feature is already disabled." else if(src.aiDisabledIdScanner) - usr << "You've already disabled the IdScan feature." + usr << "The IdScan feature is already disabled." else + usr << "The IdScan feature has been disabled." src.aiDisabledIdScanner = 1 if(2) //disrupt main power @@ -981,38 +992,19 @@ About the new airlock wires panel: if(4) //drop door bolts if(src.isWireCut(AIRLOCK_WIRE_DOOR_BOLTS)) - usr << "You can't drop the door bolts - The door bolt control wire has been cut." + usr << "The door bolt control wire has been cut - The door bolts are already dropped." + else if(src.locked) + usr << "The door bolts are already dropped." else src.lock() + usr << "The door bolts have been dropped." if(5) //un-electrify door if(src.isWireCut(AIRLOCK_WIRE_ELECTRIFY)) - usr << text("Can't un-electrify the airlock - The electrification wire is cut.") - else if(src.secondsElectrified==-1) + usr << text("The electrification wire is cut - Cannot un-electrify the door.") + else if(secondsElectrified != 0) + usr << "The door is now un-electrified." src.secondsElectrified = 0 - else if(src.secondsElectrified>0) - src.secondsElectrified = 0 - - if(8) - // Safeties! We don't need no stinking safeties! - if (src.isWireCut(AIRLOCK_WIRE_SAFETY)) - usr << text("Control to door sensors is disabled.") - else if (src.safe) - safe = 0 - else - usr << text("Firmware reports safeties already overriden.") - - - - if(9) - // Door speed control - if(src.isWireCut(AIRLOCK_WIRE_SPEED)) - usr << text("Control to door timing circuitry has been severed.") - else if (src.normalspeed) - normalspeed = 0 - else - usr << text("Door timing circurity already accellerated.") - if(7) //close door if(src.welded) @@ -1023,17 +1015,31 @@ About the new airlock wires panel: close() else open() - + if(8) + // Safeties! We don't need no stinking safeties! + if (src.isWireCut(AIRLOCK_WIRE_SAFETY)) + usr << text("Control to door sensors is disabled.") + else if (src.safe) + safe = 0 + else + usr << text("Firmware reports safeties already overridden.") + if(9) + // Door speed control + if(src.isWireCut(AIRLOCK_WIRE_SPEED)) + usr << text("Control to door timing circuitry has been severed.") + else if (src.normalspeed) + normalspeed = 0 + else + usr << text("Door timing circuity already accelerated.") if(10) // Bolt lights if(src.isWireCut(AIRLOCK_WIRE_LIGHT)) - usr << text("Control to door bolt lights has been severed.") + usr << "The bolt lights wire has been cut - The door bolt lights are already disabled." else if (src.lights) lights = 0 + usr << "The door bolt lights have been disabled." else - usr << text("Door bolt lights are already disabled!") - - + usr << "The door bolt lights are already disabled!" else if(href_list["aiEnable"]) var/code = text2num(href_list["aiEnable"]) @@ -1041,20 +1047,23 @@ About the new airlock wires panel: if(1) //enable idscan if(src.isWireCut(AIRLOCK_WIRE_IDSCAN)) - usr << "You can't enable IdScan - The IdScan wire has been cut." + usr << "The IdScan wire has been cut - The IdScan feature cannot be enabled." else if(src.aiDisabledIdScanner) + usr << "The IdScan feature has been enabled." src.aiDisabledIdScanner = 0 else - usr << "The IdScan feature is not disabled." + usr << "The IdScan feature is already enabled." if(4) //raise door bolts if(src.isWireCut(AIRLOCK_WIRE_DOOR_BOLTS)) - usr << text("The door bolt control wire is cut - you can't raise the door bolts.
\n") + usr << "The door bolt control wire has been cut - The door bolts cannot be raised." else if(!src.locked) - usr << text("The door bolts are already up.
\n") + usr << "The door bolts are already raised." else - src.unlock() - + if(src.unlock()) + usr << "The door bolts have been raised." + else + usr << "Unable to raise door bolts." if(5) //electrify door for 30 seconds if(src.isWireCut(AIRLOCK_WIRE_ELECTRIFY)) @@ -1062,17 +1071,17 @@ About the new airlock wires panel: else if(src.secondsElectrified==-1) usr << text("The door is already indefinitely electrified. You'd have to un-electrify it before you can re-electrify it with a non-forever duration.
\n") else if(src.secondsElectrified!=0) - usr << text("The door is already electrified. You can't re-electrify it while it's already electrified.
\n") + usr << text("The door is already electrified. Cannot re-electrify it while it's already electrified.
\n") else shockedby += text("\[[time_stamp()]\][usr](ckey:[usr.ckey])") usr.attack_log += text("\[[time_stamp()]\] Electrified the [name] at [x] [y] [z]") + usr << "The door is now electrified for thirty seconds." src.secondsElectrified = 30 spawn(10) while (src.secondsElectrified>0) src.secondsElectrified-=1 if(src.secondsElectrified<0) src.secondsElectrified = 0 - src.updateUsrDialog() sleep(10) if(6) //electrify door indefinitely @@ -1085,28 +1094,8 @@ About the new airlock wires panel: else shockedby += text("\[[time_stamp()]\][usr](ckey:[usr.ckey])") usr.attack_log += text("\[[time_stamp()]\] Electrified the [name] at [x] [y] [z]") + usr << "The door is now electrified." src.secondsElectrified = -1 - - if (8) // Not in order >.> - // Safeties! Maybe we do need some stinking safeties! - if (src.isWireCut(AIRLOCK_WIRE_SAFETY)) - usr << text("Control to door sensors is disabled.") - else if (!src.safe) - safe = 1 - src.updateUsrDialog() - else - usr << text("Firmware reports safeties already in place.") - - if(9) - // Door speed control - if(src.isWireCut(AIRLOCK_WIRE_SPEED)) - usr << text("Control to door timing circuitry has been severed.") - else if (!src.normalspeed) - normalspeed = 1 - src.updateUsrDialog() - else - usr << text("Door timing circurity currently operating normally.") - if(7) //open door if(src.welded) @@ -1117,16 +1106,31 @@ About the new airlock wires panel: open() else close() - + if (8) + // Safeties! Maybe we do need some stinking safeties! + if (src.isWireCut(AIRLOCK_WIRE_SAFETY)) + usr << text("Control to door sensors is disabled.") + else if (!src.safe) + safe = 1 + else + usr << text("Firmware reports safeties already in place.") + if(9) + // Door speed control + if(src.isWireCut(AIRLOCK_WIRE_SPEED)) + usr << text("Control to door timing circuitry has been severed.") + else if (!src.normalspeed) + normalspeed = 1 + else + usr << text("Door timing circuity currently operating normally.") if(10) // Bolt lights if(src.isWireCut(AIRLOCK_WIRE_LIGHT)) - usr << text("Control to door bolt lights has been severed.") + usr << "The bolt lights wire has been cut - The door bolt lights cannot be enabled." else if (!src.lights) lights = 1 - src.updateUsrDialog() + usr << "The door bolt lights have been enabled" else - usr << text("Door bolt lights are already enabled!") + usr << "The door bolt lights are already enabled!" add_fingerprint(usr) update_icon() @@ -1315,13 +1319,15 @@ About the new airlock wires panel: update_icon() /obj/machinery/door/airlock/proc/unlock(var/forced=0) - if (!src.locked) return + if (!src.locked) return 0 if(forced || src.arePowerSystemsOn()) //only can raise bolts if power's on src.locked = 0 for(var/mob/M in range(1,src)) M.show_message("You hear a click from the bottom of the door.", 2) update_icon() + return 1 + return 0 /obj/machinery/door/airlock/New() ..() diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 61d26340a55..44d374b85c0 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -173,7 +173,7 @@ return src.attack_hand(user) /obj/machinery/door/window/attack_paw(mob/user as mob) - if(istype(user, /mob/living/carbon/alien/humanoid) || istype(user, /mob/living/carbon/slime/adult)) + if(istype(user, /mob/living/carbon/alien/humanoid)) if(src.operating) return playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) @@ -346,4 +346,4 @@ /obj/machinery/door/window/brigdoor/southright dir = SOUTH icon_state = "rightsecure" - base_state = "rightsecure" + base_state = "rightsecure" diff --git a/code/game/machinery/embedded_controller/airlock_controllers.dm b/code/game/machinery/embedded_controller/airlock_controllers.dm index 4a48558f875..96177f9a9df 100644 --- a/code/game/machinery/embedded_controller/airlock_controllers.dm +++ b/code/game/machinery/embedded_controller/airlock_controllers.dm @@ -17,7 +17,7 @@ /obj/machinery/embedded_controller/radio/airlock/advanced_airlock_controller name = "Advanced Airlock Controller" -/obj/machinery/embedded_controller/radio/airlock/advanced_airlock_controller/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/embedded_controller/radio/airlock/advanced_airlock_controller/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/data[0] data = list( @@ -29,7 +29,7 @@ "secure" = program.memory["secure"] ) - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "advanced_airlock_console.tmpl", name, 470, 290) @@ -75,7 +75,7 @@ name = "Airlock Controller" tag_secure = 1 -/obj/machinery/embedded_controller/radio/airlock/airlock_controller/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/embedded_controller/radio/airlock/airlock_controller/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/data[0] data = list( @@ -85,7 +85,7 @@ "processing" = program.memory["processing"], ) - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "simple_airlock_console.tmpl", name, 470, 290) @@ -140,7 +140,7 @@ else icon_state = "access_control_off" -/obj/machinery/embedded_controller/radio/airlock/access_controller/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/embedded_controller/radio/airlock/access_controller/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/data[0] data = list( @@ -149,7 +149,7 @@ "processing" = program.memory["processing"] ) - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "door_access_console.tmpl", name, 330, 220) diff --git a/code/game/machinery/embedded_controller/airlock_docking_controller.dm b/code/game/machinery/embedded_controller/airlock_docking_controller.dm index 6edf07e221e..b0469bd030b 100644 --- a/code/game/machinery/embedded_controller/airlock_docking_controller.dm +++ b/code/game/machinery/embedded_controller/airlock_docking_controller.dm @@ -11,7 +11,7 @@ docking_program = new/datum/computer/file/embedded_program/docking/airlock(src, airlock_program) program = docking_program -/obj/machinery/embedded_controller/radio/airlock/docking_port/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/embedded_controller/radio/airlock/docking_port/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/data[0] data = list( @@ -24,7 +24,7 @@ "override_enabled" = docking_program.override_enabled, ) - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "docking_airlock_console.tmpl", name, 470, 290) diff --git a/code/game/machinery/embedded_controller/airlock_docking_controller_multi.dm b/code/game/machinery/embedded_controller/airlock_docking_controller_multi.dm index 99c7bf57848..d03bffcbae5 100644 --- a/code/game/machinery/embedded_controller/airlock_docking_controller_multi.dm +++ b/code/game/machinery/embedded_controller/airlock_docking_controller_multi.dm @@ -22,7 +22,7 @@ child_names[tags[i]] = names[i] -/obj/machinery/embedded_controller/radio/docking_port_multi/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/embedded_controller/radio/docking_port_multi/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/data[0] var/list/airlocks[child_names.len] @@ -35,7 +35,7 @@ "airlocks" = airlocks, ) - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "multi_docking_console.tmpl", name, 470, 290) @@ -60,7 +60,7 @@ airlock_program = new/datum/computer/file/embedded_program/airlock/multi_docking(src) program = airlock_program -/obj/machinery/embedded_controller/radio/airlock/docking_port_multi/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/embedded_controller/radio/airlock/docking_port_multi/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/data[0] data = list( @@ -73,7 +73,7 @@ "override_enabled" = airlock_program.override_enabled, ) - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "docking_airlock_console.tmpl", name, 470, 290) diff --git a/code/game/machinery/embedded_controller/escape_pod_docking_controller.dm b/code/game/machinery/embedded_controller/escape_pod_docking_controller.dm index 50348591287..943b1a59fad 100644 --- a/code/game/machinery/embedded_controller/escape_pod_docking_controller.dm +++ b/code/game/machinery/embedded_controller/escape_pod_docking_controller.dm @@ -3,7 +3,7 @@ name = "escape pod controller" var/datum/shuttle/ferry/escape_pod/pod -/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/data[0] data = list( @@ -15,7 +15,7 @@ "is_armed" = pod.arming_controller.armed, ) - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "escape_pod_console.tmpl", name, 470, 290) @@ -45,7 +45,7 @@ docking_program = new/datum/computer/file/embedded_program/docking/simple/escape_pod(src) program = docking_program -/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/data[0] var/armed = null @@ -59,7 +59,7 @@ "armed" = armed, ) - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "escape_pod_berth_console.tmpl", name, 470, 290) diff --git a/code/game/machinery/embedded_controller/simple_docking_controller.dm b/code/game/machinery/embedded_controller/simple_docking_controller.dm index a8a4ad490f6..f8a2cc1083e 100644 --- a/code/game/machinery/embedded_controller/simple_docking_controller.dm +++ b/code/game/machinery/embedded_controller/simple_docking_controller.dm @@ -9,7 +9,7 @@ docking_program = new/datum/computer/file/embedded_program/docking/simple(src) program = docking_program -/obj/machinery/embedded_controller/radio/simple_docking_controller/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/embedded_controller/radio/simple_docking_controller/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/data[0] data = list( @@ -19,7 +19,7 @@ "door_lock" = docking_program.memory["door_status"]["lock"], ) - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "simple_docking_console.tmpl", name, 470, 290) diff --git a/code/game/machinery/kitchen/smartfridge.dm b/code/game/machinery/kitchen/smartfridge.dm index 8eca8dce3af..b3d3552565c 100644 --- a/code/game/machinery/kitchen/smartfridge.dm +++ b/code/game/machinery/kitchen/smartfridge.dm @@ -225,7 +225,7 @@ * SmartFridge Menu ********************/ -/obj/machinery/smartfridge/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/smartfridge/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) user.set_machine(src) var/is_secure = istype(src,/obj/machinery/smartfridge/secure) @@ -269,7 +269,7 @@ if (vendor_wires.len > 0) data["wires"] = vendor_wires - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "smartfridge.tmpl", src.name, 400, 500) ui.set_initial_data(data) diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index 864e893dc9f..e8ec749a31a 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -52,7 +52,7 @@ Buildable meters if (make_from) src.dir = make_from.dir src.pipename = make_from.name - color = make_from.color + color = make_from.pipe_color var/is_bent if (make_from.initialize_directions in list(NORTH|SOUTH, WEST|EAST)) is_bent = 0 @@ -324,12 +324,12 @@ Buildable meters return 1 // no conflicts found - var/pipefailtext = "\red There's nothing to connect this pipe section to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" + var/pipefailtext = "\red There's nothing to connect this pipe section to!" //(with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" switch(pipe_type) if(PIPE_SIMPLE_STRAIGHT, PIPE_SIMPLE_BENT) var/obj/machinery/atmospherics/pipe/simple/P = new( src.loc ) - P.color = color + P.pipe_color = color P.dir = src.dir P.initialize_directions = pipe_dir var/turf/T = P.loc @@ -382,7 +382,7 @@ Buildable meters if(PIPE_MANIFOLD) //manifold var/obj/machinery/atmospherics/pipe/manifold/M = new( src.loc ) - M.color = color + M.pipe_color = color M.dir = dir M.initialize_directions = pipe_dir //M.New() @@ -390,7 +390,7 @@ Buildable meters M.level = T.intact ? 2 : 1 M.initialize() if (!M) - usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" + usr << "There's nothing to connect this manifold to!" //(with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" return 1 M.build_network() if (M.node1) @@ -405,7 +405,7 @@ Buildable meters if(PIPE_MANIFOLD4W) //4-way manifold var/obj/machinery/atmospherics/pipe/manifold4w/M = new( src.loc ) - M.color = color + M.pipe_color = color M.dir = dir M.initialize_directions = pipe_dir //M.New() @@ -413,7 +413,7 @@ Buildable meters M.level = T.intact ? 2 : 1 M.initialize() if (!M) - usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" + usr << "There's nothing to connect this manifold to!" //(with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" return 1 M.build_network() if (M.node1) @@ -438,7 +438,7 @@ Buildable meters //P.level = T.intact ? 2 : 1 P.initialize() if (!P) - usr << "There's nothing to connect this pipe to!" //(with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" + usr << pipefailtext //"There's nothing to connect this pipe to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)" return 1 P.build_network() if (P.node1) @@ -709,7 +709,7 @@ Buildable meters C.node.initialize() C.node.build_network() ///// Z-Level stuff - if(PIPE_UP) //volume pump + if(PIPE_UP) var/obj/machinery/atmospherics/pipe/zpipe/up/P = new(src.loc) P.dir = dir P.initialize_directions = pipe_dir @@ -725,7 +725,7 @@ Buildable meters if (P.node2) P.node2.initialize() P.node2.build_network() - if(PIPE_DOWN) //volume pump + if(PIPE_DOWN) var/obj/machinery/atmospherics/pipe/zpipe/down/P = new(src.loc) P.dir = dir P.initialize_directions = pipe_dir diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 5b4366259ee..b6fd766230e 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -25,7 +25,7 @@ obj/machinery/recharger/attackby(obj/item/weapon/G as obj, mob/user as mob) if(!isarea(a)) user << "\red The [name] blinks red as you try to insert the item!" return - if(a.power_equip == 0) + if(a.power_equip == 0 && !a.unlimited_power) user << "\red The [name] blinks red as you try to insert the item!" return @@ -57,7 +57,7 @@ obj/machinery/recharger/attack_hand(mob/user as mob) if(charging) charging.update_icon() - charging.loc = loc + user.put_in_hands(charging) charging = null use_power = 1 update_icon() diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index da2af57a566..39ce187fb46 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -21,6 +21,19 @@ if(istype(P, /obj/item/device/multitool)) attack_hand(user) + + // REPAIRING: Use Nanopaste to repair 10-20 integrity points. + if(istype(P, /obj/item/stack/nanopaste)) + var/obj/item/stack/nanopaste/T = P + if (integrity < 100) //Damaged, let's repair! + integrity = between(0, integrity + rand(10,20), 100) + T.use(1) + usr << "You apply the Nanopaste to [src], repairing some of the damage." + else + usr << "This machine is already in perfect condition." + return + + switch(construct_op) if(0) if(istype(P, /obj/item/weapon/screwdriver)) diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index 95995fa2b9c..1d03618de16 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -214,11 +214,20 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() /obj/machinery/telecomms/proc/checkheat() // Checks heat from the environment and applies any integrity damage var/datum/gas_mixture/environment = loc.return_air() + var/damage_chance = 0 // Percent based chance of applying 1 integrity damage this tick switch(environment.temperature) - if(T0C to (T20C + 20)) - integrity = between(0, integrity, 100) - if((T20C + 20) to (T0C + 70)) - integrity = max(0, integrity - 1) + if((T0C + 40) to (T0C + 70)) // 40C-70C, minor overheat, 10% chance of taking damage + damage_chance = 10 + if((T0C + 70) to (T0C + 130)) // 70C-130C, major overheat, 25% chance of taking damage + damage_chance = 25 + if((T0C + 130) to (T0C + 200)) // 130C-200C, dangerous overheat, 50% chance of taking damage + damage_chance = 50 + if((T0C + 200) to INFINITY) // More than 200C, INFERNO. Takes damage every tick. + damage_chance = 100 + if (damage_chance && prob(damage_chance)) + integrity = between(0, integrity - 1, 100) + + if(delay) delay-- else diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm index 39533b04831..68285d4f986 100644 --- a/code/game/objects/effects/glowshroom.dm +++ b/code/game/objects/effects/glowshroom.dm @@ -8,6 +8,8 @@ icon = 'icons/obj/lighting.dmi' icon_state = "glowshroomf" layer = 2.1 + l_color = "#003300" + var/endurance = 30 var/potency = 30 var/delay = 1200 @@ -44,7 +46,7 @@ processing_objects += src - SetLuminosity(round(potency/10)) + SetLuminosity(round(potency/15)) lastTick = world.timeofday /obj/effect/glowshroom/Del() diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 818326b8065..d4879eff363 100755 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -328,7 +328,7 @@ var/global/list/obj/item/device/pda/PDAs = list() return -/obj/item/device/pda/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/item/device/pda/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) ui_tick++ var/datum/nanoui/old_ui = nanomanager.get_open_ui(user, src, "main") var/auto_update = 1 @@ -462,7 +462,7 @@ var/global/list/obj/item/device/pda/PDAs = list() data["aircontents"] = list("reading" = 0) // update the ui if it exists, returns null if no ui is passed/found - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) // the ui does not exist, so we'll create a new() one // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm index 43daf35b323..204b94cc3dd 100644 --- a/code/game/objects/items/devices/aicard.dm +++ b/code/game/objects/items/devices/aicard.dm @@ -71,6 +71,10 @@ dat += "
" dat += {"[A.control_disabled ? "Enable" : "Disable"] Wireless Activity"} dat += "
" + dat += "Subspace Transceiver is: [A.aiRadio.disabledAi ? "Disabled" : "Enabled"]" + dat += "
" + dat += {"[A.aiRadio.disabledAi ? "Enable" : "Disable"] Subspace Transceiver"} + dat += "
" dat += {" Close"} user << browse(dat, "window=aicard") onclose(user, "aicard") @@ -92,6 +96,12 @@ U.unset_machine() return + if ("Radio") + for(var/mob/living/silicon/ai/A in src) + A.aiRadio.disabledAi = !A.aiRadio.disabledAi + A << "Your Subspace Transceiver has been: [A.aiRadio.disabledAi ? "disabled" : "enabled"]" + U << "You [A.aiRadio.disabledAi ? "Disable" : "Enable"] the AI's Subspace Transceiver" + if ("Wipe") var/confirm = alert("Are you sure you want to wipe this card's memory? This cannot be undone once started.", "Confirm Wipe", "Yes", "No") if(confirm == "Yes") diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index 274f8f7ed7e..42651ea7200 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -197,7 +197,7 @@ pAI Request Module

Requesting AI personalities from central database... If there are no entries, or if a suitable entry is not listed, check again later as more personalities may be added.

Searching for personalities

- + \s*$/g,Lt={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"
@@ -302,5 +302,4 @@ /obj/item/device/paicard/emp_act(severity) for(var/mob/M in src) M.emp_act(severity) - ..() - + ..() \ No newline at end of file diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm index 3a062adca48..74374297cc0 100644 --- a/code/game/objects/items/devices/pipe_painter.dm +++ b/code/game/objects/items/devices/pipe_painter.dm @@ -3,8 +3,15 @@ icon = 'icons/obj/bureaucracy.dmi' icon_state = "labeler1" item_state = "flight" - var/list/modes = list("grey","red","blue","cyan","green","yellow","purple") - var/mode = "grey" + var/list/modes + var/mode + +/obj/item/device/pipe_painter/New() + ..() + modes = new() + for(var/C in pipe_colors) + modes += "[C]" + mode = pick(modes) /obj/item/device/pipe_painter/afterattack(atom/A, mob/user as mob) if(!istype(A,/obj/machinery/atmospherics/pipe) || istype(A,/obj/machinery/atmospherics/pipe/tank) || istype(A,/obj/machinery/atmospherics/pipe/vent) || istype(A,/obj/machinery/atmospherics/pipe/simple/heat_exchanging) || istype(A,/obj/machinery/atmospherics/pipe/simple/insulated) || !in_range(user, A)) @@ -16,12 +23,10 @@ user << "\red You must remove the plating first." return - P.pipe_color = mode - user.visible_message("[user] paints \the [P] [mode].","You paint \the [P] [mode].") - P.update_icon() + P.change_color(pipe_colors[mode]) /obj/item/device/pipe_painter/attack_self(mob/user as mob) - mode = input("Which colour do you want to use?","Pipe painter") in modes + mode = input("Which colour do you want to use?", "Pipe painter", mode) in modes /obj/item/device/pipe_painter/examine() ..() diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index d2d5417d6c3..287e8272497 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -74,6 +74,12 @@ icon_state = "cap_cypherkey" channels = list("Command" = 1, "Security" = 1, "Engineering" = 0, "Science" = 0, "Medical" = 0, "Supply" = 0) +/obj/item/device/encryptionkey/heads/ai_integrated + name = "AI Integrated Encryption Key" + desc = "Integrated encryption key" + icon_state = "cap_cypherkey" + channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1) + /obj/item/device/encryptionkey/heads/rd name = "Research Director's Encryption Key" desc = "An encyption key for a radio headset. Contains cypherkeys." diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index ed59e439895..ab376e4825d 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -19,7 +19,9 @@ keyslot1 = new /obj/item/device/encryptionkey/ recalculateChannels() -/obj/item/device/radio/headset/receive_range(freq, level) +/obj/item/device/radio/headset/receive_range(freq, level, aiOverride = 0) + if (aiOverride) + return ..(freq, level) if(ishuman(src.loc)) var/mob/living/carbon/human/H = src.loc if(H.l_ear == src || H.r_ear == src) @@ -99,6 +101,20 @@ item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/captain +/obj/item/device/radio/headset/heads/ai_integrated //No need to care about icons, it should be hidden inside the AI anyway. + name = "AI Subspace Transceiver" + desc = "Integrated AI radio transceiver." + icon_state = "ai_radio" + item_state = "headset" + keyslot2 = new /obj/item/device/encryptionkey/heads/ai_integrated + var/myAi = null // Atlantis: Reference back to the AI which has this radio. + var/disabledAi = 0 // Atlantis: Used to manually disable AI's integrated radio via intellicard menu. + +/obj/item/device/radio/headset/heads/ai_integrated/receive_range(freq, level) + if (disabledAi) + return -1 //Transciever Disabled. + return ..(freq, level, 1) + /obj/item/device/radio/headset/heads/rd name = "Research Director's headset" desc = "Headset of the researching God. To access the science channel, use :n. For command, use :c." diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 441dee233ad..2a8ec10569b 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -48,11 +48,13 @@ REAGENT SCANNER if(O.invisibility == 101) O.invisibility = 0 + O.alpha = 128 spawn(10) if(O) var/turf/U = O.loc if(U.intact) O.invisibility = 101 + O.alpha = 255 var/mob/living/M = locate() in T if(M && M.invisibility == 2) @@ -425,4 +427,47 @@ REAGENT SCANNER name = "advanced reagent scanner" icon_state = "adv_spectrometer" details = 1 - origin_tech = "magnets=4;biotech=2" \ No newline at end of file + origin_tech = "magnets=4;biotech=2" + +/obj/item/device/slime_scanner + name = "slime scanner" + icon_state = "adv_spectrometer" + item_state = "analyzer" + origin_tech = "biotech=1" + w_class = 2.0 + flags = CONDUCT + throwforce = 0 + throw_speed = 3 + throw_range = 7 + matter = list("metal" = 30,"glass" = 20) + +/obj/item/device/slime_scanner/attack(mob/living/M as mob, mob/living/user as mob) + if (!isslime(M)) + user << "This device can only scan slimes!" + return + var/mob/living/carbon/slime/T = M + user.show_message("Slime scan results:") + user.show_message(text("[T.colour] [] slime", T.is_adult ? "adult" : "baby")) + user.show_message(text("Nutrition: [T.nutrition]/[]", T.get_max_nutrition())) + if (T.nutrition < T.get_starve_nutrition()) + user.show_message("Warning: slime is starving!") + else if (T.nutrition < T.get_hunger_nutrition()) + user.show_message("Warning: slime is hungry") + user.show_message("Electric change strength: [T.powerlevel]") + user.show_message("Health: [T.health]") + if (T.slime_mutation[4] == T.colour) + user.show_message("This slime does not evolve any further") + else + if (T.slime_mutation[3] == T.slime_mutation[4]) + if (T.slime_mutation[2] == T.slime_mutation[1]) + user.show_message(text("Possible mutation: []", T.slime_mutation[3])) + user.show_message("Genetic destability: [T.mutation_chance/2]% chance of mutation on splitting") + else + user.show_message(text("Possible mutations: [], [], [] (x2)", T.slime_mutation[1], T.slime_mutation[2], T.slime_mutation[3])) + user.show_message("Genetic destability: [T.mutation_chance]% chance of mutation on splitting") + else + user.show_message(text("Possible mutations: [], [], [], []", T.slime_mutation[1], T.slime_mutation[2], T.slime_mutation[3], T.slime_mutation[4])) + user.show_message("Genetic destability: [T.mutation_chance]% chance of mutation on splitting") + if (T.cores > 1) + user.show_message("Anomalious slime core amount detected") + user.show_message("Growth progress: [T.amount_grown]/10") \ No newline at end of file diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index 2fa75536ec3..1e7c4597560 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -67,7 +67,7 @@ /obj/item/device/transfer_valve/attack_self(mob/user as mob) ui_interact(user) -/obj/item/device/transfer_valve/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/item/device/transfer_valve/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) // this is the data which will be sent to the ui var/data[0] @@ -77,7 +77,7 @@ data["valveOpen"] = valve_open ? 1 : 0 // update the ui if it exists, returns null if no ui is passed/found - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) // the ui does not exist, so we'll create a new() one // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm diff --git a/code/game/objects/items/devices/uplinks.dm b/code/game/objects/items/devices/uplinks.dm index 41ae746739c..aa01d0454de 100644 --- a/code/game/objects/items/devices/uplinks.dm +++ b/code/game/objects/items/devices/uplinks.dm @@ -340,7 +340,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid /* NANO UI FOR UPLINK WOOP WOOP */ -/obj/item/device/uplink/hidden/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/item/device/uplink/hidden/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/title = "Syndicate Uplink" var/data[0] @@ -349,7 +349,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid data["welcome"] = welcome // update the ui if it exists, returns null if no ui is passed/found - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) // the ui does not exist, so we'll create a new() one // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index f8c46134c1e..c474650f9ae 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -1,5 +1,7 @@ #define MALFUNCTION_TEMPORARY 1 #define MALFUNCTION_PERMANENT 2 + + /obj/item/weapon/implant name = "implant" icon = 'icons/obj/device.dmi' diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm index f1f5d8521ec..f92f5b759ce 100644 --- a/code/game/objects/items/weapons/implants/implanter.dm +++ b/code/game/objects/items/weapons/implants/implanter.dm @@ -65,8 +65,6 @@ update() return - - /obj/item/weapon/implanter/explosive name = "implanter (E)" diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index 8b883f818ac..e0a3bcb5926 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -127,7 +127,7 @@ ui_interact(user) -/obj/item/weapon/tank/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/item/weapon/tank/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/using_internal if(istype(loc,/mob/living/carbon)) @@ -150,7 +150,7 @@ data["maskConnected"] = 1 // update the ui if it exists, returns null if no ui is passed/found - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) // the ui does not exist, so we'll create a new() one // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index a1a3876574e..c62ea02d924 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -25,6 +25,19 @@ new /obj/item/clothing/shoes/magboots(src) +/obj/structure/closet/syndicate/suit + desc = "It's a storage unit for rig suits." + +/obj/structure/closet/syndicate/suit/New() + ..() + sleep(2) + new /obj/item/weapon/tank/jetpack/oxygen(src) + new /obj/item/clothing/shoes/magboots(src) + new /obj/item/clothing/suit/space/rig/syndi(src) + new /obj/item/clothing/mask/gas/syndicate(src) + new /obj/item/clothing/head/helmet/space/rig/syndi(src) + + /obj/structure/closet/syndicate/nuclear desc = "It's a storage unit for nuclear-operative gear." diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index bb50f1d63db..595a7d903be 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -58,7 +58,9 @@ return /obj/structure/grille/attack_slime(mob/user as mob) - if(!istype(user, /mob/living/carbon/slime/adult)) return + var/mob/living/carbon/slime/S = user + if (!S.is_adult) + return playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) user.visible_message("[user] smashes against [src].", \ diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm index 3d21a3a2b2d..cd9dfd3e8ae 100644 --- a/code/game/objects/structures/inflatable.dm +++ b/code/game/objects/structures/inflatable.dm @@ -103,7 +103,9 @@ attack_slime(mob/user as mob) - if(!isslimeadult(user)) return + var/mob/living/carbon/slime/S = user + if (!S.is_adult) + return attack_generic(user, rand(10, 15)) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 0937e72d848..59771219737 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -105,7 +105,9 @@ /obj/structure/mirror/attack_slime(mob/user as mob) - if(!isslimeadult(user)) return + var/mob/living/carbon/slime/S = user + if (!S.is_adult) + return if(shattered) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) return diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index bc4d5fd25e8..4977da7f4dd 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -155,7 +155,9 @@ /obj/structure/window/attack_slime(mob/user as mob) - if(!isslimeadult(user)) return + var/mob/living/carbon/slime/S = user + if (!S.is_adult) + return attack_generic(user, rand(10, 15)) diff --git a/code/game/turfs/simulated/floor_types.dm b/code/game/turfs/simulated/floor_types.dm index dec999f0fce..932e40e8c5a 100644 --- a/code/game/turfs/simulated/floor_types.dm +++ b/code/game/turfs/simulated/floor_types.dm @@ -53,6 +53,7 @@ icon_state = "engine" thermal_conductivity = 0.025 heat_capacity = 325000 + intact = 0 /turf/simulated/floor/engine/attackby(obj/item/weapon/C as obj, mob/user as mob) if(!C) @@ -154,7 +155,7 @@ name = "skipjack floor" oxygen = 0 nitrogen = MOLES_N2STANDARD + MOLES_O2STANDARD - + /turf/simulated/floor/beach name = "Beach" icon = 'icons/misc/beach.dmi' diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 5990b64ceb8..6b1e1d2b018 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -228,7 +228,7 @@ emergency_shuttle.call_evac() log_admin("[key_name(usr)] called the Emergency Shuttle") message_admins("\blue [key_name_admin(usr)] called the Emergency Shuttle to the station", 1) - + else if (emergency_shuttle.can_recall()) emergency_shuttle.recall() log_admin("[key_name(usr)] sent the Emergency Shuttle back") @@ -247,7 +247,7 @@ log_admin("[key_name(usr)] edited the Emergency Shuttle's launch time to [new_time_left]") message_admins("\blue [key_name_admin(usr)] edited the Emergency Shuttle's launch time to [new_time_left*10]", 1) else if (emergency_shuttle.shuttle.has_arrive_time()) - + var/new_time_left = input("Enter new shuttle arrival time (seconds):","Edit Shuttle Arrival Time", emergency_shuttle.estimate_arrival_time() ) as num emergency_shuttle.shuttle.arrive_time = world.time + new_time_left*10 @@ -255,7 +255,7 @@ message_admins("\blue [key_name_admin(usr)] edited the Emergency Shuttle's arrival time to [new_time_left*10]", 1) else alert("The shuttle is neither counting down to launch nor is it in transit. Please try again when it is.") - + href_list["secretsadmin"] = "check_antagonist" else if(href_list["delay_round_end"]) @@ -291,7 +291,6 @@ if("larva") M.change_mob_type( /mob/living/carbon/alien/larva , null, null, delmob ) if("human") M.change_mob_type( /mob/living/carbon/human , null, null, delmob ) if("slime") M.change_mob_type( /mob/living/carbon/slime , null, null, delmob ) - if("adultslime") M.change_mob_type( /mob/living/carbon/slime/adult , null, null, delmob ) if("monkey") M.change_mob_type( /mob/living/carbon/monkey , null, null, delmob ) if("robot") M.change_mob_type( /mob/living/silicon/robot , null, null, delmob ) if("cat") M.change_mob_type( /mob/living/simple_animal/cat , null, null, delmob ) @@ -1935,20 +1934,20 @@ if("launchshuttle") if(!shuttle_controller) return // Something is very wrong, the shuttle controller has not been created. - + feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","ShL") - + var/list/valid_shuttles = list() for (var/shuttle_tag in shuttle_controller.shuttles) if (istype(shuttle_controller.shuttles[shuttle_tag], /datum/shuttle/ferry)) valid_shuttles += shuttle_tag - + var/shuttle_tag = input("Which shuttle do you want to launch?") as null|anything in valid_shuttles - + if (!shuttle_tag) return - + var/datum/shuttle/ferry/S = shuttle_controller.shuttles[shuttle_tag] if (S.can_launch()) S.launch(usr) @@ -1956,23 +1955,23 @@ log_admin("[key_name(usr)] launched the [shuttle_tag] shuttle") else alert("The [shuttle_tag] shuttle cannot be launched at this time. It's probably busy.") - + if("forcelaunchshuttle") if(!shuttle_controller) return // Something is very wrong, the shuttle controller has not been created. - + feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","ShFL") - + var/list/valid_shuttles = list() for (var/shuttle_tag in shuttle_controller.shuttles) if (istype(shuttle_controller.shuttles[shuttle_tag], /datum/shuttle/ferry)) valid_shuttles += shuttle_tag - + var/shuttle_tag = input("Which shuttle's launch do you want to force?") as null|anything in valid_shuttles - + if (!shuttle_tag) return - + var/datum/shuttle/ferry/S = shuttle_controller.shuttles[shuttle_tag] if (S.can_force()) S.force_launch(usr) @@ -1980,31 +1979,31 @@ log_admin("[key_name(usr)] has forced the [shuttle_tag] shuttle launch") else alert("The [shuttle_tag] shuttle launch cannot be forced at this time. It's busy, or hasn't been launched yet.") - + if("jumpshuttle") if(!shuttle_controller) return // Something is very wrong, the shuttle controller has not been created. - + feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","ShJ") - + var/shuttle_tag = input("Which shuttle do you want to jump?") as null|anything in shuttle_controller.shuttles if (!shuttle_tag) return - + var/datum/shuttle/S = shuttle_controller.shuttles[shuttle_tag] - + var/origin_area = input("Which area is the shuttle at now? (MAKE SURE THIS IS CORRECT OR THINGS WILL BREAK)") as null|area in world if (!origin_area) return - + var/destination_area = input("Which area is the shuttle at now? (MAKE SURE THIS IS CORRECT OR THINGS WILL BREAK)") as null|area in world if (!destination_area) return - + var/long_jump = alert("Is there a transition area for this jump?","", "Yes", "No") if (long_jump == "Yes") var/transition_area = input("Which area is the transition area? (MAKE SURE THIS IS CORRECT OR THINGS WILL BREAK)") as null|area in world if (!transition_area) return - + var/move_duration = input("How many seconds will this jump take?") as num - + S.long_jump(origin_area, destination_area, transition_area, move_duration) message_admins("\blue [key_name_admin(usr)] has initiated a jump from [origin_area] to [destination_area] lasting [move_duration] seconds for the [shuttle_tag] shuttle", 1) log_admin("[key_name_admin(usr)] has initiated a jump from [origin_area] to [destination_area] lasting [move_duration] seconds for the [shuttle_tag] shuttle") @@ -2012,29 +2011,29 @@ S.short_jump(origin_area, destination_area) message_admins("\blue [key_name_admin(usr)] has initiated a jump from [origin_area] to [destination_area] for the [shuttle_tag] shuttle", 1) log_admin("[key_name_admin(usr)] has initiated a jump from [origin_area] to [destination_area] for the [shuttle_tag] shuttle") - + if("moveshuttle") if(!shuttle_controller) return // Something is very wrong, the shuttle controller has not been created. feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","ShM") - + var/confirm = alert("This command directly moves a shuttle from one area to another. DO NOT USE THIS UNLESS YOU ARE DEBUGGING A SHUTTLE AND YOU KNOW WHAT YOU ARE DOING.", "Are you sure?", "Ok", "Cancel") if (confirm == "Cancel") return var/shuttle_tag = input("Which shuttle do you want to jump?") as null|anything in shuttle_controller.shuttles if (!shuttle_tag) return - + var/datum/shuttle/S = shuttle_controller.shuttles[shuttle_tag] - + var/origin_area = input("Which area is the shuttle at now? (MAKE SURE THIS IS CORRECT OR THINGS WILL BREAK)") as null|area in world if (!origin_area) return - + var/destination_area = input("Which area is the shuttle at now? (MAKE SURE THIS IS CORRECT OR THINGS WILL BREAK)") as null|area in world if (!destination_area) return - + S.move(origin_area, destination_area) message_admins("\blue [key_name_admin(usr)] moved the [shuttle_tag] shuttle", 1) log_admin("[key_name(usr)] moved the [shuttle_tag] shuttle") diff --git a/code/modules/admin/verbs/atmosdebug.dm b/code/modules/admin/verbs/atmosdebug.dm index dd5fee98f6c..f4e163394cb 100644 --- a/code/modules/admin/verbs/atmosdebug.dm +++ b/code/modules/admin/verbs/atmosdebug.dm @@ -1,11 +1,16 @@ /client/proc/atmosscan() set category = "Mapping" - set name = "Check Plumbing" + set name = "Check Piping" + set background = 1 if(!src.holder) src << "Only administrators may use this command." return feedback_add_details("admin_verb","CP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + if(alert("WARNING: This command should not be run on a live server. Do you want to continue?", "Check Piping", "No", "Yes") == "No") + return + usr << "Checking for disconnected pipes..." //all plumbing - yes, some things might get stated twice, doesn't matter. for (var/obj/machinery/atmospherics/plumbing in world) if (plumbing.nodealert) @@ -21,6 +26,19 @@ if (!pipe.node1 || !pipe.node2) usr << "Unconnected [pipe.name] located at [pipe.x],[pipe.y],[pipe.z] ([get_area(pipe.loc)])" + usr << "Checking for overlapping pipes..." + next_turf: + for(var/turf/T in world) + for(var/dir in cardinal) + var/check = 0 + for(var/obj/machinery/atmospherics/pipe in T) + if(dir & pipe.initialize_directions) + check++ + if(check > 1) + usr << "Overlapping pipe ([pipe.name]) located at [T.x],[T.y],[T.z] ([get_area(T)])" + continue next_turf + usr << "Done" + /client/proc/powerdebug() set category = "Mapping" set name = "Check Power" diff --git a/code/modules/admin/verbs/striketeam.dm b/code/modules/admin/verbs/striketeam.dm index cf5b94322d5..e8a92edbe31 100644 --- a/code/modules/admin/verbs/striketeam.dm +++ b/code/modules/admin/verbs/striketeam.dm @@ -158,9 +158,7 @@ var/global/sent_strike_team = 0 equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse_rifle(src), slot_r_hand) - var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(src)//Here you go Deuryn - L.imp_in = src - L.implanted = 1 + implant_loyalty(src) diff --git a/code/modules/economy/Accounts_DB.dm b/code/modules/economy/Accounts_DB.dm index f94766f16cb..19ea76ed4ed 100644 --- a/code/modules/economy/Accounts_DB.dm +++ b/code/modules/economy/Accounts_DB.dm @@ -59,7 +59,7 @@ if(stat & (NOPOWER|BROKEN)) return ui_interact(user) -/obj/machinery/account_database/ui_interact(mob/user, ui_key="main", datum/nanoui/ui=null) +/obj/machinery/account_database/ui_interact(mob/user, ui_key="main", var/datum/nanoui/ui = null, var/force_open = 1) user.set_machine(src) var/data[0] @@ -105,7 +105,7 @@ if (accounts.len > 0) data["accounts"] = accounts - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "accounts_terminal.tmpl", src.name, 400, 640) ui.set_initial_data(data) diff --git a/code/modules/flufftext/Dreaming.dm b/code/modules/flufftext/Dreaming.dm index f48846c590b..5e204987af6 100644 --- a/code/modules/flufftext/Dreaming.dm +++ b/code/modules/flufftext/Dreaming.dm @@ -1,24 +1,25 @@ + +var/list/dreams = list( + "an ID card","a bottle","a familiar face","a crewmember","a toolbox","a security officer","the captain", + "voices from all around","deep space","a doctor","the engine","a traitor","an ally","darkness", + "light","a scientist","a monkey","a catastrophe","a loved one","a gun","warmth","freezing","the sun", + "a hat","the Luna","a ruined station","a planet","phoron","air","the medical bay","the bridge","blinking lights", + "a blue light","an abandoned laboratory","Nanotrasen","The Syndicate","blood","healing","power","respect", + "riches","space","a crash","happiness","pride","a fall","water","flames","ice","melons","flying","the eggs","money", + "the head of personnel","the head of security","a chief engineer","a research director","a chief medical officer", + "the detective","the warden","a member of the internal affairs","a station engineer","the janitor","atmospheric technician", + "the quartermaster","a cargo technician","the botanist","a shaft miner","the psychologist","the chemist","the geneticist", + "the virologist","the roboticist","the chef","the bartender","the chaplain","the librarian","a mouse","an ert member", + "a beach","the holodeck","a smokey room","a voice","the cold","a mouse","an operating table","the bar","the rain","a skrell", + "a unathi","a tajaran","the ai core","the mining station","the research station","a beaker of strange liquid", + ) + mob/living/carbon/proc/dream() dreaming = 1 - var/list/dreams = list( - "an ID card","a bottle","a familiar face","a crewmember","a toolbox","a security officer","the captain", - "voices from all around","deep space","a doctor","the engine","a traitor","an ally","darkness", - "light","a scientist","a monkey","a catastrophe","a loved one","a gun","warmth","freezing","the sun", - "a hat","the Luna","a ruined station","a planet","phoron","air","the medical bay","the bridge","blinking lights", - "a blue light","an abandoned laboratory","Nanotrasen","The Syndicate","blood","healing","power","respect", - "riches","space","a crash","happiness","pride","a fall","water","flames","ice","melons","flying","the eggs","money", - "the head of personnel","the head of security","a chief engineer","a research director","a chief medical officer", - "the detective","the warden","a member of the internal affairs","a station engineer","the janitor","atmospheric technician", - "the quartermaster","a cargo technician","the botanist","a shaft miner","the psychologist","the chemist","the geneticist", - "the virologist","the roboticist","the chef","the bartender","the chaplain","the librarian","a mouse","an ert member", - "a beach","the holodeck","a smokey room","a voice","the cold","a mouse","an operating table","the bar","the rain","a skrell", - "a unathi","a tajaran","the ai core","the mining station","the research station","a beaker of strange liquid", - ) + spawn(0) for(var/i = rand(1,4),i > 0, i--) - var/dream_image = pick(dreams) - dreams -= dream_image - src << "\blue ... [dream_image] ..." + src << "\blue ... [pick(dreams)] ..." sleep(rand(40,70)) if(paralysis <= 0) dreaming = 0 @@ -27,6 +28,7 @@ mob/living/carbon/proc/dream() return 1 mob/living/carbon/proc/handle_dreams() - if(prob(5) && !dreaming) dream() + if(client && !dreaming && prob(5)) + dream() -mob/living/carbon/var/dreaming = 0 \ No newline at end of file +mob/living/carbon/var/dreaming = 0 diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 89a1cfa610f..7751ef478dc 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -22,7 +22,7 @@ mob/living/carbon/var mob/living/carbon/proc/handle_hallucinations() if(handling_hal) return handling_hal = 1 - while(hallucination > 20) + while(client && hallucination > 20) sleep(rand(200,500)/(hallucination/25)) var/halpick = rand(1,100) switch(halpick) @@ -408,4 +408,4 @@ var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/ite target << F.up */ - F.updateimage() \ No newline at end of file + F.updateimage() diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 3489854b981..207b331535f 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -99,7 +99,8 @@ icon_state = "rock" return name = "\improper [mineral.display_name] deposit" - icon_state = "rock_[mineral.name]" + overlays.Cut() + overlays += "rock_[mineral.name]" //Not even going to touch this pile of spaghetti @@ -356,7 +357,7 @@ /turf/simulated/mineral/random name = "Mineral deposit" - var/mineralSpawnChanceList = list("Uranium" = 5, "Iron" = 50, "Diamond" = 1, "Gold" = 5, "Silver" = 5, "Phoron" = 25) + var/mineralSpawnChanceList = list("Uranium" = 5, "Platinum" = 5, "Iron" = 35, "Coal" = 35, "Diamond" = 1, "Gold" = 5, "Silver" = 5, "Phoron" = 10) var/mineralChance = 10 //means 10% chance of this plot changing to a mineral deposit New() @@ -375,7 +376,7 @@ /turf/simulated/mineral/random/high_chance mineralChance = 25 - mineralSpawnChanceList = list("Uranium" = 10, "Iron" = 30, "Diamond" = 2, "Gold" = 10, "Silver" = 10, "Phoron" = 25) + mineralSpawnChanceList = list("Uranium" = 10, "Platinum" = 10, "Iron" = 20, "Coal" = 20, "Diamond" = 2, "Gold" = 10, "Silver" = 10, "Phoron" = 20) /**********************Asteroid**************************/ @@ -390,6 +391,7 @@ temperature = T0C icon_plating = "asteroid" var/dug = 0 //0 = has not yet been dug, 1 = has already been dug + var/overlay_detail has_resources = 1 /turf/simulated/floor/plating/airless/asteroid/New() @@ -400,7 +402,7 @@ // seedName = pick(list("1","2","3","4")) // seedAmt = rand(1,4) if(prob(20)) - icon_state = "asteroid[rand(0,12)]" + overlay_detail = "asteroid[rand(0,9)]" spawn(2) updateMineralOverlays() @@ -505,6 +507,17 @@ overlays.Cut() + if(istype(get_step(src, NORTH), /turf/space)) + overlays += image('icons/turf/floors.dmi', "asteroid_edge_north") + if(istype(get_step(src, SOUTH), /turf/space)) + overlays += image('icons/turf/floors.dmi', "asteroid_edge_south") + if(istype(get_step(src, EAST), /turf/space)) + overlays += image('icons/turf/floors.dmi', "asteroid_edge_east") + if(istype(get_step(src, WEST), /turf/space)) + overlays += image('icons/turf/floors.dmi', "asteroid_edge_west") + + if(overlay_detail) overlays += overlay_detail + if(istype(get_step(src, NORTH), /turf/simulated/mineral)) overlays += image('icons/turf/walls.dmi', "rock_side_n") if(istype(get_step(src, SOUTH), /turf/simulated/mineral)) diff --git a/code/modules/mining/minerals.dm b/code/modules/mining/minerals.dm index a5ba349d086..a3e34b6be97 100644 --- a/code/modules/mining/minerals.dm +++ b/code/modules/mining/minerals.dm @@ -1,6 +1,6 @@ var/list/name_to_mineral -proc/SetupMinerals() +/proc/SetupMinerals() name_to_mineral = list() for(var/type in typesof(/mineral) - /mineral) var/mineral/new_mineral = new type @@ -9,56 +9,63 @@ proc/SetupMinerals() name_to_mineral[new_mineral.name] = new_mineral return 1 -mineral - ///What am I called? - var/name - var/display_name - ///How much ore? - var/result_amount - ///Does this type of deposit spread? - var/spread = 1 - ///Chance of spreading in any direction - var/spread_chance +/mineral + var/name // Tag for use in overlay generation/list population . + var/display_name // What am I called? + var/result_amount // How much ore? + var/spread = 1 // Does this type of deposit spread? + var/spread_chance // Chance of spreading in any direction + var/ore // Path to the ore produced when tile is mined. - ///Path to the resultant ore. - var/ore - New() - . = ..() - if(!display_name) - display_name = name +/mineral/New() + . = ..() + if(!display_name) + display_name = name -mineral/uranium +/mineral/uranium name = "Uranium" result_amount = 5 spread_chance = 10 ore = /obj/item/weapon/ore/uranium -mineral/iron +/mineral/platinum + name = "Platinum" + result_amount = 5 + spread_chance = 10 + ore = /obj/item/weapon/ore/osmium + +/mineral/iron name = "Iron" result_amount = 5 spread_chance = 25 ore = /obj/item/weapon/ore/iron -mineral/diamond +/mineral/coal + name = "Coal" + result_amount = 5 + spread_chance = 25 + ore = /obj/item/weapon/ore/coal + +/mineral/diamond name = "Diamond" result_amount = 5 spread_chance = 10 ore = /obj/item/weapon/ore/diamond -mineral/gold +/mineral/gold name = "Gold" result_amount = 5 spread_chance = 10 ore = /obj/item/weapon/ore/gold -mineral/silver +/mineral/silver name = "Silver" result_amount = 5 spread_chance = 10 ore = /obj/item/weapon/ore/silver -mineral/phoron +/mineral/phoron name = "Phoron" result_amount = 5 spread_chance = 25 diff --git a/code/modules/mining/ore.dm b/code/modules/mining/ore.dm index 8c537252d5f..a637c456268 100644 --- a/code/modules/mining/ore.dm +++ b/code/modules/mining/ore.dm @@ -19,7 +19,7 @@ /obj/item/weapon/ore/coal name = "carbonaceous rock" - icon_state = "Iron ore" //TODO + icon_state = "Coal ore" origin_tech = "materials=1" oretag = "coal" @@ -55,12 +55,12 @@ /obj/item/weapon/ore/osmium name = "raw platinum" - icon_state = "slag" //TODO + icon_state = "Platinum ore" oretag = "platinum" /obj/item/weapon/ore/hydrogen name = "raw hydrogen" - icon_state = "slag" //TODO + icon_state = "Phazon" oretag = "hydrogen" /obj/item/weapon/ore/slag diff --git a/code/modules/mining/ore_datum.dm b/code/modules/mining/ore_datum.dm index 56b8d0ad204..b3689d3abb8 100644 --- a/code/modules/mining/ore_datum.dm +++ b/code/modules/mining/ore_datum.dm @@ -24,7 +24,8 @@ oretag = "sand" /datum/ore/phoron - smelts_to = /obj/item/stack/sheet/mineral/phoron + //smelts_to = something that explodes violently on the conveyor, huhuhuhu + compresses_to = /obj/item/stack/sheet/mineral/phoron oretag = "phoron" /datum/ore/silver diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index d419a7cf70e..03e590f036b 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -177,7 +177,7 @@ var/damage = rand(1, 3) - if(istype(M, /mob/living/carbon/slime/adult)) + if(M.is_adult) damage = rand(10, 40) else damage = rand(5, 35) diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 043b60bae21..9f5640c69b1 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -198,7 +198,7 @@ var/damage = rand(1, 3) - if(istype(src, /mob/living/carbon/slime/adult)) + if(M.is_adult) damage = rand(20, 40) else damage = rand(5, 35) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 85800991241..fca5ffa0655 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -317,6 +317,16 @@ if(armor >= 2) return +/mob/living/carbon/human/proc/implant_loyalty(mob/living/carbon/human/M, override = FALSE) // Won't override by default. + if(!config.use_loyalty_implants && !override) return // Nuh-uh. + + var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(M) + L.imp_in = M + L.implanted = 1 + var/datum/organ/external/affected = M.organs_by_name["head"] + affected.implants += L + L.part = affected + /mob/living/carbon/human/proc/is_loyalty_implanted(mob/living/carbon/human/M) for(var/L in M.contents) if(istype(L, /obj/item/weapon/implant/loyalty)) @@ -336,7 +346,7 @@ var/damage = rand(1, 3) - if(istype(M, /mob/living/carbon/slime/adult)) + if(M.is_adult) damage = rand(10, 35) else damage = rand(5, 25) diff --git a/code/modules/mob/living/carbon/metroid/death.dm b/code/modules/mob/living/carbon/metroid/death.dm index e37f3d23680..b8e004e2016 100644 --- a/code/modules/mob/living/carbon/metroid/death.dm +++ b/code/modules/mob/living/carbon/metroid/death.dm @@ -1,23 +1,28 @@ /mob/living/carbon/slime/death(gibbed) + if(!gibbed) + if(is_adult) + var/mob/living/carbon/slime/M = new /mob/living/carbon/slime(loc) + M.colour = colour + M.rabid = 1 + is_adult = 0 + maxHealth = 150 + revive() + regenerate_icons() + number = rand(1, 1000) + name = "[colour] [is_adult ? "adult" : "baby"] slime ([number])" + return + if(stat == DEAD) return stat = DEAD icon_state = "[colour] baby slime dead" - - if(!gibbed) - if(istype(src, /mob/living/carbon/slime/adult)) - ghostize() - var/mob/living/carbon/slime/M1 = new primarytype(loc) - M1.rabid = 1 - var/mob/living/carbon/slime/M2 = new primarytype(loc) - M2.rabid = 1 - if(src) del(src) - else - for(var/mob/O in viewers(src, null)) - O.show_message("The [name] seizes up and falls limp...", 1) //ded -- Urist + overlays.len = 0 + for(var/mob/O in viewers(src, null)) + O.show_message("The [name] seizes up and falls limp...", 1) //ded -- Urist update_canmove() if(blind) blind.layer = 0 - ticker.mode.check_win() + if(ticker && ticker.mode) + ticker.mode.check_win() return ..(gibbed) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/metroid/emote.dm b/code/modules/mob/living/carbon/metroid/emote.dm index 2f6f0005396..2cbc139f5a1 100644 --- a/code/modules/mob/living/carbon/metroid/emote.dm +++ b/code/modules/mob/living/carbon/metroid/emote.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/slime/emote(var/act,var/m_type=1,var/message = null) +/mob/living/carbon/slime/emote(var/act, var/m_type=1, var/message = null) if (findtext(act, "-", 1, null)) @@ -9,7 +9,7 @@ if(findtext(act,"s",-1) && !findtext(act,"_",-2))//Removes ending s's unless they are prefixed with a '_' act = copytext(act,1,length(act)) - switch(act) + switch(act) //Alphabetical please if ("me") if(silent) return @@ -19,40 +19,51 @@ return if (src.client.handle_spam_prevention(message,MUTE_IC)) return - if (stat) - return - if(!(message)) - return - return custom_emote(m_type, message) - - if ("custom") - return custom_emote(m_type, message) - if("moan") - message = "The [src.name] moans." - m_type = 2 - if("shiver") - message = "The [src.name] shivers." - m_type = 2 - if("sway") - message = "The [src.name] sways around dizzily." - m_type = 1 - if("twitch") - message = "The [src.name] twitches." - m_type = 1 - if("vibrate") - message = "The [src.name] vibrates!" - m_type = 1 - if("light") - message = "The [src.name] lights up for a bit, then stops." - m_type = 1 - if("jiggle") - message = "The [src.name] jiggles!" - m_type = 1 + if (stat) + return + if(!(message)) + return + return custom_emote(m_type, message) if("bounce") message = "The [src.name] bounces in place." m_type = 1 + + if ("custom") + return custom_emote(m_type, message) + + if("jiggle") + message = "The [src.name] jiggles!" + m_type = 1 + + if("light") + message = "The [src.name] lights up for a bit, then stops." + m_type = 1 + + if("moan") + message = "The [src.name] moans." + m_type = 2 + + if("shiver") + message = "The [src.name] shivers." + m_type = 2 + + if("sway") + message = "The [src.name] sways around dizzily." + m_type = 1 + + if("twitch") + message = "The [src.name] twitches." + m_type = 1 + + if("vibrate") + message = "The [src.name] vibrates!" + m_type = 1 + + if ("help") //This is an exception + src << "Help for slime emotes. You can use these emotes with say \"*emote\":\n\nbounce, custom, jiggle, light, moan, shiver, sway, twitch, vibrate" + else - src << text("Invalid Emote: []", act) + src << "\blue Unusable emote '[act]'. Say *help for a list." if ((message && src.stat == 0)) if (m_type & 1) for(var/mob/O in viewers(src, null)) diff --git a/code/modules/mob/living/carbon/metroid/hud.dm b/code/modules/mob/living/carbon/metroid/hud.dm index c7700839067..cfaa7f4f169 100644 --- a/code/modules/mob/living/carbon/metroid/hud.dm +++ b/code/modules/mob/living/carbon/metroid/hud.dm @@ -1,4 +1,2 @@ - /mob/living/carbon/slime/proc/regular_hud_updates() - return - + return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm index 47e9f6c675f..c82d517d590 100644 --- a/code/modules/mob/living/carbon/metroid/life.dm +++ b/code/modules/mob/living/carbon/metroid/life.dm @@ -1,3 +1,10 @@ +/mob/living/carbon/slime + var/AIproc = 0 // determines if the AI loop is activated + var/Atkcool = 0 // attack cooldown + var/Tempstun = 0 // temporary temperature stuns + var/Discipline = 0 // if a slime has been hit with a freeze gun, or wrestled/attacked off a human, they become disciplined and don't attack anymore for a while + var/SStun = 0 // stun variable + /mob/living/carbon/slime/Life() set invisibility = 0 set background = 1 @@ -15,114 +22,80 @@ handle_targets() + if (!ckey) + handle_speech_and_mood() - var/datum/gas_mixture/environment // Added to prevent null location errors-- TLE + var/datum/gas_mixture/environment if(src.loc) environment = loc.return_air() - //Apparently, the person who wrote this code designed it so that //blinded get reset each cycle and then get activated later in the //code. Very ugly. I dont care. Moving this stuff here so its easy //to find it. src.blinded = null - // Basically just deletes any screen objects :< - regular_hud_updates() + regular_hud_updates() // Basically just deletes any screen objects :< - //Handle temperature/pressure differences between body and environment if(environment) - handle_environment(environment) + handle_environment(environment) // Handle temperature/pressure differences between body and environment - //Status updates, death etc. - handle_regular_status_updates() - - - - - -/mob/living/carbon/slime - var/AIproc = 0 // determines if the AI loop is activated - var/Atkcool = 0 // attack cooldown - var/Tempstun = 0 // temporary temperature stuns - var/Discipline = 0 // if a slime has been hit with a freeze gun, or wrestled/attacked off a human, they become disciplined and don't attack anymore for a while - var/SStun = 0 // stun variable + handle_regular_status_updates() // Status updates, death etc. /mob/living/carbon/slime/proc/AIprocess() // the master AI process - //world << "AI proc started." if(AIproc || stat == DEAD || client) return var/hungry = 0 - var/starving = 0 - if(istype(src, /mob/living/carbon/slime/adult)) - switch(nutrition) - if(400 to 1100) hungry = 1 - if(0 to 399) - starving = 1 - else - switch(nutrition) - if(150 to 900) hungry = 1 - if(0 to 149) starving = 1 + if (nutrition < get_starve_nutrition()) + hungry = 2 + else if (nutrition < get_grow_nutrition() && prob(25) || nutrition < get_hunger_nutrition()) + hungry = 1 + AIproc = 1 - //world << "AIproc [AIproc] && stat != 2 [stat] && (attacked > 0 [attacked] || starving [starving] || hungry [hungry] || rabid [rabid] || Victim [Victim] || Target [Target]" - while(AIproc && stat != 2 && (attacked > 0 || starving || hungry || rabid || Victim)) + + while(AIproc && stat != 2 && (attacked || hungry || rabid || Victim)) if(Victim) // can't eat AND have this little process at the same time - //world << "break 1" break if(!Target || client) - //world << "break 2" break - if(Target.health <= -70 || Target.stat == 2) Target = null AIproc = 0 - //world << "break 3" break if(Target) - //world << "[Target] Target Found" for(var/mob/living/carbon/slime/M in view(1,Target)) if(M.Victim == Target) Target = null AIproc = 0 - //world << "break 4" break if(!AIproc) - //world << "break 5" break if(Target in view(1,src)) - if(istype(Target, /mob/living/silicon)) if(!Atkcool) - spawn() - Atkcool = 1 - sleep(15) + Atkcool = 1 + spawn(45) Atkcool = 0 if(Target.Adjacent(src)) Target.attack_slime(src) - //world << "retrun 1" return if(!Target.lying && prob(80)) if(Target.client && Target.health >= 20) if(!Atkcool) - spawn() - Atkcool = 1 - sleep(25) + Atkcool = 1 + spawn(45) Atkcool = 0 if(Target.Adjacent(src)) Target.attack_slime(src) - - if(prob(30)) - step_to(src, Target) - else if(!Atkcool && Target.Adjacent(src)) Feedon(Target) @@ -133,13 +106,13 @@ else if(Target in view(7, src)) - if(Target.Adjacent(src)) + if(!Target.Adjacent(src)) // Bug of the month candidate: slimes were attempting to move to target only if it was directly next to them, which caused them to target things, but not approach them step_to(src, Target) + sleep(5) else Target = null AIproc = 0 - //world << "break 6" break var/sleeptime = movement_delay() @@ -148,7 +121,6 @@ sleep(sleeptime + 2) // this is about as fast as a player slime can go AIproc = 0 - //world << "AI proc ended." /mob/living/carbon/slime/proc/handle_environment(datum/gas_mixture/environment) if(!environment) @@ -166,28 +138,11 @@ else loc_temp = environment.temperature - /* - if((environment.temperature > (T0C + 50)) || (environment.temperature < (T0C + 10))) - var/transfer_coefficient - - transfer_coefficient = 1 - if(wear_mask && (wear_mask.body_parts_covered & HEAD) && (environment.temperature < wear_mask.protective_temperature)) - transfer_coefficient *= wear_mask.heat_transfer_coefficient - - // handle_temperature_damage(HEAD, environment.temperature, environment_heat_capacity*transfer_coefficient) - */ - - if(loc_temp < 310.15) // a cold place bodytemperature += adjust_body_temperature(bodytemperature, loc_temp, 1) else // a hot place bodytemperature += adjust_body_temperature(bodytemperature, loc_temp, 1) - /* - if(stat==2) - bodytemperature += 0.1*(environment.temperature - bodytemperature)*environment_heat_capacity/(environment_heat_capacity + 270000) - - */ //Account for massive pressure differences if(bodytemperature < (T0C + 5)) // start calculating temperature damage etc @@ -207,7 +162,6 @@ return //TODO: DEFERRED - /mob/living/carbon/slime/proc/adjust_body_temperature(current, loc_temp, boost) var/temperature = current var/difference = abs(current-loc_temp) //get difference @@ -229,33 +183,28 @@ if(reagents) reagents.metabolize(src) - src.updatehealth() return //TODO: DEFERRED - /mob/living/carbon/slime/proc/handle_regular_status_updates() - if(istype(src, /mob/living/carbon/slime/adult)) + if(is_adult) health = 200 - (getOxyLoss() + getToxLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) else health = 150 - (getOxyLoss() + getToxLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) - - - if(health < config.health_threshold_dead && stat != 2) death() return else if(src.health < config.health_threshold_crit) - // if(src.health <= 20 && prob(1)) spawn(0) emote("gasp") - //if(!src.rejuv) src.oxyloss++ - if(!src.reagents.has_reagent("inaprovaline")) src.adjustOxyLoss(10) + if(!src.reagents.has_reagent("inaprovaline")) + src.adjustOxyLoss(10) - if(src.stat != DEAD) src.stat = UNCONSCIOUS + if(src.stat != DEAD) + src.stat = UNCONSCIOUS if(prob(30)) adjustOxyLoss(-1) @@ -264,12 +213,9 @@ adjustCloneLoss(-1) adjustBruteLoss(-1) - if (src.stat == DEAD) - src.lying = 1 src.blinded = 1 - else if (src.paralysis || src.stunned || src.weakened || (status_flags && FAKEDEATH)) //Stunned etc. if (src.stunned > 0) @@ -314,89 +260,25 @@ return 1 - /mob/living/carbon/slime/proc/handle_nutrition() - if(prob(20)) - if(istype(src, /mob/living/carbon/slime/adult)) nutrition-=rand(4,6) - else nutrition-=rand(2,3) + if (prob(15)) + nutrition -= 1 + is_adult if(nutrition <= 0) nutrition = 0 if(prob(75)) - adjustToxLoss(rand(0,5)) - else - if(istype(src, /mob/living/carbon/slime/adult)) - if(nutrition >= 1000) - if(prob(40)) amount_grown++ + else if (nutrition >= get_grow_nutrition() && amount_grown < 10) + nutrition -= 20 + amount_grown++ + if(amount_grown >= 10 && !Victim && !Target && !ckey) + if(is_adult) + Reproduce() else - if(nutrition >= 800) - if(prob(40)) amount_grown++ - - if(amount_grown >= 10 && !Victim && !Target) - if(istype(src, /mob/living/carbon/slime/adult)) - if(!client) - for(var/i=1,i<=4,i++) - if(prob(70)) - var/mob/living/carbon/slime/M = new primarytype(loc) - M.powerlevel = round(powerlevel/4) - M.Friends = Friends - M.tame = tame - M.rabid = rabid - M.Discipline = Discipline - if(i != 1) step_away(M,src) - else - var/mutations = pick("one","two","three","four") - switch(mutations) - if("one") - var/mob/living/carbon/slime/M = new mutationone(loc) - M.powerlevel = round(powerlevel/4) - M.Friends = Friends - M.tame = tame - M.rabid = rabid - M.Discipline = Discipline - if(i != 1) step_away(M,src) - if("two") - var/mob/living/carbon/slime/M = new mutationtwo(loc) - M.powerlevel = round(powerlevel/4) - M.Friends = Friends - M.tame = tame - M.rabid = rabid - M.Discipline = Discipline - if(i != 1) step_away(M,src) - if("three") - var/mob/living/carbon/slime/M = new mutationthree(loc) - M.powerlevel = round(powerlevel/4) - M.Friends = Friends - M.tame = tame - M.rabid = rabid - M.Discipline = Discipline - if(i != 1) step_away(M,src) - if("four") - var/mob/living/carbon/slime/M = new mutationfour(loc) - M.powerlevel = round(powerlevel/4) - M.Friends = Friends - M.tame = tame - M.rabid = rabid - M.Discipline = Discipline - if(i != 1) step_away(M,src) - - del(src) - - else - if(!client) - var/mob/living/carbon/slime/adult/A = new adulttype(src.loc) - A.nutrition = nutrition -// A.nutrition += 100 - A.powerlevel = max(0, powerlevel-1) - A.Friends = Friends - A.tame = tame - A.rabid = rabid - del(src) - + Evolve() /mob/living/carbon/slime/proc/handle_targets() if(Tempstun) @@ -408,8 +290,7 @@ if(attacked > 50) attacked = 50 if(attacked > 0) - if(prob(85)) - attacked-- + attacked-- if(Discipline > 0) @@ -419,136 +300,278 @@ if(prob(10)) Discipline-- - if(!client) - if(!canmove) return - // DO AI STUFF HERE - - if(Target) - if(attacked <= 0) - Target = null - if(Victim) return // if it's eating someone already, continue eating! - - if(prob(1)) - emote(pick("bounce","sway","light","vibrate","jiggle")) + if(Target) + --target_patience + if (target_patience <= 0 || SStun || Discipline || attacked) // Tired of chasing or something draws out attention + target_patience = 0 + Target = null if(AIproc && SStun) return - var/hungry = 0 // determines if the slime is hungry - var/starving = 0 // determines if the slime is starving-hungry - if(istype(src, /mob/living/carbon/slime/adult)) // 1200 max nutrition - switch(nutrition) - if(601 to 900) - if(prob(25)) hungry = 1//Ensures they continue eating, but aren't as aggressive at the same time - if(301 to 600) hungry = 1 - if(0 to 300) - starving = 1 - else - switch(nutrition) // 1000 max nutrition - if(501 to 700) - if(prob(25)) hungry = 1 - if(201 to 500) hungry = 1 - if(0 to 200) starving = 1 + if (nutrition < get_starve_nutrition()) + hungry = 2 + else if (nutrition < get_grow_nutrition() && prob(25) || nutrition < get_hunger_nutrition()) + hungry = 1 - - if(starving && !client) // if a slime is starving, it starts losing its friends + if(hungry == 2 && !client) // if a slime is starving, it starts losing its friends if(Friends.len > 0 && prob(1)) var/mob/nofriend = pick(Friends) - Friends -= nofriend + --Friends[nofriend] if(!Target) - var/list/targets = list() + if(will_hunt() && hungry || attacked || rabid) // Only add to the list if we need to + var/list/targets = list() - if(hungry || starving) //Only add to the list if we need to for(var/mob/living/L in view(7,src)) - //Ignore other slimes, dead mobs and simple_animals - if(isslime(L) || L.stat != CONSCIOUS || isanimal(L)) + if(isslime(L) || L.stat == DEAD) // Ignore other slimes and dead mobs continue - if(issilicon(L)) - if(!istype(src, /mob/living/carbon/slime/adult)) //Non-starving diciplined adult slimes wont eat things - if(!starving && Discipline > 0) + if(L in Friends) // No eating friends! + continue + + if(issilicon(L) && (rabid || attacked)) // They can't eat silicons, but they can glomp them in defence + targets += L // Possible target found! + + if(istype(L, /mob/living/carbon/human) && dna) //Ignore slime(wo)men + var/mob/living/carbon/human/H = L + if(H.dna) + if(H.dna.mutantrace == "slime") continue - if(tame) //Tame slimes ignore electronic life + if(!L.canmove) // Only one slime can latch on at a time. + var/notarget = 0 + for(var/mob/living/carbon/slime/M in view(1,L)) + if(M.Victim == L) + notarget = 1 + if(notarget) continue - targets += L //Possible target found! + targets += L // Possible target found! - else if(iscarbon(L)) - - if(istype(L, /mob/living/carbon/human)) //Ignore slime(wo)men - var/mob/living/carbon/human/H = L - if(H.dna) - if(H.dna.mutantrace == "slime") - continue - - if(!istype(src, /mob/living/carbon/slime/adult)) //Non-starving diciplined adult slimes wont eat things - if(!starving && Discipline > 0) - continue - - if(L in Friends) //No eating friends! - continue - - if(tame && ishuman(L)) //Tame slimes dont eat people. - continue - - if(!L.canmove) //Only one slime can latch on at a time. - - var/notarget = 0 - for(var/mob/living/carbon/slime/M in view(1,L)) - if(M.Victim == L) - notarget = 1 - if(notarget) - continue - - targets += L //Possible target found! - - - - if((hungry || starving) && targets.len > 0) - if(!istype(src, /mob/living/carbon/slime/adult)) - if(!starving) + if(targets.len > 0) + if(attacked || rabid || hungry == 2) + Target = targets[1] // I am attacked and am fighting back or so hungry I don't even care + else for(var/mob/living/carbon/C in targets) if(!Discipline && prob(5)) - if(ishuman(C)) - Target = C - break - if(isalienadult(C)) + if(ishuman(C) || isalienadult(C)) Target = C break - if(islarva(C)) + if(islarva(C) || ismonkey(C)) Target = C break - if(ismonkey(C)) - Target = C - break - else - Target = targets[1] - else - Target = targets[1] // closest target - if(targets.len > 0) - if(attacked > 0 || rabid) - Target = targets[1] //closest mob probably attacked it, so override Target and attack the nearest! + if (Target) + target_patience = rand(5,7) + if (is_adult) + target_patience += 3 + if(!Target) // If we have no target, we are wandering or following orders + if (Leader) + if (holding_still) + holding_still = max(holding_still - 1, 0) + else if(canmove && isturf(loc)) + step_to(src, Leader) - if(!Target) - if(hungry || starving) - if(canmove && isturf(loc) && prob(50)) + else if(hungry) + if (holding_still) + holding_still = max(holding_still - hungry, 0) + else if(canmove && isturf(loc) && prob(50)) step(src, pick(cardinal)) else - if(canmove && isturf(loc) && prob(33)) + if (holding_still) + holding_still = max(holding_still - 1, 0) + else if(canmove && isturf(loc) && prob(33)) step(src, pick(cardinal)) - else - if(!AIproc) - spawn() AIprocess() + else if(!AIproc) + spawn() + AIprocess() + +/mob/living/carbon/slime/proc/handle_speech_and_mood() + //Mood starts here + var/newmood = "" + if (rabid || attacked) newmood = "angry" + else if (Target) newmood = "mischevous" + + if (!newmood) + if (Discipline && prob(25)) + newmood = "pout" + else if (prob(1)) + newmood = pick("sad", ":3", "pout") + + if ((mood == "sad" || mood == ":3" || mood == "pout") && !newmood) + if (prob(75)) newmood = mood + + if (newmood != mood) // This is so we don't redraw them every time + mood = newmood + regenerate_icons() + + //Speech understanding starts here + var/to_say + if (speech_buffer.len > 0) + var/who = speech_buffer[1] // Who said it? + var/phrase = speech_buffer[2] // What did they say? + if ((findtext(phrase, num2text(number)) || findtext(phrase, "slimes"))) // Talking to us + if (findtext(phrase, "hello") || findtext(phrase, "hi")) + to_say = pick("Hello...", "Hi...") + else if (findtext(phrase, "follow")) + if (Leader) + if (Leader == who) // Already following him + to_say = pick("Yes...", "Lead...", "Following...") + else if (Friends[who] > Friends[Leader]) // VIVA + Leader = who + to_say = "Yes... I follow [who]..." + else + to_say = "No... I follow [Leader]..." + else + if (Friends[who] > 2) + Leader = who + to_say = "I follow..." + else // Not friendly enough + to_say = pick("No...", "I won't follow...") + else if (findtext(phrase, "stop")) + if (Victim) // We are asked to stop feeding + if (Friends[who] > 4) + Victim = null + Target = null + if (Friends[who] < 7) + --Friends[who] + to_say = "Grrr..." // I'm angry but I do it + else + to_say = "Fine..." + else if (Target) // We are asked to stop chasing + if (Friends[who] > 3) + Target = null + if (Friends[who] < 6) + --Friends[who] + to_say = "Grrr..." // I'm angry but I do it + else + to_say = "Fine..." + else if (Leader) // We are asked to stop following + if (Leader == who) + to_say = "Yes... I'll stay..." + Leader = null + else + if (Friends[who] > Friends[Leader]) + Leader = null + to_say = "Yes... I'll stop..." + else + to_say = "No... I'll keep following..." + else if (findtext(phrase, "stay")) + if (Leader) + if (Leader == who) + holding_still = Friends[who] * 10 + to_say = "Yes... Staying..." + else if (Friends[who] > Friends[Leader]) + holding_still = (Friends[who] - Friends[Leader]) * 10 + to_say = "Yes... Staying..." + else + to_say = "No... I'll keep following..." + else + if (Friends[who] > 2) + holding_still = Friends[who] * 10 + to_say = "Yes... Staying..." + else + to_say = "No... I won't stay..." + speech_buffer = list() + + //Speech starts here + if (to_say) + say (to_say) + else if(prob(1)) + emote(pick("bounce","sway","light","vibrate","jiggle")) + else + var/t = 10 + var/slimes_near = -1 // Don't count myself + var/dead_slimes = 0 + var/friends_near = list() + for (var/mob/living/carbon/M in view(7,src)) + if (isslime(M)) + ++slimes_near + if (M.stat == DEAD) + ++dead_slimes + if (M in Friends) + t += 20 + friends_near += M + if (nutrition < get_hunger_nutrition()) t += 10 + if (nutrition < get_starve_nutrition()) t += 10 + if (prob(2) && prob(t)) + var/phrases = list() + if (Target) phrases += "[Target]... looks tasty..." + if (nutrition < get_starve_nutrition()) + phrases += "So... hungry..." + phrases += "Very... hungry..." + phrases += "Need... food..." + phrases += "Must... eat..." + else if (nutrition < get_hunger_nutrition()) + phrases += "Hungry..." + phrases += "Where is the food?" + phrases += "I want to eat..." + phrases += "Rawr..." + phrases += "Blop..." + phrases += "Blorble..." + if (rabid || attacked) + phrases += "Hrr..." + phrases += "Nhuu..." + phrases += "Unn..." + if (mood == ":3") + phrases += "Purr..." + if (attacked) + phrases += "Grrr..." + if (getToxLoss() > 30) + phrases += "Cold..." + if (getToxLoss() > 60) + phrases += "So... cold..." + phrases += "Very... cold..." + if (getToxLoss() > 90) + phrases += "..." + phrases += "C... c..." + if (Victim) + phrases += "Nom..." + phrases += "Tasty..." + if (powerlevel > 3) phrases += "Bzzz..." + if (powerlevel > 5) phrases += "Zap..." + if (powerlevel > 8) phrases += "Zap... Bzz..." + if (mood == "sad") phrases += "Bored..." + if (slimes_near) phrases += "Brother..." + if (slimes_near > 1) phrases += "Brothers..." + if (dead_slimes) phrases += "What happened?" + if (!slimes_near) + phrases += "Lonely..." + for (var/M in friends_near) + phrases += "[M]... friend..." + if (nutrition < get_hunger_nutrition()) + phrases += "[M]... feed me..." + say (pick(phrases)) + +/mob/living/carbon/slime/proc/get_max_nutrition() // Can't go above it + if (is_adult) return 1200 + else return 1000 + +/mob/living/carbon/slime/proc/get_grow_nutrition() // Above it we grow, below it we can eat + if (is_adult) return 1000 + else return 800 + +/mob/living/carbon/slime/proc/get_hunger_nutrition() // Below it we will always eat + if (is_adult) return 600 + else return 500 + +/mob/living/carbon/slime/proc/get_starve_nutrition() // Below it we will eat before everything else + if (is_adult) return 300 + else return 200 + +/mob/living/carbon/slime/proc/will_hunt(var/hunger = -1) // Check for being stopped from feeding and chasing + if (hunger == 2 || rabid || attacked) return 1 + if (Leader) return 0 + if (holding_still) return 0 + return 1 diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm index 0f4d2051569..67f0b904ed4 100644 --- a/code/modules/mob/living/carbon/metroid/metroid.dm +++ b/code/modules/mob/living/carbon/metroid/metroid.dm @@ -3,7 +3,8 @@ icon = 'icons/mob/slimes.dmi' icon_state = "grey baby slime" pass_flags = PASSTABLE - speak_emote = list("hums") + var/is_adult = 0 + speak_emote = list("telepathically chirps") layer = 5 @@ -12,7 +13,7 @@ gender = NEUTER update_icon = 0 - nutrition = 700 // 1000 = max + nutrition = 700 see_in_dark = 8 update_slimes = 0 @@ -22,67 +23,58 @@ status_flags = CANPARALYSE|CANPUSH var/cores = 1 // the number of /obj/item/slime_extract's the slime has left inside + var/mutation_chance = 30 // Chance of mutating, should be between 25 and 35 - var/powerlevel = 0 // 1-10 controls how much electricity they are generating - var/amount_grown = 0 // controls how long the slime has been overfed, if 10, grows into an adult - // if adult: if 10: reproduces + var/powerlevel = 0 // 1-10 controls how much electricity they are generating + var/amount_grown = 0 // controls how long the slime has been overfed, if 10, grows or reproduces + var/number = 0 // Used to understand when someone is talking to it var/mob/living/Victim = null // the person the slime is currently feeding on var/mob/living/Target = null // AI variable - tells the slime to hunt this down + var/mob/living/Leader = null // AI variable - tells the slime to follow this person - var/attacked = 0 // determines if it's been attacked recently. Can be any number, is a cooloff-ish variable - var/tame = 0 // if set to 1, the slime will not eat humans ever, or attack them - var/rabid = 0 // if set to 1, the slime will attack and eat anything it comes in contact with + var/attacked = 0 // Determines if it's been attacked recently. Can be any number, is a cooloff-ish variable + var/rabid = 0 // If set to 1, the slime will attack and eat anything it comes in contact with + var/holding_still = 0 // AI variable, cooloff-ish for how long it's going to stay in one place + var/target_patience = 0 // AI variable, cooloff-ish for how long it's going to follow its target - var/list/Friends = list() // A list of potential friends - var/list/FriendsWeight = list() // A list containing values respective to Friends. This determines how many times a slime "likes" something. If the slime likes it more than 2 times, it becomes a friend + var/list/Friends = list() // A list of friends; they are not considered targets for feeding; passed down after splitting - // slimes pass on genetic data, so all their offspring have the same "Friends", + var/list/speech_buffer = list() // Last phrase said near it and person who said it + + var/mood = "" // To show its face ///////////TIME FOR SUBSPECIES var/colour = "grey" - var/primarytype = /mob/living/carbon/slime - var/mutationone = /mob/living/carbon/slime/orange - var/mutationtwo = /mob/living/carbon/slime/metal - var/mutationthree = /mob/living/carbon/slime/blue - var/mutationfour = /mob/living/carbon/slime/purple - var/adulttype = /mob/living/carbon/slime/adult var/coretype = /obj/item/slime_extract/grey - -/mob/living/carbon/slime/adult - name = "adult slime" - icon = 'icons/mob/slimes.dmi' - icon_state = "grey adult slime" - speak_emote = list("telepathically chirps") - - health = 200 - gender = NEUTER - - update_icon = 0 - nutrition = 800 // 1200 = max - + var/list/slime_mutation[4] /mob/living/carbon/slime/New() - var/datum/reagents/R = new/datum/reagents(100) - reagents = R - R.my_atom = src - if(name == "baby slime") - name = text("[colour] baby slime ([rand(1, 1000)])") - else - name = text("[colour] adult slime ([rand(1,1000)])") - real_name = name - spawn (1) - regenerate_icons() - src << "\blue Your icons have been generated!" + create_reagents(100) + spawn (0) + number = rand(1, 1000) + name = "[colour] [is_adult ? "adult" : "baby"] slime ([number])" + icon_state = "[colour] [is_adult ? "adult" : "baby"] slime" + real_name = name + slime_mutation = mutation_table(colour) + mutation_chance = rand(25, 35) + var/sanitizedcolour = replacetext(colour, " ", "") + coretype = text2path("/obj/item/slime_extract/[sanitizedcolour]") ..() -/mob/living/carbon/slime/adult/New() - //verbs.Remove(/mob/living/carbon/slime/verb/ventcrawl) +/mob/living/carbon/slime/regenerate_icons() + icon_state = "[colour] [is_adult ? "adult" : "baby"] slime" + overlays.len = 0 + if (mood) + overlays += image('icons/mob/slimes.dmi', icon_state = "aslime-[mood]") ..() /mob/living/carbon/slime/movement_delay() + if (bodytemperature >= 330.23) // 135 F + return -1 // slimes become supercharged at high temperatures + var/tally = 0 var/health_deficiency = (100 - health) @@ -92,115 +84,93 @@ tally += (283.222 - bodytemperature) / 10 * 1.75 if(reagents) - if(reagents.has_reagent("hyperzine")) // hyperzine slows slimes down - tally *= 2 // moves twice as slow + if(reagents.has_reagent("hyperzine")) // Hyperzine slows slimes down + tally *= 2 - if(reagents.has_reagent("frostoil")) // frostoil also makes them move VEEERRYYYYY slow + if(reagents.has_reagent("frostoil")) // Frostoil also makes them move VEEERRYYYYY slow tally *= 5 if(health <= 0) // if damaged, the slime moves twice as slow tally *= 2 - if (bodytemperature >= 330.23) // 135 F - return -1 // slimes become supercharged at high temperatures - - return tally+config.slime_delay - + return tally + config.slime_delay /mob/living/carbon/slime/Bump(atom/movable/AM as mob|obj, yes) - spawn( 0 ) - if ((!( yes ) || now_pushing)) - return - now_pushing = 1 + if ((!(yes) || now_pushing)) + return + now_pushing = 1 - if(isobj(AM)) - if(!client && powerlevel > 0) - var/probab = 10 - switch(powerlevel) - if(1 to 2) probab = 20 - if(3 to 4) probab = 30 - if(5 to 6) probab = 40 - if(7 to 8) probab = 60 - if(9) probab = 70 - if(10) probab = 95 - if(prob(probab)) + if(isobj(AM)) + if(!client && powerlevel > 0) + var/probab = 10 + switch(powerlevel) + if(1 to 2) probab = 20 + if(3 to 4) probab = 30 + if(5 to 6) probab = 40 + if(7 to 8) probab = 60 + if(9) probab = 70 + if(10) probab = 95 + if(prob(probab)) + if(istype(AM, /obj/structure/window) || istype(AM, /obj/structure/grille)) + if(nutrition <= get_hunger_nutrition() && !Atkcool) + if (is_adult || prob(5)) + AM.attack_slime(src) + spawn() + Atkcool = 1 + sleep(45) + Atkcool = 0 + if(ismob(AM)) + var/mob/tmob = AM - if(istype(AM, /obj/structure/window) || istype(AM, /obj/structure/grille)) - if(istype(src, /mob/living/carbon/slime/adult)) - if(nutrition <= 600 && !Atkcool) - AM.attack_slime(src) - spawn() - Atkcool = 1 - sleep(15) - Atkcool = 0 - else - if(nutrition <= 500 && !Atkcool) - if(prob(5)) - AM.attack_slime(src) - spawn() - Atkcool = 1 - sleep(15) - Atkcool = 0 - - if(ismob(AM)) - var/mob/tmob = AM - - if(istype(src, /mob/living/carbon/slime/adult)) - if(istype(tmob, /mob/living/carbon/human)) - if(prob(90)) - now_pushing = 0 - return - else - if(istype(tmob, /mob/living/carbon/human)) + if(is_adult) + if(istype(tmob, /mob/living/carbon/human)) + if(prob(90)) now_pushing = 0 return + else + if(istype(tmob, /mob/living/carbon/human)) + now_pushing = 0 + return - now_pushing = 0 - ..() - if (!( istype(AM, /atom/movable) )) - return - if (!( now_pushing )) - now_pushing = 1 - if (!( AM.anchored )) - var/t = get_dir(src, AM) - if (istype(AM, /obj/structure/window)) - if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST) - for(var/obj/structure/window/win in get_step(AM,t)) - now_pushing = 0 - return - step(AM, t) - now_pushing = null + now_pushing = 0 + ..() + if (!istype(AM, /atom/movable)) return - return + if (!( now_pushing )) + now_pushing = 1 + if (!( AM.anchored )) + var/t = get_dir(src, AM) + if (istype(AM, /obj/structure/window)) + if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST) + for(var/obj/structure/window/win in get_step(AM,t)) + now_pushing = 0 + return + step(AM, t) + now_pushing = null /mob/living/carbon/slime/Process_Spacemove() return 2 - /mob/living/carbon/slime/Stat() ..() statpanel("Status") - if(istype(src, /mob/living/carbon/slime/adult)) + if(is_adult) stat(null, "Health: [round((health / 200) * 100)]%") else stat(null, "Health: [round((health / 150) * 100)]%") - if (client.statpanel == "Status") - if(istype(src,/mob/living/carbon/slime/adult)) - stat(null, "Nutrition: [nutrition]/1200") - if(amount_grown >= 10) + stat(null, "Nutrition: [nutrition]/[get_max_nutrition()]") + if(amount_grown >= 10) + if(is_adult) stat(null, "You can reproduce!") - else - stat(null, "Nutrition: [nutrition]/1000") - if(amount_grown >= 10) + else stat(null, "You can evolve!") stat(null,"Power Level: [powerlevel]") - /mob/living/carbon/slime/adjustFireLoss(amount) ..(-abs(amount)) // Heals them return @@ -210,25 +180,18 @@ ..(Proj) return 0 - /mob/living/carbon/slime/emp_act(severity) powerlevel = 0 // oh no, the power! ..() /mob/living/carbon/slime/ex_act(severity) - - if (stat == 2 && client) - return - - else if (stat == 2 && !client) - del(src) - return + ..() var/b_loss = null var/f_loss = null switch (severity) if (1.0) - b_loss += 500 + del(src) return if (2.0) @@ -260,7 +223,7 @@ //paralysis += 1 - show_message("\red The blob attacks you!") + show_message(" The blob attacks you!") adjustFireLoss(damage) @@ -271,7 +234,6 @@ /mob/living/carbon/slime/u_equip(obj/item/W as obj) return - /mob/living/carbon/slime/attack_ui(slot) return @@ -286,52 +248,48 @@ updatehealth() return - /mob/living/carbon/slime/attack_slime(mob/living/carbon/slime/M as mob) if (!ticker) M << "You cannot attack people before the game has started." return - if(Victim) return // can't attack while eating! + if (Victim) return // can't attack while eating! if (health > -100) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("\red The [M.name] has glomped []!", src), 1) - + visible_message(" The [M.name] has glomped [src]!", \ + " The [M.name] has glomped [src]!") var/damage = rand(1, 3) attacked += 5 - if(istype(src, /mob/living/carbon/slime/adult)) + if(M.is_adult) damage = rand(1, 6) else damage = rand(1, 3) adjustBruteLoss(damage) - updatehealth() - return - /mob/living/carbon/slime/attack_animal(mob/living/simple_animal/M as mob) if(M.melee_damage_upper == 0) M.emote("[M.friendly] [src]") else if(M.attack_sound) playsound(loc, M.attack_sound, 50, 1, 1) - for(var/mob/O in viewers(src, null)) - O.show_message("\red [M] [M.attacktext] [src]!", 1) + visible_message("[M] [M.attacktext] [src]!", \ + "[M] [M.attacktext] [src]!") M.attack_log += text("\[[time_stamp()]\] attacked [src.name] ([src.ckey])") src.attack_log += text("\[[time_stamp()]\] was attacked by [M.name] ([M.ckey])") var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + attacked += 10 adjustBruteLoss(damage) updatehealth() /mob/living/carbon/slime/attack_paw(mob/living/carbon/monkey/M as mob) - if(!(istype(M, /mob/living/carbon/monkey))) return//Fix for aliens receiving double messages when attacking other aliens. + if(!(istype(M, /mob/living/carbon/monkey))) + return // Fix for aliens receiving double messages when attacking other aliens. if (!ticker) M << "You cannot attack people before the game has started." @@ -340,6 +298,7 @@ if (istype(loc, /turf) && istype(loc.loc, /area/start)) M << "No attacking people at spawn, you jackass." return + ..() switch(M.a_intent) @@ -352,9 +311,8 @@ if (health > 0) attacked += 10 //playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("\red [M.name] has attacked [src]!"), 1) + visible_message("[M.name] has attacked [src]!", \ + "[M.name] has attacked [src]!") adjustBruteLoss(rand(1, 3)) updatehealth() return @@ -374,15 +332,11 @@ if(Victim) if(Victim == M) if(prob(60)) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message("\red [M] attempts to wrestle \the [name] off!", 1) + visible_message("[M] attempts to wrestle \the [name] off!") playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) else - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message("\red [M] manages to wrestle \the [name] off!", 1) + visible_message(" [M] manages to wrestle \the [name] off!") playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) if(prob(90) && !client) @@ -402,21 +356,17 @@ else if(prob(30)) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message("\red [M] attempts to wrestle \the [name] off of [Victim]!", 1) + visible_message("[M] attempts to wrestle \the [name] off of [Victim]!") playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) else - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message("\red [M] manages to wrestle \the [name] off of [Victim]!", 1) + visible_message(" [M] manages to wrestle \the [name] off of [Victim]!") playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) if(prob(80) && !client) Discipline++ - if(!istype(src, /mob/living/carbon/slime/adult)) + if(!is_adult) if(Discipline == 1) attacked = 0 @@ -432,18 +382,13 @@ return - - - if(M.gloves && istype(M.gloves,/obj/item/clothing/gloves)) var/obj/item/clothing/gloves/G = M.gloves if(G.cell) if(M.a_intent == "hurt")//Stungloves. Any contact will stun the alien. if(G.cell.charge >= 2500) G.cell.use(2500) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message("\red [src] has been touched with the stun gloves by [M]!", 1, "\red You hear someone fall.", 2) + visible_message("[src] has been touched with the stun gloves by [M]!") return else M << "\red Not enough charge! " @@ -455,21 +400,18 @@ help_shake_act(M) if ("grab") - if (M == src) + if (M == src || anchored) return - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab( M, src ) + var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src) M.put_in_active_hand(G) - grabbed_by += G G.synch() LAssailant = M playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("\red [] has grabbed [] passively!", M, src), 1) + visible_message("[M] has grabbed [src] passively!") else @@ -479,8 +421,9 @@ if (prob(90)) if (HULK in M.mutations) damage += 5 - if(Victim) + if(Victim || Target) Victim = null + Target = null anchored = 0 if(prob(80) && !client) Discipline++ @@ -492,17 +435,14 @@ playsound(loc, "punch", 25, 1, -1) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("\red [] has punched []!", M, src), 1) + visible_message("[M] has punched [src]!", \ + "[M] has punched [src]!") adjustBruteLoss(damage) updatehealth() else playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("\red [] has attempted to punch []!", M, src), 1) + visible_message("[M] has attempted to punch [src]!") return @@ -518,48 +458,41 @@ switch(M.a_intent) if ("help") - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("\blue [M] caresses [src] with its scythe like arm."), 1) + visible_message("[M] caresses [src] with its scythe like arm.") if ("hurt") - if ((prob(95) && health > 0)) + if (prob(95)) attacked += 10 playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) var/damage = rand(15, 30) if (damage >= 25) damage = rand(20, 40) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("\red [] has attacked [name]!", M), 1) + visible_message("[M] has attacked [name]!", \ + "[M] has attacked [name]!") else - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("\red [] has wounded [name]!", M), 1) + visible_message("[M] has wounded [name]!", \ + ")[M] has wounded [name]!") adjustBruteLoss(damage) updatehealth() else playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("\red [] has attempted to lunge at [name]!", M), 1) + visible_message("[M] has attempted to lunge at [name]!", \ + "[M] has attempted to lunge at [name]!") if ("grab") - if (M == src) + if (M == src || anchored) return - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab( M, M, src ) + var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src ) M.put_in_active_hand(G) - grabbed_by += G G.synch() LAssailant = M playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - for(var/mob/O in viewers(src, null)) - O.show_message(text("\red [] has grabbed [name] passively!", M), 1) + visible_message(" [M] has grabbed [name] passively!") if ("disarm") playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) @@ -567,12 +500,12 @@ attacked += 10 if(prob(95)) - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("\red [] has tackled [name]!", M), 1) + visible_message("[M] has tackled [name]!", \ + "[M] has tackled [name]!") - if(Victim) + if(Victim || Target) Victim = null + Target = null anchored = 0 if(prob(80) && !client) Discipline++ @@ -593,68 +526,123 @@ else drop_item() - for(var/mob/O in viewers(src, null)) - if ((O.client && !( O.blinded ))) - O.show_message(text("\red [] has disarmed [name]!", M), 1) + visible_message("[M] has disarmed [name]!", + "[M] has disarmed [name]!") adjustBruteLoss(damage) updatehealth() return +/mob/living/carbon/slime/attackby(obj/item/W, mob/user) + if(W.force > 0) + attacked += 10 + if(prob(25)) + user << "[W] passes right through [src]!" + return + if(Discipline && prob(50)) // wow, buddy, why am I getting attacked?? + Discipline = 0 + if(W.force >= 3) + if(is_adult) + if(prob(5 + round(W.force/2))) + if(Victim || Target) + if(prob(80) && !client) + Discipline++ + + Victim = null + Target = null + anchored = 0 + + spawn() + SStun = 1 + sleep(rand(5,20)) + SStun = 0 + + spawn(0) + if(user) + canmove = 0 + step_away(src, user) + if(prob(25 + W.force)) + sleep(2) + if(user) + step_away(src, user) + canmove = 1 + + else + if(prob(10 + W.force*2)) + if(Victim || Target) + if(prob(80) && !client) + Discipline++ + if(Discipline == 1) + attacked = 0 + spawn() + SStun = 1 + sleep(rand(5,20)) + SStun = 0 + + Victim = null + Target = null + anchored = 0 + + spawn(0) + if(user) + canmove = 0 + step_away(src, user) + if(prob(25 + W.force*4)) + sleep(2) + if(user) + step_away(src, user) + canmove = 1 + ..() /mob/living/carbon/slime/restrained() return 0 - mob/living/carbon/slime/var/co2overloadtime = null mob/living/carbon/slime/var/temperature_resistance = T0C+75 - -/mob/living/carbon/slime/show_inv(mob/user as mob) - - user.set_machine(src) - var/dat = {" -
[name]
-


-
Close -
"} - user << browse(dat, text("window=mob[name];size=340x480")) - onclose(user, "mob[name]") +/mob/living/carbon/slime/show_inv(mob/user) return -/mob/living/carbon/slime/updatehealth() - if(status_flags & GODMODE) - if(istype(src, /mob/living/carbon/slime/adult)) - health = 200 - else - health = 150 - stat = CONSCIOUS - else - // slimes can't suffocate unless they suicide. They are also not harmed by fire - if(istype(src, /mob/living/carbon/slime/adult)) - health = 200 - (getOxyLoss() + getToxLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) - else - health = 150 - (getOxyLoss() + getToxLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) +/mob/living/carbon/slime/toggle_throw_mode() + return +/mob/living/carbon/slime/proc/apply_water() + adjustToxLoss(rand(15,20)) + if (!client) + if (Target) // Like cats + Target = null + ++Discipline + return /obj/item/slime_extract name = "slime extract" desc = "Goo extracted from a slime. Legends claim these to have \"magical powers\"." icon = 'icons/mob/slimes.dmi' icon_state = "grey slime extract" - flags = TABLEPASS force = 1.0 w_class = 1.0 - throwforce = 1.0 + throwforce = 0 throw_speed = 3 throw_range = 6 origin_tech = "biotech=4" var/Uses = 1 // uses before it goes inert + var/enhanced = 0 //has it been enhanced before? + + attackby(obj/item/O as obj, mob/user as mob) + if(istype(O, /obj/item/weapon/slimesteroid2)) + if(enhanced == 1) + user << " This extract has already been enhanced!" + return ..() + if(Uses == 0) + user << " You can't enhance a used extract!" + return ..() + user <<"You apply the enhancer. It now has triple the amount of uses." + Uses = 3 + enhanced = 1 + del(O) /obj/item/slime_extract/New() ..() - var/datum/reagents/R = new/datum/reagents(100) - reagents = R - R.my_atom = src + create_reagents(100) /obj/item/slime_extract/grey name = "grey slime extract" @@ -724,6 +712,26 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 name = "adamantine slime extract" icon_state = "adamantine slime extract" +/obj/item/slime_extract/bluespace + name = "bluespace slime extract" + icon_state = "bluespace slime extract" + +/obj/item/slime_extract/pyrite + name = "pyrite slime extract" + icon_state = "pyrite slime extract" + +/obj/item/slime_extract/cerulean + name = "cerulean slime extract" + icon_state = "cerulean slime extract" + +/obj/item/slime_extract/sepia + name = "sepia slime extract" + icon_state = "sepia slime extract" + +/obj/item/slime_extract/rainbow + name = "rainbow slime extract" + icon_state = "rainbow slime extract" + ////Pet Slime Creation/// /obj/item/weapon/slimepotion @@ -734,28 +742,31 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 attack(mob/living/carbon/slime/M as mob, mob/user as mob) if(!istype(M, /mob/living/carbon/slime))//If target is not a slime. - user << "\red The potion only works on baby slimes!" + user << " The potion only works on baby slimes!" return ..() - if(istype(M, /mob/living/carbon/slime/adult)) //Can't tame adults - user << "\red Only baby slimes can be tamed!" + if(M.is_adult) //Can't tame adults + user << " Only baby slimes can be tamed!" return..() if(M.stat) - user << "\red The slime is dead!" + user << " The slime is dead!" return..() + if(M.mind) + user << " The slime resists!" + return ..() var/mob/living/simple_animal/slime/pet = new /mob/living/simple_animal/slime(M.loc) pet.icon_state = "[M.colour] baby slime" pet.icon_living = "[M.colour] baby slime" pet.icon_dead = "[M.colour] baby slime dead" pet.colour = "[M.colour]" user <<"You feed the slime the potion, removing it's powers and calming it." - del (M) + del(M) var/newname = copytext(sanitize(input(user, "Would you like to give the slime a name?", "Name your new pet", "pet slime") as null|text),1,MAX_NAME_LEN) if (!newname) newname = "pet slime" pet.name = newname pet.real_name = newname - del (src) + del(src) /obj/item/weapon/slimepotion2 name = "advanced docility potion" @@ -763,27 +774,30 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 icon = 'icons/obj/chemical.dmi' icon_state = "bottle19" - attack(mob/living/carbon/slime/adult/M as mob, mob/user as mob) - if(!istype(M, /mob/living/carbon/slime/adult))//If target is not a slime. - user << "\red The potion only works on adult slimes!" + attack(mob/living/carbon/slime/M as mob, mob/user as mob) + if(!istype(M, /mob/living/carbon/slime/))//If target is not a slime. + user << " The potion only works on slimes!" return ..() if(M.stat) - user << "\red The slime is dead!" + user << " The slime is dead!" return..() + if(M.mind) + user << " The slime resists!" + return ..() var/mob/living/simple_animal/adultslime/pet = new /mob/living/simple_animal/adultslime(M.loc) pet.icon_state = "[M.colour] adult slime" pet.icon_living = "[M.colour] adult slime" pet.icon_dead = "[M.colour] baby slime dead" pet.colour = "[M.colour]" user <<"You feed the slime the potion, removing it's powers and calming it." - del (M) + del(M) var/newname = copytext(sanitize(input(user, "Would you like to give the slime a name?", "Name your new pet", "pet slime") as null|text),1,MAX_NAME_LEN) if (!newname) newname = "pet slime" pet.name = newname pet.real_name = newname - del (src) + del(src) /obj/item/weapon/slimesteroid @@ -794,25 +808,45 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 attack(mob/living/carbon/slime/M as mob, mob/user as mob) if(!istype(M, /mob/living/carbon/slime))//If target is not a slime. - user << "\red The steroid only works on baby slimes!" + user << " The steroid only works on baby slimes!" return ..() - if(istype(M, /mob/living/carbon/slime/adult)) //Can't tame adults - user << "\red Only baby slimes can use the steroid!" + if(M.is_adult) //Can't tame adults + user << " Only baby slimes can use the steroid!" return..() if(M.stat) - user << "\red The slime is dead!" + user << " The slime is dead!" return..() if(M.cores == 3) - user <<"\red The slime already has the maximum amount of extract!" + user <<" The slime already has the maximum amount of extract!" return..() user <<"You feed the slime the steroid. It now has triple the amount of extract." M.cores = 3 - del (src) + del(src) +/obj/item/weapon/slimesteroid2 + name = "extract enhancer" + desc = "A potent chemical mix that will give a slime extract three uses." + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle17" + + /*afterattack(obj/target, mob/user , flag) + if(istype(target, /obj/item/slime_extract)) + if(target.enhanced == 1) + user << " This extract has already been enhanced!" + return ..() + if(target.Uses == 0) + user << " You can't enhance a used extract!" + return ..() + user <<"You apply the enhancer. It now has triple the amount of uses." + target.Uses = 3 + target.enahnced = 1 + del(src)*/ ////////Adamantine Golem stuff I dunno where else to put it +// This will eventually be removed. + /obj/item/clothing/under/golem name = "adamantine skin" desc = "a golem's skin" @@ -949,6 +983,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 var/area/A = get_area(src) if(A) G << "Golem rune created in [A.name]." + //////////////////////////////Old shit from metroids/RoRos, and the old cores, would not take much work to re-add them//////////////////////// /* @@ -958,11 +993,10 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 desc = "Goo extracted from a slime. Legends claim these to have \"magical powers\"." icon = 'icons/mob/slimes.dmi' icon_state = "slime extract" - flags = TABLEPASS force = 1.0 w_class = 1.0 throwforce = 1.0 - throw_speed = 3 + throw_speed = 2 throw_range = 6 origin_tech = "biotech=4" var/POWERFLAG = 0 // sshhhhhhh @@ -971,9 +1005,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 /obj/item/slime_core/New() ..() - var/datum/reagents/R = new/datum/reagents(100) - reagents = R - R.my_atom = src + create_reagents(100) POWERFLAG = rand(1,10) Uses = rand(7, 25) //flags |= NOREACT @@ -1017,9 +1049,9 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 /obj/item/weapon/reagent_containers/food/snacks/egg/slime/proc/Hatch() processing_objects.Remove(src) var/turf/T = get_turf(src) - src.visible_message("\blue The [name] pulsates and quivers!") + src.visible_message(" The [name] pulsates and quivers!") spawn(rand(50,100)) - src.visible_message("\blue The [name] bursts open!") + src.visible_message(" The [name] bursts open!") new/mob/living/carbon/slime(T) del(src) @@ -1035,4 +1067,4 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 return else ..() -*/ \ No newline at end of file +*/ diff --git a/code/modules/mob/living/carbon/metroid/powers.dm b/code/modules/mob/living/carbon/metroid/powers.dm index 707fc9cc158..bb7dcbe7bbc 100644 --- a/code/modules/mob/living/carbon/metroid/powers.dm +++ b/code/modules/mob/living/carbon/metroid/powers.dm @@ -11,12 +11,12 @@ var/list/choices = list() for(var/mob/living/C in view(1,src)) - if(C!=src && !istype(C,/mob/living/carbon/slime)) + if(C!=src && !istype(C,/mob/living/carbon/slime) && Adjacent(C)) choices += C - var/mob/living/carbon/M = input(src,"Who do you wish to feed on?") in null|choices + var/mob/living/M = input(src,"Who do you wish to feed on?") in null|choices if(!M) return - if(M in view(1, src)) + if(Adjacent(M)) if(!istype(src, /mob/living/carbon/brain)) if(!istype(M, /mob/living/carbon/slime)) @@ -42,76 +42,72 @@ -/mob/living/carbon/slime/proc/Feedon(var/mob/living/carbon/M) +/mob/living/carbon/slime/proc/Feedon(var/mob/living/M) Victim = M src.loc = M.loc canmove = 0 anchored = 1 var/lastnut = nutrition - //if(M.client) M << "\red You legs become paralyzed!" - if(istype(src, /mob/living/carbon/slime/adult)) + var/fed_succesfully = 0 + if(is_adult) icon_state = "[colour] adult slime eat" else icon_state = "[colour] baby slime eat" while(Victim && M.health > -70 && stat != 2) - // M.canmove = 0 canmove = 0 - if(M in view(1, src)) + if(Adjacent(M)) loc = M.loc if(prob(15) && M.client && istype(M, /mob/living/carbon)) - M << "\red [pick("You can feel your body becoming weak!", \ + M << "[pick("You can feel your body becoming weak!", \ "You feel like you're about to die!", \ "You feel every part of your body screaming in agony!", \ "A low, rolling pain passes through your body!", \ "Your body feels as if it's falling apart!", \ "You feel extremely weak!", \ - "A sharp, deep pain bathes every inch of your body!")]" + "A sharp, deep pain bathes every inch of your body!")]" if(istype(M, /mob/living/carbon)) - Victim.adjustCloneLoss(rand(1,10)) + Victim.adjustCloneLoss(rand(5,6)) Victim.adjustToxLoss(rand(1,2)) if(Victim.health <= 0) Victim.adjustToxLoss(rand(2,4)) - // Heal yourself - adjustToxLoss(-10) - adjustOxyLoss(-10) - adjustBruteLoss(-10) - adjustFireLoss(-10) - adjustCloneLoss(-10) + fed_succesfully = 1 - if(Victim) - for(var/mob/living/carbon/slime/slime in view(1,M)) - if(slime.Victim == M && slime != src) - slime.Feedstop() + else if(istype(M, /mob/living/simple_animal)) + Victim.adjustBruteLoss(is_adult ? rand(7, 15) : rand(4, 12)) + fed_succesfully = 1 - nutrition += rand(10,25) + else + if(prob(25)) + src << "[pick("This subject is incompatable", \ + "This subject does not have a life energy", "This subject is empty", \ + "I am not satisified", "I can not feed from this subject", \ + "I do not feel nourished", "This subject is not food")]..." + + if(fed_succesfully) + //I have no idea why this is not in handle_nutrition() + nutrition += rand(15,30) if(nutrition >= lastnut + 50) if(prob(80)) lastnut = nutrition powerlevel++ if(powerlevel > 10) powerlevel = 10 + adjustToxLoss(-10) - if(istype(src, /mob/living/carbon/slime/adult)) - if(nutrition > 1200) - nutrition = 1200 - else - if(nutrition > 1000) - nutrition = 1000 - - Victim.updatehealth() + //Heal yourself. + adjustOxyLoss(-10) + adjustBruteLoss(-10) + adjustFireLoss(-10) + adjustCloneLoss(-10) + updatehealth() - - else - if(prob(25)) - src << "\red [pick("This subject is incompatable", \ - "This subject does not have a life energy", "This subject is empty", \ - "I am not satisified", "I can not feed from this subject", \ - "I do not feel nourished", "This subject is not food")]..." + if(Victim) + Victim.updatehealth() sleep(rand(15,45)) @@ -119,11 +115,11 @@ break if(stat == 2) - if(!istype(src, /mob/living/carbon/slime/adult)) + if(!is_adult) icon_state = "[colour] baby slime dead" else - if(istype(src, /mob/living/carbon/slime/adult)) + if(is_adult) icon_state = "[colour] adult slime" else icon_state = "[colour] baby slime" @@ -139,7 +135,11 @@ if(Victim.LAssailant && Victim.LAssailant != Victim) if(prob(50)) if(!(Victim.LAssailant in Friends)) - Friends.Add(Victim.LAssailant) // no idea why i was using the |= operator + Friends[Victim.LAssailant] = 1 + //Friends.Add(Victim.LAssailant) // no idea why i was using the |= operator + else + ++Friends[Victim.LAssailant] + if(M.client && istype(src, /mob/living/carbon/human)) if(prob(85)) @@ -173,16 +173,13 @@ if(stat) src << "I must be conscious to do this..." return - if(!istype(src, /mob/living/carbon/slime/adult)) + if(!is_adult) if(amount_grown >= 10) - var/mob/living/carbon/slime/adult/new_slime = new adulttype(loc) - new_slime.nutrition = nutrition - new_slime.powerlevel = max(0, powerlevel-1) - new_slime.a_intent = "hurt" - new_slime.key = key - new_slime.universal_speak = universal_speak - new_slime << "You are now an adult slime." - del(src) + is_adult = 1 + maxHealth = 200 + amount_grown = 0 + regenerate_icons() + name = text("[colour] [is_adult ? "adult" : "baby"] slime ([number])") else src << "I am not ready to evolve yet..." else @@ -190,15 +187,14 @@ /mob/living/carbon/slime/verb/Reproduce() set category = "Slime" - set desc = "This will make you split into four Slimes. NOTE: this will KILL you, but you will be transferred into one of the babies." + set desc = "This will make you split into four Slimes." if(stat) src << "I must be conscious to do this..." return - if(istype(src, /mob/living/carbon/slime/adult)) + if(is_adult) if(amount_grown >= 10) - //if(input("Are you absolutely sure you want to reproduce? Your current body will cease to be, but your consciousness will be transferred into a produced slime.") in list("Yes","No")=="Yes") if(stat) src << "I must be conscious to do this..." return @@ -207,54 +203,30 @@ var/new_nutrition = round(nutrition * 0.9) var/new_powerlevel = round(powerlevel / 4) for(var/i=1,i<=4,i++) - if(prob(80)) - var/mob/living/carbon/slime/M = new primarytype(loc) - M.nutrition = new_nutrition - M.powerlevel = new_powerlevel - if(i != 1) step_away(M,src) - babies += M + var/mob/living/carbon/slime/M = new /mob/living/carbon/slime/(loc) + if(prob(mutation_chance)) + M.colour = slime_mutation[rand(1,4)] else - var/mutations = pick("one","two","three","four") - switch(mutations) - if("one") - var/mob/living/carbon/slime/M = new mutationone(loc) - M.nutrition = new_nutrition - M.powerlevel = new_powerlevel - if(i != 1) step_away(M,src) - babies += M - if("two") - var/mob/living/carbon/slime/M = new mutationtwo(loc) - M.nutrition = new_nutrition - M.powerlevel = new_powerlevel - if(i != 1) step_away(M,src) - babies += M - if("three") - var/mob/living/carbon/slime/M = new mutationthree(loc) - M.nutrition = new_nutrition - M.powerlevel = new_powerlevel - if(i != 1) step_away(M,src) - babies += M - if("four") - var/mob/living/carbon/slime/M = new mutationfour(loc) - M.nutrition = new_nutrition - M.powerlevel = new_powerlevel - if(i != 1) step_away(M,src) - babies += M + M.colour = colour + if(ckey) M.nutrition = new_nutrition //Player slimes are more robust at spliting. Once an oversight of poor copypasta, now a feature! + M.powerlevel = new_powerlevel + if(i != 1) step_away(M,src) + M.Friends = Friends.Copy() + babies += M + feedback_add_details("slime_babies_born","slimebirth_[replacetext(M.colour," ","_")]") var/mob/living/carbon/slime/new_slime = pick(babies) - new_slime.a_intent = "hurt" new_slime.universal_speak = universal_speak - new_slime.key = key - - new_slime << "You are now a slime!" + if(src.mind) + src.mind.transfer_to(new_slime) + else + new_slime.key = src.key del(src) else src << "I am not ready to reproduce yet..." else src << "I am not old enough to reproduce yet..." - - /mob/living/carbon/slime/verb/ventcrawl() set name = "Crawl through Vent" set desc = "Enter an air vent and crawl through the pipe system." diff --git a/code/modules/mob/living/carbon/metroid/say.dm b/code/modules/mob/living/carbon/metroid/say.dm new file mode 100644 index 00000000000..89708595da4 --- /dev/null +++ b/code/modules/mob/living/carbon/metroid/say.dm @@ -0,0 +1,23 @@ +/mob/living/carbon/slime/say(var/message) + var/verb = say_quote(message) + + if(copytext(message,1,2) == "*") + return emote(copytext(message,2)) + + return ..(message, null, verb) + +/mob/living/carbon/slime/say_quote(var/text) + var/ending = copytext(text, length(text)) + + if (ending == "?") + return "telepathically asks"; + else if (ending == "!") + return "telepathically cries"; + + return "telepathically chirps"; + +/mob/living/carbon/slime/say_understands(var/other) + if (istype(other, /mob/living/carbon/slime)) + return 1 + return ..() + diff --git a/code/modules/mob/living/carbon/metroid/subtypes.dm b/code/modules/mob/living/carbon/metroid/subtypes.dm index 4eb4087f6ec..3b7e0107abb 100644 --- a/code/modules/mob/living/carbon/metroid/subtypes.dm +++ b/code/modules/mob/living/carbon/metroid/subtypes.dm @@ -1,372 +1,79 @@ - -////////////////Tier 2 - -/mob/living/carbon/slime/purple - colour = "purple" - icon_state = "purple baby slime" - primarytype = /mob/living/carbon/slime/purple - mutationone = /mob/living/carbon/slime/darkpurple - mutationtwo = /mob/living/carbon/slime/darkblue - mutationthree = /mob/living/carbon/slime/green - mutationfour = /mob/living/carbon/slime/green - adulttype = /mob/living/carbon/slime/adult/purple - coretype = /obj/item/slime_extract/purple - -/mob/living/carbon/slime/adult/purple - icon_state = "purple adult slime" - colour = "purple" - primarytype = /mob/living/carbon/slime/purple - mutationone = /mob/living/carbon/slime/darkpurple - mutationtwo = /mob/living/carbon/slime/darkblue - mutationthree = /mob/living/carbon/slime/green - mutationfour = /mob/living/carbon/slime/green - adulttype = /mob/living/carbon/slime/adult/purple - coretype = /obj/item/slime_extract/purple - -/mob/living/carbon/slime/metal - colour = "metal" - icon_state = "metal baby slime" - primarytype = /mob/living/carbon/slime/metal - mutationone = /mob/living/carbon/slime/silver - mutationtwo = /mob/living/carbon/slime/yellow - mutationthree = /mob/living/carbon/slime/gold - mutationfour = /mob/living/carbon/slime/gold - adulttype = /mob/living/carbon/slime/adult/metal - coretype = /obj/item/slime_extract/metal - -/mob/living/carbon/slime/adult/metal - icon_state = "metal adult slime" - colour = "metal" - primarytype = /mob/living/carbon/slime/metal - mutationone = /mob/living/carbon/slime/silver - mutationtwo = /mob/living/carbon/slime/yellow - mutationthree = /mob/living/carbon/slime/gold - mutationfour = /mob/living/carbon/slime/gold - adulttype = /mob/living/carbon/slime/adult/metal - coretype = /obj/item/slime_extract/metal - -/mob/living/carbon/slime/orange - colour = "orange" - icon_state = "orange baby slime" - primarytype = /mob/living/carbon/slime/orange - mutationone = /mob/living/carbon/slime/red - mutationtwo = /mob/living/carbon/slime/red - mutationthree = /mob/living/carbon/slime/darkpurple - mutationfour = /mob/living/carbon/slime/yellow - adulttype = /mob/living/carbon/slime/adult/orange - coretype = /obj/item/slime_extract/orange - -/mob/living/carbon/slime/adult/orange - colour = "orange" - icon_state = "orange adult slime" - primarytype = /mob/living/carbon/slime/orange - mutationone = /mob/living/carbon/slime/red - mutationtwo = /mob/living/carbon/slime/red - mutationthree = /mob/living/carbon/slime/darkpurple - mutationfour = /mob/living/carbon/slime/yellow - adulttype = /mob/living/carbon/slime/adult/orange - coretype = /obj/item/slime_extract/orange - -/mob/living/carbon/slime/blue - colour = "blue" - icon_state = "blue baby slime" - primarytype = /mob/living/carbon/slime/blue - mutationone = /mob/living/carbon/slime/darkblue - mutationtwo = /mob/living/carbon/slime/pink - mutationthree = /mob/living/carbon/slime/pink - mutationfour = /mob/living/carbon/slime/silver - adulttype = /mob/living/carbon/slime/adult/blue - coretype = /obj/item/slime_extract/blue - -/mob/living/carbon/slime/adult/blue - icon_state = "blue adult slime" - colour = "blue" - primarytype = /mob/living/carbon/slime/blue - mutationone = /mob/living/carbon/slime/darkblue - mutationtwo = /mob/living/carbon/slime/pink - mutationthree = /mob/living/carbon/slime/silver - mutationfour = /mob/living/carbon/slime/pink - adulttype = /mob/living/carbon/slime/adult/blue - coretype = /obj/item/slime_extract/blue - - - - -//Tier 3 - -/mob/living/carbon/slime/darkblue - colour = "dark blue" - icon_state = "dark blue baby slime" - primarytype = /mob/living/carbon/slime/darkblue - mutationone = /mob/living/carbon/slime/purple - mutationtwo = /mob/living/carbon/slime/purple - mutationthree = /mob/living/carbon/slime/blue - mutationfour = /mob/living/carbon/slime/blue - adulttype = /mob/living/carbon/slime/adult/darkblue - coretype = /obj/item/slime_extract/darkblue - -/mob/living/carbon/slime/adult/darkblue - icon_state = "dark blue adult slime" - colour = "dark blue" - primarytype = /mob/living/carbon/slime/darkblue - mutationone = /mob/living/carbon/slime/purple - mutationtwo = /mob/living/carbon/slime/purple - mutationthree = /mob/living/carbon/slime/blue - mutationfour = /mob/living/carbon/slime/blue - adulttype = /mob/living/carbon/slime/adult/darkblue - coretype = /obj/item/slime_extract/darkblue - -/mob/living/carbon/slime/darkpurple - colour = "dark purple" - icon_state = "dark purple baby slime" - primarytype = /mob/living/carbon/slime/darkpurple - mutationone = /mob/living/carbon/slime/purple - mutationtwo = /mob/living/carbon/slime/purple - mutationthree = /mob/living/carbon/slime/orange - mutationfour = /mob/living/carbon/slime/orange - adulttype = /mob/living/carbon/slime/adult/darkpurple - coretype = /obj/item/slime_extract/darkpurple - -/mob/living/carbon/slime/adult/darkpurple - icon_state = "dark purple adult slime" - colour = "dark purple" - primarytype = /mob/living/carbon/slime/darkpurple - mutationone = /mob/living/carbon/slime/purple - mutationtwo = /mob/living/carbon/slime/purple - mutationthree = /mob/living/carbon/slime/orange - mutationfour = /mob/living/carbon/slime/orange - adulttype = /mob/living/carbon/slime/adult/darkpurple - coretype = /obj/item/slime_extract/darkpurple - - -/mob/living/carbon/slime/yellow - icon_state = "yellow baby slime" - colour = "yellow" - primarytype = /mob/living/carbon/slime/yellow - mutationone = /mob/living/carbon/slime/metal - mutationtwo = /mob/living/carbon/slime/metal - mutationthree = /mob/living/carbon/slime/orange - mutationfour = /mob/living/carbon/slime/orange - adulttype = /mob/living/carbon/slime/adult/yellow - coretype = /obj/item/slime_extract/yellow - -/mob/living/carbon/slime/adult/yellow - icon_state = "yellow adult slime" - colour = "yellow" - primarytype = /mob/living/carbon/slime/yellow - mutationone = /mob/living/carbon/slime/metal - mutationtwo = /mob/living/carbon/slime/metal - mutationthree = /mob/living/carbon/slime/orange - mutationfour = /mob/living/carbon/slime/orange - adulttype = /mob/living/carbon/slime/adult/yellow - coretype = /obj/item/slime_extract/yellow - - -/mob/living/carbon/slime/silver - colour = "silver" - icon_state = "silver baby slime" - primarytype = /mob/living/carbon/slime/silver - mutationone = /mob/living/carbon/slime/metal - mutationtwo = /mob/living/carbon/slime/metal - mutationthree = /mob/living/carbon/slime/blue - mutationfour = /mob/living/carbon/slime/blue - adulttype = /mob/living/carbon/slime/adult/silver - coretype = /obj/item/slime_extract/silver - -/mob/living/carbon/slime/adult/silver - icon_state = "silver adult slime" - colour = "silver" - primarytype = /mob/living/carbon/slime/silver - mutationone = /mob/living/carbon/slime/metal - mutationtwo = /mob/living/carbon/slime/metal - mutationthree = /mob/living/carbon/slime/blue - mutationfour = /mob/living/carbon/slime/blue - adulttype = /mob/living/carbon/slime/adult/silver - coretype = /obj/item/slime_extract/silver - - - -/////////////Tier 4 - - -/mob/living/carbon/slime/pink - colour = "pink" - icon_state = "pink baby slime" - primarytype = /mob/living/carbon/slime/pink - mutationone = /mob/living/carbon/slime/pink - mutationtwo = /mob/living/carbon/slime/pink - mutationthree = /mob/living/carbon/slime/lightpink - mutationfour = /mob/living/carbon/slime/lightpink - adulttype = /mob/living/carbon/slime/adult/pink - coretype = /obj/item/slime_extract/pink - -/mob/living/carbon/slime/adult/pink - icon_state = "pink adult slime" - colour = "pink" - primarytype = /mob/living/carbon/slime/pink - mutationone = /mob/living/carbon/slime/pink - mutationtwo = /mob/living/carbon/slime/pink - mutationthree = /mob/living/carbon/slime/lightpink - mutationfour = /mob/living/carbon/slime/lightpink - adulttype = /mob/living/carbon/slime/adult/pink - coretype = /obj/item/slime_extract/pink - -/mob/living/carbon/slime/red - colour = "red" - icon_state = "red baby slime" - primarytype = /mob/living/carbon/slime/red - mutationone = /mob/living/carbon/slime/red - mutationtwo = /mob/living/carbon/slime/red - mutationthree = /mob/living/carbon/slime/oil - mutationfour = /mob/living/carbon/slime/oil - adulttype = /mob/living/carbon/slime/adult/red - coretype = /obj/item/slime_extract/red - -/mob/living/carbon/slime/adult/red - icon_state = "red adult slime" - colour = "red" - primarytype = /mob/living/carbon/slime/red - mutationone = /mob/living/carbon/slime/red - mutationtwo = /mob/living/carbon/slime/red - mutationthree = /mob/living/carbon/slime/oil - mutationfour = /mob/living/carbon/slime/oil - adulttype = /mob/living/carbon/slime/adult/red - coretype = /obj/item/slime_extract/red - -/mob/living/carbon/slime/gold - colour = "gold" - icon_state = "gold baby slime" - primarytype = /mob/living/carbon/slime/gold - mutationone = /mob/living/carbon/slime/gold - mutationtwo = /mob/living/carbon/slime/gold - mutationthree = /mob/living/carbon/slime/adamantine - mutationfour = /mob/living/carbon/slime/adamantine - adulttype = /mob/living/carbon/slime/adult/gold - coretype = /obj/item/slime_extract/gold - -/mob/living/carbon/slime/adult/gold - icon_state = "gold adult slime" - colour = "gold" - primarytype = /mob/living/carbon/slime/gold - mutationone = /mob/living/carbon/slime/gold - mutationtwo = /mob/living/carbon/slime/gold - mutationthree = /mob/living/carbon/slime/adamantine - mutationfour = /mob/living/carbon/slime/adamantine - adulttype = /mob/living/carbon/slime/adult/gold - coretype = /obj/item/slime_extract/gold - -/mob/living/carbon/slime/green - colour = "green" - icon_state = "green baby slime" - primarytype = /mob/living/carbon/slime/green - mutationone = /mob/living/carbon/slime/green - mutationtwo = /mob/living/carbon/slime/green - mutationthree = /mob/living/carbon/slime/black - mutationfour = /mob/living/carbon/slime/black - adulttype = /mob/living/carbon/slime/adult/green - coretype = /obj/item/slime_extract/green - -/mob/living/carbon/slime/adult/green - icon_state = "green adult slime" - colour = "green" - primarytype = /mob/living/carbon/slime/green - mutationone = /mob/living/carbon/slime/green - mutationtwo = /mob/living/carbon/slime/green - mutationthree = /mob/living/carbon/slime/black - mutationfour = /mob/living/carbon/slime/black - adulttype = /mob/living/carbon/slime/adult/green - coretype = /obj/item/slime_extract/green - - - -// Tier 5 - -/mob/living/carbon/slime/lightpink - colour = "light pink" - icon_state = "light pink baby slime" - primarytype = /mob/living/carbon/slime/lightpink - mutationone = /mob/living/carbon/slime/lightpink - mutationtwo = /mob/living/carbon/slime/lightpink - mutationthree = /mob/living/carbon/slime/lightpink - mutationfour = /mob/living/carbon/slime/lightpink - adulttype = /mob/living/carbon/slime/adult/lightpink - coretype = /obj/item/slime_extract/lightpink - -/mob/living/carbon/slime/adult/lightpink - icon_state = "light pink adult slime" - colour = "light pink" - primarytype = /mob/living/carbon/slime/lightpink - mutationone = /mob/living/carbon/slime/lightpink - mutationtwo = /mob/living/carbon/slime/lightpink - mutationthree = /mob/living/carbon/slime/lightpink - mutationfour = /mob/living/carbon/slime/lightpink - adulttype = /mob/living/carbon/slime/adult/lightpink - coretype = /obj/item/slime_extract/lightpink - - -/mob/living/carbon/slime/oil - icon_state = "oil baby slime" - colour = "oil" - primarytype = /mob/living/carbon/slime/oil - mutationone = /mob/living/carbon/slime/oil - mutationtwo = /mob/living/carbon/slime/oil - mutationthree = /mob/living/carbon/slime/oil - mutationfour = /mob/living/carbon/slime/oil - adulttype = /mob/living/carbon/slime/adult/oil - coretype = /obj/item/slime_extract/oil - -/mob/living/carbon/slime/adult/oil - icon_state = "oil adult slime" - colour = "oil" - primarytype = /mob/living/carbon/slime/oil - mutationone = /mob/living/carbon/slime/oil - mutationtwo = /mob/living/carbon/slime/oil - mutationthree = /mob/living/carbon/slime/oil - mutationfour = /mob/living/carbon/slime/oil - adulttype = /mob/living/carbon/slime/adult/oil - coretype = /obj/item/slime_extract/oil - - -/mob/living/carbon/slime/black - icon_state = "black baby slime" - colour = "black" - primarytype = /mob/living/carbon/slime/black - mutationone = /mob/living/carbon/slime/black - mutationtwo = /mob/living/carbon/slime/black - mutationthree = /mob/living/carbon/slime/black - mutationfour = /mob/living/carbon/slime/black - adulttype = /mob/living/carbon/slime/adult/black - coretype = /obj/item/slime_extract/black - -/mob/living/carbon/slime/adult/black - icon_state = "black adult slime" - colour = "black" - primarytype = /mob/living/carbon/slime/black - mutationone = /mob/living/carbon/slime/black - mutationtwo = /mob/living/carbon/slime/black - mutationthree = /mob/living/carbon/slime/black - mutationfour = /mob/living/carbon/slime/black - adulttype = /mob/living/carbon/slime/adult/black - coretype = /obj/item/slime_extract/black - -/mob/living/carbon/slime/adamantine - icon_state = "adamantine baby slime" - colour = "adamantine" - primarytype = /mob/living/carbon/slime/adamantine - mutationone = /mob/living/carbon/slime/adamantine - mutationtwo = /mob/living/carbon/slime/adamantine - mutationthree = /mob/living/carbon/slime/adamantine - mutationfour = /mob/living/carbon/slime/adamantine - adulttype = /mob/living/carbon/slime/adult/adamantine - coretype = /obj/item/slime_extract/adamantine - -/mob/living/carbon/slime/adult/adamantine - icon_state = "adamantine adult slime" - colour = "adamantine" - primarytype = /mob/living/carbon/slime/adamantine - mutationone = /mob/living/carbon/slime/adamantine - mutationtwo = /mob/living/carbon/slime/adamantine - mutationthree = /mob/living/carbon/slime/adamantine - mutationfour = /mob/living/carbon/slime/adamantine - adulttype = /mob/living/carbon/slime/adult/adamantine - coretype = /obj/item/slime_extract/adamantine \ No newline at end of file +proc/mutation_table(var/colour) + var/list/slime_mutation[4] + switch(colour) + //Tier 1 + if("grey") + slime_mutation[1] = "orange" + slime_mutation[2] = "metal" + slime_mutation[3] = "blue" + slime_mutation[4] = "purple" + //Tier 2 + if("purple") + slime_mutation[1] = "dark purple" + slime_mutation[2] = "dark blue" + slime_mutation[3] = "green" + slime_mutation[4] = "green" + if("metal") + slime_mutation[1] = "silver" + slime_mutation[2] = "yellow" + slime_mutation[3] = "gold" + slime_mutation[4] = "gold" + if("orange") + slime_mutation[1] = "dark purple" + slime_mutation[2] = "yellow" + slime_mutation[3] = "red" + slime_mutation[4] = "red" + if("blue") + slime_mutation[1] = "dark blue" + slime_mutation[2] = "silver" + slime_mutation[3] = "pink" + slime_mutation[4] = "pink" + //Tier 3 + if("dark blue") + slime_mutation[1] = "purple" + slime_mutation[2] = "blue" + slime_mutation[3] = "cerulean" + slime_mutation[4] = "cerulean" + if("dark purple") + slime_mutation[1] = "purple" + slime_mutation[2] = "orange" + slime_mutation[3] = "sepia" + slime_mutation[4] = "sepia" + if("yellow") + slime_mutation[1] = "metal" + slime_mutation[2] = "orange" + slime_mutation[3] = "bluespace" + slime_mutation[4] = "bluespace" + if("silver") + slime_mutation[1] = "metal" + slime_mutation[2] = "blue" + slime_mutation[3] = "pyrite" + slime_mutation[4] = "pyrite" + //Tier 4 + if("pink") + slime_mutation[1] = "pink" + slime_mutation[2] = "pink" + slime_mutation[3] = "light pink" + slime_mutation[4] = "light pink" + if("red") + slime_mutation[1] = "red" + slime_mutation[2] = "red" + slime_mutation[3] = "oil" + slime_mutation[4] = "oil" + if("gold") + slime_mutation[1] = "gold" + slime_mutation[2] = "gold" + slime_mutation[3] = "adamantine" + slime_mutation[4] = "adamantine" + if("green") + slime_mutation[1] = "green" + slime_mutation[2] = "green" + slime_mutation[3] = "black" + slime_mutation[4] = "black" + // Tier 5 + else + slime_mutation[1] = colour + slime_mutation[2] = colour + slime_mutation[3] = colour + slime_mutation[4] = colour + return(slime_mutation) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 4eb294c8a49..1892128c291 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -403,7 +403,7 @@ var/damage = rand(1, 3) - if(istype(src, /mob/living/carbon/slime/adult)) + if(M.is_adult) damage = rand(20, 40) else damage = rand(5, 35) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 3344a9e2101..12309900b34 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -83,28 +83,29 @@ var/list/department_radio_keys = list( /mob/living/say(var/message, var/datum/language/speaking = null, var/verb="says", var/alt_name="", var/italics=0, var/message_range = world.view, var/list/used_radios = list(), var/sound/speech_sound, var/sound_vol) var/turf/T = get_turf(src) - + //handle nonverbal and sign languages here if (speaking) if (speaking.flags & NONVERBAL) if (prob(30)) src.custom_emote(1, "[pick(speaking.signlang_verb)].") - + if (speaking.flags & SIGNLANG) say_signlang(message, pick(speaking.signlang_verb), speaking) - return - + return 1 + //speaking into radios if(used_radios.len) italics = 1 message_range = 1 - - for(var/mob/living/M in hearers(5, src)) - if(M != src) - M.show_message("[src] talks into [used_radios.len ? used_radios[1] : "the radio."]") - if (speech_sound) - src.playsound_local(get_turf(src), speech_sound, sound_vol * 0.5, 1) - + + if (!istype(src, /mob/living/silicon/ai)) // Atlantis: Prevents nearby people from hearing the AI when it talks using it's integrated radio. + for(var/mob/living/M in hearers(5, src)) + if(M != src) + M.show_message("[src] talks into [used_radios.len ? used_radios[1] : "the radio."]") + if (speech_sound) + src.playsound_local(get_turf(src), speech_sound, sound_vol * 0.5, 1) + speech_sound = null //so we don't play it twice. //make sure the air can transmit speech @@ -114,13 +115,13 @@ var/list/department_radio_keys = list( if(pressure < SOUND_MINIMUM_PRESSURE) italics = 1 message_range = 1 - + if (speech_sound) sound_vol *= 0.5 //muffle the sound a bit, so it's like we're actually talking through contact var/list/listening = list() var/list/listening_obj = list() - + if(T) var/list/hear = hear(message_range, T) var/list/hearturfs = list() @@ -132,11 +133,18 @@ var/list/department_radio_keys = list( hearturfs += M.locs[1] for(var/obj/O in M.contents) listening_obj |= O + if (isslime(I)) + var/mob/living/carbon/slime/S = I + if (src in S.Friends) + S.speech_buffer = list() + S.speech_buffer.Add(src) + S.speech_buffer.Add(lowertext(html_decode(message))) else if(istype(I, /obj/)) var/obj/O = I hearturfs += O.locs[1] listening_obj |= O + for(var/mob/M in player_list) if(M.stat == DEAD && M.client && (M.client.prefs.toggles & CHAT_GHOSTEARS)) listening |= M @@ -156,8 +164,9 @@ var/list/department_radio_keys = list( spawn(0) if(O) //It's possible that it could be deleted in the meantime. O.hear_talk(src, message, verb, speaking) - + log_say("[name]/[key] : [message]") + return 1 /mob/living/proc/say_signlang(var/message, var/verb="gestures", var/datum/language/language) for (var/mob/O in viewers(src, null)) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 71267a4d45c..a2b375d3be7 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -27,9 +27,11 @@ var/list/ai_list = list() var/viewalerts = 0 var/lawcheck[1] var/ioncheck[1] + var/lawchannel = "Common" // Default channel on which to state laws var/icon/holo_icon//Default is assigned when AI is created. var/obj/item/device/pda/ai/aiPDA = null var/obj/item/device/multitool/aiMulti = null + var/obj/item/device/radio/headset/heads/ai_integrated/aiRadio = null var/custom_sprite = 0 //For our custom sprites //Hud stuff @@ -87,12 +89,14 @@ var/list/ai_list = list() aiPDA.name = name + " (" + aiPDA.ownjob + ")" aiMulti = new(src) + aiRadio = new(src) + aiRadio.myAi = src if (istype(loc, /turf)) verbs.Add(/mob/living/silicon/ai/proc/ai_call_shuttle,/mob/living/silicon/ai/proc/ai_camera_track, \ /mob/living/silicon/ai/proc/ai_camera_list, /mob/living/silicon/ai/proc/ai_network_change, \ /mob/living/silicon/ai/proc/ai_statuschange, /mob/living/silicon/ai/proc/ai_hologram_change, \ - /mob/living/silicon/ai/proc/toggle_camera_light) + /mob/living/silicon/ai/proc/toggle_camera_light, /mob/living/silicon/ai/proc/control_integrateed_radio) //Languages add_language("Sol Common", 0) @@ -386,6 +390,13 @@ var/list/ai_list = list() // src << text ("Switching Law [L]'s report status to []", lawcheck[L+1]) checklaws() + if (href_list["lawr"]) // Selects on which channel to state laws + var/setchannel = input(usr, "Specify channel.", "Channel selection") in list("State","Common","Science","Command","Medical","Engineering","Security","Supply","Binary","Holopad", "Cancel") + if(setchannel == "Cancel") + return + lawchannel = setchannel + checklaws() + //Uncomment this line of code if you are enabling the AI Vocal (VOX) announcements. /* if(href_list["say_word"]) @@ -737,3 +748,12 @@ var/list/ai_list = list() return else return ..() + +/mob/living/silicon/ai/proc/control_integrateed_radio() + set name = "Radio Settings" + set desc = "Allows you to change settings of your radio." + set category = "AI Commands" + + src << "Accessing Subspace Transceiver control..." + if (src.aiRadio) + src.aiRadio.interact(src) diff --git a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm index 7d52fbd7a24..87dc0ec87e7 100644 --- a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm +++ b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm @@ -128,6 +128,9 @@ var/datum/cameranet/cameranet = new() // 0xf = 15 var/turf/position = get_turf(target) + return checkTurfVis(position) + +/datum/cameranet/proc/checkTurfVis(var/turf/position) var/datum/camerachunk/chunk = getCameraChunk(position.x, position.y, position.z) if(chunk) if(chunk.changed) @@ -136,7 +139,6 @@ var/datum/cameranet/cameranet = new() return 1 return 0 - // Debug verb for VVing the chunk that the turf is in. /* /turf/verb/view_chunk() diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index c82fbb7c76d..f89a171e0c8 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -51,6 +51,12 @@ var/obj/machinery/hologram/holopad/H = ai.current H.move_hologram() +/mob/aiEye/proc/getLoc() + + if(ai) + if(!isturf(ai.loc) || !ai.client) + return + return ai.eyeobj.loc // AI MOVEMENT diff --git a/code/modules/mob/living/silicon/ai/laws.dm b/code/modules/mob/living/silicon/ai/laws.dm index 904451aa1dc..9e104ac100a 100755 --- a/code/modules/mob/living/silicon/ai/laws.dm +++ b/code/modules/mob/living/silicon/ai/laws.dm @@ -51,24 +51,33 @@ src.laws_sanity_check() src.laws.clear_supplied_laws() - - - - /mob/living/silicon/ai/proc/statelaws() // -- TLE // set category = "AI Commands" // set name = "State Laws" - src.say("Current Active Laws:") + /var/prefix = "" + switch(lawchannel) + if("Common") prefix = ";" + if("Science") prefix = ":n " + if("Command") prefix = ":c " + if("Medical") prefix = ":m " + if("Engineering") prefix = ":e " + if("Security") prefix = ":s " + if("Supply") prefix = ":u " + if("Binary") prefix = ":b " + if("Holopad") prefix = ":h " + else prefix = "" + + if(src.say("[prefix]Current Active Laws:") != 1) + return + //src.laws_sanity_check() //src.laws.show_laws(world) var/number = 1 sleep(10) - - if (src.laws.zeroth) if (src.lawcheck[1] == "Yes") //This line and the similar lines below make sure you don't state a law unless you want to. --NeoFite - src.say("0. [src.laws.zeroth]") + src.say("[prefix]0. [src.laws.zeroth]") sleep(10) for (var/index = 1, index <= src.laws.ion.len, index++) @@ -76,7 +85,7 @@ var/num = ionnum() if (length(law) > 0) if (src.ioncheck[index] == "Yes") - src.say("[num]. [law]") + src.say("[prefix][num]. [law]") sleep(10) for (var/index = 1, index <= src.laws.inherent.len, index++) @@ -84,22 +93,20 @@ if (length(law) > 0) if (src.lawcheck[index+1] == "Yes") - src.say("[number]. [law]") + src.say("[prefix][number]. [law]") sleep(10) number++ - for (var/index = 1, index <= src.laws.supplied.len, index++) var/law = src.laws.supplied[index] if (length(law) > 0) if(src.lawcheck.len >= number+1) if (src.lawcheck[number+1] == "Yes") - src.say("[number]. [law]") + src.say("[prefix][number]. [law]") sleep(10) number++ - /mob/living/silicon/ai/verb/checklaws() //Gives you a link-driven interface for deciding what laws the statelaws() proc will share with the crew. --NeoFite set category = "AI Commands" set name = "State Laws" @@ -144,6 +151,8 @@ src.lawcheck[number+1] = "Yes" list += {"[src.lawcheck[number+1]] [number]: [law]
"} number++ - list += {"

State Laws"} + + list += {"
Channel: [src.lawchannel]
"} + list += {"State Laws"} usr << browse(list, "window=laws") \ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm index 65118d811c3..f3f1b4e1c80 100644 --- a/code/modules/mob/living/silicon/ai/say.dm +++ b/code/modules/mob/living/silicon/ai/say.dm @@ -1,9 +1,8 @@ /mob/living/silicon/ai/say(var/message) if(parent && istype(parent) && parent.stat != 2) - parent.say(message) - return + return parent.say(message) //If there is a defined "parent" AI, it is actually an AI, and it is alive, anything the AI tries to say is said by the parent instead. - ..(message) + return ..(message) // These Verbs are commented out since we've disabled the AI vocal (VOX) announcements. // If you re-enable them there is 3 lines in ai.dm Topic() that you need to uncomment as well. diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index fba71205fcf..dd3e2e6b3cf 100755 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -1,10 +1,12 @@ /mob/living/silicon/pai name = "pAI" - icon = 'icons/mob/mob.dmi'// - icon_state = "shadow" + icon = 'icons/mob/pai.dmi' + icon_state = "repairbot" robot_talk_understand = 0 emote_type = 2 // pAIs emotes are heard, not seen, so they can be seen through a container (eg. person) + small = 1 + pass_flags = 1 var/network = "SS13" var/obj/machinery/camera/current = null @@ -15,11 +17,22 @@ var/obj/item/device/paicard/card // The card we inhabit var/obj/item/device/radio/radio // Our primary radio - var/speakStatement = "states" - var/speakExclamation = "declares" - var/speakQuery = "queries" - + var/chassis = "repairbot" // A record of your chosen chassis. + var/global/list/possible_chassis = list( + "Drone" = "repairbot", + "Cat" = "cat", + "Mouse" = "mouse", + "Monkey" = "monkey" + ) + var/global/list/possible_say_verbs = list( + "Robotic" = list("states","declares","queries"), + "Natural" = list("says","yells","asks"), + "Beep" = list("beeps","beeps loudly","boops"), + "Chirp" = list("chirps","chirrups","cheeps"), + "Feline" = list("purrs","yowls","meows") + ) + var/obj/item/weapon/pai_cable/cable // The cable we produce and use when door or camera jacking var/master // Name of the one who commands us @@ -56,6 +69,7 @@ /mob/living/silicon/pai/New(var/obj/item/device/paicard) + canmove = 0 src.loc = paicard card = paicard @@ -70,6 +84,10 @@ add_language("Tradeband", 1) add_language("Gutter", 1) + verbs += /mob/living/silicon/pai/proc/fold_out + verbs += /mob/living/silicon/pai/proc/choose_chassis + verbs += /mob/living/silicon/pai/proc/choose_verbs + //PDA pda = new(src) spawn(5) @@ -115,7 +133,9 @@ return 0 /mob/living/silicon/pai/restrained() - return 0 + if(istype(src.loc,/obj/item/device/paicard)) + return 0 + ..() /mob/living/silicon/pai/emp_act(severity) // Silence for 2 minutes @@ -233,7 +253,6 @@ src.reset_view(C) return 1 - /mob/living/silicon/pai/cancel_camera() set category = "pAI Commands" set name = "Cancel Camera View" @@ -277,3 +296,144 @@ card.setPersonality(pai) */ + +// Procs/code after this point is used to convert the stationary pai item into a +// mobile pai mob. This also includes handling some of the general shit that can occur +// to it. Really this deserves its own file, but for the moment it can sit here. ~ Z + +/mob/living/silicon/pai/proc/fold_out() + set category = "pAI Commands" + set name = "Unfold Chassis" + + if(stat || sleeping || paralysis || weakened) + return + + if(src.loc != card) + return + + if(world.time <= last_special) + return + + last_special = world.time + 100 + verbs -= /mob/living/silicon/pai/proc/fold_out + verbs += /mob/living/silicon/pai/proc/fold_up + + var/turf/T = get_turf(src) + if(istype(T)) T.visible_message("[src] folds outwards, expanding into a mobile form.") + canmove = 1 + + //I'm not sure how much of this is necessary, but I would rather avoid issues. + if(istype(card.loc,/mob)) + var/mob/M = card.loc + M.drop_item(card) + + src.client.perspective = EYE_PERSPECTIVE + src.client.eye = src + + src.forceMove(get_turf(card)) + card.forceMove(src) + +/mob/living/silicon/pai/proc/fold_up() + set category = "pAI Commands" + set name = "Collapse Chassis" + + if(stat || sleeping || paralysis || weakened) + return + + if(src.loc == card) + return + + if(world.time <= last_special) + return + + close_up() + +/mob/living/silicon/pai/proc/choose_chassis() + set category = "pAI Commands" + set name = "Choose Chassis" + + var/choice + var/finalized = "No" + while(finalized == "No" && src.client) + + choice = input(usr,"What would you like to use for your mobile chassis icon? This decision can only be made once.") as null|anything in possible_chassis + if(!choice) return + + icon_state = possible_chassis[choice] + finalized = alert("Look at your sprite. Is this what you wish to use?",,"No","Yes") + + chassis = possible_chassis[choice] + verbs -= /mob/living/silicon/pai/proc/choose_chassis + +/mob/living/silicon/pai/proc/choose_verbs() + set category = "pAI Commands" + set name = "Choose Speech Verbs" + + var/choice = input(usr,"What theme would you like to use for your speech verbs? This decision can only be made once.") as null|anything in possible_say_verbs + if(!choice) return + + var/list/sayverbs = possible_say_verbs[choice] + speak_statement = sayverbs[1] + speak_exclamation = sayverbs[(sayverbs.len>1 ? 2 : sayverbs.len)] + speak_query = sayverbs[(sayverbs.len>2 ? 3 : sayverbs.len)] + + verbs -= /mob/living/silicon/pai/proc/choose_verbs + +/mob/living/silicon/pai/lay_down() + set name = "Rest" + set category = "IC" + + if(istype(src.loc,/obj/item/device/paicard)) + resting = 0 + else + resting = !resting + icon_state = resting ? "[chassis]_rest" : "[chassis]" + src << "\blue You are now [resting ? "resting" : "getting up"]" + + canmove = !resting + +//Overriding this will stop a number of headaches down the track. +/mob/living/silicon/pai/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(W.force) + visible_message("[user.name] attacks [src] with [W]!") + src.adjustBruteLoss(W.force) + src.updatehealth() + else + visible_message("[user.name] bonks [src] harmlessly with [W].") + if(stat != 2) close_up() + return + +/mob/living/silicon/pai/attack_hand(mob/user as mob) + visible_message("[user.name] boops [src] on the head.") + close_up() + +//I'm not sure how much of this is necessary, but I would rather avoid issues. +/mob/living/silicon/pai/proc/close_up() + + last_special = world.time + 100 + + verbs -= /mob/living/silicon/pai/proc/fold_up + verbs += /mob/living/silicon/pai/proc/fold_out + + var/turf/T = get_turf(src) + if(istype(T)) T.visible_message("[src] neatly folds inwards, compacting down to a rectangular card.") + + src.stop_pulling() + src.client.perspective = EYE_PERSPECTIVE + src.client.eye = card + + //This seems redundant but not including the forced loc setting messes the behavior up. + src.loc = card + card.loc = get_turf(card) + src.forceMove(card) + card.forceMove(card.loc) + canmove = 0 + +/mob/living/silicon/pai/start_pulling(var/atom/movable/AM) + + if(istype(AM,/obj/item)) + var/obj/item/O = AM + if(O.w_class == 1) + ..() + else + src << "You are too small to pull that." diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index 8ca741724eb..e3028fc08ca 100755 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -528,14 +528,22 @@ dat += {"

Medical Analysis Suite


Host Bioscan

"} - var/mob/living/M = src.loc - if(!istype(M, /mob/living)) - while (!istype(M, /mob/living)) - M = M.loc - if(istype(M, /turf)) - src.temp = "Error: No biological host found.
" - src.subscreen = 0 - return dat + + var/mob/living/M + //If we are not deployed, check the holder of the card. + if(src.loc == card) + M = card.loc + + //If we are deployed or the card is not held, check the first living mob in our turf. + if(!M || !istype(M)) + var/turf/T = get_turf(src) + M = locate(/mob/living/) in T.contents + + if(!M || !istype(M)) + src.temp = "Error: No biological host found.
" + src.subscreen = 0 + return dat + dat += {"Bioscan Results for [M]:
Overall Status: [M.stat > 1 ? "dead" : "[M.health]% healthy"]

diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 8d1823f0c51..273df70dd95 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -897,7 +897,7 @@ var/damage = rand(1, 3) - if(istype(src, /mob/living/carbon/slime/adult)) + if(M.is_adult) damage = rand(20, 40) else damage = rand(5, 35) diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm index ad6a0408ba1..2784a42da3c 100644 --- a/code/modules/mob/living/silicon/say.dm +++ b/code/modules/mob/living/silicon/say.dm @@ -2,11 +2,11 @@ var/ending = copytext(text, length(text)) if (ending == "?") - return "queries" + return speak_query else if (ending == "!") - return "declares" + return speak_exclamation - return "states" + return speak_statement #define IS_AI 1 #define IS_ROBOT 2 @@ -85,14 +85,14 @@ if("department") switch(bot_type) if(IS_AI) - AI.holopad_talk(message) + return AI.holopad_talk(message) if(IS_ROBOT) log_say("[key_name(src)] : [message]") R.radio.talk_into(src,message,message_mode,verb,speaking) if(IS_PAI) log_say("[key_name(src)] : [message]") P.radio.talk_into(src,message,message_mode,verb,speaking) - return + return 1 if("binary") switch(bot_type) @@ -105,32 +105,41 @@ return robot_talk(message) - return + return 1 if("general") switch(bot_type) if(IS_AI) - src << "Yeah, not yet, sorry" + if (AI.aiRadio.disabledAi) + src << "\red System Error - Transceiver Disabled" + return + else + log_say("[key_name(src)] : [message]") + AI.aiRadio.talk_into(src,message,null,verb,speaking) if(IS_ROBOT) log_say("[key_name(src)] : [message]") R.radio.talk_into(src,message,null,verb,speaking) if(IS_PAI) log_say("[key_name(src)] : [message]") P.radio.talk_into(src,message,null,verb,speaking) - return + return 1 else if(message_mode && message_mode in radiochannels) switch(bot_type) if(IS_AI) - src << "You don't have this function yet, I'm working on it" - return + if (AI.aiRadio.disabledAi) + src << "\red System Error - Transceiver Disabled" + return + else + log_say("[key_name(src)] : [message]") + AI.aiRadio.talk_into(src,message,message_mode,verb,speaking) if(IS_ROBOT) log_say("[key_name(src)] : [message]") R.radio.talk_into(src,message,message_mode,verb,speaking) if(IS_PAI) log_say("[key_name(src)] : [message]") P.radio.talk_into(src,message,message_mode,verb,speaking) - return + return 1 return ..(message,speaking,verb) @@ -165,7 +174,8 @@ This is another way of saying that we won't bother dealing with them.*/ else src << "No holopad connected." - return + return + return 1 /mob/living/proc/robot_talk(var/message) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index def23817765..99adb65ed00 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -8,6 +8,11 @@ var/list/hud_list[9] var/list/speech_synthesizer_langs = list() //which languages can be vocalized by the speech synthesizer + //Used in say.dm. + var/speak_statement = "states" + var/speak_exclamation = "declares" + var/speak_query = "queries" + /mob/living/silicon/proc/show_laws() return @@ -141,7 +146,7 @@ /mob/living/silicon/remove_language(var/rem_language) ..(rem_language) - + for (var/datum/language/L in speech_synthesizer_langs) if (L.name == rem_language) speech_synthesizer_langs -= L diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 0360de52b0a..c3c8cde75ed 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -335,7 +335,7 @@ var/damage = rand(1, 3) - if(istype(src, /mob/living/carbon/slime/adult)) + if(M.is_adult) damage = rand(20, 40) else damage = rand(5, 35) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 4c39c683b89..0177034e806 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -721,7 +721,7 @@ note dizziness decrements automatically in the mob's Life() proc. stat(null,"MasterController-ERROR") if(listed_turf && client) - if(get_dist(listed_turf,src) > 1) + if(!TurfAdjacent(listed_turf)) listed_turf = null else statpanel(listed_turf.name, null, listed_turf) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index bb7881f0a04..63bee83e9bc 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -35,11 +35,6 @@ return 1 return 0 -/proc/isslimeadult(A) - if(istype(A, /mob/living/carbon/slime/adult)) - return 1 - return 0 - /proc/isrobot(A) if(istype(A, /mob/living/silicon/robot)) return 1 diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index b063cb7bc13..6dbd8ffe0c7 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -127,6 +127,9 @@ O.verbs += /mob/living/silicon/ai/proc/ai_camera_list O.verbs += /mob/living/silicon/ai/proc/ai_statuschange O.verbs += /mob/living/silicon/ai/proc/ai_roster + O.verbs += /mob/living/silicon/ai/proc/ai_store_location + O.verbs += /mob/living/silicon/ai/proc/ai_goto_location + O.verbs += /mob/living/silicon/ai/proc/ai_remove_location O.job = "AI" @@ -245,11 +248,10 @@ babies += M new_slime = pick(babies) else + new_slime = new /mob/living/carbon/slime(loc) if(adult) - new_slime = new /mob/living/carbon/slime/adult(loc) + new_slime.is_adult = 1 else - new_slime = new /mob/living/carbon/slime(loc) - new_slime.a_intent = "hurt" new_slime.key = key new_slime << "You are now a slime. Skreee!" diff --git a/code/modules/nano/nanoexternal.dm b/code/modules/nano/nanoexternal.dm index 2331debd9be..50e2b706f85 100644 --- a/code/modules/nano/nanoexternal.dm +++ b/code/modules/nano/nanoexternal.dm @@ -32,11 +32,12 @@ * * @param user /mob The mob who is interacting with this ui * @param ui_key string A string key to use for this ui. Allows for multiple unique uis on one obj/mob (defaut value "main") - * @param ui /datum/nanoui This parameter is passed by the nanoui process() proc when updating an open ui + * @param ui /datum/nanoui This parameter is passed by the nanoui process() proc when updating an open ui + * @param force_open boolean Force the UI to (re)open, even if it's already open * * @return nothing */ -/atom/movable/proc/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/atom/movable/proc/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) return // Used by the Nano UI Manager (/datum/nanomanager) to track UIs opened by this mob diff --git a/code/modules/nano/nanomanager.dm b/code/modules/nano/nanomanager.dm index a10965a4489..f3396ecd3f6 100644 --- a/code/modules/nano/nanomanager.dm +++ b/code/modules/nano/nanomanager.dm @@ -39,19 +39,23 @@ * @param ui_key string A string key used for the ui * @param ui /datum/nanoui An existing instance of the ui (can be null) * @param data list The data to be passed to the ui, if it exists + * @param force_open boolean The ui is being forced to (re)open, so close ui if it exists (instead of updating) * * @return /nanoui Returns the found ui, for null if none exists */ -/datum/nanomanager/proc/try_update_ui(var/mob/user, src_object, ui_key, var/datum/nanoui/ui, data) +/datum/nanomanager/proc/try_update_ui(var/mob/user, src_object, ui_key, var/datum/nanoui/ui, data, var/force_open = 0) if (isnull(ui)) // no ui has been passed, so we'll search for one { ui = get_open_ui(user, src_object, ui_key) - } + } if (!isnull(ui)) - // The UI is already open so push the data to it - ui.push_data(data) - return ui - + // The UI is already open + if (!force_open) + ui.push_data(data) + return ui + else + //testing("nanomanager/try_update_ui mob [user.name] [src_object:name] [ui_key] [force_open] - forcing opening of ui") + ui.close() return null /** @@ -66,14 +70,17 @@ /datum/nanomanager/proc/get_open_ui(var/mob/user, src_object, ui_key) var/src_object_key = "\ref[src_object]" if (isnull(open_uis[src_object_key]) || !istype(open_uis[src_object_key], /list)) + //testing("nanomanager/get_open_ui mob [user.name] [src_object:name] [ui_key] - there are no uis open") return null - else if (isnull(open_uis[src_object_key][ui_key]) || !istype(open_uis[src_object_key][ui_key], /list)) + else if (isnull(open_uis[src_object_key][ui_key]) || !istype(open_uis[src_object_key][ui_key], /list)) + //testing("nanomanager/get_open_ui mob [user.name] [src_object:name] [ui_key] - there are no uis open for this object") return null for (var/datum/nanoui/ui in open_uis[src_object_key][ui_key]) if (ui.user == user) return ui - + + //testing("nanomanager/get_open_ui mob [user.name] [src_object:name] [ui_key] - ui not found") return null /** @@ -83,7 +90,7 @@ * * @return int The number of uis updated */ -/datum/nanomanager/proc/update_uis(src_object) +/datum/nanomanager/proc/update_uis(src_object) var/src_object_key = "\ref[src_object]" if (isnull(open_uis[src_object_key]) || !istype(open_uis[src_object_key], /list)) return 0 @@ -128,7 +135,8 @@ */ /datum/nanomanager/proc/close_user_uis(var/mob/user, src_object = null, ui_key = null) if (isnull(user.open_uis) || !istype(user.open_uis, /list) || open_uis.len == 0) - return 0 // has no open uis + //testing("nanomanager/close_user_uis mob [user.name] has no open uis") + return 0 // has no open uis var/close_count = 0 for (var/datum/nanoui/ui in user.open_uis) @@ -136,6 +144,8 @@ ui.close() close_count++ + //testing("nanomanager/close_user_uis mob [user.name] closed [open_uis.len] of [close_count] uis") + return close_count /** @@ -157,6 +167,7 @@ var/list/uis = open_uis[src_object_key][ui.ui_key] uis.Add(ui) processing_uis.Add(ui) + //testing("nanomanager/ui_opened mob [ui.user.name] [ui.src_object:name] [ui.ui_key] - user.open_uis [ui.user.open_uis.len] | uis [uis.len] | processing_uis [processing_uis.len]") /** * Remove a /nanoui ui from the list of open uis @@ -176,7 +187,11 @@ processing_uis.Remove(ui) ui.user.open_uis.Remove(ui) var/list/uis = open_uis[src_object_key][ui.ui_key] - return uis.Remove(ui) + uis.Remove(ui) + + //testing("nanomanager/ui_closed mob [ui.user.name] [ui.src_object:name] [ui.ui_key] - user.open_uis [ui.user.open_uis.len] | uis [uis.len] | processing_uis [processing_uis.len]") + + return 1 /** * This is called on user logout @@ -189,6 +204,7 @@ // /datum/nanomanager/proc/user_logout(var/mob/user) + //testing("nanomanager/user_logout user [user.name]") return close_user_uis(user) /** @@ -201,7 +217,9 @@ * @return nothing */ /datum/nanomanager/proc/user_transferred(var/mob/oldMob, var/mob/newMob) + //testing("nanomanager/user_transferred from mob [oldMob.name] to mob [newMob.name]") if (isnull(oldMob.open_uis) || !istype(oldMob.open_uis, /list) || open_uis.len == 0) + //testing("nanomanager/user_transferred mob [oldMob.name] has no open uis") return 0 // has no open uis if (isnull(newMob.open_uis) || !istype(newMob.open_uis, /list)) diff --git a/code/modules/nano/nanoui.dm b/code/modules/nano/nanoui.dm index 1a3257ed24b..3620053db4d 100644 --- a/code/modules/nano/nanoui.dm +++ b/code/modules/nano/nanoui.dm @@ -36,11 +36,12 @@ nanoui is used to open and update nano browser uis var/list/stylesheets = list() // the list of javascript scripts to use for this ui var/list/scripts = list() - // the list of templates to use with this ui (usually just one) + // a list of templates which can be used with this ui var/templates[0] - // the body content for this ui, do not change unless you know what you're doing - // the #mainTemplate div will contain the compiled "main" template html - var/content = "
" + // the layout key for this ui (this is used on the frontend, leave it as "default" unless you know what you're doing) + var/layout_key = "default" + // the default state to use for this ui (this is used on the frontend, leave it as "default" unless you know what you're doing) + var/state_key = "default" // initial data, containing the full data structure, must be sent to the ui (the data structure cannot be extended later on) var/list/initial_data[0] // set to 1 to update the ui automatically every master_controller tick @@ -57,7 +58,7 @@ nanoui is used to open and update nano browser uis * @param nuser /mob The mob who has opened/owns this ui * @param nsrc_object /obj|/mob The obj or mob which this ui belongs to * @param nui_key string A string key to use for this ui. Allows for multiple unique uis on one src_oject - * @param ntemplate string The name of the template file from /nano/templates (e.g. "my_template.tmpl") + * @param ntemplate string The filename of the template file from /nano/templates (e.g. "my_template.tmpl") * @param ntitle string The title of this ui * @param nwidth int the width of the ui window * @param nheight int the height of the ui window @@ -65,14 +66,14 @@ nanoui is used to open and update nano browser uis * * @return /nanoui new nanoui object */ -/datum/nanoui/New(nuser, nsrc_object, nui_key, ntemplate, ntitle = 0, nwidth = 0, nheight = 0, var/atom/nref = null) +/datum/nanoui/New(nuser, nsrc_object, nui_key, ntemplate_filename, ntitle = 0, nwidth = 0, nheight = 0, var/atom/nref = null) user = nuser src_object = nsrc_object ui_key = nui_key window_id = "[ui_key]\ref[src_object]" - // Add the passed template as the 'main' template, this is required - add_template("main", ntemplate) + // add the passed template filename as the "main" template, this is required + add_template("main", ntemplate_filename) if (ntitle) title = ntitle @@ -86,17 +87,21 @@ nanoui is used to open and update nano browser uis add_common_assets() /** - * Use this proc to add assets which are common to all nano uis + * Use this proc to add assets which are common to (and required by) all nano uis * * @return nothing */ /datum/nanoui/proc/add_common_assets() - add_script("libraries.min.js") // The jQuery library - add_script("nano_config.js") // The NanoConfig JS, this is used to store configuration values. - add_script("nano_update.js") // The NanoUpdate JS, this is used to receive updates and apply them. - add_script("nano_base_helpers.js") // The NanoBaseHelpers JS, this is used to set up template helpers which are common to all templates + add_script("libraries.min.js") // A JS file comprising of jQuery, doT.js and jQuery Timer libraries (compressed together) + add_script("nano_utility.js") // The NanoUtility JS, this is used to store utility functions. + add_script("nano_template.js") // The NanoTemplate JS, this is used to render templates. + add_script("nano_state_manager.js") // The NanoStateManager JS, it handles updates from the server and passes data to the current state + add_script("nano_state.js") // The NanoState JS, this is the base state which all states must inherit from + add_script("nano_state_default.js") // The NanoStateDefault JS, this is the "default" state (used by all UIs by default), which inherits from NanoState + add_script("nano_base_callbacks.js") // The NanoBaseCallbacks JS, this is used to set up (before and after update) callbacks which are common to all UIs + add_script("nano_base_helpers.js") // The NanoBaseHelpers JS, this is used to set up template helpers which are common to all UIs add_stylesheet("shared.css") // this CSS sheet is common to all UIs - add_stylesheet("icons.css") // this CSS sheet is common to all UIs + add_stylesheet("icons.css") // this CSS sheet is common to all UIs /** * Set the current status (also known as visibility) of this ui. @@ -107,12 +112,15 @@ nanoui is used to open and update nano browser uis * @return nothing */ /datum/nanoui/proc/set_status(state, push_update) - if (state != status) - status = state - if (push_update || !status) - push_data(list(), 1) // Update the UI, force the update in case the status is 0 - else - status = state + if (state != status) // Only update if it is different + if (status == STATUS_DISABLED) + status = state + if (push_update) + update() + else + status = state + if (push_update || status == 0) + push_data(null, 1) // Update the UI, force the update in case the status is 0, data is null so that previous data is used /** * Update the status (visibility) of this ui based on the user's status @@ -121,7 +129,7 @@ nanoui is used to open and update nano browser uis * * @return nothing */ -/datum/nanoui/proc/update_status(push_update = 0) +/datum/nanoui/proc/update_status(var/push_update = 0) if (istype(user, /mob/living/silicon/ai)) set_status(STATUS_INTERACTIVE, push_update) // interactive (green visibility) else if (istype(user, /mob/living/silicon/robot)) @@ -169,21 +177,39 @@ nanoui is used to open and update nano browser uis * @return nothing */ /datum/nanoui/proc/set_initial_data(list/data) - initial_data = add_default_data(data) + initial_data = data /** - * Add default data to the data being sent to the ui. + * Get config data to sent to the ui. * - * @param data /list The list of data to be modified - * - * @return /list modified data + * @return /list config data */ -/datum/nanoui/proc/add_default_data(list/data) - data["ui"] = list( +/datum/nanoui/proc/get_config_data() + var/list/config_data = list( + "title" = title, + "srcObject" = list("name" = src_object.name), + "stateKey" = state_key, "status" = status, "user" = list("name" = user.name) ) - return data + return config_data + + /** + * Get data to sent to the ui. + * + * @param data /list The list of general data for this ui (can be null to use previous data sent) + * + * @return /list data to send to the ui + */ +/datum/nanoui/proc/get_send_data(var/list/data) + var/list/config_data = get_config_data() + + var/list/send_data = list("config" = config_data) + + if (!isnull(data)) + send_data["data"] = data + + return send_data /** * Set the browser window options for this ui @@ -197,6 +223,7 @@ nanoui is used to open and update nano browser uis /** * Add a CSS stylesheet to this UI + * These must be added before the UI has been opened, adding after that will have no effect * * @param file string The name of the CSS file from /nano/css (e.g. "my_style.css") * @@ -207,6 +234,7 @@ nanoui is used to open and update nano browser uis /** * Add a JavsScript script to this UI + * These must be added before the UI has been opened, adding after that will have no effect * * @param file string The name of the JavaScript file from /nano/js (e.g. "my_script.js") * @@ -216,30 +244,41 @@ nanoui is used to open and update nano browser uis scripts.Add(file) /** - * Add a template to this UI + * Add a template for this UI * Templates are combined with the data sent to the UI to create the rendered view - * Each template needs a div in ui.content to contain the rendered content. - * The div format is '
' where is replaced with the templater's key. - * All UIs are set up by default to use a 'main' template, so only use this proc if you want to add advanced functionality. + * These must be added before the UI has been opened, adding after that will have no effect * - * @param key string The key name for this template, used to identify the div to render this template into ('
') - * @param file string The name of the template file from /nano/templates (e.g. "my_template.tmpl") + * @param key string The key which is used to reference this template in the frontend + * @param filename string The name of the template file from /nano/templates (e.g. "my_template.tmpl") * * @return nothing */ -/datum/nanoui/proc/add_template(key, file) - templates[key] = file - +/datum/nanoui/proc/add_template(key, filename) + templates[key] = filename + /** - * Set the HTML content of the UI - * This should only really be used to add more template divs (see the add_template() proc) + * Set the layout key for use in the frontend Javascript + * The layout key is the basic layout key for the page + * Two files are loaded on the client based on the layout key varable: + * -> a template in /nano/templates with the filename "layout_.tmpl + * -> a CSS stylesheet in /nano/css with the filename "layout_.css * - * @param ncontent string The new HTML content for this UI + * @param nlayout string The layout key to use * * @return nothing */ -/datum/nanoui/proc/set_content(ncontent) - content = ncontent +/datum/nanoui/proc/set_layout_key(nlayout_key) + layout_key = lowertext(nlayout_key) + + /** + * Set the state key for use in the frontend Javascript + * + * @param nstate_key string The key of the state to use + * + * @return nothing + */ +/datum/nanoui/proc/set_state_key(nstate_key) + state_key = nstate_key /** * Set whether or not to use the "old" on close logic (mainly unset_machine()) @@ -252,11 +291,16 @@ nanoui is used to open and update nano browser uis on_close_logic = state /** - * Return the HTML header content for this UI + * Return the HTML for this UI * - * @return string HTML header content + * @return string HTML for the UI */ -/datum/nanoui/proc/get_header() +/datum/nanoui/proc/get_html() + + // before the UI opens, add the layout files based on the layout key + add_stylesheet("layout_[layout_key].css") + add_template("layout", "layout_[layout_key].tmpl") + var/head_content = "" for (var/filename in scripts) @@ -264,68 +308,46 @@ nanoui is used to open and update nano browser uis for (var/filename in stylesheets) head_content += " " - - var/templatel_data[0] - for (var/key in templates) - templatel_data[key] = templates[key]; - + var/template_data_json = "{}" // An empty JSON object - if (templatel_data.len > 0) - template_data_json = list2json(templatel_data) + if (templates.len > 0) + template_data_json = list2json(templates) - var/initial_data_json = "{}" // An empty JSON object - if (initial_data.len > 0) - initial_data_json = list2json(initial_data) + var/list/send_data = get_send_data(initial_data) + var/initial_data_json = list2json(send_data) var/url_parameters_json = list2json(list("src" = "\ref[src]")) - return {" + return {" + [head_content] - -
- [title ? "
[title]
" : ""] -
-
Initiating...
- "} - - /** - * Return the HTML footer content for this UI - * - * @return string HTML footer content - */ -/datum/nanoui/proc/get_footer() - - return {" -
+ +
+ -"} - - /** - * Return the HTML for this UI - * - * @return string HTML for the UI - */ -/datum/nanoui/proc/get_html() - return {" - [get_header()] - [content] - [get_footer()] + "} /** @@ -333,7 +355,8 @@ nanoui is used to open and update nano browser uis * * @return nothing */ -/datum/nanoui/proc/open() +/datum/nanoui/proc/open() + var/window_size = "" if (width && height) window_size = "size=[width]x[height];" @@ -377,9 +400,10 @@ nanoui is used to open and update nano browser uis if (status == STATUS_DISABLED && !force_push) return // Cannot update UI, no visibility - data = add_default_data(data) + var/list/send_data = get_send_data(data) + //user << list2json(data) // used for debugging - user << output(list2params(list(list2json(data))),"[window_id].browser:receiveUpdateData") + user << output(list2params(list(list2json(send_data))),"[window_id].browser:receiveUpdateData") /** * This Topic() proc is called whenever a user clicks on a link within a Nano UI @@ -410,7 +434,15 @@ nanoui is used to open and update nano browser uis return if (status && (update || is_auto_updating)) - src_object.ui_interact(user, ui_key, src) // Update the UI (update_status() is called whenever a UI is updated) + update() // Update the UI (update_status() is called whenever a UI is updated) else update_status(1) // Not updating UI, so lets check here if status has changed + + /** + * Update the UI + * + * @return nothing + */ +/datum/nanoui/proc/update(var/force_open = 0) + src_object.ui_interact(user, ui_key, src, force_open) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index a1796aa5c31..b76b152284b 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -673,7 +673,7 @@ return // do APC interaction - user.set_machine(src) + //user.set_machine(src) src.interact(user) /obj/machinery/power/apc/attack_alien(mob/living/carbon/alien/humanoid/user) @@ -741,7 +741,7 @@ else return 0 // 0 = User is not a Malf AI -/obj/machinery/power/apc/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/power/apc/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) if(!user) return @@ -752,7 +752,7 @@ "powerCellStatus" = cell ? cell.percent() : null, "chargeMode" = chargemode, "chargingStatus" = charging, - "totalLoad" = lastused_equip + lastused_light + lastused_environ, + "totalLoad" = round(lastused_equip + lastused_light + lastused_environ), "coverLocked" = coverlocked, "siliconUser" = istype(user, /mob/living/silicon), "malfStatus" = get_malf_status(user), @@ -760,7 +760,7 @@ "powerChannels" = list( list( "title" = "Equipment", - "powerLoad" = lastused_equip, + "powerLoad" = round(lastused_equip), "status" = equipment, "topicParams" = list( "auto" = list("eqp" = 3), @@ -770,7 +770,7 @@ ), list( "title" = "Lighting", - "powerLoad" = lastused_light, + "powerLoad" = round(lastused_light), "status" = lighting, "topicParams" = list( "auto" = list("lgt" = 3), @@ -780,7 +780,7 @@ ), list( "title" = "Environment", - "powerLoad" = lastused_environ, + "powerLoad" = round(lastused_environ), "status" = environ, "topicParams" = list( "auto" = list("env" = 3), @@ -792,7 +792,7 @@ ) // update the ui if it exists, returns null if no ui is passed/found - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) // the ui does not exist, so we'll create a new() one // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm @@ -961,14 +961,14 @@ /obj/machinery/power/apc/Topic(href, href_list, var/usingUI = 1) if(!(isrobot(usr) && (href_list["apcwires"] || href_list["pulse"]))) if(!can_use(usr, 1)) - return + return 0 src.add_fingerprint(usr) if (href_list["apcwires"]) var/t1 = text2num(href_list["apcwires"]) if (!( istype(usr.get_active_hand(), /obj/item/weapon/wirecutters) )) usr << "You need wirecutters!" - return + return 0 if (src.isWireColorCut(t1)) src.mend(t1) else @@ -977,10 +977,10 @@ var/t1 = text2num(href_list["pulse"]) if (!istype(usr.get_active_hand(), /obj/item/device/multitool)) usr << "You need a multitool!" - return + return 0 if (src.isWireColorCut(t1)) usr << "You can't pulse a cut wire." - return + return 0 else src.pulse(t1) else if (href_list["lock"]) @@ -1027,11 +1027,11 @@ else if( href_list["close"] ) nanomanager.close_user_uis(usr, src) - return + return 0 else if (href_list["close2"]) usr << browse(null, "window=apcwires") - return + return 0 else if (href_list["overload"]) if( istype(usr, /mob/living/silicon) && !src.aidisabled ) @@ -1042,7 +1042,7 @@ if( istype(malfai, /mob/living/silicon/ai) && !src.aidisabled ) if (malfai.malfhacking) malfai << "You are already hacking an APC." - return + return 0 malfai << "Beginning override of APC systems. This takes some time, and you cannot perform other actions during the process." malfai.malfhack = src malfai.malfhacking = 1 @@ -1071,7 +1071,7 @@ if(usingUI) src.updateDialog() - return + return 1 /*/obj/machinery/power/apc/proc/malfoccupy(var/mob/living/silicon/ai/malf) if(!istype(malf)) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index d0025b02325..a520cf3166c 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -8,6 +8,7 @@ anchored = 0 density = 1 req_access = list(access_engine_equip) + var/id = null use_power = 0 idle_power_usage = 10 @@ -51,9 +52,11 @@ else icon_state = "emitter" - /obj/machinery/power/emitter/attack_hand(mob/user as mob) src.add_fingerprint(user) + activate(user) + +/obj/machinery/power/emitter/proc/activate(mob/user as mob) if(state == 2) if(!powernet) user << "The emitter isn't connected to a wire." diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 9baafac6764..92e7f8240a7 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -250,7 +250,7 @@ building_terminal = 0 -/obj/machinery/power/smes/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/power/smes/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) if(stat & BROKEN) return @@ -269,7 +269,7 @@ data["outputLoad"] = round(loaddemand) // update the ui if it exists, returns null if no ui is passed/found - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) // the ui does not exist, so we'll create a new() one // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 446d7627279..d1216d15590 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -21,6 +21,10 @@ /obj/item/projectile/bullet/weakbullet/beanbag //because beanbags are not bullets name = "beanbag" + damage = 20 + agony = 60 + embed = 0 + sharp = 0 /obj/item/projectile/bullet/weakbullet/rubber name = "rubber bullet" diff --git a/code/modules/projectiles/projectile/change.dm b/code/modules/projectiles/projectile/change.dm index aee7b1f6d82..fc88f6b5190 100644 --- a/code/modules/projectiles/projectile/change.dm +++ b/code/modules/projectiles/projectile/change.dm @@ -49,8 +49,7 @@ Robot.mmi = new /obj/item/device/mmi(new_mob) Robot.mmi.transfer_identity(M) //Does not transfer key/client. if("slime") - if(prob(50)) new_mob = new /mob/living/carbon/slime/adult(M.loc) - else new_mob = new /mob/living/carbon/slime(M.loc) + new_mob = new /mob/living/carbon/slime(M.loc) new_mob.universal_speak = 1 if("xeno") var/alien_caste = pick("Hunter","Sentinel","Drone","Larva") diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 37703e09126..17ff42ed65f 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -104,7 +104,7 @@ * * @return nothing */ -/obj/machinery/chem_dispenser/ui_interact(mob/user, ui_key = "main",var/datum/nanoui/ui = null) +/obj/machinery/chem_dispenser/ui_interact(mob/user, ui_key = "main",var/datum/nanoui/ui = null, var/force_open = 1) if(broken_requirements.len) user << "[src] is broken. [broken_requirements[broken_requirements[1]]]" return @@ -114,8 +114,8 @@ // this is the data which will be sent to the ui var/data[0] data["amount"] = amount - data["energy"] = energy - data["maxEnergy"] = max_energy + data["energy"] = round(energy) + data["maxEnergy"] = round(max_energy) data["isBeakerLoaded"] = beaker ? 1 : 0 data["glass"] = accept_glass var beakerContents[0] @@ -141,7 +141,7 @@ data["chemicals"] = chemicals // update the ui if it exists, returns null if no ui is passed/found - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) // the ui does not exist, so we'll create a new() one // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 145e3fd44c7..4d278053811 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -234,7 +234,7 @@ datum T.wet_overlay = null for(var/mob/living/carbon/slime/M in T) - M.adjustToxLoss(rand(15,20)) + M.apply_water() var/hotspot = (locate(/obj/fire) in T) if(hotspot && !istype(T, /turf/space)) diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index fbc3488d918..2fab5c9400d 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -1230,7 +1230,7 @@ datum O.show_message(text("\red The contents of the slime core harden and begin to emit a warm, bright light."), 1) var/obj/item/device/flashlight/slime/F = new /obj/item/device/flashlight/slime F.loc = get_turf(holder.my_atom) - + //Purple slimepsteroid @@ -1292,7 +1292,6 @@ datum required_other = 1 on_reaction(var/datum/reagents/holder) for(var/mob/living/carbon/slime/slime in viewers(get_turf(holder.my_atom), null)) - slime.tame = 0 slime.rabid = 1 for(var/mob/O in viewers(get_turf(holder.my_atom), null)) O.show_message(text("\red The [slime] is driven into a frenzy!."), 1) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 0c054a3d161..5e6277c8e7c 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -424,6 +424,17 @@ mode = SYRINGE_INJECT update_icon() +/obj/item/weapon/reagent_containers/syringe/drugs + name = "Syringe (drugs)" + desc = "Contains aggressive drugs meant for torture." + New() + ..() + reagents.add_reagent("space_drugs", 5) + reagents.add_reagent("mindbreaker", 5) + reagents.add_reagent("cryptobiolin", 5) + mode = SYRINGE_INJECT + update_icon() + /obj/item/weapon/reagent_containers/ld50_syringe/choral New() ..() diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 38e1ff3bfbb..0280599d5e7 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -736,10 +736,10 @@ // this will be revealed if a T-scanner is used // if visible, use regular icon_state proc/updateicon() - if(invisibility) +/* if(invisibility) //we hide things with alpha now, no need for transparent icons icon_state = "[base_icon_state]f" else - icon_state = base_icon_state + icon_state = base_icon_state*/ return diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 002888e61e5..38fb4994fa3 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -1358,6 +1358,7 @@ datum/design/nanopaste materials = list("$metal" = 7000, "$glass" = 7000) build_path = "/obj/item/stack/nanopaste" +/* // Removal of loyalty implants. Can't think of a way to add this to the config option. datum/design/implant_loyal name = "loyalty implant" desc = "Makes you loyal or such." @@ -1366,6 +1367,7 @@ datum/design/implant_loyal build_type = PROTOLATHE materials = list("$metal" = 7000, "$glass" = 7000) build_path = "/obj/item/weapon/implant/loyalty" +*/ datum/design/implant_chem name = "chemical implant" diff --git a/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm b/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm index bddd133ade9..6a44fbe72d7 100644 --- a/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm +++ b/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm @@ -114,7 +114,7 @@ if(total_purity && fresh_coolant) coolant_purity = total_purity / fresh_coolant -/obj/machinery/radiocarbon_spectrometer/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/radiocarbon_spectrometer/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) if(user.stat) return @@ -146,7 +146,7 @@ data["rad_shield_on"] = rad_shield // update the ui if it exists, returns null if no ui is passed/found - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) // the ui does not exist, so we'll create a new() one // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm diff --git a/code/modules/shuttles/shuttle_console.dm b/code/modules/shuttles/shuttle_console.dm index 5b13f0e66b1..a5b08a0bf77 100644 --- a/code/modules/shuttles/shuttle_console.dm +++ b/code/modules/shuttles/shuttle_console.dm @@ -18,7 +18,7 @@ ui_interact(user) -/obj/machinery/computer/shuttle_control/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/computer/shuttle_control/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/data[0] var/datum/shuttle/ferry/shuttle = shuttle_controller.shuttles[shuttle_tag] if (!istype(shuttle)) @@ -57,7 +57,7 @@ "can_force" = shuttle.can_force(), ) - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "shuttle_control_console.tmpl", "[shuttle_tag] Shuttle Control", 470, 310) diff --git a/code/modules/shuttles/shuttle_emergency.dm b/code/modules/shuttles/shuttle_emergency.dm index a16b98db1e4..98f02232470 100644 --- a/code/modules/shuttles/shuttle_emergency.dm +++ b/code/modules/shuttles/shuttle_emergency.dm @@ -153,7 +153,7 @@ read_authorization(W) ..() -/obj/machinery/computer/shuttle_control/emergency/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/computer/shuttle_control/emergency/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/data[0] var/datum/shuttle/ferry/emergency/shuttle = shuttle_controller.shuttles[shuttle_tag] if (!istype(shuttle)) @@ -211,7 +211,7 @@ "user" = debug? user : null, ) - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "escape_shuttle_control_console.tmpl", "Shuttle Control", 470, 420) diff --git a/code/modules/surgery/braincore.dm b/code/modules/surgery/braincore.dm index b969bca8738..267e989a414 100644 --- a/code/modules/surgery/braincore.dm +++ b/code/modules/surgery/braincore.dm @@ -271,8 +271,7 @@ if(target.cores >= 0) new target.coretype(target.loc) if(target.cores <= 0) - var/origstate = initial(target.icon_state) - target.icon_state = "[origstate] dead-nocore" + target.icon_state = "[target.colour] baby slime dead-nocore" fail_step(mob/living/user, mob/living/carbon/slime/target, target_zone, obj/item/tool) diff --git a/code/modules/virus2/centrifuge.dm b/code/modules/virus2/centrifuge.dm index 0a239f82df6..b36e63ff3a0 100644 --- a/code/modules/virus2/centrifuge.dm +++ b/code/modules/virus2/centrifuge.dm @@ -36,7 +36,7 @@ if(..()) return ui_interact(user) -/obj/machinery/computer/centrifuge/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/computer/centrifuge/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) user.set_machine(src) var/data[0] @@ -70,7 +70,7 @@ data["antibodies"] = A && A.data["antibodies"] ? antigens2string(A.data["antibodies"]) : null data["is_antibody_sample"] = 1 - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "isolation_centrifuge.tmpl", src.name, 400, 500) ui.set_initial_data(data) diff --git a/code/modules/virus2/diseasesplicer.dm b/code/modules/virus2/diseasesplicer.dm index a8ba0af3995..47a4402ab44 100644 --- a/code/modules/virus2/diseasesplicer.dm +++ b/code/modules/virus2/diseasesplicer.dm @@ -43,7 +43,7 @@ if(..()) return ui_interact(user) -/obj/machinery/computer/diseasesplicer/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/computer/diseasesplicer/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) user.set_machine(src) var/data[0] @@ -81,7 +81,7 @@ else data["info"] = "No dish loaded." - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "disease_splicer.tmpl", src.name, 400, 600) ui.set_initial_data(data) diff --git a/code/modules/virus2/dishincubator.dm b/code/modules/virus2/dishincubator.dm index 53f6688ef80..f3f339f8956 100644 --- a/code/modules/virus2/dishincubator.dm +++ b/code/modules/virus2/dishincubator.dm @@ -50,7 +50,7 @@ if(stat & (NOPOWER|BROKEN)) return ui_interact(user) -/obj/machinery/disease2/incubator/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/disease2/incubator/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) user.set_machine(src) var/data[0] @@ -82,7 +82,7 @@ for (var/ID in virus) data["blood_already_infected"] = virus[ID] - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "dish_incubator.tmpl", src.name, 400, 600) ui.set_initial_data(data) diff --git a/code/modules/virus2/isolator.dm b/code/modules/virus2/isolator.dm index e3a68c99495..09f07793c90 100644 --- a/code/modules/virus2/isolator.dm +++ b/code/modules/virus2/isolator.dm @@ -49,7 +49,7 @@ if(stat & (NOPOWER|BROKEN)) return ui_interact(user) -/obj/machinery/disease2/isolator/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) +/obj/machinery/disease2/isolator/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) user.set_machine(src) var/data[0] @@ -100,7 +100,7 @@ "name" = entry.fields["name"], \ "description" = replacetext(desc, "\n", "")) - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) ui = new(user, src, ui_key, "pathogenic_isolator.tmpl", src.name, 400, 500) ui.set_initial_data(data) diff --git a/config/example/game_options.txt b/config/example/game_options.txt index 4fdc0f5f3ff..614e696df2e 100644 --- a/config/example/game_options.txt +++ b/config/example/game_options.txt @@ -56,3 +56,11 @@ MONKEY_DELAY 0 ALIEN_DELAY 0 METROID_DELAY 0 ANIMAL_DELAY 0 + + +### Miscellaneous ### + +## Config options which, of course, don't fit into previous categories. + +## Remove the # in front of this config option to have loyalty implants spawn by default on your server. +#USE_LOYALTY_IMPLANTS diff --git a/html/changelog.html b/html/changelog.html index 0f0f300b5c3..0b05b601276 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -113,6 +113,18 @@ should be listed in the changelog upon commit though. Thanks. --> +
+

20 July 2014

+

PsiOmegaDelta updated:

+
    +
  • AI can now store up to five camera locations and return to them when desired.
  • +
  • AI can now alt+left click turfs in camera view to list and interact with the objects.
  • +
  • AI can now ctrl+click turret controls to enable/disable turrets.
  • +
  • AI can now alt+click turret controls to toggle stun/lethal mode.
  • +
  • AI can now select which channel to state laws on.
  • +
+
+

1 July 2014

Mloc updated:

diff --git a/icons/atmos/connector.dmi b/icons/atmos/connector.dmi new file mode 100644 index 00000000000..cf4ea7a3c84 Binary files /dev/null and b/icons/atmos/connector.dmi differ diff --git a/icons/atmos/digital_tvalve.dmi b/icons/atmos/digital_tvalve.dmi new file mode 100644 index 00000000000..b34d2903b5c Binary files /dev/null and b/icons/atmos/digital_tvalve.dmi differ diff --git a/icons/atmos/digital_valve.dmi b/icons/atmos/digital_valve.dmi new file mode 100644 index 00000000000..b1adc8b6519 Binary files /dev/null and b/icons/atmos/digital_valve.dmi differ diff --git a/icons/atmos/filter.dmi b/icons/atmos/filter.dmi new file mode 100644 index 00000000000..8b5cd81c707 Binary files /dev/null and b/icons/atmos/filter.dmi differ diff --git a/icons/atmos/injector.dmi b/icons/atmos/injector.dmi new file mode 100644 index 00000000000..03a60d2e5d1 Binary files /dev/null and b/icons/atmos/injector.dmi differ diff --git a/icons/atmos/manifold.dmi b/icons/atmos/manifold.dmi new file mode 100644 index 00000000000..f6b24341c9a Binary files /dev/null and b/icons/atmos/manifold.dmi differ diff --git a/icons/atmos/mixer.dmi b/icons/atmos/mixer.dmi new file mode 100644 index 00000000000..0fcb92820f4 Binary files /dev/null and b/icons/atmos/mixer.dmi differ diff --git a/icons/atmos/omni_devices.dmi b/icons/atmos/omni_devices.dmi new file mode 100644 index 00000000000..494ea7e24d4 Binary files /dev/null and b/icons/atmos/omni_devices.dmi differ diff --git a/icons/atmos/passive_gate.dmi b/icons/atmos/passive_gate.dmi new file mode 100644 index 00000000000..df8c3897861 Binary files /dev/null and b/icons/atmos/passive_gate.dmi differ diff --git a/icons/atmos/pipe_underlays.dmi b/icons/atmos/pipe_underlays.dmi new file mode 100644 index 00000000000..0edf79e5008 Binary files /dev/null and b/icons/atmos/pipe_underlays.dmi differ diff --git a/icons/atmos/pipes.dmi b/icons/atmos/pipes.dmi new file mode 100644 index 00000000000..019be28ffd8 Binary files /dev/null and b/icons/atmos/pipes.dmi differ diff --git a/icons/atmos/pump.dmi b/icons/atmos/pump.dmi new file mode 100644 index 00000000000..a1e2d43ca2d Binary files /dev/null and b/icons/atmos/pump.dmi differ diff --git a/icons/atmos/tank.dmi b/icons/atmos/tank.dmi new file mode 100644 index 00000000000..bc2fb0b9014 Binary files /dev/null and b/icons/atmos/tank.dmi differ diff --git a/icons/atmos/tvalve.dmi b/icons/atmos/tvalve.dmi new file mode 100644 index 00000000000..197862b32a0 Binary files /dev/null and b/icons/atmos/tvalve.dmi differ diff --git a/icons/atmos/valve.dmi b/icons/atmos/valve.dmi new file mode 100644 index 00000000000..04351917b65 Binary files /dev/null and b/icons/atmos/valve.dmi differ diff --git a/icons/atmos/vent_pump.dmi b/icons/atmos/vent_pump.dmi new file mode 100644 index 00000000000..8846103633c Binary files /dev/null and b/icons/atmos/vent_pump.dmi differ diff --git a/icons/atmos/vent_scrubber.dmi b/icons/atmos/vent_scrubber.dmi new file mode 100644 index 00000000000..e8e7f916408 Binary files /dev/null and b/icons/atmos/vent_scrubber.dmi differ diff --git a/icons/atmos/volume_pump.dmi b/icons/atmos/volume_pump.dmi new file mode 100644 index 00000000000..9114b6ac31d Binary files /dev/null and b/icons/atmos/volume_pump.dmi differ diff --git a/icons/mob/pai.dmi b/icons/mob/pai.dmi new file mode 100644 index 00000000000..f286389bffc Binary files /dev/null and b/icons/mob/pai.dmi differ diff --git a/icons/obj/atmospherics/omni_devices.dmi b/icons/obj/atmospherics/omni_devices.dmi index 642e90a0f1d..398fd5f159e 100644 Binary files a/icons/obj/atmospherics/omni_devices.dmi and b/icons/obj/atmospherics/omni_devices.dmi differ diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index 5cd2c7788d1..5cb0b79e876 100644 Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ diff --git a/icons/obj/pipe-item.dmi b/icons/obj/pipe-item.dmi index b364598bee0..b8e9bee2804 100644 Binary files a/icons/obj/pipe-item.dmi and b/icons/obj/pipe-item.dmi differ diff --git a/icons/obj/radio.dmi b/icons/obj/radio.dmi index 9c4830d273c..b0b250a18b8 100644 Binary files a/icons/obj/radio.dmi and b/icons/obj/radio.dmi differ diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index adf0e6207ee..65980dd52a3 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ diff --git a/icons/turf/shuttle.dmi b/icons/turf/shuttle.dmi index c3f58bf3ec2..430ca0b1fc2 100644 Binary files a/icons/turf/shuttle.dmi and b/icons/turf/shuttle.dmi differ diff --git a/icons/turf/walls.dmi b/icons/turf/walls.dmi index 3f83a6a057b..db3ac690da3 100644 Binary files a/icons/turf/walls.dmi and b/icons/turf/walls.dmi differ diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index f2dd8de20e5..80e91eb11c2 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -32,7 +32,7 @@ "aaF" = (/obj/structure/table,/obj/item/device/radio/intercom{desc = "Talk... listen through this."; name = "Station Intercom (Brig Radio)"; pixel_x = -28; pixel_y = 0; wires = 7},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/item/device/taperecorder{pixel_x = -4; pixel_y = 2},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/security/prison) "aaG" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{icon_state = "yellowsiding"; dir = 4},/area/security/prison) "aaH" = (/obj/machinery/washing_machine,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/security/prison) -"aaI" = (/obj/machinery/newscaster{pixel_y = -28},/obj/structure/table,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/weapon/book/manual/security_space_law{pixel_x = -3; pixel_y = 5},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) +"aaI" = (/obj/machinery/newscaster{pixel_y = -28},/obj/structure/table,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/weapon/book/manual/security_space_law{pixel_x = -3; pixel_y = 5},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "aaJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/security/prison) "aaK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/structure/table,/obj/item/weapon/dice,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "aaL" = (/obj/structure/stool,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) @@ -46,13 +46,13 @@ "aaT" = (/obj/machinery/light/small{dir = 1},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/prison) "aaU" = (/obj/item/weapon/soap/nanotrasen,/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/structure/sink{pixel_y = 30},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/prison) "aaV" = (/turf/simulated/wall,/area/security/range) -"aaW" = (/obj/machinery/vending/snack,/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) -"aaX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) -"aaY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) -"aaZ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) -"aba" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) +"aaW" = (/obj/machinery/vending/snack,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) +"aaX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) +"aaY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) +"aaZ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) +"aba" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "abb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) -"abc" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1443; icon_state = "on"; id = "air_in"; on = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) +"abc" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1443; icon_state = "map_injector"; id = "air_in"; on = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "abd" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "abe" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "abf" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Washroom"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/prison) @@ -113,7 +113,7 @@ "aci" = (/obj/machinery/door_timer/cell_1{dir = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/light/small{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/security/brig) "acj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/light_switch{pixel_x = -25; pixel_y = 0},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "ack" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) -"acl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/carpet,/area/security/detectives_office) +"acl" = (/obj/machinery/flasher{id = "Cell 3"; pixel_x = 0; pixel_y = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/brig) "acm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/security/detectives_office) "acn" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) "aco" = (/turf/simulated/floor{icon_state = "dark"},/area/security/warden) @@ -134,7 +134,7 @@ "acD" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "red"; dir = 6},/area/security/prison) "acE" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"; req_access_txt = "3"},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) "acF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/camera{c_tag = "Brig East"; dir = 8},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) -"acG" = (/obj/structure/rack,/obj/item/weapon/storage/lockbox/loyalty,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) +"acG" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/hallway/primary/fore) "acH" = (/obj/machinery/flasher/portable,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) "acI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/security/brig) "acJ" = (/obj/structure/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/window/brigdoor{dir = 8; name = "Weapons locker"; req_access_txt = "3"},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) @@ -206,7 +206,7 @@ "adX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/brig) "adY" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/security{name = "Interrogation Observervation"; req_access = null; req_access_txt = "63"},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "adZ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/ld50_syringe/choral{pixel_x = 3; pixel_y = 10},/obj/item/weapon/reagent_containers/ld50_syringe/choral{pixel_x = 3; pixel_y = 6},/obj/item/weapon/reagent_containers/ld50_syringe/choral{pixel_x = 3; pixel_y = 2},/obj/machinery/light/small,/turf/simulated/floor{icon_state = "dark"},/area/security/prison) -"aea" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/security/prison) +"aea" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Internal Affairs Desk"; req_access_txt = "38"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/folder/white,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "lawyer_blast"; name = "Privacy Shutters"; opacity = 0},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/lawoffice) "aeb" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass_security{id_tag = "BrigEast"; name = "Brig"; req_access_txt = "63"},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/brig) "aec" = (/obj/machinery/door/window/brigdoor{dir = 1; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/lobby) "aed" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_security{id_tag = "BrigWest"; layer = 2.8; name = "Brig"; req_access_txt = "63"},/turf/simulated/floor,/area/security/brig) @@ -349,7 +349,7 @@ "agK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/hallway/primary/fore) "agL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/security/hos) "agM" = (/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/security/hos) -"agN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) +"agN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) "agO" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/security_space_law,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/security/hos) "agP" = (/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "agQ" = (/obj/structure/filingcabinet,/turf/simulated/floor{icon_state = "dark"},/area/security/hos) @@ -413,13 +413,13 @@ "ahW" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/simulated/floor,/area/security/brig) "ahX" = (/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/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/plating,/area/security/brig) "ahY" = (/turf/simulated/floor,/area/security/brig) -"ahZ" = (/obj/structure/table/reinforced{icon_state = "table_vertical"},/obj/machinery/door/window/brigdoor{dir = 4; name = "Warden's Desk"; req_access_txt = "3"},/obj/machinery/door/window/westright{name = "Reception Door"; req_access = null; req_access_txt = "0"},/turf/simulated/floor/plating,/area/security/warden) +"ahZ" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aia" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "aib" = (/obj/machinery/door_timer/cell_4{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/security/brig) "aic" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "aid" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_3_hatch"; locked = 1; name = "Escape Pod Hatch"; req_access_txt = "13"},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod3/station) "aie" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) -"aif" = (/obj/structure/table/reinforced{icon_state = "table_vertical"},/obj/machinery/door/window/brigdoor{dir = 8; name = "Warden's Desk"; req_access_txt = "3"},/obj/machinery/door/window/eastleft,/turf/simulated/floor/plating,/area/security/warden) +"aif" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) "aig" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor,/area/security/main) "aih" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/table,/obj/item/weapon/folder/red{pixel_y = 3},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/security/detectives_office) "aii" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/structure/table/reinforced,/obj/item/stack/medical/bruise_pack{pixel_x = 10; pixel_y = 2},/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment{pixel_y = 4},/turf/simulated/floor{icon_state = "redfull"; dir = 9},/area/security/main) @@ -554,7 +554,7 @@ "akH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor,/area/security/main) "akI" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/security/warden) "akJ" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"akK" = (/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 = "Internal Affairs Desk"; req_access_txt = "38"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/folder/white,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "lawyer_blast"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/lawoffice) +"akK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "akL" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "akM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/decal/cleanable/blood/oil/streak,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "akN" = (/obj/structure/sign/pods{pixel_x = 32; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/security/brig) @@ -655,7 +655,7 @@ "amE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/table,/obj/item/weapon/book/manual/security_space_law{pixel_x = -3; pixel_y = 5},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/lobby) "amF" = (/turf/simulated/floor,/area/security/lobby) "amG" = (/obj/structure/stool/bed,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/brig) -"amH" = (/obj/machinery/flasher{id = "Cell 3"; pixel_x = 0; pixel_y = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/brig) +"amH" = (/obj/effect/decal/cleanable/cobweb2,/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "amI" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prison) "amJ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor{icon_state = "bar"},/area/security/main) "amK" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) @@ -707,7 +707,7 @@ "anE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/main) "anF" = (/obj/machinery/computer/prisoner,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "anG" = (/obj/machinery/door/airlock/external{icon_state = "door_locked"; locked = 1; name = "External Construction Airlock"; req_access_txt = "32"},/obj/item/tape/engineering{icon_state = "engineering_door"; layer = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"anH" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/table/woodentable,/obj/item/ashtray/bronze,/obj/item/weapon/storage/fancy/cigarettes/dromedaryco,/turf/simulated/floor/carpet,/area/security/detectives_office) +"anH" = (/obj/machinery/door_timer/cell_2{pixel_x = 32},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/security/brig) "anI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/security/detectives_office) "anJ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plating,/area/security/prison) "anK" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/tactical) @@ -744,13 +744,13 @@ "aop" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/brig) "aoq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/brig) "aor" = (/obj/structure/table,/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/brig) -"aos" = (/obj/machinery/door_timer/cell_2{pixel_x = 32},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/security/brig) +"aos" = (/obj/machinery/flasher{id = "Cell 4"; pixel_x = 0; pixel_y = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/brig) "aot" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/main) "aou" = (/obj/machinery/flasher{id = "Cell 2"; pass_flags = 0; pixel_x = 0; pixel_y = -26},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/security/brig) "aov" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/security/lobby) "aow" = (/obj/machinery/alarm{dir = 1; pixel_y = -24},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/security/lobby) "aox" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/security/lobby) -"aoy" = (/obj/machinery/flasher{id = "Cell 4"; pixel_x = 0; pixel_y = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/brig) +"aoy" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/table/woodentable,/obj/item/ashtray/bronze,/obj/item/weapon/storage/fancy/cigarettes/dromedaryco,/turf/simulated/floor/carpet,/area/security/detectives_office) "aoz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/security/brig) "aoA" = (/obj/structure/table,/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) "aoB" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/security/brig) @@ -797,7 +797,7 @@ "apq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/stool,/turf/simulated/floor{icon_state = "redfull"; dir = 9},/area/security/main) "apr" = (/obj/structure/rack{dir = 1},/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/sunglasses,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aps" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"apt" = (/obj/effect/decal/cleanable/cobweb2,/obj/machinery/atmospherics/portables_connector{layer = 2},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"apt" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/security/prison) "apu" = (/turf/space,/area/maintenance/fsmaint) "apv" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/auxstarboard) "apw" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/auxport) @@ -854,11 +854,11 @@ "aqv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/security/prison) "aqw" = (/obj/machinery/deployable/barrier,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden) "aqx" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01},/area/maintenance/fpmaint) -"aqy" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) -"aqz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) +"aqy" = (/obj/structure/rack,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) +"aqz" = (/obj/machinery/door/window/brigdoor{dir = 8; name = "Warden's Desk"; req_access_txt = "3"},/obj/machinery/door/window/eastleft,/obj/structure/table/reinforced,/turf/simulated/floor/plating,/area/security/warden) "aqA" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aqB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) -"aqC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) +"aqC" = (/obj/machinery/door/window/brigdoor{dir = 4; name = "Warden's Desk"; req_access_txt = "3"},/obj/machinery/door/window/westright{name = "Reception Door"; req_access = null; req_access_txt = "0"},/obj/structure/table/reinforced,/turf/simulated/floor/plating,/area/security/warden) "aqD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/closet/bombclosetsecurity,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden) "aqE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/security/main) "aqF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/security/main) @@ -892,7 +892,7 @@ "arh" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) "ari" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor,/area/hallway/primary/fore) "arj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/main) -"ark" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/maintenance/fsmaint) +"ark" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "arl" = (/obj/structure/closet/secure_closet/security,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/item/device/flashlight/flare,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/main) "arm" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor,/area/maintenance/fsmaint) "arn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/security/hos) @@ -922,7 +922,7 @@ "arL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "dark"},/area/security/tactical) "arM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/hallway/primary/port) "arN" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/weapon/folder/red,/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/main) -"arO" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/wall,/area/maintenance/fsmaint) +"arO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/hallway/primary/port) "arP" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "arQ" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/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/security/main) "arR" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/door/airlock/glass_command{name = "Head of Security"; req_access_txt = "58"},/obj/structure/disposalpipe/sortjunction/flipped{dir = 2; sortType = "HoS Office"; name = "HoS Office"},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) @@ -947,7 +947,7 @@ "ask" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "asl" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape_pod1/station) "asm" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape_pod2/station) -"asn" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor,/area/storage/tools) +"asn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/hallway/secondary/entry) "aso" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape_pod2/station) "asp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "asq" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/hos,/turf/simulated/floor/wood,/area/crew_quarters/sleep/sec) @@ -962,7 +962,7 @@ "asz" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass{name = "Hydroponics Pasture"; req_access_txt = "28"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "asA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hydroponics/garden) "asB" = (/obj/machinery/light/small,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/library) -"asC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/maintenance/port) +"asC" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/hallway/primary/port) "asD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/hallway/secondary/entry) "asE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/storage/art) "asF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor,/area/hallway/primary/port) @@ -997,7 +997,7 @@ "ati" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/port) "atj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/port) "atk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/port) -"atl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/port) +"atl" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/table/reinforced,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "bar"; name = "Bar Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "atm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor,/area/hallway/primary/port) "atn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/stool/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar) "ato" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) @@ -1011,7 +1011,7 @@ "atw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/port) "atx" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "aty" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/vending/hydronutrients,/turf/simulated/floor{icon_state = "green"; dir = 8},/area/hydroponics) -"atz" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/port) +"atz" = (/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) "atA" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal,/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/crew_quarters/fitness) "atB" = (/obj/structure/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/window/brigdoor{dir = 1; name = "Weapons locker"; req_access_txt = "3"},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/warden) "atC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hydroponics) @@ -1100,7 +1100,7 @@ "avh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/fitness) "avi" = (/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/fitness) "avj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor,/area/hydroponics/garden) -"avk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/maintenance/fpmaint2) +"avk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/port) "avl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/chapel/office) "avm" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp{pixel_y = 10},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) "avn" = (/obj/structure/table/woodentable,/obj/item/weapon/pen,/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) @@ -1216,9 +1216,9 @@ "axt" = (/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) "axu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/port) "axv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/primary/port) -"axw" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore) +"axw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera{c_tag = "Port Hallway"; dir = 1},/turf/simulated/floor,/area/hallway/primary/port) "axx" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/fore) -"axy" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) +"axy" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -30},/turf/simulated/floor,/area/hallway/secondary/entry) "axz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/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) "axA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/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) "axB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/hydroponics,/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) @@ -1293,7 +1293,7 @@ "ayS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "ayT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/primary/port) "ayU" = (/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) -"ayV" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"ayV" = (/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor,/area/storage/tools) "ayW" = (/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) "ayX" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/hallway/secondary/entry) "ayY" = (/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/hallway/secondary/entry) @@ -1402,14 +1402,14 @@ "aAX" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/gateway) "aAY" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/rag,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "bar"; name = "Bar Shutters"; opacity = 0},/obj/structure/noticeboard{pixel_x = -30; pixel_y = 0},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aAZ" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes{pixel_y = 2},/turf/simulated/floor,/area/gateway) -"aBa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass{name = "Hydroponics Pasture"; req_access_txt = "35"},/turf/simulated/floor,/area/hydroponics) +"aBa" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/camera{c_tag = "Auxiliary Tool Storage"; dir = 2},/turf/simulated/floor,/area/storage/tools) "aBb" = (/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,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/ai_monitored/storage/eva) "aBc" = (/obj/machinery/light{dir = 4},/obj/structure/closet/l3closet/scientist,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor,/area/gateway) "aBd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/ai_monitored/storage/eva) "aBe" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/gateway) "aBf" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/clothing/shoes/magboots,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/ai_monitored/storage/eva) "aBg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/security/vacantoffice) -"aBh" = (/obj/machinery/power/terminal{dir = 8},/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_y = 29},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"aBh" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/crew_quarters/locker) "aBi" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aBj" = (/obj/structure/urinal{pixel_y = 32},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aBk" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/item/weapon/bikehorn/rubberducky,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) @@ -1420,7 +1420,7 @@ "aBp" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood,/area/library) "aBq" = (/turf/simulated/wall,/area/maintenance/fsmaint2) "aBr" = (/obj/structure/table/woodentable,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood,/area/library) -"aBs" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 1; icon_state = "bluecorner"},/area/hallway/primary/central) +"aBs" = (/obj/machinery/light{dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor,/area/hallway/primary/central) "aBt" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/port) "aBu" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "aBv" = (/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) @@ -1581,7 +1581,7 @@ "aEu" = (/turf/simulated/wall,/area/chapel/office) "aEv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor/wood,/area/security/vacantoffice) "aEw" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/wood,/area/security/vacantoffice) -"aEx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/wall,/area/security/vacantoffice) +"aEx" = (/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/simulated/floor,/area/hallway/primary/central) "aEy" = (/turf/simulated/wall,/area/chapel/main) "aEz" = (/obj/machinery/light,/turf/simulated/floor,/area/hallway/primary/port) "aEA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/plating,/area/maintenance/port) @@ -1627,7 +1627,7 @@ "aFo" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_command{name = "E.V.A. Cycler Access"; req_access_txt = "0"; req_one_access_txt = "1;5;11;18;24"},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "aFp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/storage/emergency2) "aFq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 5; icon_state = "green"},/area/hydroponics) -"aFr" = (/obj/machinery/light_switch{pixel_y = 28},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/wood,/area/bridge/meeting_room) +"aFr" = (/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/hallway/secondary/entry) "aFs" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/primary/fore) "aFt" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) "aFu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/security/vacantoffice) @@ -1649,7 +1649,7 @@ "aFK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/storage/tools) "aFL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/wall,/area/maintenance/port) "aFM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/wall,/area/storage/tools) -"aFN" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/engineering,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/ai_monitored/storage/eva) +"aFN" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/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/hallway/secondary/entry) "aFO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/wall,/area/crew_quarters/locker) "aFP" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/plating,/area/maintenance/port) "aFQ" = (/obj/machinery/door/airlock/command{name = "Conference Room"; req_access = null; req_access_txt = "19"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/bridge/meeting_room) @@ -1684,7 +1684,7 @@ "aGt" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/chapel/main) "aGu" = (/obj/machinery/door/poddoor{id = "chapelgun"; name = "Chapel Launcher Door"},/turf/simulated/floor/plating,/area/chapel/main) "aGv" = (/obj/effect/landmark{name = "Marauder Entry"},/turf/space,/area) -"aGw" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/turf/simulated/floor{dir = 9; icon_state = "green"},/area/hydroponics) +"aGw" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{dir = 1; icon_state = "bluecorner"},/area/hallway/primary/central) "aGx" = (/obj/effect/landmark{name = "Observer-Start"},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "aGy" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{dir = 4; icon_state = "whitecorner"},/area/hallway/secondary/entry) "aGz" = (/obj/machinery/camera{c_tag = "Vacant Office"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/wood,/area/security/vacantoffice) @@ -1698,7 +1698,7 @@ "aGH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/plating,/area/maintenance/port) "aGI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/port) "aGJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) -"aGK" = (/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/storage/primary) +"aGK" = (/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) "aGL" = (/obj/effect/landmark/start{name = "Assistant"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor,/area/storage/primary) "aGM" = (/obj/effect/landmark/start{name = "Assistant"},/obj/structure/stool{pixel_y = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor,/area/storage/primary) "aGN" = (/obj/effect/landmark/start{name = "Assistant"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/storage/primary) @@ -1721,10 +1721,10 @@ "aHe" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/bridge) "aHf" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor,/area/hallway/primary/central) "aHg" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/central) -"aHh" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/hallway/primary/central) +"aHh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass{name = "Hydroponics Pasture"; req_access_txt = "35"},/turf/simulated/floor,/area/hydroponics) "aHi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) "aHj" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Dormitory"},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters/sleep) -"aHk" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) +"aHk" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/turf/simulated/floor{dir = 9; icon_state = "green"},/area/hydroponics) "aHl" = (/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) "aHm" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aHn" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) @@ -1795,7 +1795,7 @@ "aIA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/wall,/area/crew_quarters/sleep/bedrooms) "aIB" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/central) "aIC" = (/obj/structure/table/woodentable,/obj/machinery/recharger{pixel_y = 0},/turf/simulated/floor/plating,/area/security/vacantoffice) -"aID" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/mime,/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep/bedrooms) +"aID" = (/obj/machinery/camera{c_tag = "Chapel North"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aIE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/table/reinforced,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva) "aIF" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva) "aIG" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/ai_monitored/storage/eva) @@ -1831,7 +1831,7 @@ "aJk" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Hydroponics"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/hydroponics) "aJl" = (/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/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aJm" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/hallway/primary/fore) -"aJn" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) +"aJn" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/port) "aJo" = (/obj/structure/lattice,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "centcom_shuttle_dock_airlock"; name = "exterior access button"; pixel_x = -5; pixel_y = 25; req_access_txt = "0"; req_one_access_txt = "13"},/turf/space,/area) "aJp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aJq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 6; icon_state = "whitehall"},/area/crew_quarters/fitness) @@ -1868,8 +1868,8 @@ "aJV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/storage/primary) "aJW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/storage/primary) "aJX" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/turf/simulated/floor,/area/storage/primary) -"aJY" = (/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) -"aJZ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/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/hallway/primary/port) +"aJY" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/camera{c_tag = "Central Hallway North-West"; dir = 2},/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/primary/central) +"aJZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "Arrivals Auxiliary Docking North"; dir = 8; network = list("SS13")},/turf/simulated/floor,/area/hallway/secondary/entry) "aKa" = (/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) "aKb" = (/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,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/primary/port) "aKc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/primary/port) @@ -1944,14 +1944,14 @@ "aLt" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/hallway/secondary/entry) "aLu" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/primary/port) "aLv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"aLw" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/port) +"aLw" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "aLx" = (/obj/structure/table/reinforced,/obj/item/weapon/pen/blue{pixel_x = -5; pixel_y = -1},/obj/item/weapon/pen/red{pixel_x = -1; pixel_y = 3},/obj/item/ashtray/plastic{pixel_x = 5; pixel_y = 6},/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) "aLy" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/hallway/primary/port) "aLz" = (/turf/simulated/floor,/area/hallway/primary/port) "aLA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/primary/port) "aLB" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/port) "aLC" = (/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) -"aLD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) +"aLD" = (/obj/machinery/light_switch{pixel_y = 28},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/wood,/area/bridge/meeting_room) "aLE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aLF" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/primary/port) "aLG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) @@ -1968,9 +1968,9 @@ "aLR" = (/obj/structure/lattice,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "escape_dock_south_airlock"; name = "exterior access button"; pixel_x = 5; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "13"},/turf/space,/area) "aLS" = (/obj/machinery/light{dir = 1},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor,/area/hallway/primary/central) "aLT" = (/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central) -"aLU" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/primary/central) +"aLU" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/crew_quarters/locker) "aLV" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "L1"},/area/hallway/primary/central) -"aLW" = (/obj/machinery/camera{c_tag = "Central Hallway North-West"; dir = 2},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/turf/simulated/floor,/area/hallway/primary/central) +"aLW" = (/obj/machinery/atm{pixel_x = -32},/obj/machinery/door/firedoor/border_only{name = "\improper Firelock South"},/turf/simulated/floor,/area/hallway/primary/central) "aLX" = (/turf/simulated/floor{icon_state = "L5"},/area/hallway/primary/central) "aLY" = (/turf/simulated/floor{icon_state = "L7"},/area/hallway/primary/central) "aLZ" = (/turf/simulated/floor{icon_state = "L9"},/area/hallway/primary/central) @@ -1982,7 +1982,7 @@ "aMf" = (/turf/simulated/floor{icon_state = "neutralcorner"; dir = 1},/area/hallway/primary/central) "aMg" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor{icon_state = "neutralcorner"; dir = 1},/area/hallway/primary/central) "aMh" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/camera{c_tag = "Central Hallway North-East"; dir = 2},/turf/simulated/floor,/area/hallway/primary/central) -"aMi" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/hallway/primary/central) +"aMi" = (/obj/machinery/door/firedoor/border_only{name = "\improper Firelock South"},/turf/simulated/floor,/area/hallway/primary/central) "aMj" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/hallway/primary/central) "aMk" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor,/area/hallway/primary/central) "aMl" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/door_control{id = "bar"; name = "Bar Shutters"; pixel_y = 25; throw_range = 15},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) @@ -1998,14 +1998,14 @@ "aMv" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aMw" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aMx" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) -"aMy" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) -"aMz" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) -"aMA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) +"aMy" = (/obj/machinery/door/firedoor/border_only{name = "\improper Firelock South"},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/central) +"aMz" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/plating,/area/maintenance/port) +"aMA" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/plating,/area/maintenance/port) "aMB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor,/area/crew_quarters/fitness) -"aMC" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (NORTHWEST)"; icon_state = "intact-f"; dir = 9},/turf/simulated/floor/plating,/area/maintenance/port) +"aMC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/plating,/area/maintenance/port) "aMD" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/plating,/area/maintenance/port) "aME" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/crew_quarters/fitness) -"aMF" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/wall,/area/maintenance/port) +"aMF" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating,/area/maintenance/port) "aMG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/crew_quarters/fitness) "aMH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "green"; dir = 4},/area/crew_quarters/fitness) "aMI" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{name = "E.V.A. Maintenance"; req_one_access_txt = "1;5;11;18;24"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) @@ -2018,14 +2018,14 @@ "aMP" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) "aMQ" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep/sec) "aMR" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = -28},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) -"aMS" = (/obj/machinery/camera{c_tag = "Chapel North"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) +"aMS" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/wall,/area/maintenance/port) "aMT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aMU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/crew_quarters/sleep) "aMV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aMW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aMX" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/hallway/secondary/entry) "aMY" = (/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) -"aMZ" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) +"aMZ" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/plating,/area/maintenance/port) "aNa" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aNb" = (/turf/simulated/floor/carpet,/area/hallway/secondary/entry) "aNc" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 8},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) @@ -2042,7 +2042,7 @@ "aNn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aNo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aNp" = (/obj/machinery/computer/cryopod{density = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep/cryo) -"aNq" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/camera{c_tag = "Fore Primary Hallway"; dir = 4; network = list("SS13")},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) +"aNq" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor,/area/hallway/secondary/entry) "aNr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aNs" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor,/area/hallway/primary/central) "aNt" = (/turf/simulated/floor{icon_state = "L2"},/area/hallway/primary/central) @@ -2054,18 +2054,18 @@ "aNz" = (/turf/simulated/floor{desc = ""; icon_state = "L14"},/area/hallway/primary/central) "aNA" = (/turf/simulated/floor{icon_state = "L16"},/area/hallway/primary/central) "aNB" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=EVA2"; location = "Dorm"},/turf/simulated/floor,/area/hallway/primary/central) -"aNC" = (/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/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "lawyer_blast"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/lawoffice) +"aNC" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/floor{icon_state = "warningcorner"; dir = 1},/area/hallway/secondary/entry) "aND" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aNE" = (/obj/effect/landmark/start{name = "Bartender"},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aNF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/crew_quarters/sleep/bedrooms) "aNG" = (/turf/simulated/floor/carpet,/area/crew_quarters/bar) -"aNH" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor,/area/hallway/secondary/entry) +"aNH" = (/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_y = 0},/turf/simulated/wall,/area/turret_protected/ai) "aNI" = (/obj/machinery/light/small{dir = 8},/obj/structure/stool/bed,/obj/machinery/alarm{pixel_y = 23},/obj/item/weapon/bedsheet/mime,/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep/bedrooms) "aNJ" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aNK" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/hallway/primary/fore) "aNL" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; layer = 2.4; level = 2; on = 1},/obj/structure/closet/crate/freezer,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aNM" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) -"aNN" = (/obj/machinery/atmospherics/pipe/manifold/hidden{tag = "icon-manifold-f (WEST)"; icon_state = "manifold-f"; dir = 8},/turf/simulated/floor{icon_state = "warningcorner"; dir = 1},/area/hallway/secondary/entry) +"aNN" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_inner"; locked = 1; name = "Escape Airlock"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/hallway/secondary/exit) "aNO" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/structure/cryofeed/right,/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep/cryo) "aNP" = (/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai) "aNQ" = (/obj/machinery/camera{c_tag = "Dormitories"},/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/crew_quarters/sleep) @@ -2101,7 +2101,7 @@ "aOu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor,/area/hallway/secondary/entry) "aOv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/hallway/primary/port) "aOw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/hallway/primary/port) -"aOx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Port Hallway"; dir = 1},/turf/simulated/floor,/area/hallway/primary/port) +"aOx" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "escape_dock_south_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "13"},/turf/simulated/floor,/area/hallway/secondary/exit) "aOy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/crew_quarters/sleep/cryo) "aOz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "lawyer_blast"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/lawoffice) "aOA" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor{icon_state = "L3"},/area/hallway/primary/central) @@ -2121,7 +2121,7 @@ "aOO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/table/reinforced,/obj/machinery/chem_dispenser/soda,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aOP" = (/obj/structure/cryofeed,/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep/cryo) "aOQ" = (/obj/structure/table/reinforced,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "bar"; name = "Bar Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) -"aOR" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/table/reinforced,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "bar"; name = "Bar Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) +"aOR" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/floor,/area/hallway/secondary/exit) "aOS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/crew_quarters/fitness) "aOT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/maintenance/port) "aOU" = (/obj/machinery/door/airlock{name = "Kitchen cold room"; req_access_txt = "28"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) @@ -2191,7 +2191,7 @@ "aQg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/primary/central) "aQh" = (/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/hallway/primary/central) "aQi" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -32},/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"aQj" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_inner"; locked = 1; name = "Escape Airlock"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/hallway/secondary/exit) +"aQj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/wall,/area/hallway/secondary/entry) "aQk" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar) "aQl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/security/checkpoint2) "aQm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "vault"; dir = 1},/area/security/nuke_storage) @@ -2208,9 +2208,9 @@ "aQx" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep/bedrooms) "aQy" = (/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/crew_quarters/kitchen) "aQz" = (/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/crew_quarters/kitchen) -"aQA" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "escape_dock_south_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "13"},/turf/simulated/floor,/area/hallway/secondary/exit) +"aQA" = (/obj/structure/extinguisher_cabinet{pixel_x = -24},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/storage/tools) "aQB" = (/obj/structure/table,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack{pixel_x = 10; pixel_y = 2},/obj/item/stack/medical/ointment{pixel_y = 4},/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/crew_quarters/fitness) -"aQC" = (/obj/machinery/atmospherics/pipe/manifold/hidden{tag = "icon-manifold-f (WEST)"; icon_state = "manifold-f"; dir = 8},/turf/simulated/floor,/area/hallway/secondary/exit) +"aQC" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_inner"; locked = 1; name = "Escape Airlock"; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/plating,/area/hallway/secondary/exit) "aQD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aQE" = (/obj/structure/table/woodentable,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/recharger{pixel_y = 0},/turf/simulated/floor/plating,/area/security/vacantoffice) "aQF" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) @@ -2243,7 +2243,7 @@ "aRg" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/beach/water{tag = "icon-seadeep"; icon_state = "seadeep"},/area/crew_quarters/fitness) "aRh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aRi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hydroponics/garden) -"aRj" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/crew_quarters/locker) +"aRj" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "escape_dock_north_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "0"; req_one_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor,/area/hallway/secondary/exit) "aRk" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/crew_quarters/locker) "aRl" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor,/area/crew_quarters/locker) "aRm" = (/obj/machinery/vending/cola,/turf/simulated/floor,/area/crew_quarters/locker) @@ -2263,7 +2263,7 @@ "aRA" = (/obj/machinery/camera{c_tag = "Vault"; dir = 4; network = list("SS13")},/obj/structure/closet/crate{name = "Gold Crate"},/obj/item/stack/sheet/mineral/gold{pixel_x = -1; pixel_y = 5},/obj/item/stack/sheet/mineral/gold{pixel_y = 2},/obj/item/stack/sheet/mineral/gold{pixel_x = 1; pixel_y = -2},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/item/weapon/storage/belt/champion,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor{icon_state = "vault"; dir = 1},/area/security/nuke_storage) "aRB" = (/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,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/storage/tools) "aRC" = (/obj/machinery/camera{c_tag = "Port Hallway 3"; dir = 1},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/hallway/primary/port) -"aRD" = (/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/hallway/primary/central) +"aRD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "aRE" = (/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/hallway/primary/central) "aRF" = (/obj/structure/table/reinforced,/obj/item/device/aicard,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "red"; dir = 10},/area/bridge) "aRG" = (/obj/machinery/computer/security,/turf/simulated/floor{icon_state = "red"},/area/bridge) @@ -2294,14 +2294,14 @@ "aSf" = (/obj/structure/cryofeed,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep/cryo) "aSg" = (/turf/simulated/floor,/area/hydroponics) "aSh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/crew_quarters/sleep/bedrooms) -"aSi" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_inner"; locked = 1; name = "Escape Airlock"; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/exit) +"aSi" = (/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/hallway/primary/central) "aSj" = (/obj/structure/bookcase{name = "bookcase (Fiction)"},/turf/simulated/floor/wood,/area/library) "aSk" = (/obj/structure/bookcase{name = "bookcase (Non-Fiction)"},/turf/simulated/floor/wood,/area/library) "aSl" = (/obj/machinery/camera{c_tag = "Library South"; dir = 8; network = list("SS13")},/turf/simulated/floor/wood,/area/library) "aSm" = (/obj/machinery/door/morgue{dir = 2; name = "Private Study"; req_access_txt = "37"},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/library) "aSn" = (/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor{icon_state = "grimy"},/area/hydroponics/garden) "aSo" = (/turf/simulated/floor/carpet,/area/chapel/main) -"aSp" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "escape_dock_north_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "0"; req_one_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor,/area/hallway/secondary/exit) +"aSp" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Bridge West Entrance"; dir = 1},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/hallway/primary/central) "aSq" = (/turf/simulated/floor{dir = 1; icon_state = "escape"},/area/hallway/secondary/exit) "aSr" = (/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor{dir = 1; icon_state = "escape"},/area/hallway/secondary/exit) "aSs" = (/turf/simulated/floor,/area/hallway/secondary/exit) @@ -2314,7 +2314,7 @@ "aSz" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor,/area/hallway/secondary/entry) "aSA" = (/obj/machinery/firealarm{dir = 2; pixel_y = -24},/turf/simulated/floor,/area/hallway/secondary/entry) "aSB" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/hallway/secondary/entry) -"aSC" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor,/area/hallway/secondary/entry) +"aSC" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/hallway/primary/central) "aSD" = (/obj/machinery/light,/turf/simulated/floor,/area/hallway/secondary/entry) "aSE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/crew_quarters/sleep) "aSF" = (/turf/simulated/floor{icon_state = "escapecorner"; dir = 8},/area/crew_quarters/fitness) @@ -2331,7 +2331,7 @@ "aSQ" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor,/area/hallway/secondary/exit) "aSR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/storage/tools) "aSS" = (/turf/simulated/floor,/area/storage/tools) -"aST" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Auxiliary Tool Storage"; dir = 2},/turf/simulated/floor,/area/storage/tools) +"aST" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) "aSU" = (/obj/structure/table,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/storage/tools) "aSV" = (/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/storage/tools) "aSW" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/bridge) @@ -2380,7 +2380,7 @@ "aTN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/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/hallway/secondary/exit) "aTO" = (/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) "aTP" = (/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) -"aTQ" = (/obj/machinery/camera{c_tag = "Arrivals Center"; dir = 4; network = list("SS13")},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor,/area/hallway/secondary/entry) +"aTQ" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "centcom_shuttle_dock_airlock"; name = "interior access button"; pixel_x = -30; pixel_y = 25; req_access_txt = "0"; req_one_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/turf/simulated/floor,/area/hallway/secondary/entry) "aTR" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor,/area/hallway/secondary/entry) "aTS" = (/turf/simulated/wall,/area/security/vacantoffice) "aTT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/sign/poster{pixel_x = 0; pixel_y = 0},/turf/simulated/wall,/area/crew_quarters/toilet) @@ -2401,7 +2401,7 @@ "aUi" = (/obj/machinery/light/small,/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/storage/emergency2) "aUj" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/storage/emergency2) "aUk" = (/obj/structure/closet/gmcloset{icon_closed = "black"; icon_state = "black"; name = "formal wardrobe"},/obj/item/device/eftpos{eftpos_name = "Bar EFTPOS scanner"},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"aUl" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "centcom_shuttle_dock_airlock"; name = "interior access button"; pixel_x = -30; pixel_y = 25; req_access_txt = "0"; req_one_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (SOUTHWEST)"; icon_state = "intact-f"; dir = 10},/turf/simulated/floor,/area/hallway/secondary/entry) +"aUl" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "centcom_shuttle_dock_inner"; locked = 1; name = "Docking Port Airlock"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aUm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/storage/tools) "aUn" = (/turf/simulated/wall,/area/hallway/primary/central) "aUo" = (/turf/simulated/wall,/area/bridge) @@ -2425,13 +2425,13 @@ "aUG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/crew_quarters/bar) "aUH" = (/obj/structure/table/woodentable,/obj/item/clothing/head/cakehat,/turf/simulated/floor/wood,/area/crew_quarters/bar) "aUI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/crew_quarters/kitchen) -"aUJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) +"aUJ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/secondary/entry) "aUK" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "warningcorner"; dir = 2},/area/crew_quarters/locker) "aUL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aUM" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "aUN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/chapel/office) "aUO" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) -"aUP" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "centcom_shuttle_dock_inner"; locked = 1; name = "Docking Port Airlock"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"aUP" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) "aUQ" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "centcom_shuttle_dock_outer"; locked = 1; name = "Docking Port Airlock"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aUR" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "centcom_shuttle_dock_airlock"; pixel_x = 0; pixel_y = 30; req_access_txt = "0"; req_one_access_txt = "13"; tag_airpump = "centcom_shuttle_dock_pump"; tag_chamber_sensor = "centcom_shuttle_dock_sensor"; tag_exterior_door = "centcom_shuttle_dock_outer"; tag_interior_door = "centcom_shuttle_dock_inner"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "centcom_shuttle_dock_sensor"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "centcom_shuttle_dock_pump"},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aUS" = (/obj/machinery/vending/hydronutrients,/turf/simulated/floor,/area/hydroponics) @@ -2527,7 +2527,7 @@ "aWE" = (/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) "aWF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aWG" = (/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) -"aWH" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/secondary/entry) +"aWH" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/mime,/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep/bedrooms) "aWI" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aWJ" = (/obj/structure/safe,/obj/item/clothing/under/color/yellow,/obj/item/key,/obj/item/toy/katana,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "vault"; dir = 4},/area/security/nuke_storage) "aWK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "vault"},/area/security/nuke_storage) @@ -2647,7 +2647,7 @@ "aYU" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aYV" = (/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/central) "aYW" = (/obj/machinery/light,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/hallway/primary/central) -"aYX" = (/obj/machinery/camera{c_tag = "Bridge West Entrance"; dir = 1},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/hallway/primary/central) +"aYX" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) "aYY" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor{icon_state = "blue"; dir = 6},/area/hallway/primary/central) "aYZ" = (/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,/turf/simulated/floor/plating,/area/bridge) "aZa" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/bridge) @@ -2720,9 +2720,9 @@ "bap" = (/obj/machinery/conveyor{dir = 4; id = "packageSort2"},/obj/structure/plasticflaps{opacity = 0},/turf/simulated/floor/plating,/area/quartermaster/office) "baq" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal/deliveryChute{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/office) "bar" = (/turf/simulated/wall,/area/quartermaster/office) -"bas" = (/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/obj/machinery/atm{pixel_x = -32},/turf/simulated/floor,/area/hallway/primary/central) -"bat" = (/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor,/area/hallway/primary/central) -"bau" = (/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/central) +"bas" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) +"bat" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/camera{c_tag = "Fore Primary Hallway"; dir = 4; network = list("SS13")},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore) +"bau" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/wall,/area/hallway/primary/fore) "bav" = (/obj/machinery/camera{c_tag = "Fitness Room East"; dir = 1},/obj/machinery/light,/obj/structure/stool,/turf/simulated/floor{icon_state = "green"; dir = 4},/area/crew_quarters/fitness) "baw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "bax" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) @@ -2768,7 +2768,7 @@ "bbl" = (/turf/simulated/floor{icon_state = "warningcorner"; dir = 2},/area/hallway/secondary/exit) "bbm" = (/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/hallway/secondary/exit) "bbn" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry) -"bbo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/secondary/entry) +"bbo" = (/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/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "lawyer_blast"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/hallway/primary/fore) "bbp" = (/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/security/vacantoffice) "bbq" = (/obj/structure/table/woodentable,/turf/simulated/floor/plating,/area/security/vacantoffice) "bbr" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/ai_monitored/storage/eva) @@ -2781,7 +2781,7 @@ "bby" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "bbz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/maintenance/fsmaint2) "bbA" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) -"bbB" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/crew_quarters/locker) +"bbB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "lawyer_blast"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/hallway/primary/fore) "bbC" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/crew_quarters/locker) "bbD" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/crew_quarters/locker) "bbE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) @@ -2860,7 +2860,7 @@ "bcZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/patient_wing) "bda" = (/turf/simulated/floor/carpet,/area/bridge/meeting_room) "bdb" = (/obj/structure/stool/bed/chair/comfy/black,/turf/simulated/floor/carpet,/area/bridge/meeting_room) -"bdc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/crew_quarters/fitness) +"bdc" = (/obj/structure/table,/obj/item/weapon/storage/box/lights/mixed,/obj/item/device/t_scanner,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "bdd" = (/obj/machinery/vending/snack,/turf/simulated/floor/wood,/area/bridge/meeting_room) "bde" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bdf" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai) @@ -2881,7 +2881,7 @@ "bdu" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/primary/starboard) "bdv" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor,/area/hallway/primary/starboard) "bdw" = (/obj/machinery/alarm{pixel_y = 23},/obj/effect/landmark{name = "JoinLateCryo"},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep/cryo) -"bdx" = (/obj/structure/extinguisher_cabinet{pixel_x = -24},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/storage/tools) +"bdx" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) "bdy" = (/obj/structure/table,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/storage/tools) "bdz" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor,/area/hallway/primary/starboard) "bdA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/wall,/area/crew_quarters/kitchen) @@ -2932,7 +2932,7 @@ "bet" = (/turf/simulated/wall,/area/turret_protected/ai) "beu" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint2) "bev" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bew" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) +"bew" = (/obj/machinery/camera{c_tag = "Security Checkpoint"; dir = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/checkpoint2) "bex" = (/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bey" = (/obj/structure/table/woodentable,/turf/simulated/floor/carpet,/area/crew_quarters/captain) "bez" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/fpmaint2) @@ -3003,7 +3003,7 @@ "bfM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bfN" = (/turf/simulated/wall,/area/crew_quarters/sleep/engi) "bfO" = (/obj/machinery/light,/turf/simulated/floor,/area/hallway/primary/starboard) -"bfP" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/camera{c_tag = "Starboard Primary Hallway 4"; dir = 1},/turf/simulated/floor,/area/hallway/primary/starboard) +"bfP" = (/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/storage/primary) "bfQ" = (/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) "bfR" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor{dir = 2; icon_state = "escape"},/area/hallway/secondary/exit) "bfS" = (/obj/machinery/newscaster{pixel_y = -32},/turf/simulated/floor{dir = 2; icon_state = "escape"},/area/hallway/secondary/exit) @@ -3071,7 +3071,7 @@ "bhc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 2; icon_state = "whitered_c"; tag = "icon-whitered_c (WEST)"},/area/medical/patient_wing) "bhd" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 8; icon_state = "whiteredcorner"},/area/medical/patient_wing) "bhe" = (/turf/simulated/floor{icon_state = "white"},/area/medical/patient_wing) -"bhf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/patient_wing) +"bhf" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry) "bhg" = (/turf/simulated/wall,/area/storage/emergency) "bhh" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bhi" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/hallway/primary/aft) @@ -3084,7 +3084,7 @@ "bhp" = (/turf/simulated/floor{dir = 6; icon_state = "purple"},/area/hallway/primary/starboard) "bhq" = (/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/fsmaint2) "bhr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock{name = "Starboard Emergency Storage"; req_access_txt = "0"},/turf/simulated/floor/plating,/area/storage/emergency) -"bhs" = (/obj/machinery/light{dir = 4},/turf/simulated/floor,/area/hallway/secondary/entry) +"bhs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/crew_quarters/fitness) "bht" = (/obj/machinery/conveyor{dir = 1; id = "garbage"},/turf/simulated/floor/plating,/area/maintenance/disposal) "bhu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/disposal) "bhv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/disposal) @@ -3105,7 +3105,7 @@ "bhK" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 27},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bhL" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bhM" = (/obj/machinery/atmospherics/pipe/tank/oxygen{dir = 2; volume = 3200},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) -"bhN" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_off"; name = "Gas pump"; on = 0},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) +"bhN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry) "bhO" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bhP" = (/obj/structure/closet/emcloset,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bhQ" = (/turf/simulated/wall/r_wall,/area/rnd/misc_lab) @@ -3139,12 +3139,12 @@ "bis" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) "bit" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/asmaint2) "biu" = (/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) -"biv" = (/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/obj/machinery/meter,/obj/machinery/door_control{id = "mixvent"; name = "Mixing Room Vent Control"; pixel_x = -25; pixel_y = 5; req_access_txt = "7"},/obj/machinery/ignition_switch{id = "mixingsparker"; pixel_x = -25; pixel_y = -5},/turf/simulated/floor{dir = 4; icon_state = "warnwhitecorner"},/area/rnd/mixing) +"biv" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/engineering,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/ai_monitored/storage/eva) "biw" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/medical/research{name = "Research Division"}) "bix" = (/turf/simulated/wall,/area/medical/chemistry) "biy" = (/obj/machinery/atmospherics/valve{dir = 4},/obj/machinery/light,/turf/simulated/floor{dir = 4; icon_state = "warnwhite"},/area/rnd/mixing) "biz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "psych"; name = "Mental Health Privacy Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/psych) -"biA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/sign/fire{pixel_y = -32},/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_on"; on = 1},/turf/simulated/floor/engine,/area/rnd/mixing) +"biA" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor,/area/medical/sleeper) "biB" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Mental Health"; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "biC" = (/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/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "psych"; name = "Mental Health Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/psych) "biD" = (/turf/simulated/wall,/area/medical/ward) @@ -3170,14 +3170,14 @@ "biX" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "biY" = (/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},/turf/simulated/floor/plating,/area/assembly/robotics) "biZ" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/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/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/turf/simulated/floor/plating,/area/assembly/robotics) -"bja" = (/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/turf/simulated/wall/r_wall,/area/rnd/mixing) -"bjb" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; frequency = 1443; icon_state = "on"; id = "air_in"; on = 1},/turf/simulated/floor/engine/vacuum,/area/rnd/mixing) +"bja" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 0; pixel_y = -22},/turf/simulated/floor{dir = 2; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/patient_wing) +"bjb" = (/obj/machinery/atmospherics/binary/pump{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) "bjc" = (/obj/machinery/door/poddoor{id = "mixvent"; name = "Mixer Room Vent"},/turf/simulated/floor/engine/vacuum,/area/rnd/mixing) "bjd" = (/turf/simulated/floor/engine/vacuum,/area/rnd/mixing) "bje" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/closet/hydrant{pixel_x = -32},/turf/simulated/floor/plating,/area/storage/emergency) "bjf" = (/turf/simulated/wall/r_wall,/area/rnd/mixing) "bjg" = (/obj/machinery/camera{c_tag = "Gateway"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/vending/coffee,/turf/simulated/floor,/area/gateway) -"bjh" = (/obj/machinery/camera{c_tag = "Arrivals Auxiliary Docking"; dir = 8; network = list("SS13")},/turf/simulated/floor,/area/hallway/secondary/entry) +"bjh" = (/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bji" = (/obj/machinery/conveyor{dir = 1; id = "garbage"},/obj/structure/sign/vacuum{pixel_x = -32},/turf/simulated/floor/plating,/area/maintenance/disposal) "bjj" = (/obj/machinery/door_control{id = "Disposal Exit"; name = "Disposal Vent Control"; pixel_x = -25; pixel_y = 4; req_access_txt = "12"},/obj/machinery/driver_button{id = "trash"; pixel_x = -26; pixel_y = -6},/turf/simulated/floor/plating,/area/maintenance/disposal) "bjk" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "garbage"; name = "disposal coveyor"},/turf/simulated/floor/plating,/area/maintenance/disposal) @@ -3202,7 +3202,7 @@ "bjD" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/supermatter_engine{pixel_x = -3},/turf/simulated/floor/carpet,/area/engine/break_room) "bjE" = (/obj/structure/stool/bed/chair/comfy/beige{tag = "icon-comfychair_beige (EAST)"; icon_state = "comfychair_beige"; dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/carpet,/area/engine/break_room) "bjF" = (/obj/machinery/computer/atmos_alert,/turf/simulated/floor,/area/engine/chiefs_office) -"bjG" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"bjG" = (/obj/machinery/meter,/obj/machinery/door_control{id = "mixvent"; name = "Mixing Room Vent Control"; pixel_x = -25; pixel_y = 5; req_access_txt = "7"},/obj/machinery/ignition_switch{id = "mixingsparker"; pixel_x = -25; pixel_y = -5},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warnwhitecorner"},/area/rnd/mixing) "bjH" = (/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bjI" = (/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bjJ" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) @@ -3276,7 +3276,7 @@ "bkZ" = (/turf/simulated/floor/plating,/area/maintenance/disposal) "bla" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/disposal) "blb" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/plating,/area/maintenance/disposal) -"blc" = (/obj/machinery/door/airlock/maintenance{name = "Disposal Access"; req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/disposal) +"blc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/sign/fire{pixel_y = -32},/obj/machinery/atmospherics/binary/pump/on{dir = 8},/turf/simulated/floor/engine,/area/rnd/mixing) "bld" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/port) "ble" = (/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/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "medprivb"; name = "Patient Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/patient_b) "blf" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Sub-Acute B"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "white"},/area/medical/patient_wing) @@ -3296,16 +3296,16 @@ "blt" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = "QM Office"; name = "QM Office"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/quartermaster/miningdock) "blu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposaloutlet{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plating,/area/quartermaster/office) "blv" = (/turf/simulated/floor{dir = 4; icon_state = "yellowpatch"},/area/hallway/primary/aft) -"blw" = (/obj/machinery/camera{c_tag = "Security Checkpoint"; dir = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/checkpoint2) +"blw" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/wall/r_wall,/area/rnd/mixing) "blx" = (/obj/structure/table/reinforced,/obj/machinery/ignition_switch{id = "Xenobio"; pixel_x = -6; pixel_y = 4},/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) "bly" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "red"},/area/security/checkpoint2) "blz" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) "blA" = (/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},/obj/machinery/camera{c_tag = "EVA East"; dir = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva) -"blB" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/medical/sleeper) +"blB" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; frequency = 1443; icon_state = "map_injector"; id = "air_in"; on = 1},/turf/simulated/floor/engine/vacuum,/area/rnd/mixing) "blC" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor{icon_state = "red"; dir = 9},/area/medical/sleeper) -"blD" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor,/area/medical/sleeper) +"blD" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/medical/sleeper) "blE" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/closet/wardrobe/black,/turf/simulated/floor,/area/gateway) -"blF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "scanhideside"; name = "Diagnostics Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/sleeper) +"blF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor,/area/medical/sleeper) "blG" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/vending/cola,/turf/simulated/floor,/area/gateway) "blH" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2) "blI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) @@ -3322,7 +3322,7 @@ "blT" = (/turf/simulated/wall,/area/rnd/storage) "blU" = (/turf/simulated/wall,/area/rnd/misc_lab) "blV" = (/obj/machinery/door/airlock/security{name = "Security Checkpoint"; req_access = null; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor,/area/security/checkpoint2) -"blW" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 0; icon_state = "in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine/vacuum,/area/rnd/mixing) +"blW" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Medbay Diagnostics Maintenance Access"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/medical/sleeper) "blX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "blY" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 26},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (WEST)"; icon_state = "comfychair_teal"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "blZ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/engine/vacuum,/area/rnd/mixing) @@ -3347,11 +3347,11 @@ "bms" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/storage/emergency) "bmt" = (/obj/machinery/atmospherics/valve{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warnwhite"},/area/rnd/mixing) "bmu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 1; icon_state = "whitered_b"; tag = "icon-whitered_b (WEST)"},/area/medical/patient_wing) -"bmv" = (/obj/machinery/airlock_sensor{id_tag = "tox_airlock_sensor"; master_tag = "tox_airlock_control"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_on"; on = 1},/turf/simulated/floor/engine,/area/rnd/mixing) +"bmv" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 0; icon_state = "map_vent_in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine/vacuum,/area/rnd/mixing) "bmw" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor{dir = 8; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bmx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/sortjunction/flipped{dir = 4; sortType = "Chapel"; name = "Chapel"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "bmy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bmz" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry) +"bmz" = (/obj/machinery/meter,/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "tox_airlock_pump"; tag_exterior_door = "tox_airlock_exterior"; id_tag = "tox_airlock_control"; tag_interior_door = "tox_airlock_interior"; pixel_x = -24; pixel_y = 0; tag_chamber_sensor = "tox_airlock_sensor"},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warnwhitecorner"},/area/rnd/mixing) "bmA" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bmB" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/engineering_guide{pixel_x = 3; pixel_y = 2},/obj/item/weapon/book/manual/atmospipes,/turf/simulated/floor/carpet,/area/engine/break_room) "bmC" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/engineering_construction,/obj/item/weapon/book/manual/evaguide{pixel_x = -2; pixel_y = 7},/turf/simulated/floor/carpet,/area/engine/break_room) @@ -3383,7 +3383,7 @@ "bnc" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/quartermaster/office) "bnd" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/quartermaster/office) "bne" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j1s"; sortType = "Medbay"; name = "Medbay"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) -"bnf" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry) +"bnf" = (/obj/machinery/airlock_sensor{id_tag = "tox_airlock_sensor"; master_tag = "tox_airlock_control"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/binary/pump/on{dir = 4},/turf/simulated/floor/engine,/area/rnd/mixing) "bng" = (/turf/simulated/wall,/area/rnd/mixing) "bnh" = (/obj/machinery/requests_console{department = "EVA"; pixel_x = -32; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/device/multitool,/obj/machinery/camera/motion{c_tag = "EVA Motion Sensor"; dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva) "bni" = (/obj/structure/table/reinforced,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva) @@ -3479,11 +3479,11 @@ "boU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "boV" = (/obj/structure/displaycase,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "boW" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/carpet,/area/crew_quarters/captain) -"boX" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor,/area/medical/sleeper) +"boX" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/medical/sleeper) "boY" = (/turf/simulated/floor{dir = 4; icon_state = "warnwhite"},/area/rnd/mixing) "boZ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/quartermaster/office) "bpa" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) -"bpb" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Miscellaneous Reseach Maintenance"; req_access_txt = "47"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/rnd/misc_lab) +"bpb" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor,/area/medical/sleeper) "bpc" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/central) "bpd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/table/reinforced,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva) "bpe" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) @@ -3534,7 +3534,7 @@ "bpX" = (/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) "bpY" = (/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) "bpZ" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/quartermaster/storage) -"bqa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Starboard Primary Hallway"; dir = 1; network = list("SS13")},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/hallway/primary/starboard) +"bqa" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "scanhideside"; name = "Diagnostics Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) "bqb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/quartermaster/storage) "bqc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/quartermaster/storage) "bqd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/turf/simulated/floor,/area/quartermaster/storage) @@ -3550,19 +3550,19 @@ "bqn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/hallway/primary/central) "bqo" = (/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{dir = 2; icon_state = "redcorner"},/area/hallway/primary/central) "bqp" = (/obj/machinery/computer/skills{icon_state = "medlaptop"},/obj/structure/table,/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/crew_quarters/heads) -"bqq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/patient_wing) +"bqq" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/maintenance{name = "Miscellaneous Reseach Maintenance"; req_access_txt = "47"},/turf/simulated/floor/plating,/area/rnd/misc_lab) "bqr" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/recharger/wallcharger{pixel_x = 0; pixel_y = 30},/turf/simulated/floor,/area/crew_quarters/heads) "bqs" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/engine/chiefs_office) "bqt" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/patient_wing) "bqu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/engine/chiefs_office) -"bqv" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/space/rig/engineering/chief,/obj/item/clothing/shoes/magboots,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/engineering/chief,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"bqv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bqw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's Desk"; departmentType = 6; name = "Chief Engineer RC"; pixel_x = 0; pixel_y = -34},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor,/area/engine/chiefs_office) -"bqx" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) +"bqx" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/floor,/area/medical/sleeper) "bqy" = (/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "bqz" = (/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "bqA" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "bqB" = (/obj/machinery/gateway{dir = 6},/obj/effect/landmark{name = "JoinLateGateway"},/turf/simulated/floor{icon_state = "vault"; dir = 1},/area/gateway) -"bqC" = (/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/chiefs_office) +"bqC" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8; icon_state = "map"; tag = "icon-manifold (WEST)"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/medical/sleeper) "bqD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/item/device/radio/intercom{layer = 4; name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/engine/chiefs_office) "bqE" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/captain,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "bqF" = (/obj/structure/table/woodentable,/obj/item/device/camera,/obj/item/weapon/storage/photo_album{pixel_y = -10},/turf/simulated/floor/carpet,/area/crew_quarters/captain) @@ -3595,7 +3595,7 @@ "brg" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/assembly/robotics) "brh" = (/turf/simulated/wall/r_wall,/area/medical/research{name = "Research Division"}) "bri" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/carpet,/area/engine/break_room) -"brj" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor,/area/medical/sleeper) +"brj" = (/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/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) "brk" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint) "brl" = (/obj/machinery/bodyscanner,/turf/simulated/floor{icon_state = "red"},/area/medical/sleeper) "brm" = (/obj/machinery/light_switch{pixel_x = 7; pixel_y = -23},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) @@ -3638,7 +3638,7 @@ "brX" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/obj/machinery/camera{c_tag = "Captain's Quarters"; dir = 1},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "brY" = (/obj/structure/table/woodentable,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/item/weapon/storage/box/matches,/obj/item/clothing/mask/cigarette/cigar,/obj/item/weapon/reagent_containers/food/drinks/flask{pixel_x = 8},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "brZ" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 1; icon_state = "left"; name = "Shower"; req_access_txt = "0"},/obj/machinery/shower{icon_state = "shower"; dir = 4},/obj/item/weapon/soap/deluxe,/obj/item/weapon/bikehorn/rubberducky,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain) -"bsa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bsa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) "bsb" = (/obj/machinery/door_control{id = "medprivc"; name = "Privacy Shutters"; pixel_y = -25},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 0; pixel_y = -36},/turf/simulated/floor{dir = 6; icon_state = "whitered"},/area/medical/patient_c) "bsc" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_5_berth_hatch"; locked = 1; name = "Escape Pod"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/aft) "bsd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/carpet,/area/engine/break_room) @@ -3653,13 +3653,13 @@ "bsm" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/newscaster{pixel_x = 30},/obj/structure/table,/obj/machinery/computer/med_data/laptop{pixel_x = 3; pixel_y = 4},/turf/simulated/floor{dir = 4; icon_state = "whitered"},/area/medical/ward) "bsn" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{icon_state = "bcarpet01"},/area/medical/psych) "bso" = (/turf/simulated/floor{icon_state = "bcarpet02"},/area/medical/psych) -"bsp" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor,/area/medical/sleeper) -"bsq" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor,/area/medical/sleeper) -"bsr" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Medbay Diagnostics Maintenance Access"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor/plating,/area/medical/sleeper) +"bsp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/patient_wing) +"bsq" = (/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},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora_storage) +"bsr" = (/turf/simulated/wall/r_wall,/area/rnd/xenobiology/xenoflora_storage) "bss" = (/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/patient_wing) -"bst" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Break Room"; req_one_access_txt = "11;24;5"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/engine/break_room) +"bst" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/wall/r_wall,/area/rnd/xenobiology/xenoflora_storage) "bsu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"},/area/crew_quarters/sleep/engi) -"bsv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/engineering{name = "Engineering Dormitories"; req_one_access_txt = "11;24;5"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/crew_quarters/sleep/engi) +"bsv" = (/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/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) "bsw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bsx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bsy" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/plating,/area/maintenance/incinerator) @@ -3730,7 +3730,7 @@ "btL" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor,/area/medical/sleeper) "btM" = (/turf/simulated/floor{icon_state = "bluecorner"},/area/medical/surgeryobs) "btN" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/camera{c_tag = "Telescience Control Room"; dir = 8; network = list("SS13","Research"); pixel_y = -22},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) -"btO" = (/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/obj/machinery/meter,/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "tox_airlock_pump"; tag_exterior_door = "tox_airlock_exterior"; id_tag = "tox_airlock_control"; tag_interior_door = "tox_airlock_interior"; pixel_x = -24; pixel_y = 0; tag_chamber_sensor = "tox_airlock_sensor"},/turf/simulated/floor{dir = 1; icon_state = "warnwhitecorner"},/area/rnd/mixing) +"btO" = (/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},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) "btP" = (/obj/machinery/door_control{id = "scanhide"; name = "Diagnostics Room Separation Shutters"; pixel_x = -6; pixel_y = 25; req_access_txt = "5"},/obj/machinery/camera{c_tag = "Medbay Scanning"; network = list("SS13")},/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 8; icon_state = "freezer"; tag = ""},/obj/machinery/door_control{id = "scanhideside"; name = "Diagnostics Room Privacy Shutters"; pixel_x = 6; pixel_y = 25; req_access_txt = "5"},/turf/simulated/floor{icon_state = "delivery"},/area/medical/sleeper) "btQ" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/patient_wing) "btR" = (/obj/structure/closet/wardrobe/grey,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/item/weapon/storage/backpack,/obj/item/weapon/storage/backpack,/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -3748,7 +3748,7 @@ "bud" = (/turf/simulated/wall/r_wall,/area/rnd/xenobiology) "bue" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/device/radio/headset/headset_sci{pixel_x = -3},/obj/item/device/multitool{pixel_x = 3},/obj/item/device/multitool{pixel_x = 3},/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "buf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor{dir = 1; icon_state = "whiteredcorner"},/area/medical/patient_wing) -"bug" = (/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"}) +"bug" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/wall/r_wall,/area/rnd/xenobiology/xenoflora) "buh" = (/obj/structure/sign/biohazard,/turf/simulated/wall,/area/rnd/xenobiology) "bui" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/engine_eva_maintenance) "buj" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/engine_eva_maintenance) @@ -3807,7 +3807,7 @@ "bvk" = (/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/medical/ward) "bvl" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 0; pixel_y = -22},/turf/simulated/floor,/area/medical/sleeper) "bvm" = (/obj/machinery/atmospherics/binary/pump{dir = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) -"bvn" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor{icon_state = "delivery"},/area/medical/sleeper) +"bvn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora_storage) "bvo" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/medical/sleeper) "bvp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/camera{c_tag = "Medbay Patient Hallway"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/patient_wing) "bvq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/rnd/misc_lab) @@ -3836,15 +3836,15 @@ "bvN" = (/obj/structure/table/woodentable,/obj/machinery/computer/med_data/laptop,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/medical/psych) "bvO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 4; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "bvP" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) -"bvQ" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) -"bvR" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/medical/sleeper) +"bvQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/wall/r_wall,/area/rnd/xenobiology/xenoflora_storage) +"bvR" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/space/rig/engineering/chief,/obj/item/clothing/shoes/magboots,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/engineering/chief,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "bvS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "toxin_test_pump"; tag_exterior_door = "toxin_test_outer"; frequency = 1379; id_tag = "toxin_test_airlock"; tag_interior_door = "toxin_test_inner"; pixel_x = 0; pixel_y = 25; req_access_txt = "13"; tag_chamber_sensor = "toxin_test_sensor"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bvT" = (/obj/structure/disposalpipe/segment,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central) "bvU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera{c_tag = "Central Hallway East South-East"; dir = 8; network = list("SS13")},/turf/simulated/floor,/area/hallway/primary/central) "bvV" = (/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) "bvW" = (/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"}) "bvX" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/research/station) -"bvY" = (/turf/simulated/wall,/area/rnd/xenobiology/xenoflora) +"bvY" = (/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/turf/simulated/floor,/area/engine/chiefs_office) "bvZ" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/research/station) "bwa" = (/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) "bwb" = (/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) @@ -3865,10 +3865,10 @@ "bwq" = (/obj/structure/rack{dir = 1},/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/meson,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bwr" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bws" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"bwt" = (/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/chiefs_office) +"bwt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Break Room"; req_one_access_txt = "11;24;5"},/turf/simulated/floor,/area/engine/break_room) "bwu" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bwv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"bww" = (/turf/simulated/wall,/area/rnd/xenobiology/xenoflora_storage) +"bww" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/engineering{name = "Engineering Dormitories"; req_one_access_txt = "11;24;5"},/turf/simulated/floor,/area/crew_quarters/sleep/engi) "bwx" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bwy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/stool,/turf/simulated/floor,/area/teleporter) "bwz" = (/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/teleporter) @@ -3888,7 +3888,7 @@ "bwN" = (/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"; pixel_x = -32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/disposalpipe/sortjunction/flipped{dir = 2; sortType = "Research"; name = "Research"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bwO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) "bwP" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bwQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/wall,/area/rnd/xenobiology/xenoflora_storage) +"bwQ" = (/obj/machinery/vending/hydroseeds,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology/xenoflora) "bwR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bwS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) "bwT" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -3911,12 +3911,12 @@ "bxk" = (/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bxl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "floorgrime"},/area/rnd/mixing) "bxm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/sortjunction/flipped{dir = 2; name = "Miscellaneous Research"; sortType = "Miscellaneous Research"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bxn" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bxn" = (/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/machinery/light_switch{pixel_x = -6; pixel_y = 26},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora) "bxo" = (/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},/turf/simulated/floor{icon_state = "delivery"},/area/medical/research{name = "Research Division"}) "bxp" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Research Division"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor{icon_state = "bot"},/area/medical/research{name = "Research Division"}) "bxq" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bxr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall/r_wall,/area/rnd/xenobiology) -"bxs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/wall,/area/rnd/xenobiology/xenoflora) +"bxs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/patient_wing) "bxt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/rnd/xenobiology) "bxu" = (/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/quartermaster/storage) "bxv" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "QMLoad"},/turf/simulated/floor,/area/quartermaster/storage) @@ -3965,7 +3965,7 @@ "bym" = (/turf/simulated/wall,/area/medical/sleeper) "byn" = (/obj/structure/table/woodentable,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/light_switch{pixel_x = -4},/obj/machinery/door_control{id = "psych"; name = "Mental Health Privacy Shutters Control"; pixel_x = 6; pixel_y = 0},/turf/simulated/floor/wood,/area/medical/psych) "byo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/camera{c_tag = "Chief Engineer's Office"; dir = 1; network = list("SS13")},/turf/simulated/floor,/area/engine/chiefs_office) -"byp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/wall,/area/rnd/xenobiology/xenoflora_storage) +"byp" = (/obj/machinery/door/firedoor/border_only{name = "hazard door south"},/obj/machinery/door/airlock/research{name = "Xenobiology Research"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "byq" = (/obj/machinery/light/small{dir = 1},/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,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "byr" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bys" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "Medbay Surgery Access"; dir = 4; network = list("SS13")},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) @@ -3973,8 +3973,8 @@ "byu" = (/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/light/small,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "byv" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/vending/wallmed1{pixel_x = -26},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/ward) "byw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/medical/surgeryobs) -"byx" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Break Room"; req_one_access_txt = "11;24;5"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engine/break_room) -"byy" = (/obj/machinery/door/airlock/engineering{name = "Engineering Dormitories"; req_one_access_txt = "11;24;5"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/crew_quarters/sleep/engi) +"byx" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor{icon_state = "delivery"},/area/medical/sleeper) +"byy" = (/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/turf/simulated/floor,/area/engine/chiefs_office) "byz" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/medical/medbreak) "byA" = (/obj/machinery/light{dir = 1},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/door_control{id = "staffroom"; name = "Staff Room Shutters Control"; pixel_x = -26; pixel_y = 0},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbreak) "byB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -3989,14 +3989,14 @@ "byK" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/plating,/area/maintenance/asmaint) "byL" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1; icon_state = "comfychair_beige"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/carpet,/area/engine/break_room) "byM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/carpet,/area/engine/break_room) -"byN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/aft) +"byN" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Break Room"; req_one_access_txt = "11;24;5"},/turf/simulated/floor,/area/engine/break_room) "byO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "byP" = (/obj/structure/grille,/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/crew_quarters/hor) "byQ" = (/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/crew_quarters/hor) "byR" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/aft) "byS" = (/turf/simulated/wall/r_wall,/area/crew_quarters/hor) "byT" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor,/area/engine/chiefs_office) -"byU" = (/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/rnd/xenobiology/xenoflora_storage) +"byU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/aft) "byV" = (/turf/simulated/wall,/area/maintenance/asmaint2) "byW" = (/obj/machinery/camera{c_tag = "Research Dock"; dir = 2; network = list("SS13","Research")},/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/medical/research{name = "Research Division"}) "byX" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/smartfridge,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora) @@ -4037,7 +4037,7 @@ "bzG" = (/turf/simulated/wall,/area/medical/cmo) "bzH" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plating,/area/engine/engine_eva_maintenance) "bzI" = (/obj/machinery/light/small{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bzJ" = (/obj/machinery/vending/hydroseeds,/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology/xenoflora) +"bzJ" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/engineering{name = "Engineering Dormitories"; req_one_access_txt = "11;24;5"},/turf/simulated/floor,/area/crew_quarters/sleep/engi) "bzK" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plating,/area/teleporter) "bzL" = (/obj/machinery/teleport/station,/turf/simulated/floor/plating,/area/teleporter) "bzM" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plating,/area/teleporter) @@ -4086,8 +4086,8 @@ "bAD" = (/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora) "bAE" = (/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bAF" = (/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/maintenance/asmaint2) -"bAG" = (/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/machinery/light_switch{pixel_x = -6; pixel_y = 26},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora) -"bAH" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Xenobiology Research"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bAG" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "eng_eva_pump"; tag_exterior_door = "eng_eva_outer"; frequency = 1379; id_tag = "eng_eva_airlock"; tag_interior_door = "eng_eva_inner"; name = "Engineering Airlock Console"; pixel_y = 25; req_access_txt = "13"; tag_chamber_sensor = "eng_eva_sensor"},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/engine_eva_maintenance) +"bAH" = (/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; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/quartermaster/miningdock) "bAI" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/sink/kitchen{pixel_y = 28},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora) "bAJ" = (/obj/structure/closet/secure_closet/hydroponics{req_access = list(47)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora_storage) "bAK" = (/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) @@ -4105,7 +4105,7 @@ "bAW" = (/obj/machinery/computer/supplycomp,/turf/simulated/floor,/area/quartermaster/qm) "bAX" = (/obj/machinery/computer/security/mining,/turf/simulated/floor,/area/quartermaster/qm) "bAY" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor,/area/quartermaster/qm) -"bAZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora_storage) +"bAZ" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/wall,/area/quartermaster/miningdock) "bBa" = (/obj/machinery/status_display,/turf/simulated/wall,/area/hallway/primary/central) "bBb" = (/obj/structure/disposalpipe/segment,/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/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor,/area/quartermaster/miningdock) "bBc" = (/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/quartermaster/qm) @@ -4155,7 +4155,7 @@ "bBU" = (/obj/machinery/vending/coffee,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bBV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "bBW" = (/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) -"bBX" = (/obj/structure/table,/obj/machinery/door_control{id = "Biohazard"; name = "Biohazard Shutter Control"; pixel_x = -5; pixel_y = 5; req_access_txt = "47"},/obj/machinery/computer/skills{icon_state = "medlaptop"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bBX" = (/obj/structure/rack{dir = 1},/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/device/flashlight,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/item/clothing/mask/gas,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bBY" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bBZ" = (/obj/machinery/computer/robotics,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "bCa" = (/turf/simulated/floor{dir = 10; icon_state = "warnwhite"},/area/crew_quarters/hor) @@ -4163,7 +4163,7 @@ "bCc" = (/turf/simulated/floor{dir = 6; icon_state = "warnwhite"},/area/crew_quarters/hor) "bCd" = (/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/asmaint2) "bCe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance Access"; req_access_txt = "0"; req_one_access_txt = "9;12;47"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bCf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/light_switch{pixel_x = 22; pixel_y = 0},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/patient_wing) +"bCf" = (/obj/structure/stool/bed/chair/office/light,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor{icon_state = "dark"},/area/server) "bCg" = (/obj/structure/lattice,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 32},/turf/space,/area) "bCh" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/simulated/floor,/area/quartermaster/miningdock) "bCi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/iv_drip,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor{dir = 6; icon_state = "whitered"},/area/medical/patient_b) @@ -4214,8 +4214,8 @@ "bDb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/central) "bDc" = (/turf/simulated/wall,/area/medical/cryo) "bDd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/floor,/area/hallway/primary/central) -"bDe" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/light/small,/obj/machinery/light_switch{pixel_x = -22; pixel_y = 0},/turf/simulated/floor{icon_state = "delivery"},/area/medical/cryo) -"bDf" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor{icon_state = "delivery"},/area/medical/cryo) +"bDe" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/floor{icon_state = "dark"},/area/server) +"bDf" = (/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"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor{icon_state = "dark"},/area/server) "bDg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/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/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "bDh" = (/obj/machinery/clonepod,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/medical/genetics_cloning) "bDi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/central) @@ -4257,7 +4257,7 @@ "bDS" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/central) "bDT" = (/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/rnd/mixing) "bDU" = (/obj/machinery/portable_atmospherics/scrubber,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/rnd/mixing) -"bDV" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "eng_eva_pump"; tag_exterior_door = "eng_eva_outer"; frequency = 1379; id_tag = "eng_eva_airlock"; tag_interior_door = "eng_eva_inner"; name = "Engineering Airlock Console"; pixel_y = 25; req_access_txt = "13"; tag_chamber_sensor = "eng_eva_sensor"},/obj/machinery/atmospherics/pipe/manifold/hidden{tag = "icon-manifold-f (EAST)"; icon_state = "manifold-f"; dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/engine_eva_maintenance) +"bDV" = (/obj/machinery/light/small,/obj/machinery/light_switch{pixel_x = -22; pixel_y = 0},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor{icon_state = "delivery"},/area/medical/cryo) "bDW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/central) "bDX" = (/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor{icon_state = "warnwhite"; dir = 5},/area/rnd/mixing) "bDY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/hallway/primary/central) @@ -4269,8 +4269,8 @@ "bEe" = (/obj/machinery/door_control{id = "acute1"; name = "Acute One Privacy Shutters"; pixel_x = 6; pixel_y = 25; req_access_txt = "5"},/obj/machinery/camera{c_tag = "Medbay Acute 1"; network = list("SS13")},/obj/machinery/door_control{id = "acute1em"; name = "Acute One Entry Shutters"; pixel_x = -6; pixel_y = 25; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bEf" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) "bEg" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) -"bEh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/cmo) -"bEi" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/cmo) +"bEh" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor{icon_state = "delivery"},/area/medical/cryo) +"bEi" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay2) "bEj" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{id_tag = "cmodoor"; name = "Chief Medical Officer"; req_access_txt = "40"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/cmo) "bEk" = (/obj/structure/window/reinforced,/obj/structure/computerframe,/turf/simulated/floor{icon_state = "floorgrime"},/area/medical/genetics) "bEl" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/genetics) @@ -4279,8 +4279,8 @@ "bEo" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/server) "bEp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bEq" = (/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/server) -"bEr" = (/obj/structure/stool/bed/chair/office/light,/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/server) -"bEs" = (/obj/machinery/atmospherics/pipe/manifold/hidden{tag = "icon-manifold-f (WEST)"; icon_state = "manifold-f"; dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/server) +"bEr" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) +"bEs" = (/obj/structure/closet/crate,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/assembly/prox_sensor,/obj/item/device/flashlight,/obj/item/weapon/storage/backpack,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bEt" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/window/westleft{dir = 8; name = "Server Room"; opacity = 1; req_access_txt = "30"},/obj/machinery/door/window/westleft{dir = 4; name = "Server Room"; opacity = 1; req_access_txt = "30"},/turf/simulated/floor{icon_state = "dark"},/area/server) "bEu" = (/obj/machinery/light,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/hallway/primary/starboard) "bEv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/central) @@ -4300,7 +4300,7 @@ "bEJ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/portable_atmospherics/scrubber/huge,/turf/simulated/floor/plating,/area/rnd/mixing) "bEK" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/portable_atmospherics/scrubber/huge,/turf/simulated/floor/plating,/area/rnd/mixing) "bEL" = (/turf/simulated/wall/r_wall,/area/rnd/storage) -"bEM" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (NORTHWEST)"; icon_state = "intact-f"; dir = 9},/turf/simulated/floor{icon_state = "dark"},/area/server) +"bEM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/maintenance/asmaint2) "bEN" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=HOP"; location = "CHE"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/primary/central) "bEO" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'BOMB RANGE"; name = "BOMB RANGE"},/turf/simulated/wall/r_wall,/area/rnd/test_area) "bEP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/rnd/test_area) @@ -4352,17 +4352,17 @@ "bFJ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/hallway/primary/central) "bFK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "staffroom"; name = "Staff Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/cryo) "bFL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) -"bFM" = (/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{tag = "icon-manifold-f (NORTH)"; icon_state = "manifold-f"; dir = 1},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/quartermaster/miningdock) +"bFM" = (/obj/structure/rack,/obj/item/weapon/extinguisher,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/mask/gas,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bFN" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/syringes{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/syringes,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay3) "bFO" = (/obj/machinery/hologram/holopad,/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) -"bFP" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 0; external_pressure_bound_default = 0; icon_state = "in"; initialize_directions = 1; internal_pressure_bound = 4000; internal_pressure_bound_default = 4000; on = 1; pressure_checks = 2; pressure_checks_default = 2; pump_direction = 0},/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/server) +"bFP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/turf/simulated/floor,/area/hallway/primary/central) "bFQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{density = 0; dir = 0; icon_state = "shutter0"; id = "staffroom"; name = "Staff Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/cryo) "bFR" = (/obj/machinery/r_n_d/server/core,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/server) "bFS" = (/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) -"bFT" = (/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/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor/plating,/area/server) -"bFU" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/server) +"bFT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bFU" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 0; external_pressure_bound_default = 0; icon_state = "map_vent_in"; initialize_directions = 1; internal_pressure_bound = 4000; internal_pressure_bound_default = 4000; on = 1; pressure_checks = 2; pressure_checks_default = 2; pump_direction = 0},/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/server) "bFV" = (/obj/machinery/computer/rdservercontrol,/turf/simulated/floor{icon_state = "dark"},/area/server) -"bFW" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (NORTHWEST)"; icon_state = "intact-f"; dir = 9},/turf/simulated/floor{icon_state = "dark"},/area/server) +"bFW" = (/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/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/plating,/area/server) "bFX" = (/obj/machinery/computer/message_monitor,/turf/simulated/floor{icon_state = "dark"},/area/server) "bFY" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/rnd/storage) "bFZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -4370,14 +4370,14 @@ "bGb" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor{dir = 8; icon_state = "brown"},/area/quartermaster/miningdock) "bGc" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/patient_a) "bGd" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 25; pixel_y = 0; req_access_txt = "0"},/obj/machinery/camera{c_tag = "Medbay Patient A"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor{dir = 4; icon_state = "whitered"},/area/medical/patient_a) -"bGe" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/wall,/area/quartermaster/miningdock) +"bGe" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/server) "bGf" = (/obj/structure/table,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flash,/obj/item/device/flash,/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plating,/area/storage/tech) "bGg" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/structure/stool/bed/chair/office/dark,/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/patient_b) "bGh" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless,/area/rnd/test_area) "bGi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/aft) "bGj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/rnd/test_area) "bGk" = (/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/engine,/area/rnd/misc_lab) -"bGl" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/aft) +"bGl" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor{icon_state = "dark"},/area/server) "bGm" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bGn" = (/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/rnd/mixing) "bGo" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/computer/security/telescreen{desc = "Used for watching the test chamber."; layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins Test Area"); pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "warningcorner"; dir = 1},/area/rnd/mixing) @@ -4389,14 +4389,14 @@ "bGu" = (/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) "bGv" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 10},/turf/simulated/floor/engine,/area/rnd/misc_lab) "bGw" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/quartermaster/miningdock) -"bGx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/wall/r_wall,/area/rnd/mixing) +"bGx" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/aft) "bGy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/quartermaster/miningdock) "bGz" = (/obj/machinery/door/airlock/glass_mining{name = "Quartermaster"; req_access_txt = "41"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/quartermaster/qm) "bGA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/quartermaster/qm) "bGB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "bGC" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor,/area/teleporter) "bGD" = (/turf/simulated/wall,/area/maintenance/aft) -"bGE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/mixing) +"bGE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall/r_wall,/area/rnd/mixing) "bGF" = (/turf/simulated/wall,/area/storage/tech) "bGG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bGH" = (/turf/simulated/wall,/area/janitor) @@ -4404,21 +4404,21 @@ "bGJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/rnd/mixing) "bGK" = (/turf/simulated/wall,/area/maintenance/asmaint) "bGL" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/structure/cable,/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/storage/tech) -"bGM" = (/obj/structure/sign/securearea{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/rnd/mixing) +"bGM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/mixing) "bGN" = (/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay Lobby)"; pixel_x = 0; pixel_y = -30},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbreak) "bGO" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/light{dir = 1},/turf/simulated/floor/engine,/area/rnd/misc_lab) "bGP" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/structure/stool/bed/chair/office/dark,/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/patient_a) "bGQ" = (/obj/machinery/camera{c_tag = "Toxins Launch Room Access"; dir = 1},/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/rnd/mixing) -"bGR" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "staffroom"; name = "Staff Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbreak) +"bGR" = (/obj/structure/sign/securearea{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/rnd/mixing) "bGS" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/light,/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbreak) "bGT" = (/obj/structure/stool,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/effect/landmark/start{name = "Chemist"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbreak) "bGU" = (/obj/structure/stool,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -30},/obj/effect/landmark/start{name = "Chemist"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbreak) "bGV" = (/obj/machinery/computer/crew,/obj/machinery/light,/turf/simulated/floor{dir = 6; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo) -"bGW" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/cmo) +"bGW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "staffroom"; name = "Staff Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) "bGX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2) "bGY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bGZ" = (/obj/machinery/light,/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor{dir = 10; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo) -"bHa" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/cmo) +"bHa" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) "bHb" = (/obj/structure/rack,/obj/item/clothing/tie/stethoscope,/obj/item/clothing/glasses/hud/health,/obj/item/device/flashlight/pen,/obj/item/weapon/storage/belt/medical,/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -38},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo) "bHc" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "acute2"; name = "Acute Two Privacy Shutters"; opacity = 0},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/sleeper) "bHd" = (/obj/machinery/door_control{id = "acute2"; name = "Acute Two Privacy Shutters"; pixel_x = 6; pixel_y = -25; req_access_txt = "5"},/obj/machinery/door_control{id = "scanhide"; name = "Diagnostics Room Separation Shutters"; pixel_x = -6; pixel_y = -25; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) @@ -4427,16 +4427,16 @@ "bHg" = (/turf/simulated/floor{icon_state = "white"},/area/medical/patient_b) "bHh" = (/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/turret_protected/ai_server_room) "bHi" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/medical/cmo) -"bHj" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/cmo) +"bHj" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) "bHk" = (/turf/simulated/floor{icon_state = "warning"},/area/rnd/mixing) "bHl" = (/obj/machinery/disposal,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -30; pixel_y = 0},/obj/structure/disposalpipe/trunk,/turf/simulated/floor{icon_state = "warningcorner"; dir = 2},/area/rnd/mixing) "bHm" = (/turf/simulated/floor/airless{icon_state = "warningcorner"; dir = 1},/area/rnd/test_area) -"bHn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/mixing) +"bHn" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "acute2"; name = "Acute Two Privacy Shutters"; opacity = 0},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/medbay2) "bHo" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) -"bHp" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/mixing) +"bHp" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/mixing) "bHq" = (/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"}) "bHr" = (/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 5},/obj/item/device/transfer_valve{pixel_x = 5},/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/rnd/mixing) -"bHs" = (/obj/structure/dispenser,/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor{dir = 5; icon_state = "whitepurple"},/area/rnd/mixing) +"bHs" = (/obj/structure/dispenser,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "whitepurple"},/area/rnd/mixing) "bHt" = (/obj/item/device/assembly/signaler{pixel_x = 0; pixel_y = 8},/obj/item/device/assembly/signaler{pixel_x = -8; pixel_y = 5},/obj/item/device/assembly/signaler{pixel_x = 6; pixel_y = 5},/obj/item/device/assembly/signaler{pixel_x = -2; pixel_y = -2},/obj/structure/table,/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/rnd/mixing) "bHu" = (/obj/item/device/assembly/timer{pixel_x = 5; pixel_y = 4},/obj/item/device/assembly/timer{pixel_x = -4; pixel_y = 2},/obj/item/device/assembly/timer{pixel_x = 6; pixel_y = -4},/obj/item/device/assembly/timer{pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/rnd/mixing) "bHv" = (/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) @@ -4483,7 +4483,7 @@ "bIk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/medical/medbreak) "bIl" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2) "bIm" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) -"bIn" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/cmo) +"bIn" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) "bIo" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "floorgrime"},/area/rnd/storage) "bIp" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/wall/r_wall,/area/rnd/misc_lab) "bIq" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor,/area/hallway/primary/aft) @@ -4528,7 +4528,7 @@ "bJd" = (/obj/structure/table,/obj/item/device/taperecorder{pixel_x = -3},/obj/item/device/paicard{pixel_x = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/item/weapon/circuitboard/teleporter,/obj/item/weapon/circuitboard/aicore{pixel_x = -2; pixel_y = 4},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "bJe" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 1; icon_state = "freezer"},/obj/machinery/light/small,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "delivery"},/area/medical/cryo) "bJf" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor,/area/hallway/primary/central) -"bJg" = (/obj/structure/closet/crate,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/assembly/prox_sensor,/obj/item/device/flashlight,/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/obj/item/weapon/storage/backpack,/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"bJg" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) "bJh" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start{name = "Shaft Miner"},/turf/simulated/floor,/area/quartermaster/miningdock) "bJi" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/quartermaster/miningdock) "bJj" = (/obj/machinery/camera{c_tag = "Medbay CMO Office"; dir = 4; network = list("SS13")},/obj/machinery/light_switch{pixel_x = -22; pixel_y = -9},/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Medical Officer's Desk"; departmentType = 5; name = "Chief Medical Officer RC"; pixel_x = -34; pixel_y = 2},/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/cmo) @@ -4542,7 +4542,7 @@ "bJr" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/storage/tech) "bJs" = (/obj/structure/table,/obj/item/weapon/module/power_control,/obj/item/weapon/airlock_electronics,/turf/simulated/floor/plating,/area/storage/tech) "bJt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/storage/tech) -"bJu" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plating,/area/storage/tech) +"bJu" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor/plating,/area/storage/tech) "bJv" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plating,/area/maintenance/aft) "bJw" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bJx" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) @@ -4558,7 +4558,7 @@ "bJH" = (/obj/item/weapon/reagent_containers/glass/bucket,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/janitor) "bJI" = (/obj/structure/mopbucket,/obj/item/weapon/mop,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/janitor) "bJJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bJK" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/storage/tech) +"bJK" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plating,/area/storage/tech) "bJL" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/weapon/paper{desc = "A few notes scratched out by the last CMO before they departed the station."; info = "
To the incoming CMO of Exodus:


I wish you and your crew well. Do take note:


The Medical Emergency Red Phone system has proven itself well. Take care to keep the phones in their designated places as they have been optimised for broadcast. The two handheld green radios (I have left one in this office, and one near the Emergency Entrance) are free to be used. The system has proven effective at alerting Medbay of important details, especially during power outages.

I think I may have left the toilet cubicle doors shut. It might be a good idea to open them so the staff and patients know they are not engaged.

The new syringe gun has been stored in secondary storage. I tend to prefer it stored in my office, but 'guidelines' are 'guidelines'.

Also in secondary storage is the grenade equipment crate. I've just realised I've left it open - you may wish to shut it.

There were a few problems with their installation, but the Medbay Quarantine shutters should now be working again - they lock down the Emergency and Main entrances to prevent travel in and out. Pray you shan't have to use them.

The new version of the Medical Diagnostics Manual arrived. I distributed them to the shelf in the staff break room, and one on the table in the corner of this room.

The exam/triage room has the walking canes in it. I'm not sure why we'd need them - but there you have it.

Emergency Cryo bags are beside the emergency entrance, along with a kit.

Spare paper cups for the reception are on the left side of the reception desk.

I've fed Runtime. She should be fine.


That should be all. Good luck!
"; name = "Outgoing CMO's Notes"},/obj/item/device/radio{frequency = 1487; name = "Medbay Emergency Radio Link"},/turf/simulated/floor{icon_state = "white"},/area/medical/cmo) "bJM" = (/obj/structure/table,/obj/machinery/computer/skills{pixel_y = 4},/obj/item/device/megaphone,/turf/simulated/floor{icon_state = "white"},/area/medical/cmo) "bJN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -4567,7 +4567,7 @@ "bJQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bJR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/quartermaster/qm) "bJS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/medical/sleeper) -"bJT" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "warningcorner"; dir = 2},/area/rnd/mixing) +"bJT" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor{icon_state = "warningcorner"; dir = 2},/area/rnd/mixing) "bJU" = (/obj/structure/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "bJV" = (/obj/machinery/driver_button{dir = 2; id = "toxinsdriver"; pixel_y = 24},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor,/area/rnd/mixing) "bJW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) @@ -4577,7 +4577,7 @@ "bKa" = (/obj/machinery/door_control{id = "medprivb"; name = "Privacy Shutters"; pixel_y = 25},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 0; pixel_y = 36},/turf/simulated/floor{dir = 5; icon_state = "whitered"},/area/medical/patient_b) "bKb" = (/obj/machinery/light{dir = 1},/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/medical/patient_b) "bKc" = (/turf/simulated/floor{icon_state = "white_2"},/area/medical/medbay2) -"bKd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/wall,/area/maintenance/asmaint2) +"bKd" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 2; frequency = 1441; icon_state = "map_injector"; id = "n2_in"; on = 1},/turf/simulated/floor/engine,/area/rnd/misc_lab) "bKe" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/obj/effect/landmark/start{name = "Chief Medical Officer"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/door_control{desc = "A remote control-switch for shutters."; id = "cmooffice"; name = "CMO Privacy Shutters"; pixel_x = 38; pixel_y = 21},/obj/machinery/door_control{desc = "A remote control switch for the CMO's office."; id = "cmodoor"; name = "CMO Office Door Control"; normaldoorcontrol = 1; pixel_x = 28; pixel_y = 21; range = 6},/obj/machinery/door_control{desc = "A remote control-switch for shutters."; id = "virologyquar"; name = "Virology Emergency Lockdown Control"; pixel_x = -15; pixel_y = 38; req_access_txt = "5"},/obj/machinery/door_control{desc = "A remote control-switch for shutters."; id = "medbayquar"; name = "Medbay Emergency Lockdown Control"; pixel_x = -15; pixel_y = 30; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/cmo) "bKf" = (/obj/structure/rack,/obj/item/weapon/extinguisher,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/mask/gas,/obj/effect/decal/cleanable/cobweb2,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bKg" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/mixing) @@ -4594,8 +4594,8 @@ "bKr" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bKs" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bKt" = (/obj/item/weapon/cigbutt,/turf/simulated/floor{icon_state = "floorgrime"},/area/rnd/storage) -"bKu" = (/obj/structure/rack,/obj/item/weapon/extinguisher,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/mask/gas,/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"bKv" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 2; frequency = 1441; icon_state = "on"; id = "n2_in"; on = 1},/turf/simulated/floor/engine,/area/rnd/misc_lab) +"bKu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) +"bKv" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/quartermaster/miningdock) "bKw" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/closet/secure_closet/personal/patient,/turf/simulated/floor{dir = 9; icon_state = "whitered"},/area/medical/patient_a) "bKx" = (/obj/machinery/computer/crew,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbreak) "bKy" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/closet/secure_closet/personal/patient,/turf/simulated/floor{dir = 9; icon_state = "whitered"},/area/medical/patient_b) @@ -4607,7 +4607,7 @@ "bKE" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/disposalpipe/sortjunction/untagged{dir = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) "bKF" = (/obj/machinery/sparker{id = "Xenobio"; pixel_x = -25},/turf/simulated/floor/engine,/area/rnd/misc_lab) "bKG" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/hallway/primary/aft) -"bKH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) +"bKH" = (/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"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor{icon_state = "warning"},/area/quartermaster/miningdock) "bKI" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bKJ" = (/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/rnd/mixing) "bKK" = (/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) @@ -4615,7 +4615,7 @@ "bKM" = (/obj/structure/closet/secure_closet/RD,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "bKN" = (/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) "bKO" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) -"bKP" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/quartermaster/miningdock) +"bKP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/rnd/mixing) "bKQ" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft) "bKR" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bKS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -4633,7 +4633,7 @@ "bLe" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/pandemic{pixel_x = -3; pixel_y = 3},/obj/item/weapon/circuitboard/rdconsole,/obj/item/weapon/circuitboard/rdserver{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/destructive_analyzer,/obj/item/weapon/circuitboard/protolathe,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/storage/tech) "bLf" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/autolathe{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/security{name = "Circuit board (Mining Monitor)"; network = list("MINE")},/turf/simulated/floor/plating,/area/storage/tech) "bLg" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/arcade,/obj/item/weapon/circuitboard/message_monitor{pixel_y = -5},/turf/simulated/floor/plating,/area/storage/tech) -"bLh" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor/plating,/area/storage/tech) +"bLh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor{icon_state = "floorgrime"},/area/rnd/mixing) "bLi" = (/obj/machinery/door/airlock/maintenance{name = "Mining Maintenance"; req_access_txt = "48"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/quartermaster/miningdock) "bLj" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Toxins Launch Room"; req_access_txt = "8"},/turf/simulated/floor,/area/rnd/mixing) "bLk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) @@ -4645,9 +4645,9 @@ "bLq" = (/turf/simulated/floor,/area/janitor) "bLr" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/janitor) "bLs" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/quartermaster/miningdock) -"bLt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/rnd/mixing) +"bLt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/rnd/mixing) "bLu" = (/obj/machinery/computer/area_atmos,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) -"bLv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/rnd/mixing) +"bLv" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bLw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Toxins Launch Room Access"; req_access_txt = "8"},/turf/simulated/floor{icon_state = "white"},/area/rnd/mixing) "bLx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "staffroom"; name = "Staff Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbreak) "bLy" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "9;12;47"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/storage/emergency3) @@ -4825,15 +4825,15 @@ "bOO" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 80; dir = 2; on = 1},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "dark"},/area/server) "bOP" = (/obj/machinery/computer/area_atmos,/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "bot"},/area/rnd/storage) "bOQ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/medical/genetics) -"bOR" = (/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"}) +"bOR" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "bOS" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) "bOT" = (/turf/simulated/floor{icon_state = "warningcorner"; dir = 2},/area/rnd/storage) "bOU" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor{dir = 10; icon_state = "brown"},/area/quartermaster/miningdock) "bOV" = (/obj/structure/sign/fire{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) -"bOW" = (/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/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor/plating,/area/server) +"bOW" = (/obj/machinery/light{dir = 8},/obj/machinery/computer/guestpass{pixel_x = -28},/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/medical/research{name = "Research Division"}) "bOX" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor,/area/quartermaster/office) "bOY" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/medical/medbay2) -"bOZ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (SOUTHWEST)"; icon_state = "intact-f"; dir = 10},/turf/simulated/floor{icon_state = "dark"},/area/server) +"bOZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/turf/simulated/floor{dir = 8; icon_state = "whitecorner"},/area/medical/research{name = "Research Division"}) "bPa" = (/obj/machinery/camera{c_tag = "Research Division Server Room"; dir = 2; network = list("SS13","Research"); pixel_x = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor{icon_state = "dark"},/area/server) "bPb" = (/obj/machinery/r_n_d/server/robotics,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/server) "bPc" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/server) @@ -4862,7 +4862,7 @@ "bPz" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor,/area/hallway/primary/central) "bPA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/storage/emergency3) "bPB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/port) -"bPC" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "29"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/assembly/chargebay) +"bPC" = (/obj/effect/landmark{name = "lightsout"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/medical/research{name = "Research Division"}) "bPD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/assembly/chargebay) "bPE" = (/obj/item/light_fixture_frame,/turf/simulated/floor{icon_state = "floorgrime"},/area/medical/genetics) "bPF" = (/obj/structure/sign/securearea{pixel_y = 32},/obj/machinery/door/firedoor/border_only{dir = 8; name = "hazard door west"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central) @@ -4898,7 +4898,7 @@ "bQj" = (/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"},/turf/simulated/floor{icon_state = "dark"},/area/server) "bQk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bQl" = (/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"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/central) -"bQm" = (/obj/machinery/camera{c_tag = "Mining Dock External"; dir = 8},/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (NORTHWEST)"; icon_state = "intact-f"; dir = 9},/turf/simulated/floor{icon_state = "warning"},/area/quartermaster/miningdock) +"bQm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/maintenance{req_access_txt = "29"},/turf/simulated/floor,/area/assembly/chargebay) "bQn" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload_foyer) "bQo" = (/obj/machinery/door/airlock/highsecurity{icon_state = "door_closed"; locked = 0; name = "AI Upload Access"; req_access_txt = "16"},/turf/simulated/floor{icon_state = "vault"},/area/turret_protected/ai_upload_foyer) "bQp" = (/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) @@ -4927,14 +4927,14 @@ "bQM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/central) "bQN" = (/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/central) "bQO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/turret_protected/ai_server_room) -"bQP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central) +"bQP" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/weapon/extinguisher,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/plating,/area/storage/emergency3) "bQQ" = (/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/quartermaster/qm) "bQR" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/quartermaster/miningdock) "bQS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 1; icon_state = "whitehall_m"; tag = "icon-whitehall_m"},/area/medical/medbay2) "bQT" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/crew_quarters/heads) "bQU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/medical/genetics) "bQV" = (/obj/machinery/vending/medical,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) -"bQW" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/weapon/extinguisher,/turf/simulated/floor/plating,/area/storage/emergency3) +"bQW" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/server) "bQX" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/plating,/area/storage/emergency3) "bQY" = (/obj/effect/decal/cleanable/blood/oil,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor/plating,/area/maintenance/disposal) "bQZ" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/effect/landmark/start{name = "Research Director"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) @@ -4942,14 +4942,14 @@ "bRb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/bluegrid,/area/assembly/chargebay) "bRc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/medical/genetics) "bRd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/quartermaster/office) -"bRe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{icon_state = "floorgrime"},/area/rnd/mixing) +"bRe" = (/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/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/plating,/area/server) "bRf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall/r_wall,/area/assembly/chargebay) "bRg" = (/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) "bRh" = (/obj/structure/extinguisher_cabinet{pixel_x = -27},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/bluegrid,/area/assembly/chargebay) "bRi" = (/obj/machinery/camera{c_tag = "Research Division West"; dir = 2; network = list("SS13","Research")},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bRj" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/medical/genetics) "bRk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "9;12;47"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bRl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bRl" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/turf/simulated/floor{icon_state = "dark"},/area/server) "bRm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/item/device/radio/intercom{pixel_y = 25},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bRn" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bRo" = (/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/medical/research{name = "Research Division"}) @@ -4961,7 +4961,7 @@ "bRu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) "bRv" = (/obj/item/weapon/table_parts,/turf/simulated/floor/plating,/area/medical/genetics) "bRw" = (/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},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "bot"},/area/medical/research{name = "Research Division"}) -"bRx" = (/obj/machinery/light{dir = 1},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "whiteblue"},/area/medical/research{name = "Research Division"}) +"bRx" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cryo) "bRy" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bRz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/crew_quarters/heads) "bRA" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_server_room) @@ -4979,9 +4979,9 @@ "bRM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "bRN" = (/obj/structure/stool/bed/chair/office/dark,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/effect/landmark/start{name = "Geneticist"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "bRO" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) -"bRP" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; dir = 10; pixel_x = 0; level = 2; initialize_directions = 10},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cryo) -"bRQ" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cryo) -"bRR" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/turf/simulated/floor{dir = 10; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cryo) +"bRP" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1; icon_state = "map"; tag = "icon-manifold (NORTH)"},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cryo) +"bRQ" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8; icon_state = "map"; tag = "icon-manifold (WEST)"},/turf/simulated/floor{dir = 10; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cryo) +"bRR" = (/obj/structure/sign/securearea{pixel_y = 32},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/hallway/primary/central) "bRS" = (/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/cryo) "bRT" = (/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","Toxins Test Area","Robots","Anomaly Isolation"); pixel_x = 0; pixel_y = 2},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "bRU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_server_room) @@ -5001,7 +5001,7 @@ "bSi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bSj" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/camera{c_tag = "Robotics"; dir = 2; network = list("SS13","Research"); pixel_x = 22},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor{dir = 4; icon_state = "whiteredcorner"},/area/assembly/robotics) "bSk" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/regular,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "whiteyellowcorner"},/area/medical/chemistry) -"bSl" = (/obj/machinery/light,/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bSl" = (/obj/machinery/camera{c_tag = "Central Primary Hallway South South-East"; dir = 2},/turf/simulated/floor,/area/hallway/primary/central) "bSm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/light_switch{pixel_x = -22; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bSn" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bSo" = (/obj/machinery/camera{c_tag = "Research Division South"; dir = 1; network = list("SS13","Research"); pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -5161,14 +5161,14 @@ "bVm" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Genetics Laboratory"; req_access_txt = "9"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bVn" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -32},/obj/machinery/faxmachine{department = "Bridge"},/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/bridge/meeting_room) "bVo" = (/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/quartermaster/office) -"bVp" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) +"bVp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Central Primary Hallway South South-West"; dir = 2},/turf/simulated/floor,/area/hallway/primary/central) "bVq" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "waste_sensor"; output = 63},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "bVr" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "bVs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor,/area/bridge/meeting_room) "bVt" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/junction{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "bVu" = (/turf/simulated/wall/r_wall,/area/medical/virology) "bVv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) -"bVw" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "whiteredcorner"},/area/medical/cryo) +"bVw" = (/obj/structure/table,/obj/machinery/door_control{id = "Biohazard"; name = "Biohazard Shutter Control"; pixel_x = 5; pixel_y = 15; req_access_txt = "47"},/obj/machinery/computer/skills{icon_state = "medlaptop"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "bVx" = (/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},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whitered"},/area/medical/medbay2) "bVy" = (/obj/machinery/door/airlock{name = "Private Restroom"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain) "bVz" = (/obj/machinery/r_n_d/protolathe,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/rnd/lab) @@ -5264,8 +5264,8 @@ "bXl" = (/turf/simulated/floor/plating/airless,/area/rnd/xenobiology) "bXm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/maintenance/maintcentral) "bXn" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/port) -"bXo" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) -"bXp" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/turf/simulated/floor{dir = 1; icon_state = "whiteredcorner"},/area/medical/cryo) +"bXo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) +"bXp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor{dir = 8; icon_state = "whiteredcorner"},/area/medical/cryo) "bXq" = (/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 4; icon_state = "whitered"},/area/medical/medbay2) "bXr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bXs" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay2) @@ -5332,7 +5332,7 @@ "bYB" = (/obj/machinery/light/small{dir = 1},/obj/machinery/camera{c_tag = "Research Shuttle Maintainance"; dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bYC" = (/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/medical/virology) "bYD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/stool/bed/chair/office/dark,/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/engine/engine_monitoring) -"bYE" = (/obj/structure/table/reinforced,/obj/machinery/door_control{desc = "A remote control-switch for the engine control room blast doors."; id = "EngineBlast"; name = "Engine Room Blast Doors"; pixel_x = 0; pixel_y = 0; req_access_txt = "10"},/turf/simulated/floor,/area/engine/engine_monitoring) +"bYE" = (/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; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/shuttle/plating,/area/medical/research{name = "Research Division"}) "bYF" = (/obj/structure/stool/bed/chair/office/dark,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engine/engine_monitoring) "bYG" = (/obj/structure/table/reinforced,/obj/machinery/camera{c_tag = "Engine Monitoring Room"; dir = 4; network = list("SS13")},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/engine/engine_monitoring) "bYH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/camera{c_tag = "SMES"; dir = 8; network = list("SS13")},/turf/simulated/floor,/area/engine/engine_smes) @@ -5364,18 +5364,18 @@ "bZh" = (/obj/structure/table,/obj/item/weapon/book/manual/supermatter_engine,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/engine/engine_airlock) "bZi" = (/turf/simulated/floor/plating,/area/engine/engine_airlock) "bZj" = (/turf/simulated/wall/r_wall,/area/engine/engine_room) -"bZk" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; dir = 4; icon_state = "pdoor0"; id = "EngineBlast"; layer = 2.7; name = "Engine Monitoring Room Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engine_room) -"bZl" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; dir = 4; icon_state = "pdoor0"; id = "EngineBlast"; layer = 2.7; name = "Engine Monitoring Room Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engine_room) +"bZk" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/medical/research{name = "Research Division"}) +"bZl" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) "bZm" = (/obj/machinery/computer/drone_control,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/drone_fabrication) "bZn" = (/obj/machinery/door/airlock/maintenance_hatch{frequency = 1379; icon_state = "door_closed"; id_tag = "engine_airlock_interior"; locked = 0; name = "Engine Airlock Interior"; req_access_txt = "10"},/turf/simulated/floor/plating,/area/engine/engine_room) -"bZo" = (/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; dir = 4; icon_state = "pdoor0"; id = "EngineBlast"; layer = 2.7; name = "Engine Monitoring Room Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engine_room) +"bZo" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) "bZp" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine/drone_fabrication) "bZq" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/engine/drone_fabrication) "bZr" = (/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/turf/space,/area) "bZs" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/monitor{name = "Engine Power Monitoring"},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engine/engine_monitoring) "bZt" = (/obj/machinery/power/monitor{name = "Main Power Grid Monitoring"},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/engine/engine_monitoring) -"bZu" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; dir = 4; icon_state = "pdoor0"; id = "EngineBlast"; layer = 2.7; name = "Engine Monitoring Room Blast Doors"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/engine/engine_room) -"bZv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; dir = 4; icon_state = "pdoor0"; id = "EngineBlast"; layer = 2.7; name = "Engine Monitoring Room Blast Doors"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engine/engine_room) +"bZu" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8; icon_state = "map"; tag = "icon-manifold (WEST)"},/turf/simulated/floor{dir = 1; icon_state = "whiteredcorner"},/area/medical/cryo) +"bZv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 8; name = "hazard door west"},/turf/simulated/floor{dir = 8; icon_state = "whiteblue"},/area/medical/research{name = "Research Division"}) "bZw" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/plating{icon_state = "platebot"; nitrogen = 0.01; oxygen = 0.01},/area/engine/engine_room) "bZx" = (/obj/machinery/atmospherics/binary/pump{dir = 8; name = "Engine Filter Outpump"},/turf/simulated/floor/plating,/area/engine/engine_room) "bZy" = (/obj/machinery/light{dir = 1},/obj/machinery/light_switch{pixel_x = 0; pixel_y = 27},/turf/simulated/floor/plating,/area/engine/engine_room) @@ -5385,19 +5385,19 @@ "bZC" = (/turf/simulated/floor/plating,/area/engine/engine_room) "bZD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engine_room) "bZE" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor/plating{icon_state = "platebot"; nitrogen = 0.01; oxygen = 0.01},/area/engine/engine_room) -"bZF" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_off"; name = "Engine Feed"; on = 0},/turf/simulated/floor/plating,/area/engine/engine_room) +"bZF" = (/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/sleeper) "bZG" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay3) "bZH" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/simulated/floor/plating,/area/engine/engine_room) "bZI" = (/turf/simulated/wall,/area/engine/drone_fabrication) "bZJ" = (/obj/structure/sign/biohazard,/turf/simulated/wall/r_wall,/area/medical/virology) -"bZK" = (/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engine/hallway) +"bZK" = (/obj/machinery/status_display,/turf/simulated/wall,/area/medical/sleeper) "bZL" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor/plating{icon_state = "platebotc"; nitrogen = 0.01; oxygen = 0.01},/area/engine/engine_room) "bZM" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Genetics Research"; req_access_txt = "9"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bZN" = (/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},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "bot"},/area/medical/research{name = "Research Division"}) -"bZO" = (/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},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "whiteblue"},/area/medical/research{name = "Research Division"}) +"bZO" = (/turf/simulated/wall/r_wall,/area/medical/sleeper) "bZP" = (/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/rnd/xenobiology/xenoflora) "bZQ" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/plating,/area/engine/engine_room) -"bZR" = (/obj/machinery/door_control{desc = "A remote control-switch for opening the engines blast doors."; id = "EngineEmitter"; name = "Engine Charging Port"; pixel_x = -5; pixel_y = 25; req_access_txt = "10"},/obj/machinery/door_control{desc = "A remote control-switch for the engine control room blast doors."; id = "EngineBlast"; name = "Engine Room Blast Doors"; pixel_x = 5; pixel_y = 25; req_access_txt = "10"},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/plating,/area/engine/engine_room) +"bZR" = (/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/item/bodybag/cryobag{pixel_x = -3},/obj/item/bodybag/cryobag{pixel_x = -3},/obj/item/device/radio{frequency = 1487; name = "Medbay Emergency Radio Link"},/obj/machinery/door/window/eastright{dir = 1; name = "Emergency Kit"; req_access_txt = "5"},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"},/area/medical/sleeper) "bZS" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/simulated/floor/plating,/area/engine/engine_room) "bZT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plating,/area/maintenance/maintcentral) "bZU" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/turf/simulated/floor/plating,/area/engine/engine_room) @@ -5417,21 +5417,21 @@ "cai" = (/obj/machinery/atmospherics/tvalve/mirrored/digital,/turf/simulated/floor,/area/atmos) "caj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/engine/engine_room) "cak" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/engine/engine_monitoring) -"cal" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/engine/engine_room) +"cal" = (/obj/structure/closet/secure_closet/medical_wall{name = "Pill Cabinet"},/obj/item/weapon/storage/pill_bottle/antitox,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/weapon/storage/pill_bottle/tramadol,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/inaprovaline,/turf/simulated/wall,/area/medical/sleeper) "cam" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/engine/engine_room) "can" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engine_room) "cao" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/plating,/area/engine/engine_room) "cap" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 1; dir = 8; icon_state = "freezer"; layer = 2.5; on = 1; req_access_txt = "56"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine/engine_room) "caq" = (/obj/item/weapon/cable_coil,/turf/space,/area) -"car" = (/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/chemistry) +"car" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Medicine Storage"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "cas" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/turf/simulated/floor/plating,/area/engine/engine_room) -"cat" = (/obj/machinery/power/emitter{anchored = 1; state = 2},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engine_room) +"cat" = (/obj/machinery/light{dir = 1},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 8; name = "hazard door west"},/turf/simulated/floor{dir = 8; icon_state = "whiteblue"},/area/medical/research{name = "Research Division"}) "cau" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 10},/turf/simulated/floor/plating,/area/engine/engine_room) "cav" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/plating,/area/engine/engine_room) -"caw" = (/obj/machinery/status_display,/turf/simulated/wall,/area/medical/chemistry) +"caw" = (/obj/structure/closet/emcloset,/obj/machinery/camera{c_tag = "Arrivals Auxiliary Docking South"; dir = 4; network = list("SS13")},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry) "cax" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/engine/engine_monitoring) "cay" = (/obj/structure/stool,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/camera{c_tag = "Aft Starboard Solar Control"; dir = 4; network = list("SS13")},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) -"caz" = (/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/turf/simulated/floor,/area/atmos) +"caz" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "caA" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "caB" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape_pod5/station) "caC" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/escape_pod5/station) @@ -5441,8 +5441,8 @@ "caG" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 1; dir = 8; icon_state = "freezer"; layer = 2.5; on = 1; req_access_txt = "56"},/turf/simulated/floor/plating,/area/engine/engine_room) "caH" = (/obj/machinery/power/terminal,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/engine_room) "caI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine/engine_room) -"caJ" = (/obj/machinery/atmospherics/trinary/filter{dir = 8; filter_type = 1; icon_state = "intact_on"; name = "Gas filter (Engine 2)"; on = 1; req_access = null; target_pressure = 4500},/turf/simulated/floor/plating,/area/engine/engine_room) -"caK" = (/obj/machinery/atmospherics/trinary/filter{dir = 8; filter_type = 0; icon_state = "intact_on"; name = "Gas filter (Engine 1)"; on = 1; pressure_resistance = 103; req_access = null; target_pressure = 4500},/turf/simulated/floor/plating,/area/engine/engine_room) +"caJ" = (/obj/machinery/light{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor,/area/hallway/secondary/entry) +"caK" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/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) "caL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/engine/engine_room) "caM" = (/obj/machinery/constructable_frame/machine_frame,/turf/simulated/floor,/area/engine/workshop) "caN" = (/obj/effect/decal/cleanable/blood/oil{amount = 0},/turf/simulated/floor,/area/engine/workshop) @@ -5466,41 +5466,41 @@ "cbf" = (/obj/structure/lattice,/obj/structure/lattice,/turf/space,/area) "cbg" = (/obj/machinery/atmospherics/valve,/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor,/area/atmos) "cbh" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 5},/turf/simulated/floor,/area/atmos) -"cbi" = (/obj/machinery/door/airlock/atmos{name = "Atmospherics Storage"; req_access_txt = "24"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor,/area/atmos) +"cbi" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_dock_inner"; locked = 1; name = "Docking Port Airlock"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "cbj" = (/obj/machinery/power/solar_control{id = "starboardsolar"; name = "Aft Starboard Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "cbk" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor,/area/atmos) "cbl" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/maintenance/starboardsolar) -"cbm" = (/obj/machinery/atmospherics/binary/pump{dir = 2; icon_state = "intact_off"; name = "Gas pump"; on = 0},/turf/simulated/floor,/area/atmos) +"cbm" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "specops_dock_airlock"; name = "interior access button"; pixel_x = -30; pixel_y = 25; req_access_txt = "0"; req_one_access_txt = "13"},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor,/area/hallway/secondary/entry) "cbn" = (/obj/machinery/door/airlock/research{name = "Research Shuttle Dock"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cbo" = (/obj/structure/stool/bed/chair{dir = 8},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod5/station) "cbp" = (/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{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) -"cbq" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_off"; name = "Gas pump"; on = 0},/turf/simulated/floor,/area/atmos) +"cbq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/hallway/primary/starboard) "cbr" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/turf/simulated/floor,/area/atmos) "cbs" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/floor,/area/atmos) "cbt" = (/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/aft) "cbu" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor,/area/atmos) -"cbv" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_off"; name = "Mix to Port"; on = 0},/turf/simulated/floor,/area/atmos) -"cbw" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/turf/simulated/floor,/area/atmos) +"cbv" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Starboard Primary Hallway"; dir = 1; network = list("SS13")},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/starboard) +"cbw" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 4"; dir = 1},/turf/simulated/floor,/area/hallway/primary/starboard) "cbx" = (/turf/simulated/wall/r_wall,/area/maintenance/aft) "cby" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/aft) "cbz" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold4w/visible/yellow,/turf/simulated/floor,/area/atmos) -"cbA" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_off"; name = "Mix Loop"; on = 0},/turf/simulated/floor,/area/atmos) +"cbA" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/hallway/primary/starboard) "cbB" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold4w/visible/green,/turf/simulated/floor,/area/atmos) -"cbC" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_off"; name = "Unfiltered to Mix"; on = 0},/turf/simulated/floor,/area/atmos) +"cbC" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "cbD" = (/obj/machinery/atmospherics/pipe/simple/visible/green{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor,/area/atmos) -"cbE" = (/obj/machinery/atmospherics/pipe/simple/visible/green{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_off"; name = "N2O to Pure"; on = 0},/turf/simulated/floor,/area/atmos) -"cbF" = (/obj/machinery/atmospherics/trinary/filter{dir = 4; filter_type = 4; icon_state = "intact_on"; name = "Gas filter (N2O tank)"; on = 1},/turf/simulated/floor,/area/atmos) -"cbG" = (/obj/machinery/atmospherics/pipe/simple/visible/green{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_off"; name = "Phoron to Pure"; on = 0},/turf/simulated/floor,/area/atmos) -"cbH" = (/obj/machinery/atmospherics/trinary/filter{dir = 4; icon_state = "intact_on"; name = "Gas filter (Toxins tank)"; on = 1},/turf/simulated/floor,/area/atmos) -"cbI" = (/obj/machinery/atmospherics/pipe/simple/visible/green{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_off"; name = "CO2 to Pure"; on = 0},/turf/simulated/floor,/area/atmos) +"cbE" = (/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; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/hallway/secondary/entry) +"cbF" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "admin_shuttle_dock_airlock"; name = "interior access button"; pixel_x = -8; pixel_y = 25; req_access_txt = "0"; req_one_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) +"cbG" = (/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; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"cbH" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) +"cbI" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/entry) "cbJ" = (/obj/machinery/atmospherics/pipe/simple/visible/green{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/simulated/floor,/area/atmos) -"cbK" = (/obj/machinery/atmospherics/trinary/filter{dir = 4; filter_type = 3; icon_state = "intact_on"; name = "Gas filter (CO2 tank)"; on = 1},/turf/simulated/floor,/area/atmos) +"cbK" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor,/area/hallway/secondary/entry) "cbL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cbM" = (/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/atmos) "cbN" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cbO" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay3) "cbP" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/hallway/primary/central) -"cbQ" = (/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/item/bodybag/cryobag{pixel_x = -3},/obj/item/bodybag/cryobag{pixel_x = -3},/obj/item/device/radio{frequency = 1487; name = "Medbay Emergency Radio Link"},/obj/machinery/door/window/eastright{dir = 1; name = "Emergency Kit"; req_access_txt = "5"},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"},/area/medical/chemistry) +"cbQ" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor,/area/hallway/secondary/entry) "cbR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cbS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cbT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) @@ -5518,8 +5518,8 @@ "ccf" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/aft) "ccg" = (/turf/simulated/wall/r_wall,/area/engine/chiefs_office) "cch" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/structure/closet/firecloset,/turf/simulated/floor,/area/atmos) -"cci" = (/obj/structure/closet/secure_closet/medical_wall{name = "Pill Cabinet"},/obj/item/weapon/storage/pill_bottle/antitox,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/weapon/storage/pill_bottle/tramadol,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/inaprovaline,/turf/simulated/wall,/area/medical/chemistry) -"ccj" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Medicine Storage"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"cci" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{name = "Disposal Access"; req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/disposal) +"ccj" = (/obj/structure/table/reinforced,/obj/machinery/door_control{desc = "A remote control-switch for the engine control room blast doors."; id = "EngineBlast"; name = "Engine Room Blast Doors"; pixel_x = 0; pixel_y = -3; req_access_txt = "10"},/obj/machinery/door_control{desc = "A remote control-switch for the engine charging port."; id = "EngineEmitterPort"; name = "Engine Charging Port"; pixel_x = -6; pixel_y = 7; req_access_txt = "10"},/obj/machinery/door_control{desc = "A remote control-switch for the engine emitter."; id = "EngineEmitter"; name = "Engine Emitter"; normaldoorcontrol = 2; pixel_x = 6; pixel_y = 7; req_access_txt = "10"},/turf/simulated/floor,/area/engine/engine_monitoring) "cck" = (/obj/machinery/camera{c_tag = "Medbay Cloning"; network = list("SS13")},/obj/structure/closet/wardrobe/medic_white,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "ccl" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/obj/structure/closet/firecloset,/turf/simulated/floor,/area/atmos) "ccm" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Engineering"; departmentType = 4; name = "Engineering RC"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor,/area/engine/workshop) @@ -5531,19 +5531,19 @@ "ccs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/engine/hallway) "cct" = (/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/simulated/floor{dir = 10; icon_state = "yellow"},/area/atmos) "ccu" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "co2_in"; name = "Carbon Dioxide Supply Control"; output_tag = "co2_out"; sensors = list("co2_sensor" = "Tank")},/turf/simulated/floor{dir = 2; icon_state = "yellow"},/area/atmos) -"ccv" = (/obj/machinery/atmospherics/valve/digital{dir = 2; name = "CO2 Outlet Valve"; pipe_color = "yellow"},/turf/simulated/floor{dir = 6; icon_state = "yellow"},/area/atmos) -"ccw" = (/obj/machinery/atmospherics/valve/digital{dir = 1; name = "Gas Mix Outlet Valve"; pipe_color = "yellow"},/turf/simulated/floor{icon_state = "green"; dir = 6},/area/atmos) +"ccv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; dir = 4; icon_state = "pdoor0"; id = "EngineBlast"; name = "Engine Monitoring Room Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engine_room) +"ccw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; dir = 4; icon_state = "pdoor0"; id = "EngineBlast"; name = "Engine Monitoring Room Blast Doors"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/engine/engine_room) "ccx" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "waste_in"; name = "Gas Mix Tank Control"; output_tag = "waste_out"; sensors = list("waste_sensor" = "Tank")},/turf/simulated/floor{dir = 2; icon_state = "green"},/area/atmos) -"ccy" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_off"; name = "Port to Mix"; on = 0},/turf/simulated/floor,/area/atmos) +"ccy" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; dir = 4; icon_state = "pdoor0"; id = "EngineBlast"; name = "Engine Monitoring Room Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engine_room) "ccz" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/simulated/floor,/area/atmos) -"ccA" = (/obj/machinery/atmospherics/valve/digital{dir = 1; name = "Gas Mix Inlet Valve"; pipe_color = "yellow"},/obj/machinery/camera{c_tag = "Atmospherics South"; dir = 1},/turf/simulated/floor{dir = 10; icon_state = "green"},/area/atmos) +"ccA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; dir = 4; icon_state = "pdoor0"; id = "EngineBlast"; name = "Engine Monitoring Room Blast Doors"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engine/engine_room) "ccB" = (/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/rnd/xenobiology) "ccC" = (/turf/simulated/floor/engine,/area/rnd/xenobiology) "ccD" = (/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/simulated/floor{dir = 10; icon_state = "escape"},/area/atmos) "ccE" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "ccF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "ccG" = (/obj/machinery/camera{c_tag = "Xenobiology Module South"; dir = 4; network = list("SS13","Research"); pixel_x = 0},/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/rnd/xenobiology) -"ccH" = (/obj/machinery/atmospherics/valve/digital{dir = 2; name = "N2O Outlet Valve"; pipe_color = "yellow"},/turf/simulated/floor{icon_state = "escape"; dir = 6},/area/atmos) +"ccH" = (/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; dir = 4; icon_state = "pdoor0"; id = "EngineBlast"; name = "Engine Monitoring Room Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engine_room) "ccI" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "n2o_in"; name = "Nitrous Oxide Supply Control"; output_tag = "n2o_out"; sensors = list("n2o_sensor" = "Tank")},/turf/simulated/floor{dir = 7; icon_state = "escape"},/area/atmos) "ccJ" = (/obj/machinery/atmospherics/pipe/simple/visible/green,/obj/machinery/camera{c_tag = "Atmospherics South West"; dir = 1},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/atmos) "ccK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/virology) @@ -5551,7 +5551,7 @@ "ccM" = (/obj/machinery/space_heater,/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 9},/turf/simulated/floor,/area/atmos) "ccN" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "tox_in"; name = "Toxin Supply Control"; output_tag = "tox_out"; sensors = list("tox_sensor" = "Tank")},/turf/simulated/floor{icon_state = "warning"},/area/atmos) "ccO" = (/obj/machinery/light{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/medical/virology) -"ccP" = (/obj/machinery/atmospherics/valve/digital{dir = 2; name = "Phoron Outlet Valve"; pipe_color = "yellow"},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/atmos) +"ccP" = (/obj/machinery/door_control{desc = "A remote control-switch for the engine charging port."; id = "EngineEmitterPort"; name = "Engine Charging Port"; pixel_x = -5; pixel_y = 25; req_access_txt = "10"},/obj/machinery/door_control{desc = "A remote control-switch for the engine control room blast doors."; id = "EngineBlast"; name = "Engine Room Blast Doors"; pixel_x = 5; pixel_y = 25; req_access_txt = "10"},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/plating,/area/engine/engine_room) "ccQ" = (/obj/structure/sign/biohazard,/turf/simulated/wall/r_wall,/area/rnd/xenobiology) "ccR" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "research_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access_txt = "13"},/turf/simulated/shuttle/floor,/area/shuttle/research/station) "ccS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) @@ -5561,9 +5561,9 @@ "ccW" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/visible/yellow,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/atmos) "ccX" = (/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/atmos) "ccY" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/medical/virology) -"ccZ" = (/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/hallway) +"ccZ" = (/obj/machinery/atmospherics/binary/pump{dir = 8; name = "Engine Feed"},/turf/simulated/floor/plating,/area/engine/engine_room) "cda" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai_cyborg_station) -"cdb" = (/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/engine/hallway) +"cdb" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 8; icon_state = "map"; tag = "icon-manifold (WEST)"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/engine/engine_room) "cdc" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/wall/r_wall,/area/rnd/xenobiology) "cdd" = (/turf/simulated/wall/r_wall,/area/engine/hallway) "cde" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/atmos) @@ -5620,18 +5620,18 @@ "ced" = (/obj/machinery/door/airlock/maintenance_hatch{icon_state = "door_closed"; id_tag = null; locked = 0; name = "Engine Access"; req_access_txt = "0"; req_one_access_txt = "11;24"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engine_airlock) "cee" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/engine/engine_airlock) "cef" = (/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/scrubbers,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/engine/engine_monitoring) -"ceg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_engineering{name = "Engine Monitoring Room"; req_access_txt = "11"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/engine_monitoring) +"ceg" = (/obj/machinery/power/emitter{anchored = 1; id = "EngineEmitter"; state = 2},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engine_room) "ceh" = (/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/engine/engine_monitoring) -"cei" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 1; frequency = 1441; icon_state = "on"; id = "co2_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) -"cej" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "co2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) -"cek" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 1; frequency = 1441; icon_state = "on"; id = "n2o_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) -"cel" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "n2o_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) +"cei" = (/obj/machinery/atmospherics/trinary/filter{dir = 8; filter_type = 1; icon_state = "map"; name = "Gas filter (Engine 2)"; on = 1; req_access = null; target_pressure = 4500},/turf/simulated/floor/plating,/area/engine/engine_room) +"cej" = (/obj/machinery/atmospherics/trinary/filter{dir = 8; filter_type = 0; icon_state = "map"; name = "Gas filter (Engine 1)"; on = 1; pressure_resistance = 103; req_access = null; target_pressure = 4500},/turf/simulated/floor/plating,/area/engine/engine_room) +"cek" = (/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{dir = 1; icon_state = "map"; tag = "icon-manifold (NORTH)"},/turf/simulated/floor,/area/atmos) +"cel" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/door/airlock/atmos{name = "Atmospherics Storage"; req_access_txt = "24"},/turf/simulated/floor,/area/atmos) "cem" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2o_sensor"},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "cen" = (/obj/machinery/shieldgen,/turf/simulated/floor/plating,/area/engine/storage_hard) "ceo" = (/turf/simulated/floor,/area/engine/engine_hallway) "cep" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/firealarm{pixel_y = 24},/turf/simulated/floor,/area/engine/engine_hallway) -"ceq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "waste_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) -"cer" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 1; frequency = 1441; icon_state = "on"; id = "waste_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) +"ceq" = (/obj/machinery/atmospherics/binary/pump,/turf/simulated/floor,/area/atmos) +"cer" = (/obj/machinery/atmospherics/binary/pump{dir = 1},/turf/simulated/floor,/area/atmos) "ces" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent/roomfiller,/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "cet" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engine/engine_monitoring) "ceu" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/medical/virology) @@ -5671,7 +5671,7 @@ "cfc" = (/turf/simulated/wall,/area/rnd/xenobiology) "cfd" = (/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyerPort"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = -24; pixel_y = 26; range = 3; req_access_txt = null},/obj/machinery/computer/guestpass{pixel_x = -28},/turf/simulated/floor{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/medical/medbay2) "cfe" = (/obj/machinery/door/window/southright{name = "Containment Pen"; req_access_txt = "47"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio5"; name = "Containment Blast Doors"; opacity = 0},/turf/simulated/floor/engine,/area/rnd/xenobiology) -"cff" = (/obj/machinery/light{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/computer/guestpass{pixel_x = -28},/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/medical/research{name = "Research Division"}) +"cff" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Mix to Port"},/turf/simulated/floor,/area/atmos) "cfg" = (/turf/simulated/floor/plating,/area/engine/storage_hard) "cfh" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_research{name = "Research and Development"; req_access_txt = "7"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cfi" = (/obj/machinery/door/window/southright{name = "Containment Pen"; req_access_txt = "47"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio4"; name = "Containment Blast Doors"; opacity = 0},/turf/simulated/floor/engine,/area/rnd/xenobiology) @@ -5679,8 +5679,8 @@ "cfk" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor,/area/atmos) "cfl" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/simulated/floor,/area/atmos) "cfm" = (/obj/machinery/atmospherics/pipe/simple/visible/green{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/cyan,/turf/simulated/floor,/area/atmos) -"cfn" = (/obj/machinery/atmospherics/trinary/filter{dir = 8; filter_type = 2; icon_state = "intact_on"; name = "Gas filter (N2 tank)"; on = 1},/turf/simulated/floor,/area/atmos) -"cfo" = (/obj/machinery/atmospherics/trinary/filter{dir = 8; filter_type = 1; icon_state = "intact_on"; name = "Gas filter (O2 tank)"; on = 1},/turf/simulated/floor,/area/atmos) +"cfn" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow{dir = 1; icon_state = "map"; tag = "icon-manifold (NORTH)"},/turf/simulated/floor,/area/atmos) +"cfo" = (/obj/machinery/atmospherics/binary/pump{dir = 8; name = "Mix Loop"},/turf/simulated/floor,/area/atmos) "cfp" = (/obj/machinery/atmospherics/pipe/simple/visible/green{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/simulated/floor,/area/atmos) "cfq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/atmos) "cfr" = (/obj/structure/closet/crate/solar,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plating,/area/engine/storage_hard) @@ -5708,7 +5708,7 @@ "cfN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor,/area/engine/engine_hallway) "cfO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/engine/engine_hallway) "cfP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/engine/engine_hallway) -"cfQ" = (/obj/structure/sign/securearea{pixel_y = 32},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/camera{c_tag = "Central Primary Hallway South"; dir = 2},/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/hallway/primary/central) +"cfQ" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Unfiltered to Mix"},/turf/simulated/floor,/area/atmos) "cfR" = (/turf/simulated/wall/r_wall,/area/engine/drone_fabrication) "cfS" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/obj/machinery/pipedispenser/disposal,/turf/simulated/floor,/area/atmos) "cfT" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/floor,/area/atmos) @@ -5717,9 +5717,9 @@ "cfW" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/port) "cfX" = (/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/plating/airless,/area/solar/port) "cfY" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/port) -"cfZ" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/turf/simulated/floor,/area/atmos) -"cga" = (/obj/machinery/atmospherics/pipe/manifold/visible/supply{tag = "icon-manifold (EAST)"; icon_state = "manifold"; dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/atmos) -"cgb" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_off"; name = "Distro to Waste"; on = 0},/turf/simulated/floor,/area/atmos) +"cfZ" = (/obj/machinery/atmospherics/pipe/simple/visible/green{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/binary/pump{dir = 1; name = "N2O to Pure"},/turf/simulated/floor,/area/atmos) +"cga" = (/obj/machinery/atmospherics/trinary/filter{dir = 4; filter_type = 4; icon_state = "map"; name = "Gas filter (N2O tank)"; on = 1},/turf/simulated/floor,/area/atmos) +"cgb" = (/obj/machinery/atmospherics/pipe/simple/visible/green{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Phoron to Pure"},/turf/simulated/floor,/area/atmos) "cgc" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/simulated/floor,/area/atmos) "cgd" = (/obj/machinery/door_control{dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = 6; pixel_y = 24},/turf/simulated/floor{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/assembly/chargebay) "cge" = (/turf/simulated/floor,/area/medical/morgue) @@ -5737,7 +5737,7 @@ "cgq" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/turf/simulated/floor{icon_state = "arrival"; dir = 5},/area/atmos) "cgr" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1443; input_tag = "air_in"; name = "Mixed Air Supply Control"; output_tag = "air_out"; pressure_setting = 2000; sensors = list("air_sensor" = "Tank")},/turf/simulated/floor{dir = 1; icon_state = "arrival"},/area/atmos) "cgs" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/engine,/area/rnd/xenobiology) -"cgt" = (/obj/machinery/atmospherics/valve/digital{name = "Mixed Air Outlet Valve"; openDuringInit = 1},/turf/simulated/floor{dir = 9; icon_state = "arrival"},/area/atmos) +"cgt" = (/obj/machinery/atmospherics/trinary/filter{dir = 4; icon_state = "map"; name = "Gas filter (Toxins tank)"; on = 1},/turf/simulated/floor,/area/atmos) "cgu" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/clothing/head/welding{pixel_x = 0; pixel_x = -5; pixel_y = 3},/obj/item/clothing/glasses/welding,/obj/structure/closet/fireaxecabinet{pixel_y = 32},/turf/simulated/floor,/area/atmos) "cgv" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/weapon/wrench,/obj/machinery/camera{c_tag = "Atmospherics North East"; dir = 6},/obj/structure/sign/atmosplaque{pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/atmos) "cgw" = (/obj/structure/dispenser,/turf/simulated/floor,/area/atmos) @@ -5747,10 +5747,10 @@ "cgA" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/atmos) "cgB" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "n2_in"; name = "Nitrogen Supply Control"; output_tag = "n2_out"; sensors = list("n2_sensor" = "Tank")},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/atmos) "cgC" = (/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/simulated/floor{icon_state = "red"; dir = 5},/area/atmos) -"cgD" = (/obj/machinery/atmospherics/valve/digital{name = "Nitrogen Outlet Valve"; openDuringInit = 1},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/atmos) +"cgD" = (/obj/machinery/atmospherics/pipe/simple/visible/green{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/binary/pump{dir = 1; name = "CO2 to Pure"},/turf/simulated/floor,/area/atmos) "cgE" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/engine/engine_monitoring) "cgF" = (/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/simulated/floor{dir = 5; icon_state = "blue"},/area/atmos) -"cgG" = (/obj/machinery/atmospherics/valve/digital{name = "Oxygen Outlet Valve"; openDuringInit = 1},/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/atmos) +"cgG" = (/obj/machinery/atmospherics/trinary/filter{dir = 4; filter_type = 3; icon_state = "map"; name = "Gas filter (CO2 tank)"; on = 1},/turf/simulated/floor,/area/atmos) "cgH" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor,/area/engine/engineering_monitoring) "cgI" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/camera{c_tag = "Engineering Monitoring"; dir = 5},/turf/simulated/floor,/area/engine/engineering_monitoring) "cgJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/status_display{pixel_y = 32},/turf/simulated/floor/plating,/area/engine/engineering_monitoring) @@ -5767,16 +5767,16 @@ "cgU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engine/engineering_monitoring) "cgV" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/engine/drone_fabrication) "cgW" = (/obj/machinery/ai_status_display{layer = 4; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/engine/drone_fabrication) -"cgX" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_on"; name = "Air to External"; on = 1},/turf/simulated/floor,/area/atmos) -"cgY" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_on"; name = "Air to Distro"; on = 1},/turf/simulated/floor,/area/atmos) -"cgZ" = (/obj/machinery/atmospherics/binary/pump{dir = 2; icon_state = "intact_on"; name = "External to Filter"; on = 1},/turf/simulated/floor,/area/atmos) +"cgX" = (/obj/machinery/atmospherics/valve/digital{name = "CO2 Outlet Valve"},/turf/simulated/floor{dir = 6; icon_state = "yellow"},/area/atmos) +"cgY" = (/obj/machinery/atmospherics/valve/digital{name = "Gas Mix Outlet Valve"},/turf/simulated/floor{icon_state = "green"; dir = 6},/area/atmos) +"cgZ" = (/obj/machinery/atmospherics/binary/pump{dir = 8; name = "Port to Mix"},/turf/simulated/floor,/area/atmos) "cha" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor,/area/atmos) "chb" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine/drone_fabrication) "chc" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area) "chd" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area) "che" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/solar/port) "chf" = (/obj/structure/disposalpipe/sortjunction{dir = 1; name = "Sorting Office"; sortType = "Sorting Office"},/turf/simulated/floor,/area/quartermaster/office) -"chg" = (/obj/machinery/atmospherics/binary/pump{dir = 0; icon_state = "intact_on"; name = "Waste In"; on = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/atmos) +"chg" = (/obj/machinery/camera{c_tag = "Atmospherics South"; dir = 1},/obj/machinery/atmospherics/valve/digital{name = "Gas Mix Inlet Valve"},/turf/simulated/floor{dir = 10; icon_state = "green"},/area/atmos) "chh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/workshop) "chi" = (/obj/structure/extinguisher_cabinet{pixel_x = 25},/turf/simulated/floor,/area/engine/workshop) "chj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engine/hallway) @@ -5799,13 +5799,13 @@ "chA" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/closet/crate,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/turf/simulated/floor,/area/engine/workshop) "chB" = (/turf/simulated/wall/r_wall,/area/engine/engineering_monitoring) "chC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/engine/drone_fabrication) -"chD" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 1; frequency = 1441; icon_state = "on"; id = "tox_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "phoron floor"; nitrogen = 0; oxygen = 0; phoron = 70000},/area/atmos) +"chD" = (/obj/machinery/atmospherics/valve/digital{name = "N2O Outlet Valve"},/turf/simulated/floor{icon_state = "escape"; dir = 6},/area/atmos) "chE" = (/obj/machinery/space_heater,/turf/simulated/floor,/area/atmos) -"chF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Monitoring Room"; req_access_txt = "11"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/engineering_monitoring) +"chF" = (/obj/machinery/atmospherics/valve/digital{name = "Phoron Outlet Valve"},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/atmos) "chG" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/pipe/simple/visible/yellow,/turf/simulated/floor,/area/atmos) "chH" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/turf/simulated/floor,/area/atmos) "chI" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/turf/simulated/floor,/area/atmos) -"chJ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "tox_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "phoron floor"; nitrogen = 0; oxygen = 0; phoron = 70000},/area/atmos) +"chJ" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engine/hallway) "chK" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/atmos) "chL" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/simulated/floor,/area/atmos) "chM" = (/obj/machinery/computer/shuttle_control/research,/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) @@ -5813,15 +5813,15 @@ "chO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "chP" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "tox_sensor"},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "phoron floor"; nitrogen = 0; oxygen = 0; phoron = 70000},/area/atmos) "chQ" = (/obj/machinery/light/small{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/engine,/area/rnd/xenobiology) -"chR" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_off"; name = "Filter to Waste"; on = 0},/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/turf/simulated/floor,/area/atmos) -"chS" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_off"; name = "Mix to Filter"; on = 0},/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/turf/simulated/floor,/area/atmos) -"chT" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/obj/machinery/meter,/turf/simulated/floor,/area/atmos) -"chU" = (/obj/machinery/atmospherics/trinary/mixer{dir = 8; icon_state = "intact_on"; name = "Gas mixer (N2/O2)"; node1_concentration = 0.8; node2_concentration = 0.2; on = 1; pixel_x = 0; pixel_y = 0; req_access = null; target_pressure = 4500},/turf/simulated/floor,/area/atmos) +"chR" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/hallway) +"chS" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/engine/hallway) +"chT" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 140; icon_state = "map_vent_out"; on = 1; pressure_checks = 0},/turf/simulated/floor/plating/airless,/area) +"chU" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "incinerator_access_control"; name = "Incinerator airlock control"; pixel_x = -8; pixel_y = 24},/obj/structure/sign/fire{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/binary/pump/on{dir = 1},/turf/simulated/floor/plating,/area/maintenance/incinerator) "chV" = (/turf/simulated/floor/engine{carbon_dioxide = 0; name = "phoron floor"; nitrogen = 0; oxygen = 0; phoron = 70000},/area/atmos) "chW" = (/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/solar/starboard) "chX" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/obj/machinery/meter,/turf/simulated/floor,/area/atmos) "chY" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan,/turf/simulated/floor,/area/atmos) -"chZ" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_off"; name = "N2 to Pure"; on = 0},/turf/simulated/floor,/area/atmos) +"chZ" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; layer = 3.1; master_tag = "incinerator_access_control"; name = "Incinerator airlock control"; pixel_x = 10; pixel_y = -22},/obj/structure/sign/fire{pixel_x = -32; pixel_y = 0},/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/binary/pump/on,/turf/simulated/floor/plating,/area/maintenance/incinerator) "cia" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 10},/turf/simulated/floor,/area/atmos) "cib" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/turf/simulated/floor,/area/atmos) "cic" = (/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/simulated/floor,/area/atmos) @@ -5839,7 +5839,7 @@ "cio" = (/obj/machinery/power/monitor{name = "Main Power Grid Monitoring"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/engine/engineering_monitoring) "cip" = (/obj/machinery/atmospherics/tvalve/mirrored/digital{dir = 8},/turf/simulated/floor,/area/atmos) "ciq" = (/obj/machinery/atmospherics/pipe/manifold4w/visible/scrubbers,/turf/simulated/floor,/area/atmos) -"cir" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_off"; name = "Mix to Distro"; on = 0},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/atmos) +"cir" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engine Monitoring Room"; req_access_txt = "11"},/turf/simulated/floor,/area/engine/engine_monitoring) "cis" = (/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers,/turf/simulated/floor,/area/atmos) "cit" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/atmos) "ciu" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/atmos) @@ -5860,7 +5860,7 @@ "ciJ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor,/area/engine/engine_monitoring) "ciK" = (/obj/machinery/door/poddoor{desc = "By gods, release the hounds!"; id = "xenobioout6"; name = "Containment Release"},/turf/simulated/floor/engine,/area/rnd/xenobiology) "ciL" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgery2) -"ciM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engine/hallway) +"ciM" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 1; frequency = 1441; icon_state = "map_injector"; id = "co2_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) "ciN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/asmaint) "ciO" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/starboard) "ciP" = (/turf/simulated/floor/plating/airless,/area/solar/starboard) @@ -5868,10 +5868,10 @@ "ciR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engine/workshop) "ciS" = (/obj/structure/closet/secure_closet/engineering_welding,/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/turf/simulated/floor,/area/engine/workshop) "ciT" = (/obj/structure/closet/secure_closet/engineering_electrical,/turf/simulated/floor,/area/engine/workshop) -"ciU" = (/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/turf/simulated/floor,/area/atmos) +"ciU" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "map_vent_in"; id_tag = "co2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) "ciV" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor,/area/atmos) -"ciW" = (/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/turf/simulated/floor,/area/atmos) -"ciX" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_off"; name = "O2 to Pure"; on = 0},/turf/simulated/floor,/area/atmos) +"ciW" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 1; frequency = 1441; icon_state = "map_injector"; id = "n2o_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) +"ciX" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "map_vent_in"; id_tag = "n2o_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "ciY" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/obj/machinery/meter,/turf/simulated/floor,/area/atmos) "ciZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/maintenance/asmaint) "cja" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) @@ -5880,15 +5880,15 @@ "cjd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/yellow,/turf/simulated/floor,/area/atmos) "cje" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor,/area/atmos) "cjf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/cyan,/turf/simulated/floor,/area/atmos) -"cjg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor,/area/atmos) -"cjh" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_off"; name = "Pure to Mix"; on = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/atmos) +"cjg" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 1; frequency = 1441; icon_state = "map_injector"; id = "tox_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "phoron floor"; nitrogen = 0; oxygen = 0; phoron = 70000},/area/atmos) +"cjh" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "map_vent_in"; id_tag = "tox_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "phoron floor"; nitrogen = 0; oxygen = 0; phoron = 70000},/area/atmos) "cji" = (/obj/machinery/atmospherics/pipe/simple/visible/green,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/atmos) "cjj" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/atmos) "cjk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/engine/workshop) "cjl" = (/obj/machinery/atmospherics/pipe/simple/visible/green,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/atmos) "cjm" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/engine/workshop) "cjn" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/engine/hallway) -"cjo" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Workshop"; req_access_txt = "11"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/workshop) +"cjo" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "map_vent_in"; id_tag = "waste_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "cjp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/reception) "cjq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/engine/hallway) "cjr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor,/area/engine/hallway) @@ -5900,7 +5900,7 @@ "cjx" = (/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/surgeryprep) "cjy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cjz" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plating,/area/engine/storage_hard) -"cjA" = (/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/machinery/door/airlock/engineering{name = "Engineering Hard Storage"; req_access_txt = "11"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/engine/workshop) +"cjA" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 1; frequency = 1441; icon_state = "map_injector"; id = "waste_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "cjB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/atmos) "cjC" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/atmos) "cjD" = (/obj/structure/table,/obj/item/weapon/autopsy_scanner,/obj/item/weapon/scalpel,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/morgue) @@ -5917,14 +5917,14 @@ "cjO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor,/area/atmos) "cjP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/unary/heat_reservoir/heater{dir = 2; icon_state = "heater"},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/atmos) "cjQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 2; icon_state = "freezer"},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/atmos) -"cjR" = (/obj/machinery/atmospherics/binary/pump{dir = 2; icon_state = "intact_off"; name = "Filter to Port"; on = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/atmos) -"cjS" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_off"; name = "Port to Filter"; on = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/atmos) +"cjR" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cjS" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; icon_state = "map_vent_in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'VACUUM'"; icon_state = "space"; layer = 4; name = "VACUUM"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator) "cjT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor,/area/engine/hallway) "cjU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light,/turf/simulated/floor,/area/engine/hallway) "cjV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/engine/hallway) "cjW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cjX" = (/turf/simulated/wall/r_wall,/area/engine/storage_hard) -"cjY" = (/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics"; req_access_txt = "24"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/atmos) +"cjY" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 1; frequency = 1443; icon_state = "map_injector"; id = "air_in"; on = 1},/obj/machinery/sparker{id = "Incinerator"; pixel_x = -20},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator) "cjZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/turf/simulated/floor,/area/atmos) "cka" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/engine/workshop) "ckb" = (/turf/simulated/wall,/area/medical/exam_room) @@ -5937,14 +5937,14 @@ "cki" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/turf/simulated/floor,/area/atmos) "ckj" = (/obj/machinery/light,/turf/simulated/floor,/area/atmos) "ckk" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/atmos) -"ckl" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/turf/simulated/floor,/area/atmos) -"ckm" = (/obj/machinery/atmospherics/pipe/manifold/visible/green{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/turf/simulated/floor,/area/atmos) -"ckn" = (/obj/machinery/atmospherics/pipe/manifold/visible/green{tag = "icon-manifold (EAST)"; icon_state = "manifold"; dir = 4},/turf/simulated/floor,/area/atmos) -"cko" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_off"; name = "Air to Mix"; on = 0},/turf/simulated/floor,/area/atmos) +"ckl" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"ckm" = (/obj/machinery/atmospherics/trinary/filter{dir = 8; filter_type = 2; icon_state = "map"; name = "Gas filter (N2 tank)"; on = 1},/turf/simulated/floor,/area/atmos) +"ckn" = (/obj/machinery/atmospherics/trinary/filter{dir = 8; filter_type = 1; icon_state = "map"; name = "Gas filter (O2 tank)"; on = 1},/turf/simulated/floor,/area/atmos) +"cko" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 8; icon_state = "map"; tag = "icon-manifold (WEST)"},/turf/simulated/floor,/area/atmos) "ckp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor,/area/atmos) "ckq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/engine/atmos_monitoring) "ckr" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/obj/effect/landmark/start{name = "Captain"},/obj/machinery/door_control{desc = "A remote control-switch for the office door."; id = "captaindoor"; name = "Door Control"; normaldoorcontrol = 1; pixel_x = -15; pixel_y = 30; req_access_txt = "20"},/turf/simulated/floor/wood,/area/crew_quarters/captain) -"cks" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/assembly/chargebay) +"cks" = (/obj/machinery/atmospherics/pipe/manifold/visible/supply{dir = 4; icon_state = "map"; tag = "icon-manifold (EAST)"},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/atmos) "ckt" = (/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/medical/morgue) "cku" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor,/area/engine/atmos_monitoring) "ckv" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/atmos) @@ -5965,16 +5965,16 @@ "ckK" = (/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/newscaster{pixel_y = 30},/turf/simulated/floor,/area/engine/hallway) "ckL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "ckM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/atmos) -"ckN" = (/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics"; req_access_txt = "24"},/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/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/atmos) +"ckN" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/obj/machinery/atmospherics/binary/pump{dir = 8; name = "Distro to Waste"},/turf/simulated/floor,/area/atmos) "ckO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engine/workshop) "ckP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engine/workshop) "ckQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engine/hallway) "ckR" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/quartermaster/office) -"ckS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Workshop"; req_access_txt = "11"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/workshop) +"ckS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{dir = 2; icon_state = "green"},/area/medical/virologyaccess) "ckT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/engine/storage_hard) "ckU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/plating,/area/engine/storage_hard) "ckV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor,/area/engine/workshop) -"ckW" = (/obj/machinery/door/airlock/engineering{name = "Engineering Hard Storage"; req_access_txt = "11"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engine/workshop) +"ckW" = (/obj/machinery/atmospherics/valve/digital/open{name = "Mixed Air Outlet Valve"},/turf/simulated/floor{dir = 9; icon_state = "arrival"},/area/atmos) "ckX" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/engine/storage_hard) "ckY" = (/turf/simulated/floor,/area/medical/surgeryprep) "ckZ" = (/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/medical/virology) @@ -5991,8 +5991,8 @@ "clk" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/airless,/area) "cll" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio3"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/rnd/xenobiology) "clm" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio3"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/rnd/xenobiology) -"cln" = (/obj/machinery/atmospherics/pipe/manifold/visible{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/turf/simulated/floor,/area/atmos) -"clo" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/obj/machinery/door/airlock/atmos{name = "Atmospherics Storage"; req_access_txt = "24"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/atmos) +"cln" = (/obj/machinery/atmospherics/valve/digital/open{name = "Nitrogen Outlet Valve"},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/atmos) +"clo" = (/obj/machinery/atmospherics/valve/digital/open{name = "Oxygen Outlet Valve"},/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/atmos) "clp" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/turf/simulated/floor,/area/atmos) "clq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/atmos) "clr" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "yellow"},/area/engine/hallway) @@ -6013,7 +6013,7 @@ "clG" = (/obj/machinery/atmospherics/pipe/simple/visible/green,/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/turf/simulated/floor,/area/atmos) "clH" = (/obj/machinery/power/emitter,/turf/simulated/floor/plating,/area/engine/storage_hard) "clI" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow,/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/turf/simulated/floor,/area/atmos) -"clJ" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_off"; name = "Pure to Port"; on = 0},/turf/simulated/floor,/area/atmos) +"clJ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/engine/atmos_monitoring) "clK" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 6},/turf/simulated/floor,/area/atmos) "clL" = (/obj/machinery/power/rad_collector,/turf/simulated/floor/plating,/area/engine/storage_hard) "clM" = (/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 = "0"; req_one_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"}) @@ -6021,13 +6021,13 @@ "clO" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 1; icon_state = "whitegreencorner"},/area/rnd/xenobiology) "clP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/rnd/xenobiology) "clQ" = (/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) -"clR" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/engine/atmos_monitoring) +"clR" = (/obj/machinery/atmospherics/binary/pump/on{dir = 1; name = "Air to External"},/turf/simulated/floor,/area/atmos) "clS" = (/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/turf/simulated/floor{dir = 5; icon_state = "blue"},/area/medical/morgue) "clT" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/turf/simulated/floor,/area/atmos) "clU" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor,/area/atmos) "clV" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/atmos) "clW" = (/obj/machinery/computer/atmos_alert,/turf/simulated/floor,/area/engine/atmos_monitoring) -"clX" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{tag = "icon-intact-f (SOUTHEAST)"; icon_state = "intact-f"; dir = 6},/turf/simulated/wall/r_wall,/area/atmos) +"clX" = (/obj/machinery/atmospherics/binary/pump/on{dir = 1; name = "Air to Distro"},/turf/simulated/floor,/area/atmos) "clY" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor,/area/engine/workshop) "clZ" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plating/airless,/area) "cma" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/simulated/floor,/area/engine/atmos_monitoring) @@ -6043,13 +6043,13 @@ "cmk" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/newscaster{pixel_x = 28; pixel_y = 3},/turf/simulated/floor,/area/engine/workshop) "cml" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/engine/storage_hard) "cmm" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow,/turf/simulated/floor,/area/atmos) -"cmn" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_off"; name = "Air to Port"; on = 0},/turf/simulated/floor,/area/atmos) +"cmn" = (/obj/machinery/atmospherics/binary/pump/on{name = "External to Filter"},/turf/simulated/floor,/area/atmos) "cmo" = (/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/construction) -"cmp" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (NORTHWEST)"; icon_state = "intact-f"; dir = 9},/turf/simulated/floor,/area/hallway/primary/aft) +"cmp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/binary/pump/on{name = "Waste In"},/turf/simulated/floor,/area/atmos) "cmq" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/weapon/storage/box/syringes,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cmr" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/weapon/storage/box/beakers{pixel_x = -1; pixel_y = -1; pixel_x = 2; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cms" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) -"cmt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{dir = 2; icon_state = "green"},/area/medical/virologyaccess) +"cmt" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Operating Theatre 2 Maintenance Access"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/medical/surgery2) "cmu" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/light,/obj/machinery/door_control{desc = "A remote control-switch for shutters."; id = "virologyquar"; name = "Virology Emergency Lockdown Control"; pixel_x = 0; pixel_y = -28; req_access_txt = "5"},/turf/simulated/floor{dir = 8; icon_state = "greencorner"},/area/medical/virologyaccess) "cmv" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light,/turf/simulated/floor{dir = 2; icon_state = "greencorner"},/area/medical/virologyaccess) "cmw" = (/obj/machinery/smartfridge/secure/virology,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) @@ -6057,7 +6057,7 @@ "cmy" = (/obj/machinery/light{dir = 1},/obj/machinery/computer/centrifuge,/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = 29},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cmz" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 26},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cmA" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/construction) -"cmB" = (/obj/machinery/door/airlock/engineering{name = "Engineering Washroom"; req_one_access_txt = "11;24"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"},/area/crew_quarters/sleep/engi) +"cmB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics Monitoring Room"; req_access_txt = "24"},/turf/simulated/floor,/area/atmos) "cmC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/aft) "cmD" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/turf/simulated/floor/engine,/area/rnd/xenobiology) "cmE" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen"; req_access_txt = "55"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/rnd/xenobiology) @@ -6066,19 +6066,19 @@ "cmH" = (/obj/machinery/atmospherics/valve,/turf/simulated/floor/plating,/area/maintenance/asmaint) "cmI" = (/obj/machinery/light{dir = 1},/obj/structure/closet/secure_closet/medical1,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/exam_room) "cmJ" = (/turf/simulated/wall/r_wall,/area/engine/atmos_monitoring) -"cmK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/shuttle/plating,/area/medical/research{name = "Research Division"}) +"cmK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Monitoring Room"; req_access_txt = "11"},/turf/simulated/floor,/area/engine/engineering_monitoring) "cmL" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/solar/port) "cmM" = (/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/airless,/area/maintenance/portsolar) "cmN" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"cmO" = (/obj/machinery/atmospherics/binary/pump{dir = 2; icon_state = "intact_on"; on = 1},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; layer = 3.1; master_tag = "incinerator_access_control"; name = "Incinerator airlock control"; pixel_x = 10; pixel_y = -22},/obj/structure/sign/fire{pixel_x = -32; pixel_y = 0},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/incinerator) -"cmP" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_on"; on = 1},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "incinerator_access_control"; name = "Incinerator airlock control"; pixel_x = -8; pixel_y = 24},/obj/structure/sign/fire{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/incinerator) +"cmO" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Filter to Waste"},/turf/simulated/floor,/area/atmos) +"cmP" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Mix to Filter"},/turf/simulated/floor,/area/atmos) "cmQ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/plating/airless,/area) "cmR" = (/turf/simulated/floor/plating/airless,/area/maintenance/asmaint) "cmS" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "virology_airlock"; name = "exterior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "13"},/turf/simulated/floor/plating/airless,/area/maintenance/asmaint) "cmT" = (/turf/simulated/wall,/area/medical/reception) "cmU" = (/obj/structure/stool,/obj/machinery/camera{c_tag = "Medbay Examination Room"; network = list("SS13")},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/exam_room) "cmV" = (/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"}) -"cmW" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/medical/research{name = "Research Division"}) +"cmW" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 1; icon_state = "map"; tag = "icon-manifold (NORTH)"},/obj/machinery/meter,/turf/simulated/floor,/area/atmos) "cmX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/engine,/area/rnd/xenobiology) "cmY" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/engine,/area/rnd/xenobiology) "cmZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/rnd/xenobiology) @@ -6099,7 +6099,7 @@ "cno" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Pre-Op Prep Room Maintenance Access"; req_access_txt = "45"},/turf/simulated/floor/plating,/area/medical/surgeryprep) "cnp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"},/area/crew_quarters/sleep/engi) "cnq" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"},/area/crew_quarters/sleep/engi) -"cnr" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) +"cnr" = (/obj/machinery/atmospherics/trinary/mixer{dir = 8; icon_state = "map"; name = "Gas mixer (N2/O2)"; node1_concentration = 0.8; node2_concentration = 0.2; on = 1; pixel_x = 0; pixel_y = 0; req_access = null; target_pressure = 4500},/turf/simulated/floor,/area/atmos) "cns" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags{pixel_x = 1; pixel_y = 2},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "cnt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cnu" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor{dir = 9; icon_state = "warnwhite"},/area/medical/virology) @@ -6111,9 +6111,9 @@ "cnA" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/plating,/area/engine/storage_hard) "cnB" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/engine/break_room) "cnC" = (/obj/machinery/newscaster{pixel_x = 31; pixel_y = 3},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"cnD" = (/obj/machinery/atmospherics/portables_connector{layer = 2},/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/aft) -"cnE" = (/obj/machinery/atmospherics/portables_connector{layer = 2},/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/hallway/primary/aft) -"cnF" = (/obj/machinery/atmospherics/portables_connector{layer = 2},/obj/machinery/portable_atmospherics/pump,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/aft) +"cnD" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "N2 to Pure"},/turf/simulated/floor,/area/atmos) +"cnE" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgery) +"cnF" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgery2) "cnG" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medical Equipment"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "cnH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/computer/security/engineering,/turf/simulated/floor,/area/engine/atmos_monitoring) "cnI" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor,/area/engine/atmos_monitoring) @@ -6153,7 +6153,7 @@ "coq" = (/obj/machinery/optable{name = "Xenobiology Operating Table"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/rnd/xenobiology) "cor" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cos" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/reagentgrinder,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) -"cot" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/clothing/gloves/latex,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) +"cot" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/binary/pump{name = "Mix to Distro"},/turf/simulated/floor,/area/atmos) "cou" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cov" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cow" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/smartfridge/secure/extract,/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/rnd/xenobiology) @@ -6167,7 +6167,7 @@ "coE" = (/obj/structure/table/reinforced,/obj/item/weapon/packageWrap,/obj/item/weapon/hand_labeler,/turf/simulated/floor,/area/hallway/primary/aft) "coF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "coG" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Virology Laboratory"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "delivery"},/area/medical/virology) -"coH" = (/obj/machinery/door/airlock/engineering{name = "Construction Area"; req_access_txt = "32"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/construction) +"coH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engine/hallway) "coI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/construction) "coJ" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Virology Laboratory"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "delivery"},/area/medical/virology) "coK" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio1"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/turf/simulated/floor/engine,/area/rnd/xenobiology) @@ -6180,7 +6180,7 @@ "coR" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/solar/starboard) "coS" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/solar/port) "coT" = (/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/rnd/xenobiology/xenoflora) -"coU" = (/obj/structure/table,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel{pixel_y = 12},/turf/simulated/floor,/area/rnd/xenobiology) +"coU" = (/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{dir = 8; icon_state = "map"; tag = "icon-manifold (WEST)"},/turf/simulated/floor,/area/atmos) "coV" = (/obj/machinery/shield_capacitor,/turf/simulated/floor/plating,/area/engine/storage_hard) "coW" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor,/area/engine/locker_room) "coX" = (/obj/machinery/recharge_station,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_cyborg_station) @@ -6192,16 +6192,16 @@ "cpd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor,/area/hallway/primary/aft) "cpe" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/engine/locker_room) "cpf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/engine/locker_room) -"cpg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Locker Room"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/locker_room) +"cpg" = (/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{dir = 1; icon_state = "map"; tag = "icon-manifold (NORTH)"},/turf/simulated/floor,/area/atmos) "cph" = (/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/construction) "cpi" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/construction) -"cpj" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "solar_xeno_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "10;13"},/obj/machinery/atmospherics/pipe/manifold/visible{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) +"cpj" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "O2 to Pure"},/turf/simulated/floor,/area/atmos) "cpk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = -32},/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/rnd/xenobiology) "cpl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cpm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) -"cpn" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 1; frequency = 1443; icon_state = "on"; id = "air_in"; on = 1},/obj/machinery/sparker{id = "Incinerator"; pixel_x = -20},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator) +"cpn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Pure to Mix"},/turf/simulated/floor,/area/atmos) "cpo" = (/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator) -"cpp" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; icon_state = "in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'VACUUM'"; icon_state = "space"; layer = 4; name = "VACUUM"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator) +"cpp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Workshop"; req_access_txt = "11"},/turf/simulated/floor,/area/engine/workshop) "cpq" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/asmaint) "cpr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = -32; req_access_txt = "0"},/turf/simulated/floor,/area/rnd/xenobiology) "cps" = (/obj/structure/stool,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/reception) @@ -6226,13 +6226,13 @@ "cpL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 8; icon_state = "yellowcorner"},/area/hallway/primary/aft) "cpM" = (/obj/machinery/light{dir = 1},/obj/machinery/disposal,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/exam_room) "cpN" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/medical/morgue) -"cpO" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (NORTHWEST)"; icon_state = "intact-f"; dir = 9},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/hallway/primary/aft) +"cpO" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/engineering{name = "Engineering Hard Storage"; req_access_txt = "11"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/engine/workshop) "cpP" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/lattice,/turf/space,/area) -"cpQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{tag = "icon-manifold-f (WEST)"; icon_state = "manifold-f"; dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/hallway/primary/aft) +"cpQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/binary/pump{name = "Filter to Port"},/turf/simulated/floor,/area/atmos) "cpR" = (/obj/structure/disposalpipe/segment,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor,/area/construction) "cpS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/hallway/primary/aft) "cpT" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/hallway/primary/aft) -"cpU" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering EVA Storage"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/engine/engine_eva) +"cpU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Port to Filter"},/turf/simulated/floor,/area/atmos) "cpV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/engine/engine_eva) "cpW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/asmaint) "cpX" = (/obj/structure/closet/crate,/obj/item/weapon/beach_ball/holoball,/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/floor/plating,/area/construction) @@ -6256,16 +6256,16 @@ "cqp" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/machinery/meter{frequency = 1443; id = "mair_in_meter"; name = "Mixed Air Tank In"},/turf/simulated/wall/r_wall,/area/atmos) "cqq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/construction) "cqr" = (/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/construction) -"cqs" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/obj/machinery/light,/turf/simulated/floor,/area/hallway/primary/aft) -"cqt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor{dir = 4; icon_state = "loadingarea"},/area/hallway/primary/aft) -"cqu" = (/obj/machinery/door/window/eastright{name = "Engineering Delivery"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (SOUTHEAST)"; icon_state = "intact-f"; dir = 6},/turf/simulated/floor{icon_state = "delivery"},/area/hallway/primary/aft) +"cqs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/simulated/floor,/area/atmos) +"cqt" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/clothing/gloves/latex,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/item/device/slime_scanner,/obj/item/device/slime_scanner,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) +"cqu" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow{dir = 8; icon_state = "map"; tag = "icon-manifold (WEST)"},/turf/simulated/floor,/area/atmos) "cqv" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "Engineering"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor{icon_state = "bot"},/area/hallway/primary/aft) "cqw" = (/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/simple/hidden/supply,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/hallway/primary/aft) "cqx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/effect/landmark/start{name = "Cyborg"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_cyborg_station) "cqy" = (/obj/machinery/light/small{dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = 28},/turf/simulated/floor,/area/construction) "cqz" = (/obj/machinery/door/window/eastright{name = "Engineering Reception Desk"; req_one_access_txt = "11;24"},/obj/machinery/light,/turf/simulated/floor,/area/hallway/primary/aft) -"cqA" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) -"cqB" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/obj/machinery/requests_console{announcementConsole = 0; department = "Engineering"; departmentType = 4; name = "Engineering RC"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor,/area/hallway/primary/aft) +"cqA" = (/obj/machinery/atmospherics/pipe/manifold/visible/green{dir = 1; icon_state = "map"; tag = "icon-manifold (NORTH)"},/turf/simulated/floor,/area/atmos) +"cqB" = (/obj/machinery/atmospherics/pipe/manifold/visible/green{dir = 4; icon_state = "map"; tag = "icon-manifold (EAST)"},/turf/simulated/floor,/area/atmos) "cqC" = (/obj/structure/closet/secure_closet/atmos_personal,/obj/item/weapon/tank/emergency_oxygen/engi,/turf/simulated/floor,/area/engine/locker_room) "cqD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{dir = 1; icon_state = "bluecorner"},/area/medical/surgeryprep) "cqE" = (/obj/structure/cable,/obj/machinery/power/tracker,/turf/simulated/floor/plating/airless,/area/solar/starboard) @@ -6289,15 +6289,15 @@ "cqW" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Virology Access"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/medical/virologyaccess) "cqX" = (/obj/structure/sign/biohazard,/turf/simulated/wall,/area/medical/virologyaccess) "cqY" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/reception) -"cqZ" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 2; frequency = 1441; icon_state = "on"; id = "n2_in"; on = 1},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) -"cra" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) -"crb" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 2; frequency = 1441; icon_state = "on"; id = "o2_in"; on = 1},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) -"crc" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "o2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) +"cqZ" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Air to Mix"},/turf/simulated/floor,/area/atmos) +"cra" = (/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/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/simulated/floor,/area/atmos) +"crb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Workshop"; req_access_txt = "11"},/turf/simulated/floor,/area/engine/workshop) +"crc" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/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/door/airlock/engineering{name = "Engineering Hard Storage"; req_access_txt = "11"},/turf/simulated/floor,/area/engine/workshop) "crd" = (/obj/structure/closet/crate,/obj/item/stack/sheet/glass{amount = 50},/turf/simulated/floor/plating,/area/construction) -"cre" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 2; frequency = 1443; icon_state = "on"; id = "air_in"; on = 1},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) +"cre" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "greencorner"},/area/medical/virology) "crf" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Chemist"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"},/area/medical/chemistry) -"crg" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; external_pressure_bound = 0; frequency = 1443; icon_state = "in"; id_tag = "air_out"; internal_pressure_bound = 2000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) -"crh" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Locker Room"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/locker_room) +"crg" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1; icon_state = "map"; tag = "icon-manifold (NORTH)"},/turf/simulated/floor,/area/atmos) +"crh" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/atmos{name = "Atmospherics Storage"; req_access_txt = "24"},/turf/simulated/floor,/area/atmos) "cri" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engine/locker_room) "crj" = (/turf/simulated/wall/r_wall,/area/engine/engine_smes) "crk" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor,/area/engine/locker_room) @@ -6307,7 +6307,7 @@ "cro" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/stool/bed/chair/wheelchair,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/exam_room) "crp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/medical/morgue) "crq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engine/locker_room) -"crr" = (/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/engineering,/obj/machinery/door/window/southleft{name = "Engineering Hardsuits"; req_access_txt = "11"},/obj/structure/rack{dir = 8; layer = 2.6},/turf/simulated/floor,/area/engine/engine_eva) +"crr" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Pure to Port"},/turf/simulated/floor,/area/atmos) "crs" = (/obj/structure/table,/obj/item/device/camera{name = "Autopsy Camera"; pixel_x = -2; pixel_y = 7},/obj/item/weapon/paper_bin{pixel_y = -6},/obj/item/weapon/pen/red{pixel_x = -1; pixel_y = -9},/obj/item/weapon/pen/blue{pixel_x = 3; pixel_y = -5},/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/medical/morgue) "crt" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central) "cru" = (/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/engine/engine_eva) @@ -6318,19 +6318,19 @@ "crz" = (/obj/machinery/computer/station_alert,/turf/simulated/floor,/area/hallway/primary/aft) "crA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 1; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/reception) "crB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/reception) -"crC" = (/obj/structure/rack{dir = 8; layer = 2.6},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/engineering,/obj/machinery/light{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/southleft{name = "Engineering Hardsuits"; req_access_txt = "11"},/turf/simulated/floor,/area/engine/engine_eva) +"crC" = (/obj/structure/table,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel{pixel_y = 12},/turf/simulated/floor,/area/rnd/xenobiology) "crD" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/table/reinforced,/obj/machinery/door_control{id = "chemcounter"; name = "Pharmacy Counter Lockdown Control"; pixel_y = 25},/obj/machinery/reagentgrinder,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "crE" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor,/area/engine/engine_eva) "crF" = (/obj/structure/table,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/item/weapon/storage/box/cups{pixel_x = 0; pixel_y = 0},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/reception) "crG" = (/obj/structure/sign/chemistry,/turf/simulated/wall/r_wall,/area/medical/chemistry) -"crH" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 140; icon_state = "out"; on = 1; pressure_checks = 0},/turf/simulated/floor/plating/airless,/area) +"crH" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 6; icon_state = "intact"; tag = "icon-intact-f (SOUTHEAST)"},/turf/simulated/wall/r_wall,/area/atmos) "crI" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HOT EXHAUST'."; name = "\improper HOT EXHAUST"; pixel_x = -32},/turf/simulated/floor/plating/airless,/area) "crJ" = (/obj/machinery/door/poddoor{dir = 4; id = "disvent"; name = "Incinerator Vent"},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator) "crK" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/storage/emergency) "crL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/rnd/test_area) "crM" = (/obj/structure/reagent_dispensers/water_cooler,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/turf/simulated/floor{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/medical/reception) "crN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "solar_xeno_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/plating,/area/maintenance/starboardsolar) -"crO" = (/obj/machinery/meter{frequency = 1443; id = "dloop_atm_meter"; name = "Distribution Loop"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/visible/supply{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/turf/simulated/floor,/area/atmos) +"crO" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Air to Port"},/turf/simulated/floor,/area/atmos) "crP" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/obj/machinery/meter{frequency = 1443; id = "wloop_atm_meter"; name = "Waste Loop"},/turf/simulated/floor,/area/atmos) "crQ" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "specops_dock_airlock"; pixel_x = 0; pixel_y = 30; req_access_txt = "0"; req_one_access_txt = "13"; tag_airpump = "specops_dock_pump"; tag_chamber_sensor = "specops_dock_sensor"; tag_exterior_door = "specops_dock_outer"; tag_interior_door = "specops_dock_inner"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "specops_dock_sensor"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "specops_dock_pump"},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "crR" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/hallway/primary/central) @@ -6341,7 +6341,7 @@ "crW" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_dock_outer"; locked = 1; name = "Docking Port Airlock"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "crX" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/decal/cleanable/blood/oil{amount = 0},/turf/simulated/floor/plating,/area/maintenance/asmaint) "crY" = (/obj/machinery/computer/atmos_alert,/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor,/area/engine/engineering_monitoring) -"crZ" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_dock_inner"; locked = 1; name = "Docking Port Airlock"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"crZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/hallway/primary/aft) "csa" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor,/area/engine/engineering_monitoring) "csb" = (/obj/structure/closet/toolcloset,/obj/machinery/light{dir = 1},/obj/item/device/flashlight,/turf/simulated/floor,/area/engine/workshop) "csc" = (/obj/structure/closet/toolcloset,/obj/item/device/flashlight,/turf/simulated/floor,/area/engine/workshop) @@ -6352,7 +6352,7 @@ "csh" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/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/atmos) "csi" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "csj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"csk" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "specops_dock_airlock"; name = "interior access button"; pixel_x = -30; pixel_y = 25; req_access_txt = "0"; req_one_access_txt = "13"},/obj/machinery/atmospherics/pipe/manifold/hidden{tag = "icon-manifold-f (EAST)"; icon_state = "manifold-f"; dir = 4},/turf/simulated/floor,/area/hallway/secondary/entry) +"csk" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/hallway/primary/aft) "csl" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) "csm" = (/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},/turf/simulated/floor/plating,/area/engine/engine_eva) "csn" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/central) @@ -6361,20 +6361,20 @@ "csq" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "csr" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "medbayquar"; name = "Medbay Emergency Quarantine Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/medical/reception) "css" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "medbayquar"; name = "Medbay Emergency Quarantine Shutters"; opacity = 0},/turf/simulated/floor{dir = 5; icon_state = "whiteblue"},/area/medical/reception) -"cst" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access_txt = "11;24"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/hallway) -"csu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access_txt = "11;24"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/hallway) -"csv" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access_txt = "11;24"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/hallway) +"cst" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/glass_engineering{name = "Engineering EVA Storage"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/engine_eva) +"csu" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/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/door/airlock/engineering{name = "Engineering EVA Storage"; req_access_txt = "12"; req_one_access_txt = "11;24"},/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/engine_eva) +"csv" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/engineering{name = "Engineering Washroom"; req_one_access_txt = "11;24"},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"},/area/crew_quarters/sleep/engi) "csw" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/engine/workshop) -"csx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Workshop"; req_access_txt = "11"},/turf/simulated/floor,/area/engine/workshop) -"csy" = (/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Workshop"; req_access_txt = "11"},/turf/simulated/floor,/area/engine/workshop) +"csx" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology/xenoflora) +"csy" = (/obj/machinery/door/airlock/research{name = "Xenoflora Research"; req_access_txt = "47"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology/xenoflora) "csz" = (/obj/structure/extinguisher_cabinet{pixel_x = 25},/turf/simulated/floor,/area/construction) -"csA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access_txt = "12;24"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/atmos) -"csB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access_txt = "12;24"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/atmos) +"csA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) +"csB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "csC" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/turf/simulated/wall/r_wall,/area/atmos) "csD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/maintenance{name = "Atmospherics Maintenance Access"; req_access_txt = "12;24"},/turf/simulated/floor,/area/atmos) "csE" = (/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/door/window/northright{name = "Atmospherics Hardsuits"; req_access_txt = "24"},/turf/simulated/floor,/area/engine/engine_eva) "csF" = (/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},/turf/simulated/floor/plating,/area/engine/engineering_monitoring) -"csG" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Monitoring Room"; req_access_txt = "11"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/engineering_monitoring) +"csG" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology/xenoflora) "csH" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/engine/engineering_monitoring) "csI" = (/obj/machinery/light_construct,/obj/structure/rack,/obj/item/clothing/suit/storage/hazardvest,/obj/item/device/flashlight,/turf/simulated/floor,/area/construction) "csJ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "6"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/starboard) @@ -6537,7 +6537,7 @@ "cvK" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area) "cvL" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area) "cvM" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area) -"cvN" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area) +"cvN" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology/xenoflora) "cvO" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area) "cvP" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area) "cvQ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area) @@ -6796,7 +6796,7 @@ "cAJ" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "syndicate_elite"; name = "Front Hull Door"; opacity = 1},/turf/simulated/shuttle/plating,/area/shuttle/syndicate_elite/mothership) "cAK" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite/mothership) "cAL" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area) -"cAM" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area) +"cAM" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/aft) "cAN" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area) "cAO" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area) "cAP" = (/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite/mothership) @@ -6892,24 +6892,24 @@ "cCB" = (/obj/structure/table,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "cCC" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership) "cCD" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cCE" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/syndicate_station/start) +"cCE" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/hallway/primary/aft) "cCF" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start) "cCG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "cCH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "cCI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) -"cCJ" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/syndicate_station/start) +"cCJ" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/aft) "cCK" = (/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/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"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cCL" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "cCM" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "cCN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/medical/surgeryprep) "cCO" = (/obj/structure/table,/obj/item/weapon/stamp/captain,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "cCP" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area) -"cCQ" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cCR" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cCQ" = (/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/engineering,/obj/machinery/door/window/southleft{name = "Engineering Hardsuits"; req_access_txt = "11"},/obj/structure/rack{dir = 8; layer = 2.6},/turf/simulated/floor,/area/engine/engine_eva) +"cCR" = (/obj/structure/rack{dir = 8; layer = 2.6},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/engineering,/obj/machinery/light{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/southleft{name = "Engineering Hardsuits"; req_access_txt = "11"},/turf/simulated/floor,/area/engine/engine_eva) "cCS" = (/obj/structure/table,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/unsimulated/floor{dir = 6; icon_state = "whitegreen"},/area/centcom/holding) "cCT" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/camera{c_tag = "Central Hallway East"; dir = 4; network = list("SS13")},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central) -"cCU" = (/obj/structure/table,/obj/machinery/door_control{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cCV" = (/obj/structure/computerframe,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cCU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/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 = "white"},/area/rnd/xenobiology) +"cCV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cCW" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) "cCX" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership) "cCY" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership) @@ -6918,8 +6918,8 @@ "cDb" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "cDc" = (/turf/space,/area/shuttle/escape_pod5/centcom) "cDd" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area) -"cDe" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cDf" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cDe" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 6; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora) +"cDf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/engineering{name = "Construction Area"; req_access_txt = "32"},/turf/simulated/floor/plating,/area/construction) "cDg" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) "cDh" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership) "cDi" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership) @@ -6927,9 +6927,9 @@ "cDk" = (/obj/machinery/computer/shuttle,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "cDl" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "cDm" = (/obj/machinery/door/airlock/hatch{name = "Infirmary"; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac) -"cDn" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 10},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cDo" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cDp" = (/obj/structure/closet/syndicate/personal,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cDn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Locker Room"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/locker_room) +"cDo" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "solar_xeno_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "10;13"},/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8; icon_state = "map"; tag = "icon-manifold (WEST)"},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) +"cDp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering EVA Storage"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/engine_eva) "cDq" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership) "cDr" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "cDs" = (/obj/structure/sign/double/map/left{pixel_y = 32},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) @@ -6937,9 +6937,9 @@ "cDu" = (/obj/structure/table,/obj/machinery/microwave,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/syndicate_mothership) "cDv" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/syndicate_mothership) "cDw" = (/obj/structure/table,/obj/item/device/radio/off,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cDx" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_station/start) -"cDy" = (/obj/machinery/door/window{dir = 1; name = "Cockpit"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cDz" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_station/start) +"cDx" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) +"cDy" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/light,/turf/simulated/floor,/area/hallway/primary/aft) +"cDz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor{dir = 4; icon_state = "loadingarea"},/area/hallway/primary/aft) "cDA" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) "cDB" = (/obj/structure/stool/bed/chair/comfy/black,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "cDC" = (/obj/machinery/door/airlock/centcom{name = "Kitchen"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) @@ -6949,8 +6949,8 @@ "cDG" = (/obj/machinery/computer/crew,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "cDH" = (/obj/structure/stool/bed/chair{dir = 4; name = "Defense"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "cDI" = (/obj/machinery/computer/communications,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cDJ" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1331; id_tag = "synd_pump"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cDK" = (/obj/structure/closet,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cDJ" = (/obj/machinery/door/window/eastright{name = "Engineering Delivery"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 6; icon_state = "intact"; tag = "icon-intact-f (SOUTHEAST)"},/turf/simulated/floor{icon_state = "delivery"},/area/hallway/primary/aft) +"cDK" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor,/area/hallway/primary/aft) "cDL" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_surround"; dir = 8},/area/syndicate_mothership) "cDM" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 6},/area/syndicate_mothership) "cDN" = (/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership) @@ -6970,8 +6970,8 @@ "cEb" = (/obj/structure/urinal{pixel_y = 32},/obj/effect/decal/cleanable/vomit,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "cEc" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "cEd" = (/obj/machinery/sleeper,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) -"cEe" = (/obj/structure/closet/syndicate/personal,/obj/item/clothing/tie/storage/brown_vest,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cEf" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cEe" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor,/area/hallway/primary/aft) +"cEf" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/requests_console{announcementConsole = 0; department = "Engineering"; departmentType = 4; name = "Engineering RC"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor,/area/hallway/primary/aft) "cEg" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "synd_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "cEh" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) "cEi" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) @@ -6981,11 +6981,11 @@ "cEm" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -30; pixel_y = 0; req_access_txt = "0"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "cEn" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "cEo" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"cEp" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cEq" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cEr" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_closed"; id_tag = "synd_outer"; locked = 0; name = "Ship External Access"; req_access = null; req_access_txt = "0"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "smindicate"; name = "Outer Airlock"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) -"cEs" = (/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/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start) -"cEt" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/turf/unsimulated/floor{dir = 1; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_station/start) +"cEp" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/computer/guestpass{pixel_y = -28},/turf/simulated/floor,/area/hallway/primary/aft) +"cEq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"cEr" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 2; frequency = 1441; icon_state = "map_injector"; id = "n2_in"; on = 1},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) +"cEs" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; external_pressure_bound = 0; frequency = 1441; icon_state = "map_vent_in"; id_tag = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) +"cEt" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 2; frequency = 1441; icon_state = "map_injector"; id = "o2_in"; on = 1},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) "cEu" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 5},/area/syndicate_mothership) "cEv" = (/obj/machinery/door/airlock/centcom{name = "Barracks"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "cEw" = (/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) @@ -6993,58 +6993,58 @@ "cEy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/medical/virologyaccess) "cEz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/maintenance/asmaint) "cEA" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) -"cEB" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cEC" = (/obj/structure/table,/obj/machinery/computer/pod/old/syndicate{id = "smindicate"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cEB" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; external_pressure_bound = 0; frequency = 1441; icon_state = "map_vent_in"; id_tag = "o2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) +"cEC" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 2; frequency = 1443; icon_state = "map_injector"; id = "air_in"; on = 1},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) "cED" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) "cEE" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{dir = 1; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership) "cEF" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/red,/turf/simulated/floor/wood,/area/syndicate_mothership) -"cEG" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/simulated/floor/wood,/area/syndicate_mothership) +"cEG" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; external_pressure_bound = 0; frequency = 1443; icon_state = "map_vent_in"; id_tag = "air_out"; internal_pressure_bound = 2000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) "cEH" = (/turf/simulated/floor/wood{icon_state = "wood-broken6"},/area/syndicate_mothership) -"cEI" = (/obj/machinery/door/window{dir = 4; name = "Equipment Room"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cEJ" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "synd_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cEK" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_closed"; id_tag = "synd_inner"; locked = 0; name = "Ship External Access"; req_access = null; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cEI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Locker Room"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/locker_room) +"cEJ" = (/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/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/engineering{name = "Engineering Washroom"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/crew_quarters/sleep/engi_wash) +"cEK" = (/obj/machinery/meter{frequency = 1443; id = "dloop_atm_meter"; name = "Distribution Loop"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/visible/supply{dir = 8; icon_state = "map"; tag = "icon-manifold (WEST)"},/turf/simulated/floor,/area/atmos) "cEL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "robotics_solar_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/plating,/area/maintenance/portsolar) "cEM" = (/turf/unsimulated/wall/fakeglass{dir = 1; icon_state = "fakewindows"},/area/syndicate_mothership) "cEN" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/red,/turf/simulated/floor/wood{icon_state = "wood-broken4"},/area/syndicate_mothership) "cEO" = (/turf/simulated/floor/wood,/area/syndicate_mothership) -"cEP" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Equipment Room"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cEP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/hallway) "cEQ" = (/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/shuttle/plating,/area/syndicate_station/start) -"cER" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "synd_pump"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cES" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cER" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/hallway) +"cES" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Workshop"; req_access_txt = "11"},/turf/simulated/floor,/area/engine/workshop) "cET" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership) -"cEU" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/simulated/floor/wood{icon_state = "wood-broken"},/area/syndicate_mothership) -"cEV" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cEU" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Workshop"; req_access_txt = "11"},/turf/simulated/floor,/area/engine/workshop) +"cEV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access_txt = "12;24"},/turf/simulated/floor,/area/atmos) "cEW" = (/obj/machinery/sleeper,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "cEX" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "cEY" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "cEZ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; layer = 3.3; master_tag = "robotics_solar_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "13"},/turf/simulated/floor/plating/airless,/area/solar/port) "cFa" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plating,/area/engine/engine_room) -"cFb" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler,/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cFc" = (/obj/structure/table,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler,/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cFd" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/infra,/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cFe" = (/obj/structure/table,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cFf" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cFb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access_txt = "12;24"},/turf/simulated/floor,/area/atmos) +"cFc" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Monitoring Room"; req_access_txt = "11"},/turf/simulated/floor,/area/engine/engineering_monitoring) +"cFd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"cFe" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 140; external_pressure_bound_default = 140; icon_state = "map_vent_out"; on = 1; pressure_checks = 0; pressure_checks_default = 0},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplatecorner"},/area/engine/engine_room) +"cFf" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 4000; external_pressure_bound_default = 4000; icon_state = "map_vent_in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pressure_checks_default = 2; pump_direction = 0},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplatecorner"},/area/engine/engine_room) "cFg" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) "cFh" = (/turf/simulated/floor/wood{icon_state = "wood-broken3"},/area/syndicate_mothership) "cFi" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "cFj" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) -"cFk" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cFk" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "EngineEmitterPort"; layer = 3.3; name = "Engine Blast Doors"},/turf/simulated/floor/plating,/area/engine/engine_room) "cFl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/central) "cFm" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) -"cFn" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cFo" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/adv,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) -"cFp" = (/obj/item/weapon/weldingtool,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) -"cFq" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) -"cFr" = (/obj/item/weapon/crowbar,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"cFn" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/obj/machinery/atmospherics/binary/pump/on{name = "Engine Inpump"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) +"cFo" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/obj/machinery/atmospherics/binary/pump/on{dir = 1; name = "Engine Outpump"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) +"cFp" = (/obj/machinery/atmospherics/tvalve/mirrored/digital/bypass{dir = 4},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) +"cFq" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area) +"cFr" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area) "cFs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor,/area/hallway/primary/starboard) "cFt" = (/obj/machinery/door/poddoor{id = "smindicate"; name = "Outer Airlock"},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "cFu" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/bush,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) -"cFv" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) -"cFw" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) -"cFx" = (/obj/structure/rack,/obj/item/weapon/crowbar,/obj/item/weapon/extinguisher,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"cFv" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area) +"cFw" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area) +"cFx" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "cFy" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/syndicate_station/start) -"cFz" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cFA" = (/obj/machinery/teleport/hub,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cFz" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) +"cFA" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "cFB" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/syndicate_station/start) "cFC" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/syndicate_station/start) "cFD" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/syndicate_station/start) @@ -7061,7 +7061,7 @@ "cFO" = (/obj/machinery/door/airlock/hatch,/turf/unsimulated/floor{icon_state = "floor5"},/area/alien) "cFP" = (/turf/unsimulated/wall/splashscreen,/area/start) "cFQ" = (/obj/structure/closet/acloset,/turf/unsimulated/floor{icon_state = "floor5"},/area/alien) -"cFR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass_engineering{name = "Engineering EVA Storage"; req_one_access_txt = "11;24"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/engine_eva) +"cFR" = (/obj/structure/computerframe,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "cFS" = (/turf/space,/area/shuttle/alien/base) "cFT" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) "cFU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/engine_eva_maintenance) @@ -7079,19 +7079,19 @@ "cGg" = (/obj/machinery/vending/boozeomat,/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration/centcom) "cGh" = (/obj/machinery/vending/coffee,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cGi" = (/obj/machinery/vending/cigarette,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"cGj" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"; dir = 10},/obj/machinery/microwave,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"cGj" = (/obj/structure/table,/obj/machinery/door_control{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "cGk" = (/turf/simulated/floor/plating,/area/shuttle/administration/centcom) -"cGl" = (/obj/structure/table{icon_state = "tabledir"; dir = 2},/obj/item/device/multitool,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"cGm" = (/obj/structure/table{icon_state = "tabledir"; dir = 2},/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"cGl" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) +"cGm" = (/obj/machinery/computer/shuttle_control/multi/syndicate{req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "cGn" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cGo" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access_txt = "101"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "cGp" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"cGq" = (/obj/structure/table{icon_state = "tabledir"; dir = 2},/obj/machinery/cell_charger,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"cGq" = (/obj/machinery/computer/security/nuclear,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "cGr" = (/turf/unsimulated/wall,/area/centcom/living) "cGs" = (/obj/machinery/door/window/northright,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"cGt" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"cGu" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/obj/item/weapon/lighter/zippo,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"cGv" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"cGt" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/syndicate_mothership) +"cGu" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_mothership) +"cGv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_mothership) "cGw" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "cGx" = (/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"; frequency = 1380; id_tag = "escape_dock"; pixel_x = 0; pixel_y = -25; req_one_access_txt = "13"},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/hallway/secondary/exit) "cGy" = (/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},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/hallway/secondary/exit) @@ -7170,16 +7170,16 @@ "cHT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor,/area/hallway/primary/central) "cHU" = (/obj/machinery/door/window/northright{icon_state = "right"; dir = 2},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "cHV" = (/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) -"cHW" = (/obj/structure/table{icon_state = "tabledir"; dir = 9},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"cHW" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/syndicate_mothership) "cHX" = (/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"cHY" = (/obj/structure/table{dir = 5; icon_state = "tabledir"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"cHY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_mothership) "cHZ" = (/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/shuttle/administration/centcom) "cIa" = (/turf/simulated/floor{icon_state = "chapel"},/area/shuttle/administration/centcom) "cIb" = (/obj/machinery/door/airlock/centcom{name = "Commander Quarters"; opacity = 1; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/centcom/living) "cIc" = (/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/unsimulated/floor{name = "plating"},/area/centcom/living) "cId" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/living) "cIe" = (/obj/structure/table,/obj/machinery/processor{pixel_x = 0; pixel_y = 10},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/living) -"cIf" = (/obj/structure/table{icon_state = "tabledir"; dir = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) +"cIf" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "cIg" = (/obj/structure/table,/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/centcom/living) "cIh" = (/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/centcom/living) "cIi" = (/obj/machinery/sleeper,/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/centcom/living) @@ -7474,7 +7474,7 @@ "cNL" = (/obj/machinery/telecomms/relay/preset/centcom,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cNM" = (/obj/machinery/bodyscanner,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding) "cNN" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/weapon/handcuffs,/obj/item/weapon/melee/classic_baton,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/control) -"cNO" = (/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{tag = "icon-manifold-f (NORTH)"; icon_state = "manifold-f"; dir = 1},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/hallway/secondary/entry) +"cNO" = (/obj/structure/closet/syndicate/personal,/obj/item/clothing/tie/storage/brown_vest,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "cNP" = (/obj/structure/table/woodentable{dir = 9},/obj/item/weapon/reagent_containers/food/drinks/flask,/obj/item/clothing/mask/cigarette/cigar/havana,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cNQ" = (/obj/machinery/computer/security/telescreen{name = "Spec. Ops. Monitor"; network = list("ERT")},/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cNR" = (/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) @@ -7499,8 +7499,8 @@ "cOk" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/space,/area/shuttle/specops/centcom) "cOl" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/turf/unsimulated/floor,/area/shuttle/specops/centcom) "cOm" = (/obj/structure/table/reinforced,/obj/item/device/radio/intercom{broadcasting = 0; dir = 1; frequency = 1443; listening = 1; name = "Spec Ops Intercom"; pixel_y = 28},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) -"cOn" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "admin_shuttle_dock_airlock"; name = "interior access button"; pixel_x = -8; pixel_y = 25; req_access_txt = "0"; req_one_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) -"cOo" = (/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{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/entry) +"cOn" = (/obj/structure/table,/obj/machinery/computer/pod/old/syndicate{id = "smindicate"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) +"cOo" = (/obj/machinery/door/window{dir = 2; name = "Seating"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "cOp" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cOq" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cOr" = (/obj/machinery/computer/operating,/turf/unsimulated/floor{dir = 1; icon_state = "whitehall"; tag = "icon-whitehall (SOUTHEAST)"},/area/centcom/holding) @@ -7508,8 +7508,8 @@ "cOt" = (/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "cOu" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/centcom/holding) "cOv" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/computer/security/telescreen{desc = ""; name = "Spec. Ops. Monitor"; network = list("ERT"); pixel_y = 30},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) -"cOw" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) -"cOx" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/entry) +"cOw" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) +"cOx" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area) "cOy" = (/turf/unsimulated/wall,/area/centcom/ferry) "cOz" = (/obj/structure/table,/obj/item/weapon/storage/box/gloves{pixel_x = -4; pixel_y = -3; pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/box/masks{pixel_x = 4; pixel_y = 5; pixel_x = 0; pixel_y = 0},/turf/unsimulated/floor{dir = 4; icon_state = "whitegreen"},/area/centcom/holding) "cOA" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 28; req_access_txt = "0"},/turf/unsimulated/floor{tag = "icon-whitecorner (NORTH)"; icon_state = "whitecorner"; dir = 1},/area/centcom/holding) @@ -7518,7 +7518,7 @@ "cOD" = (/obj/machinery/optable,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "cOE" = (/turf/unsimulated/floor{tag = "icon-whitehall (NORTHEAST)"; icon_state = "whitehall"; dir = 5},/area/centcom/holding) "cOF" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape/centcom) -"cOG" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (NORTHWEST)"; icon_state = "intact-f"; dir = 9},/turf/simulated/floor,/area/hallway/secondary/entry) +"cOG" = (/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/shuttle/wall{icon_state = "wall3"},/area/syndicate_mothership) "cOH" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cOI" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/specops/centcom) "cOJ" = (/obj/structure/closet/secure_closet/medical2,/turf/unsimulated/floor{tag = "icon-escapecorner (EAST)"; icon_state = "escapecorner"; dir = 4},/area/centcom/holding) @@ -7625,7 +7625,7 @@ "cQG" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/chem_dispenser/soda,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/holding) "cQH" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; locked = 1},/obj/machinery/atmospherics/pipe/simple/visible/yellow,/turf/simulated/floor/plating,/area/engine/engine_room) "cQI" = (/turf/unsimulated/floor{dir = 8; icon_state = "whitegreen"},/area/centcom/holding) -"cQJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "EngineEmitter"; layer = 3.3; name = "Engine Blast Doors"},/turf/simulated/floor/plating,/area/engine/engine_room) +"cQJ" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/turf/unsimulated/floor{dir = 1; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership) "cQK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall/r_wall,/area/engine/engine_eva) "cQL" = (/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/turf/unsimulated/floor{tag = "icon-siding8"; name = "plating"; icon_state = "siding8"},/area/centcom/holding) "cQM" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) @@ -7646,11 +7646,11 @@ "cRb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "Engineering Core East"; dir = 4; network = list("SS13","Supermatter")},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine/engine_room) "cRc" = (/turf/simulated/floor/plating{dir = 8; icon_state = "warnplatecorner"},/area/engine/engine_room) "cRd" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 5; dir = 8; icon_state = "freezer"; opacity = 1; req_access_txt = "56"},/turf/simulated/floor/plating,/area/engine/engine_room) -"cRe" = (/obj/machinery/atmospherics/binary/pump{dir = 2; icon_state = "intact_on"; name = "Engine Inpump"; on = 1},/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) +"cRe" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "cRf" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) "cRg" = (/obj/structure/stool/bed/roller,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cRh" = (/obj/structure/stool/bed/roller,/turf/unsimulated/floor{dir = 4; icon_state = "whitegreenfull"},/area/centcom/holding) -"cRi" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_on"; name = "Engine Outpump"; on = 1},/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) +"cRi" = (/turf/simulated/shuttle/plating,/area/syndicate_mothership) "cRj" = (/turf/unsimulated/wall,/area/tdome) "cRk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome) "cRl" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome) @@ -7676,13 +7676,13 @@ "cRF" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/tofukabob,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding) "cRG" = (/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/obj/effect/overlay/palmtree_r,/turf/unsimulated/beach/sand{tag = "icon-coconuts"; icon_state = "coconuts"},/area/centcom/ferry) "cRH" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome) -"cRI" = (/obj/structure/table/reinforced{dir = 4; icon_state = "reinf_tabledir"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome) -"cRJ" = (/obj/structure/table/reinforced{dir = 8; icon_state = "reinf_tabledir"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome) +"cRI" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) +"cRJ" = (/obj/structure/closet,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "cRK" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome) "cRL" = (/obj/machinery/sleeper,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cRM" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cRN" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/bloodsoup,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding) -"cRO" = (/obj/machinery/atmospherics/tvalve/mirrored/digital{dir = 4; icon_state = "tvalvem1"; state = 1},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) +"cRO" = (/obj/machinery/door/window{dir = 1; name = "Cockpit"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "cRP" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) "cRQ" = (/obj/machinery/power/smes,/turf/simulated/floor/plating,/area/engine/engine_room) "cRR" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = 29; req_access_txt = "0"},/turf/unsimulated/floor{dir = 4; icon_state = "whitegreencorner"},/area/centcom/holding) @@ -7731,7 +7731,7 @@ "cSI" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "cSJ" = (/obj/structure/table{icon_state = "tabledir"; dir = 9},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "cSK" = (/obj/structure/table,/obj/machinery/microwave,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) -"cSL" = (/obj/structure/table/reinforced{dir = 4; icon_state = "reinf_tabledir"},/turf/unsimulated/floor{icon_state = "white"},/area/tdome) +"cSL" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_mothership) "cSM" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "cSN" = (/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "cSO" = (/obj/structure/disposalpipe/segment,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) @@ -7863,13 +7863,13 @@ "cVk" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area) "cVl" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/wizard_station) "cVm" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/wizard_station) -"cVn" = (/obj/structure/table,/obj/item/stack/medical/ointment,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) -"cVo" = (/obj/structure/table,/obj/item/stack/medical/bruise_pack,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"cVn" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_mothership) +"cVo" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 15},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "cVp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) "cVq" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "greencorner"; dir = 4},/area/centcom/control) "cVr" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) "cVs" = (/turf/unsimulated/floor{dir = 5; heat_capacity = 1; icon_state = "warning"},/area/centcom/evac) -"cVt" = (/obj/structure/table,/obj/effect/spawner/newbomb/timer/syndicate,/turf/unsimulated/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cVt" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "cVu" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "engineering_dock_outer"; locked = 1; name = "Engineering Dock Airlock"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cVv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cVw" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "engineering_dock_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -8; req_access_txt = "0"; req_one_access_txt = "13;11;24"},/turf/space,/area) @@ -7904,11 +7904,11 @@ "cVZ" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/fire{layer = 2.9; pixel_x = 2; pixel_y = 3},/turf/unsimulated/floor{dir = 0; icon_state = "whitegreen"},/area/centcom/holding) "cWa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control) "cWb" = (/obj/machinery/door/airlock/external{name = "Arrivals Bar Airlock"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/ferry) -"cWc" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (SOUTHEAST)"; icon_state = "intact-f"; dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) -"cWd" = (/obj/machinery/atmospherics/pipe/manifold/hidden{tag = "icon-manifold-f (EAST)"; icon_state = "manifold-f"; dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) +"cWc" = (/obj/structure/closet/syndicate/personal,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) +"cWd" = (/turf/simulated/mineral,/area) "cWe" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cWf" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 30},/obj/item/weapon/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"cWg" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (NORTHWEST)"; icon_state = "intact-f"; dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) +"cWg" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space,/area) "cWh" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "vox_west_control"; req_one_access_txt = "150"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) "cWi" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cWj" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "vox_east_control"; req_one_access_txt = "150"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station) @@ -7952,11 +7952,11 @@ "cWV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cWW" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "engineering_dock_inner"; locked = 1; name = "Engineering Dock Airlock"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cWX" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/engine,/area/rnd/xenobiology) -"cWY" = (/obj/machinery/atmospherics/pipe/manifold/hidden{tag = "icon-manifold-f (EAST)"; icon_state = "manifold-f"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cWY" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "cWZ" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "engineering_dock_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "engineering_dock_airlock"; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; req_one_access_txt = "13;11;24"; tag_airpump = "engineering_dock_pump"; tag_chamber_sensor = "engineering_dock_sensor"; tag_exterior_door = "engineering_dock_outer"; tag_interior_door = "engineering_dock_inner"},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cXa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cXb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) -"cXc" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (NORTHWEST)"; icon_state = "intact-f"; dir = 9},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) +"cXc" = (/obj/structure/table,/obj/item/weapon/storage/box/drinkingglasses{pixel_x = 1; pixel_y = 4},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "cXd" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "engineering_dock_pump"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "engineering_dock_sensor"; pixel_x = -25; pixel_y = 8},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "cXe" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/derelict/ship) "cXf" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/derelict/ship) @@ -8060,7 +8060,7 @@ "cYZ" = (/turf/space,/area/turret_protected/tcomsat) "cZa" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/camera{c_tag = "West Wing North"; dir = 2; network = list("Tcomsat")},/turf/space,/area/turret_protected/tcomsat) "cZb" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cZc" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (NORTHEAST)"; icon_state = "intact-f"; dir = 5},/turf/unsimulated/floor{dir = 8; icon_state = "whitegreencorner"},/area/centcom/holding) +"cZc" = (/obj/structure/table,/obj/machinery/chem_dispenser/soda{pixel_x = 2; pixel_y = 6},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "cZd" = (/obj/structure/closet/crate/freezer/rations,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cZe" = (/obj/structure/stool/bed/roller,/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cZf" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) @@ -8082,11 +8082,11 @@ "cZv" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 140; on = 1; pressure_checks = 0},/obj/machinery/camera{c_tag = "Main Computer Room"; dir = 2; network = list("Tcomsat")},/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/tcommsat/computer) "cZw" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue{pixel_x = -3; pixel_y = 2},/turf/simulated/floor,/area/tcommsat/computer) "cZx" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/simulated/floor,/area/tcommsat/computer) -"cZy" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/shuttle/floor,/area/supply/dock) +"cZy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door_control{desc = "A remote control-switch for Surgery."; id = "Surgery"; name = "Surgery"; normaldoorcontrol = 1; pixel_x = -24; pixel_y = 8; range = 3},/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/medical/surgeryprep) "cZz" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -29; pixel_y = 0},/turf/simulated/floor,/area/tcommsat/computer) "cZA" = (/obj/structure/window/reinforced{dir = 4},/turf/space,/area/turret_protected/tcomsat) "cZB" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "swall_floor_f10"},/area/shuttle/escape/centcom) -"cZC" = (/obj/machinery/atmospherics/valve/digital{pipe_color = "cyan"; icon_state = "valve1"; name = "Mixed Air Outlet Valve"; open = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) +"cZC" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "cZD" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) "cZE" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) "cZF" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/turret_protected/tcomsat) @@ -8105,9 +8105,9 @@ "cZS" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/tcommsat/computer) "cZT" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor,/area/tcommsat/computer) "cZU" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/simulated/floor,/area/tdome) -"cZV" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/shuttle/floor,/area/supply/dock) +"cZV" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/shuttle/floor,/area/supply/dock) "cZW" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor,/area/tcommsat/computer) -"cZX" = (/obj/machinery/atmospherics/pipe/manifold/visible{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/turf/simulated/floor,/area/tdome) +"cZX" = (/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "cZY" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor,/area/tcommsat/computer) "cZZ" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor,/area/tcommsat/computer) "daa" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor,/area/tcommsat/computer) @@ -8166,7 +8166,7 @@ "dbb" = (/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dbc" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) "dbd" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/structure/reagent_dispensers/virusfood{pixel_x = -30},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"dbe" = (/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics Monitoring Room"; req_access_txt = "24"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/atmos) +"dbe" = (/obj/structure/sign/double/map/right{pixel_y = 32},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "dbf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dbg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/meter,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) "dbh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) @@ -8235,7 +8235,7 @@ "dcs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) "dct" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 140; on = 1; pressure_checks = 0},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dcu" = (/obj/machinery/camera{c_tag = "Central Compartment South"; dir = 1; network = list("Tcomsat")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"dcv" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 120; icon_state = "in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) +"dcv" = (/obj/structure/sign/double/map/left{pixel_y = 32},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "dcw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/tcommsat/chamber) "dcx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/atmos) "dcy" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/space,/area/turret_protected/tcomsat) @@ -8243,10 +8243,10 @@ "dcA" = (/turf/simulated/wall/r_wall,/area/turret_protected/tcomfoyer) "dcB" = (/obj/machinery/turret{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/turret_protected/tcomfoyer) "dcC" = (/obj/machinery/camera{c_tag = "Aft Port Solar Control"; dir = 1},/obj/structure/cable,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor/plating,/area/maintenance/portsolar) -"dcD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor,/area/tcommsat/computer) +"dcD" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "floor5"},/area/syndicate_mothership) "dcE" = (/obj/machinery/vending/cola,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/tcommsat/computer) -"dcF" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor,/area/tcommsat/computer) -"dcG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden{tag = "icon-manifold-f (NORTH)"; icon_state = "manifold-f"; dir = 1},/turf/simulated/floor,/area/tcommsat/computer) +"dcF" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) +"dcG" = (/obj/structure/table/reinforced,/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "dcH" = (/obj/machinery/turret{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/turret_protected/tcomfoyer) "dcI" = (/obj/structure/window/reinforced,/obj/machinery/light{dir = 1},/turf/space,/area/turret_protected/tcomsat) "dcJ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area/turret_protected/tcomsat) @@ -8278,8 +8278,8 @@ "ddj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/tcommsat/chamber) "ddk" = (/obj/machinery/power/terminal{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/tcommsat/entrance) "ddl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/sign/electricshock,/turf/simulated/wall/r_wall,/area/tcommsat/entrance) -"ddm" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (NORTHEAST)"; icon_state = "intact-f"; dir = 5},/turf/simulated/floor/plating,/area/tcommsat/chamber) -"ddn" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (SOUTHWEST)"; icon_state = "intact-f"; dir = 10},/turf/simulated/wall/r_wall,/area/tcommsat/chamber) +"ddm" = (/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) +"ddn" = (/obj/machinery/door/airlock/centcom{name = "Kitchen"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "ddo" = (/obj/machinery/turretid{ailock = 1; control_area = "\improper Telecoms Foyer"; desc = "A firewall prevents AIs from interacting with this device."; icon_state = "motion3"; lethal = 0; name = "Telecoms Foyer turret control"; pixel_y = 29; req_access = list(61)},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/tcommsat/entrance) "ddp" = (/obj/structure/sign/electricshock,/turf/simulated/wall/r_wall,/area/tcommsat/entrance) "ddq" = (/turf/simulated/floor,/area/tcommsat/entrance) @@ -8393,7 +8393,7 @@ "dfu" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "bar"},/area/djstation) "dfv" = (/obj/structure/table,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/djstation) "dfw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{dir = 2; icon_state = "green"},/area/medical/virology) -"dfx" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "greencorner"},/area/medical/virology) +"dfx" = (/obj/structure/stool/bed/chair/comfy/black,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "dfy" = (/obj/structure/computerframe{anchored = 1},/turf/simulated/floor{icon_state = "grimy"},/area/djstation) "dfz" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/table,/obj/item/weapon/storage/box/syringes{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/beakers,/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dfA" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "grimy"},/area/djstation) @@ -8407,7 +8407,7 @@ "dfI" = (/obj/structure/closet/l3closet/virology,/obj/item/clothing/mask/gas,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/embedded_controller/radio/airlock/access_controller{tag_exterior_door = "virology_airlock_exterior"; id_tag = "virology_airlock_control"; tag_interior_door = "virology_airlock_interior"; name = "Virology Access Console"; pixel_x = 8; pixel_y = 22},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/turf/simulated/floor{dir = 1; icon_state = "greencorner"},/area/medical/virology) "dfJ" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/light/small,/turf/simulated/floor{icon_state = "freezerfloor"},/area/djstation) "dfK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor,/area/engine/engine_eva) -"dfL" = (/obj/machinery/door/airlock/engineering{name = "Engineering EVA Storage"; req_access_txt = "12"; req_one_access_txt = "11;24"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/engine_eva) +"dfL" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) "dfM" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/engine_eva_maintenance) "dfN" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/engine_eva_maintenance) "dfO" = (/turf/simulated/floor/airless,/area) @@ -8424,11 +8424,11 @@ "dfZ" = (/obj/machinery/door/airlock/research{name = "Xenoflora Storage"; req_access_txt = "47"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "dga" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora_storage) "dgb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology/xenoflora_storage) -"dgc" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology/xenoflora) -"dgd" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (SOUTHWEST)"; icon_state = "intact-f"; dir = 10},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor,/area/tcommsat/computer) -"dge" = (/obj/machinery/door/airlock/research{name = "Xenoflora Research"; req_access_txt = "47"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology/xenoflora) -"dgf" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) -"dgg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) +"dgc" = (/obj/machinery/door/airlock/centcom{name = "Barracks"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) +"dgd" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "floor5"},/area/syndicate_mothership) +"dge" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "floor5"},/area/syndicate_mothership) +"dgf" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "floor5"},/area/syndicate_mothership) +"dgg" = (/obj/structure/table,/obj/machinery/recharger,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dgh" = (/obj/structure/table,/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology/xenoflora) "dgi" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = -1; pixel_y = -1; pixel_x = 2; pixel_y = 2},/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology/xenoflora) "dgj" = (/obj/structure/dispenser{phorontanks = 0},/turf/simulated/floor,/area/engine/engine_eva) @@ -8437,18 +8437,18 @@ "dgm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/engine_eva_maintenance) "dgn" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{dir = 6; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora) "dgo" = (/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora) -"dgp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door_control{desc = "A remote control-switch for Surgery."; id = "Surgery"; name = "Surgery"; normaldoorcontrol = 1; pixel_x = -24; pixel_y = 8; range = 3},/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/medical/surgeryprep) +"dgp" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/shuttle/floor,/area/supply/dock) "dgq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora_storage) "dgr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology/xenoflora_storage) "dgs" = (/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 = "white"},/area/rnd/xenobiology) "dgt" = (/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,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/rnd/xenobiology) -"dgu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/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 = "white"},/area/rnd/xenobiology) -"dgv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) +"dgu" = (/obj/machinery/computer/security/nuclear,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"dgv" = (/obj/machinery/computer/shuttle_control/multi/syndicate{req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dgw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{tag = "icon-whitegreen_v (SOUTHWEST)"; icon_state = "whitegreen_v"; dir = 10},/area/rnd/xenobiology/xenoflora) "dgx" = (/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,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) "dgy" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora) "dgz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora) -"dgA" = (/turf/simulated/floor{dir = 6; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora) +"dgA" = (/obj/structure/computerframe,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dgB" = (/turf/simulated/floor{tag = "icon-whitegreen_v (SOUTHWEST)"; icon_state = "whitegreen_v"; dir = 10},/area/rnd/xenobiology/xenoflora) "dgC" = (/obj/machinery/washing_machine,/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/patient_wing) "dgD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/engi_engine) @@ -8480,7 +8480,7 @@ "dhd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 2; icon_state = "whiteyellowcorner"},/area/crew_quarters/sleep/engi_wash) "dhe" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "whiteyellowcorner"},/area/crew_quarters/sleep/engi_wash) "dhf" = (/obj/machinery/shower{pixel_y = 15},/turf/simulated/floor{dir = 2; icon_state = "whiteyellowcorner"},/area/crew_quarters/sleep/engi_wash) -"dhg" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) +"dhg" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/syndicate_station/start) "dhh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology/xenoflora) "dhi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/light,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) "dhj" = (/obj/structure/stool/bed/chair/comfy/brown,/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/centcom/ferry) @@ -8495,7 +8495,7 @@ "dhs" = (/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/rnd/xenobiology/xenoflora_storage) "dht" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/camera{c_tag = "Virology Access Fore"; dir = 4; network = list("SS13","Research")},/turf/simulated/floor,/area/medical/virologyaccess) "dhu" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor,/area/medical/virologyaccess) -"dhv" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/obj/machinery/computer/guestpass{pixel_y = -28},/turf/simulated/floor,/area/hallway/primary/aft) +"dhv" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/syndicate_station/start) "dhw" = (/obj/machinery/door/airlock{name = "Restroom"; req_access_txt = "0"},/turf/simulated/floor{dir = 8; icon_state = "whiteyellowcorner"},/area/crew_quarters/sleep/engi_wash) "dhx" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep/engi_wash) "dhy" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor{dir = 8; icon_state = "whiteyellowcorner"},/area/crew_quarters/sleep/engi_wash) @@ -8510,7 +8510,7 @@ "dhH" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{dir = 8; icon_state = "whiteyellow"},/area/crew_quarters/sleep/engi_wash) "dhI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/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/engine/locker_room) "dhJ" = (/obj/structure/stool/bed/chair/comfy/brown,/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/centcom/ferry) -"dhK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/engineering{name = "Engineering Washroom"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/crew_quarters/sleep/engi_wash) +"dhK" = (/obj/structure/table,/obj/machinery/door_control{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dhL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "whiteyellow"},/area/crew_quarters/sleep/engi_wash) "dhM" = (/obj/machinery/light/small,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "bluecorner"},/area/medical/virologyaccess) "dhN" = (/obj/structure/table,/obj/item/weapon/circular_saw{pixel_y = 8},/obj/item/weapon/scalpel,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) @@ -8530,21 +8530,21 @@ "dib" = (/obj/structure/table,/obj/item/weapon/bonesetter,/obj/item/weapon/bonegel,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "dic" = (/turf/simulated/floor/plating,/area/maintenance/engi_engine) "did" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "robotics_solar_pump"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "robotics_solar_pump"; tag_exterior_door = "robotics_solar_outer"; frequency = 1379; id_tag = "robotics_solar_airlock"; tag_interior_door = "robotics_solar_inner"; layer = 3.3; pixel_x = 0; pixel_y = -25; req_access_txt = "13"; tag_chamber_sensor = "robotics_solar_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "robotics_solar_sensor"; layer = 3.3; pixel_x = 12; pixel_y = -25},/turf/simulated/floor/plating,/area/maintenance/portsolar) -"die" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 140; external_pressure_bound_default = 140; icon_state = "out"; on = 1; pressure_checks = 0; pressure_checks_default = 0},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplatecorner"},/area/engine/engine_room) -"dif" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 4000; external_pressure_bound_default = 4000; icon_state = "in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pressure_checks_default = 2; pump_direction = 0},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplatecorner"},/area/engine/engine_room) +"die" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"dif" = (/obj/structure/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/blue,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/blue,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "dig" = (/obj/structure/rack,/obj/item/weapon/extinguisher,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/mask/gas,/turf/simulated/floor/plating,/area/maintenance/engi_engine) "dih" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/engi_engine) "dii" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_1_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock"; req_access_txt = "13"},/turf/unsimulated/floor,/area/centcom/evac) "dij" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_2_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock"; req_access_txt = "13"},/turf/unsimulated/floor,/area/centcom/evac) "dik" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_1_recovery"; pixel_x = 25; pixel_y = 30; req_access_txt = "0"; req_one_access_txt = "13"; tag_door = "escape_pod_1_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) "dil" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_2_recovery"; pixel_x = -25; pixel_y = 30; req_access_txt = "0"; req_one_access_txt = "13"; tag_door = "escape_pod_2_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) -"dim" = (/obj/machinery/computer/shuttle_control/multi/syndicate{req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"dim" = (/obj/structure/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/engie,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/engie,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "din" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_3_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock"; req_access_txt = "13"},/turf/unsimulated/floor,/area/centcom/evac) "dio" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_3_recovery"; pixel_x = 25; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "13"; tag_door = "escape_pod_3_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) "dip" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_5_recovery"; pixel_x = -25; pixel_y = 25; req_access_txt = "0"; req_one_access_txt = "13"; tag_door = "escape_pod_5_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) "diq" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_5_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock"; req_access_txt = "13"},/turf/unsimulated/floor,/area/centcom/evac) -"dir" = (/obj/machinery/door/window{dir = 2; name = "Seating"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"dis" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"dir" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"dis" = (/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dit" = (/obj/item/weapon/inflatable_duck,/turf/simulated/floor/beach/sand{tag = "icon-desert1"; icon_state = "desert1"},/area/holodeck/source_beach) "diu" = (/obj/item/stack/sheet/glass{amount = 50},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "div" = (/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) @@ -8560,8 +8560,8 @@ "diF" = (/obj/machinery/computer/shuttle_control{req_access = null; req_access_txt = "101"; shuttle_tag = "Administration"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "diG" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access_txt = "13"},/turf/simulated/shuttle/plating,/area/supply/dock) "diH" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access_txt = "13"},/turf/simulated/shuttle/plating,/area/supply/dock) -"diI" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "synd_pump"; tag_exterior_door = "synd_outer"; frequency = 1331; id_tag = "synd_airlock"; tag_interior_door = "synd_inner"; pixel_x = 25; req_access_txt = "0"; tag_chamber_sensor = "synd_sensor"},/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "synd_sensor"; pixel_x = 25; pixel_y = 12},/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"diJ" = (/obj/structure/table,/obj/item/weapon/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/toolbox/syndicate{pixel_x = -3; pixel_y = -3},/obj/effect/spawner/newbomb/timer/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"diI" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"diJ" = (/obj/structure/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/orange,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/orange,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "diK" = (/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/obj/item/weapon/inflatable_duck,/turf/unsimulated/floor{tag = "icon-siding4"; name = "plating"; icon_state = "siding4"},/area/centcom/holding) "diL" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor,/area/tcommsat/entrance) "diM" = (/obj/item/weapon/inflatable_duck,/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/area/centcom/ferry) @@ -8627,7 +8627,7 @@ "djU" = (/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "vox_east_sensor"; pixel_x = -25},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "djV" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1331; id_tag = "vox_east_vent"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "djW" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "vox_west_vent"; tag_exterior_door = "vox_northwest_lock"; frequency = 1331; id_tag = "vox_west_control"; tag_interior_door = "vox_southwest_lock"; pixel_x = 24; req_access_txt = "150"; tag_chamber_sensor = "vox_west_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "vox_west_vent"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) -"djX" = (/obj/machinery/atmospherics/pipe/manifold/visible{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) +"djX" = (/obj/machinery/shower{pixel_y = 32},/obj/item/weapon/soap/syndie,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "djY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{id = "skipjack"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "djZ" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "vox_east_vent"; tag_exterior_door = "vox_northeast_lock"; frequency = 1331; id_tag = "vox_east_control"; tag_interior_door = "vox_southeast_lock"; pixel_x = -24; req_access_txt = "150"; tag_chamber_sensor = "vox_east_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "vox_east_vent"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "dka" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) @@ -8707,28 +8707,28 @@ "dlw" = (/obj/structure/lattice,/turf/space,/area/constructionsite/maintenance) "dlx" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "listeningpost_outer"; locked = 1; name = "Engineering Dock Airlock"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/djstation) "dly" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "engineering_station_pump"},/turf/simulated/floor/plating,/area/djstation) -"dlz" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "engineering_station_airlock"; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; req_one_access_txt = "13;32"; tag_airpump = "engineering_station_pump"; tag_chamber_sensor = "engineering_station_sensor"; tag_exterior_door = "engineering_station_outer"; tag_interior_door = "engineering_station_inner"},/obj/machinery/atmospherics/pipe/manifold/hidden{tag = "icon-manifold-f (WEST)"; icon_state = "manifold-f"; dir = 8},/turf/simulated/floor/plating,/area/djstation) +"dlz" = (/obj/structure/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "dlA" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/plating/airless,/area/constructionsite/hallway/aft) -"dlB" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "listeningpost_inner"; locked = 1; name = "Engineering Dock Airlock"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/djstation) +"dlB" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "floor5"},/area/syndicate_mothership) "dlC" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/djstation) "dlD" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/djstation) "dlE" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/djstation) "dlF" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/wall,/area/constructionsite/hallway/aft) "dlG" = (/obj/machinery/door/airlock/highsecurity{icon_state = "door_closed"; locked = 0; name = "AI Upload Access"; req_access_txt = "16"},/turf/simulated/floor/plating/airless,/area/constructionsite/hallway/aft) "dlH" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{icon_state = "freezerfloor"},/area/djstation) -"dlI" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (SOUTHWEST)"; icon_state = "intact-f"; dir = 10},/turf/simulated/floor/plating,/area/djstation) -"dlJ" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "listeningpost_airlock"; pixel_x = -25; req_access_txt = "0"; tag_airpump = "listeningpost_pump"; tag_chamber_sensor = "listeningpost_sensor"; tag_exterior_door = "listeningpost_outer"; tag_interior_door = "listeningpost_inner"},/obj/machinery/atmospherics/pipe/manifold/hidden{tag = "icon-manifold-f (WEST)"; icon_state = "manifold-f"; dir = 8},/turf/simulated/floor/plating,/area/djstation) +"dlI" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "floor5"},/area/syndicate_mothership) +"dlJ" = (/obj/machinery/shower{pixel_y = 32},/obj/structure/window/basic{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "dlK" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "engineering_station_airlock"; name = "interior access button"; pixel_x = 30; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "13;32"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/djstation) "dlL" = (/obj/machinery/computer/shuttle_control/engineering,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/djstation) "dlM" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor{icon_state = "grimy"},/area/djstation) "dlN" = (/obj/machinery/mech_bay_recharge_port,/turf/simulated/floor/plating,/area/djstation) "dlO" = (/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor/plating,/area/djstation) "dlP" = (/turf/simulated/floor/mech_bay_recharge_floor,/area/djstation) -"dlQ" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (SOUTHWEST)"; icon_state = "intact-f"; dir = 10},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/djstation) +"dlQ" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen{pixel_y = 4},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "dlR" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/djstation) -"dlS" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (SOUTHWEST)"; icon_state = "intact-f"; dir = 10},/turf/simulated/floor/plating,/area/djstation) -"dlT" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor/plating,/area/djstation) -"dlU" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor/plating,/area/djstation) +"dlS" = (/obj/structure/table,/obj/item/weapon/folder{pixel_y = 2},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"dlT" = (/obj/structure/stool/bed/chair/comfy/black{dir = 4},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) +"dlU" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "dlV" = (/obj/machinery/access_button/airlock_interior{master_tag = "listeningpost_airlock"; name = "airlock access button"; pixel_x = -23},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/plating,/area/djstation) "dlW" = (/obj/mecha/working/hoverpod,/turf/simulated/floor/mech_bay_recharge_floor,/area/djstation) "dlX" = (/obj/structure/table,/turf/simulated/floor{icon_state = "bar"},/area/djstation) @@ -8756,7 +8756,7 @@ "dmt" = (/obj/item/weapon/extinguisher,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/djstation) "dmu" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/djstation) "dmv" = (/obj/machinery/driver_button{id = "constructiondriver1"; name = "Construction Driver #1"; pixel_x = 25},/turf/simulated/floor/plating,/area/djstation) -"dmw" = (/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh{name = "Cuban Pete-Meat"},/turf/simulated/floor/engine,/area/tcommsat/computer) +"dmw" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "dmx" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating/airless,/area/djstation) "dmy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/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},/turf/simulated/floor/plating,/area/djstation) "dmz" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/djstation) @@ -8810,7 +8810,7 @@ "dnv" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "engineering_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/shuttle/constructionsite/site) "dnw" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "engineering_station_outer"; locked = 1; name = "Engineering Dock Airlock"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/djstation) "dnx" = (/obj/structure/lattice,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "engineering_station_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -8; req_access_txt = "0"; req_one_access_txt = "13;32"},/turf/space,/area) -"dny" = (/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "engineering_station_sensor"; pixel_x = -25; pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (NORTHEAST)"; icon_state = "intact-f"; dir = 5},/turf/simulated/floor/plating,/area/djstation) +"dny" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = 3; pixel_y = 12},/obj/item/weapon/reagent_containers/food/drinks/bottle/wine{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "dnz" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "engineering_station_pump"},/turf/simulated/floor/plating,/area/djstation) "dnA" = (/obj/machinery/access_button/airlock_exterior{master_tag = "listeningpost_airlock"; name = "airlock access button"; pixel_y = 23},/turf/simulated/floor/plating/airless,/area) "dnB" = (/turf/simulated/wall,/area/constructionsite/bridge) @@ -8837,7 +8837,7 @@ "dnW" = (/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/simulated/floor/plating/airless,/area/constructionsite/hallway/aft) "dnX" = (/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Medbay"; req_access_txt = "0"; req_one_access_txt = "65;5"},/turf/simulated/wall,/area/constructionsite/hallway/aft) "dnY" = (/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/visible{dir = 4},/turf/simulated/floor/plating,/area/constructionsite/atmospherics) -"dnZ" = (/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) +"dnZ" = (/obj/structure/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/med,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/med,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "doa" = (/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) "dob" = (/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/visible{dir = 4},/turf/simulated/floor/plating/airless,/area/constructionsite/atmospherics) "doc" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/plating/airless,/area/constructionsite/atmospherics) @@ -8845,24 +8845,24 @@ "doe" = (/turf/simulated/wall,/area/constructionsite/atmospherics) "dof" = (/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Medbay"; req_access_txt = "0"; req_one_access_txt = "65;5"},/turf/simulated/floor/plating/airless,/area/constructionsite/hallway/aft) "dog" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/constructionsite/atmospherics) -"doh" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/wall,/area/constructionsite/atmospherics) -"doi" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1443; icon_state = "on"; id = "d_air_in"; on = 1},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/constructionsite/atmospherics) +"doh" = (/obj/structure/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/green,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/green,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"doi" = (/obj/structure/stool/bed/chair/comfy/black{dir = 1},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "doj" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/turf/simulated/floor/plating/airless,/area/constructionsite/atmospherics) "dok" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/airless,/area/constructionsite/atmospherics) -"dol" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "on"; id = "d_o2_in"; on = 1},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/constructionsite/atmospherics) +"dol" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "dom" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/constructionsite/atmospherics) "don" = (/obj/machinery/light/small{dir = 1},/obj/machinery/air_sensor{frequency = 1441; id_tag = "d_o2_sensor"},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/constructionsite/atmospherics) -"doo" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "d_o2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/constructionsite/atmospherics) +"doo" = (/obj/structure/closet/secure_closet/freezer/kitchen{req_access = null; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "dop" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "d_o2_in"; name = "Oxygen Supply Control"; output_tag = "d_o2_out"; sensors = list("d_o2_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/airless,/area/constructionsite/atmospherics) "doq" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/constructionsite) "dor" = (/turf/simulated/wall,/area/constructionsite) "dos" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "d_n2_in"; name = "Nitrogen Supply Control"; output_tag = "d_n2_out"; sensors = list("d_n2_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/airless,/area/constructionsite/atmospherics) -"dot" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "d_n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/constructionsite/atmospherics) +"dot" = (/obj/structure/table/reinforced,/obj/item/weapon/tray{pixel_y = 5},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "dou" = (/obj/machinery/light/small{dir = 1},/obj/machinery/air_sensor{frequency = 1441; id_tag = "d_n2_sensor"},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/constructionsite/atmospherics) "dov" = (/turf/simulated/floor/plating/airless,/area/constructionsite) "dow" = (/obj/structure/lattice,/turf/space,/area/constructionsite) "dox" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/constructionsite/atmospherics) -"doy" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "on"; id = "d_n2_in"; on = 1},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/constructionsite/atmospherics) +"doy" = (/obj/machinery/door/window{dir = 1; name = "Cockpit"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "doz" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/simulated/floor/airless,/area/constructionsite/atmospherics) "doA" = (/turf/simulated/floor/airless,/area/constructionsite) "doB" = (/turf/space,/area/constructionsite) @@ -8883,7 +8883,7 @@ "doQ" = (/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "doR" = (/turf/simulated/floor/mech_bay_recharge_floor{icon_state = "recharge_floor_asteroid"},/area/mine/explored) "doS" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) -"doT" = (/obj/machinery/light/small{dir = 8},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "research_pump"; tag_exterior_door = "research_outer"; frequency = 1379; id_tag = "research_airlock"; tag_interior_door = "research_inner"; pixel_x = -25; pixel_y = 0; req_access_txt = null; tag_chamber_sensor = "research_sensor"},/obj/machinery/atmospherics/pipe/manifold/hidden{tag = "icon-manifold-f (NORTH)"; icon_state = "manifold-f"; dir = 1},/turf/simulated/floor,/area/research_outpost/gearstore) +"doT" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_station/start) "doU" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "doV" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/turf/simulated/floor,/area/research_outpost/gearstore) "doW" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/visible/cyan{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/plating,/area/research_outpost/maint) @@ -8896,28 +8896,28 @@ "dpd" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) "dpe" = (/obj/structure/dispenser,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) "dpf" = (/obj/machinery/mineral/input,/turf/simulated/floor{dir = 2; icon_state = "loadingarea"},/area/research_outpost/tempstorage) -"dpg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Expedition Prep"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/research_outpost/entry) +"dpg" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "dph" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/window/westleft{base_state = "right"; dir = 1; icon_state = "right"},/obj/machinery/door/window/westleft{dir = 2},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/longtermstorage) "dpi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/research_outpost/tempstorage) "dpj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/research_outpost/tempstorage) "dpk" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "dpl" = (/obj/machinery/mass_driver{dir = 4; id = "research"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) -"dpm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowcorner"},/area/research_outpost/hallway) +"dpm" = (/obj/structure/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = 32},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "dpn" = (/obj/machinery/camera{c_tag = "Research Outpost Hallway Engineering"; dir = 4; network = list("Research","SS13")},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dpo" = (/obj/structure/table,/obj/item/device/camera,/obj/item/weapon/stamp,/obj/item/weapon/folder,/turf/simulated/floor/wood,/area/research_outpost/hallway) "dpp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"},/area/research_outpost/hallway) "dpq" = (/obj/structure/sign/science{desc = "A warning sign which reads 'ANOMALOUS MATERIALS'"; name = "\improper ANOMALOUS MATERIALS"; pixel_x = -32},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "dpr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/power) -"dps" = (/obj/machinery/door/airlock/engineering{name = "Outpost Power"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/power) +"dps" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_station/start) "dpt" = (/obj/structure/sign/science{desc = "A warning sign which reads 'ANOMALOUS MATERIALS'"; name = "\improper ANOMALOUS MATERIALS"; pixel_x = 32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/research_outpost/hallway) "dpu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) "dpv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/transit_tube{icon_state = "S-NE"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "dpw" = (/obj/structure/disposaloutlet{dir = 2},/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/transit_tube{icon_state = "D-NW"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "dpx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/research_outpost/power) "dpy" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/plating,/area/research_outpost/power) -"dpz" = (/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/structure/window/reinforced{dir = 5},/turf/simulated/floor/wood,/area/research_outpost/hallway) -"dpA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/structure/window/reinforced{dir = 5},/turf/simulated/floor/wood,/area/research_outpost/hallway) -"dpB" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "research_outpost_hatch"; locked = 1; name = "Research Outpost Docking Hatch"; req_access_txt = "13"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dpz" = (/obj/structure/closet,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"dpA" = (/obj/structure/rack,/obj/item/clothing/tie/storage/black_vest,/obj/item/clothing/tie/storage/black_vest,/obj/item/clothing/tie/storage/black_vest,/obj/item/clothing/tie/storage/black_vest,/obj/item/clothing/tie/storage/black_vest,/obj/item/clothing/tie/storage/black_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"dpB" = (/obj/structure/rack,/obj/item/clothing/tie/storage/brown_vest,/obj/item/clothing/tie/storage/brown_vest,/obj/item/clothing/tie/storage/brown_vest,/obj/item/clothing/tie/storage/brown_vest,/obj/item/clothing/tie/storage/brown_vest,/obj/item/clothing/tie/storage/brown_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "dpC" = (/obj/structure/sign/deathsposal{pixel_x = 32},/obj/machinery/disposal/deliveryChute{dir = 8; name = "disposal inlet"},/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01},/area/research_outpost/power) "dpD" = (/obj/machinery/driver_button{id = "research"; pixel_x = 6; pixel_y = -26},/obj/machinery/conveyor{dir = 4; id = "archgunc"},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/westleft{base_state = "right"; dir = 1; icon_state = "right"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/research_outpost/power) "dpE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/research_outpost/hallway) @@ -8931,35 +8931,35 @@ "dpM" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/research_outpost/power) "dpN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dpO" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; layer = 2.4; level = 2; on = 1},/turf/simulated/floor,/area/research_outpost/hallway) -"dpP" = (/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/camera{c_tag = "Research Outpost Hallway Starboard"; dir = 2; network = list("Research","SS13"); 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"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) +"dpP" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "dpQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/alarm{dir = 2; pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dpR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dpS" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/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,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) -"dpT" = (/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Medbay"; req_access_txt = "0"; req_one_access_txt = "65;5"},/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},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/entry) +"dpT" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area) "dpU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dpV" = (/obj/machinery/camera{c_tag = "Research Outpost Hallway Central"; dir = 4; network = list("Research","SS13")},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) -"dpW" = (/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) -"dpX" = (/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) +"dpW" = (/obj/structure/window/reinforced,/turf/space,/area) +"dpX" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "floor5"},/area/syndicate_mothership) "dpY" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "research_outpost_dock"; pixel_x = 0; pixel_y = 30; req_access_txt = "0"; req_one_access_txt = "13;65"; tag_door = "research_outpost_hatch"},/turf/simulated/floor,/area/research_outpost/entry) "dpZ" = (/obj/machinery/computer/shuttle_control/research,/turf/simulated/floor{icon_state = "bot"},/area/research_outpost/entry) -"dqa" = (/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/entry) -"dqb" = (/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/entry) +"dqa" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"dqb" = (/obj/machinery/shower{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "dqc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "dqd" = (/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},/turf/simulated/floor/plating,/area/research_outpost/hallway) "dqe" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/research_outpost/hallway) "dqf" = (/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,/turf/simulated/floor/plating,/area/research_outpost/hallway) -"dqg" = (/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/structure/sign/greencross,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/entry) +"dqg" = (/obj/structure/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "dqh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/research_outpost/hallway) -"dqi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) +"dqi" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "floor5"},/area/syndicate_mothership) "dqj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/firealarm{pixel_y = -24},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dqk" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/plating,/area/research_outpost/atmos) "dql" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dqm" = (/obj/structure/closet/walllocker/emerglocker/west,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/research_outpost/hallway) "dqn" = (/obj/machinery/door/window/westleft{req_one_access_txt = "65;10;24"},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 9},/turf/simulated/floor,/area/research_outpost/atmos) -"dqo" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/visible/yellow{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"dqo" = (/obj/machinery/door/airlock/centcom{name = "Bathroom"; opacity = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "dqp" = (/obj/machinery/atmospherics/valve{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/atmos) -"dqq" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_on"; name = "Filter to Waste"; on = 1; target_pressure = 4500},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/research_outpost/atmos) -"dqr" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"dqq" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"dqr" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 2; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dqs" = (/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dqt" = (/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},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/turf/simulated/floor/plating,/area/research_outpost/atmos) "dqu" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/research_outpost/hallway) @@ -8972,20 +8972,20 @@ "dqB" = (/obj/machinery/atmospherics/omni/mixer{on = 1; tag_east = 2; tag_north = 0; tag_north_con = null; tag_south = 1; tag_south_con = 0.8; tag_west = 1; tag_west_con = 0.2; target_pressure = 4500},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dqC" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/pipe/simple/visible/yellow,/turf/simulated/floor/plating,/area/research_outpost/atmos) "dqD" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small,/turf/simulated/floor,/area/research_outpost/atmos) -"dqE" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_on"; name = "Air to Distro"; on = 1; target_pressure = 285},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/research_outpost/atmos) -"dqF" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; layer = 2.4; level = 2; on = 1; scrub_Toxins = 0},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"dqE" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "floor5"},/area/syndicate_mothership) +"dqF" = (/obj/structure/mirror{dir = 4; pixel_x = -32; pixel_y = 0},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "dqG" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dqH" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor,/area/research_outpost/atmos) "dqI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dqJ" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dqK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/research_outpost/atmos) -"dqL" = (/obj/machinery/door/airlock/research{name = "Sample Preparation"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) -"dqM" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; icon_state = "on"; on = 1},/obj/structure/window/reinforced/tinted{dir = 4; health = 1000; icon_state = "twindow"; name = "hardened window"; opacity = 0},/turf/simulated/floor/engine{name = "Outpost O2"; nitrogen = 0; oxygen = 5000},/area/research_outpost/atmos) +"dqL" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/weapon/pen{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"dqM" = (/obj/machinery/door/airlock/centcom{name = "Suit Storage"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "dqN" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH PRESSURE'."; name = "\improper HIGH PRESSURE"},/turf/simulated/wall/r_wall,/area/research_outpost/atmos) "dqO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"},/area/research_outpost/hallway) "dqP" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dqQ" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/meter,/obj/structure/sign/fire{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/research_outpost/atmos) -"dqR" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; icon_state = "on"; on = 1},/obj/structure/window/reinforced/tinted{dir = 8; health = 1000; icon_state = "twindow"; name = "hardened window"; opacity = 0},/turf/simulated/floor/engine{name = "Outpost N2"; nitrogen = 20000; oxygen = 0},/area/research_outpost/atmos) +"dqR" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 15},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dqS" = (/obj/machinery/atmospherics/pipe/simple/visible/supply{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/meter,/obj/machinery/light/small,/turf/simulated/floor/plating,/area/research_outpost/atmos) "dqT" = (/turf/simulated/mineral,/area/mine/unexplored) "dqU" = (/turf/space,/area/syndicate_station/mining) @@ -9008,7 +9008,7 @@ "drl" = (/obj/structure/transit_tube{icon_state = "D-SE"},/turf/simulated/mineral,/area/mine/unexplored) "drm" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/portables_connector{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/atmos) "drn" = (/obj/structure/transit_tube,/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) -"dro" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = null; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/obj/structure/window/reinforced/tinted{dir = 8; health = 1000; icon_state = "twindow"; name = "hardened window"; opacity = 0},/obj/structure/window/reinforced/tinted{dir = 1; health = 1000; icon_state = "twindow"; name = "hardened window"; opacity = 0},/turf/simulated/floor/engine{name = "Outpost N2"; nitrogen = 20000; oxygen = 0},/area/research_outpost/atmos) +"dro" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "drp" = (/obj/structure/transit_tube/station,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/research_outpost/hallway) "drq" = (/obj/structure/transit_tube,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) "drr" = (/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) @@ -9030,7 +9030,7 @@ "drH" = (/obj/structure/transit_tube{icon_state = "NW-SE"},/obj/structure/lattice,/turf/space,/area) "drI" = (/obj/structure/lattice,/obj/structure/transit_tube{icon_state = "N-S"},/turf/space,/area) "drJ" = (/turf/simulated/wall/r_wall,/area/research_outpost/spectro) -"drK" = (/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) +"drK" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "drL" = (/turf/simulated/floor/plating,/area/research_outpost/maintstore1) "drM" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/research_outpost/maintstore1) "drN" = (/turf/simulated/wall,/area/research_outpost/maintstore1) @@ -9049,23 +9049,23 @@ "dsa" = (/turf/simulated/mineral/random,/area/mine/unexplored) "dsb" = (/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/nutrient/ez,/turf/simulated/floor/plating,/area/research_outpost/maintstore1) "dsc" = (/obj/machinery/light/small,/obj/structure/closet/walllocker/emerglocker/north{dir = 1; pixel_y = -32},/turf/simulated/floor/plating,/area/research_outpost/maintstore1) -"dsd" = (/obj/machinery/door/airlock/maintenance{name = "Auxiliary Storage"; req_access_txt = "0"; req_one_access_txt = "65;12"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/maintstore1) +"dsd" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = -32},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "dse" = (/turf/simulated/floor,/area/research_outpost/maintstore1) "dsf" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/research_outpost/maintstore1) "dsg" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/camera{c_tag = "Research Outpost Auxiliary Storage"; dir = 8; network = list("Research","SS13")},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor,/area/research_outpost/maintstore1) "dsh" = (/obj/structure/table,/turf/simulated/floor/carpet,/area/research_outpost/hallway) "dsi" = (/turf/simulated/floor/carpet,/area/research_outpost/hallway) -"dsj" = (/obj/machinery/door/airlock{id_tag = "rminingdorm1"; name = "Dorm 1"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/research_outpost/hallway) -"dsk" = (/obj/machinery/door/airlock{id_tag = "rdorm2"; name = "Dorm 2"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/research_outpost/hallway) +"dsj" = (/obj/structure/rack,/obj/item/weapon/storage/box/handcuffs{pixel_x = 4; pixel_y = 2},/obj/item/weapon/storage/box/flashbangs,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"dsk" = (/obj/structure/rack,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "dsl" = (/obj/structure/transit_tube{icon_state = "N-S"},/obj/structure/lattice,/turf/space,/area) "dsm" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) "dsn" = (/obj/structure/reagent_dispensers/coolanttank,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro) "dso" = (/turf/simulated/wall/r_wall,/area/research_outpost/sample) -"dsp" = (/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) +"dsp" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_closed"; id_tag = "synd_outer"; locked = 0; name = "Ship External Access"; req_access = null; req_access_txt = "150"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "smindicate"; name = "Outer Airlock"; opacity = 0},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "synd_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = 7; req_access_txt = "150"},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "dsq" = (/turf/simulated/floor{icon_state = "warning"},/area/research_outpost/maintstore1) "dsr" = (/obj/machinery/telecomms/relay/preset/station,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dss" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/door/airlock/maintenance_hatch{name = "Telecoms Storage"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"dst" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = null; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/obj/structure/window/reinforced/tinted{dir = 4; health = 1000; icon_state = "twindow"; name = "hardened window"; opacity = 0},/obj/structure/window/reinforced/tinted{dir = 1; health = 1000; icon_state = "twindow"; name = "hardened window"; opacity = 0},/turf/simulated/floor/engine{name = "Outpost O2"; nitrogen = 0; oxygen = 5000},/area/research_outpost/atmos) +"dst" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "floor5"},/area/syndicate_mothership) "dsu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 2; layer = 2.4; on = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{dir = 6; icon_state = "whitegreen"},/area/research_outpost/spectro) "dsv" = (/turf/simulated/wall/r_wall,/area/research_outpost/atmos) "dsw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/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"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/research_outpost/hallway) @@ -9158,7 +9158,7 @@ "duf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/hatch{name = "Telecoms West Wing"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomfoyer) "dug" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) "duh" = (/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) -"dui" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials 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/anomaly) +"dui" = (/obj/machinery/flasher{id = "syndieflash"; pixel_x = 0; pixel_y = 28},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start) "duj" = (/obj/structure/transit_tube{icon_state = "W-SE"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) "duk" = (/obj/machinery/alarm{dir = 2; pixel_y = 25},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dul" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/turret_protected/tcomfoyer) @@ -9188,17 +9188,17 @@ "duJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/research_outpost/sample) "duK" = (/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) "duL" = (/obj/structure/table,/obj/item/weapon/lighter/random,/obj/item/weapon/crowbar,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"duM" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (NORTHWEST)"; icon_state = "intact-f"; dir = 9},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) +"duM" = (/obj/item/device/radio/electropack,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start) "duN" = (/obj/machinery/artifact_scanpad,/turf/simulated/floor/bluegrid,/area/research_outpost/anomaly) "duO" = (/obj/machinery/conveyor_switch{id = "anolaser"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "duP" = (/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) -"duQ" = (/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "research_sensor"; pixel_x = -25; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (NORTHEAST)"; icon_state = "intact-f"; dir = 5},/turf/simulated/floor{icon_state = "warning"},/area/research_outpost/gearstore) +"duQ" = (/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start) "duR" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "research_pump"},/turf/simulated/floor{icon_state = "warning"},/area/research_outpost/gearstore) "duS" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/wall,/area/research_outpost/gearstore) -"duT" = (/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/door/firedoor/border_only{dir = 2},/turf/simulated/floor,/area/research_outpost/gearstore) +"duT" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "synd_pump"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "duU" = (/obj/structure/transit_tube,/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/hallway) -"duV" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (NORTHEAST)"; icon_state = "intact-f"; dir = 5},/turf/simulated/wall,/area/research_outpost/gearstore) -"duW" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (NORTHWEST)"; icon_state = "intact-f"; dir = 9},/turf/simulated/wall/r_wall,/area/research_outpost/iso1) +"duV" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "synd_pump"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "synd_pump"; tag_exterior_door = "synd_outer"; frequency = 1331; id_tag = "synd_airlock"; tag_interior_door = "synd_inner"; pixel_x = 25; req_access_txt = "0"; tag_chamber_sensor = "synd_sensor"},/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "synd_sensor"; pixel_x = 25; pixel_y = 12},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"duW" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1; icon_state = "map"; tag = "icon-manifold (NORTH)"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "duX" = (/obj/structure/transit_tube,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/hallway) "duY" = (/obj/structure/rack,/obj/item/stack/sheet/metal{amount = 50; pixel_x = 5; pixel_y = 5},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/storage/belt/utility{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/toolbox/emergency{pixel_x = 5; pixel_y = 5},/turf/simulated/floor/plating,/area/research_outpost/maintstore1) "duZ" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "pwall"; dir = 5},/area/shuttle/alien/mine) @@ -9208,31 +9208,31 @@ "dvd" = (/turf/space,/area/shuttle/research/outpost) "dve" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = -30; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dvf" = (/obj/structure/noticeboard/anomaly{icon_state = "nboard05"; pixel_y = 32},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) -"dvg" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; external_pressure_bound = 140; icon_state = "out"; on = 1; pressure_checks = 0},/turf/simulated/floor/plating/airless,/area) +"dvg" = (/obj/machinery/door/airlock/centcom{name = "Hardsuit Storage"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "dvh" = (/obj/machinery/camera{c_tag = "Research Outpost Lobby"; dir = 2; network = list("Research","SS13")},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 4; icon_state = "whitegreencorner"},/area/research_outpost/hallway) -"dvi" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/visible/cyan{tag = "icon-manifold (NORTH)"; icon_state = "manifold"; dir = 1},/turf/simulated/floor/plating,/area/research_outpost/maint) +"dvi" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "dvj" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/wall/r_wall,/area/research_outpost/longtermstorage) "dvk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/research_outpost/maintstore2) -"dvl" = (/obj/machinery/door/airlock/external{id_tag = "riso3"; name = "Access Airlock"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/research_outpost/iso3) -"dvm" = (/obj/machinery/door/airlock/external{id_tag = "riso3"; name = "Access Airlock"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/research_outpost/iso2) -"dvn" = (/obj/machinery/door/airlock/external{id_tag = "riso3"; name = "Access Airlock"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/research_outpost/iso1) -"dvo" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (SOUTHWEST)"; icon_state = "intact-f"; dir = 10},/turf/simulated/wall/r_wall,/area/research_outpost/iso1) +"dvl" = (/obj/structure/rack,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"dvm" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"dvn" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"dvo" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/structure/grille,/turf/space,/area) "dvp" = (/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/research_outpost/gearstore) "dvq" = (/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) "dvr" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dvs" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/gearstore) "dvt" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dvu" = (/obj/structure/rack,/obj/item/weapon/storage/belt/archaeology,/obj/item/clothing/suit/space/anomaly,/obj/item/clothing/head/helmet/space/anomaly,/obj/item/clothing/mask/breath,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/research_outpost/gearstore) -"dvv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/research_outpost/iso2) -"dvw" = (/obj/machinery/camera{c_tag = "Isolation Room Two"; dir = 8; network = list("Anomaly Isolation")},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/research_outpost/iso2) -"dvx" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/wall/r_wall,/area/research_outpost/iso3) -"dvy" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (SOUTHWEST)"; icon_state = "intact-f"; dir = 10},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/research_outpost/iso3) +"dvv" = (/obj/machinery/door/airlock/vault{name = "Armory"; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"dvw" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area) +"dvx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area) +"dvy" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/space,/area/syndicate_mothership) "dvz" = (/turf/simulated/wall/r_wall,/area/research_outpost/power) "dvA" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/plating,/area/research_outpost/maintstore1) -"dvB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/research_outpost/iso1) -"dvC" = (/obj/machinery/camera{c_tag = "Isolation Room One"; dir = 8; network = list("Anomaly Isolation")},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/research_outpost/iso1) -"dvD" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/wall/r_wall,/area/research_outpost/iso2) -"dvE" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{tag = "icon-manifold-f (NORTH)"; icon_state = "manifold-f"; dir = 1},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/research_outpost/iso2) +"dvB" = (/obj/structure/rack,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"dvC" = (/obj/structure/rack,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"dvD" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"dvE" = (/obj/structure/stool/bed/chair{dir = 4},/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dvF" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/cyan,/turf/simulated/wall/r_wall,/area/research_outpost/iso1) "dvG" = (/obj/item/stack/rods,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard,/turf/simulated/floor/plating,/area/mine/abandoned) "dvH" = (/obj/item/stack/rods,/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) @@ -9241,16 +9241,16 @@ "dvK" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dvL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dvM" = (/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) -"dvN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{tag = "icon-manifold-f (NORTH)"; icon_state = "manifold-f"; dir = 1},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/research_outpost/iso1) +"dvN" = (/obj/structure/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/syndi,/obj/item/clothing/mask/gas/syndicate,/obj/item/clothing/head/helmet/space/rig/syndi,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "dvO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/research_outpost/iso3) "dvP" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor,/area/research_outpost/gearstore) "dvQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/research_outpost/gearstore) "dvR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass_mining{name = "Equipment storage"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/gearstore) "dvS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/research_outpost/entry) -"dvT" = (/obj/machinery/door/airlock/research{name = "Temporary Storage Loading"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) +"dvT" = (/obj/structure/closet/syndicate/suit{name = "suit closet"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dvU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/research_outpost/entry) "dvV" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/research_outpost/iso3) -"dvW" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dvW" = (/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "Preparation"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dvX" = (/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) "dvY" = (/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) "dvZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/research_outpost/longtermstorage) @@ -9262,7 +9262,7 @@ "dwf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light/small{dir = 1},/obj/structure/table,/turf/simulated/floor,/area/research_outpost/iso1) "dwg" = (/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor,/area/mine/west_outpost) "dwh" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/sign/nosmoking_1{pixel_y = 32},/turf/simulated/floor/plating,/area/research_outpost/power) -"dwi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass_mining{name = "Loading area"; req_access_txt = "65"},/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"},/turf/simulated/floor,/area/research_outpost/tempstorage) +"dwi" = (/obj/machinery/door/window{dir = 4; name = "Brig"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dwj" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor,/area/research_outpost/gearstore) "dwk" = (/obj/machinery/mining/brace,/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored) "dwl" = (/obj/structure/lattice,/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area) @@ -9308,8 +9308,8 @@ "dwZ" = (/obj/machinery/vending/snack,/obj/machinery/light{dir = 4},/turf/simulated/floor/wood,/area/research_outpost/hallway) "dxa" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/computer/security/telescreen{desc = "Used for watching the isolation room cameras."; layer = 4; name = "Isolation Room Telescreen"; network = list("Anomaly Isolation"); pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor,/area/research_outpost/iso2) "dxb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/research_outpost/iso2) -"dxc" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials Locker Room"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"dxd" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; 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/anomaly) +"dxc" = (/obj/structure/table,/obj/item/weapon/kitchen/utensil/knife{pixel_x = -6},/obj/item/weapon/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = -1},/obj/item/weapon/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 4},/obj/item/weapon/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 9},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"dxd" = (/obj/structure/table/reinforced{icon_state = "table"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "dxe" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/computer/security/telescreen{desc = "Used for watching the isolation room cameras."; layer = 4; name = "Isolation Room Telescreen"; network = list("Anomaly Isolation"); pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor,/area/research_outpost/iso3) "dxf" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/computer/security/telescreen{desc = "Used for watching the isolation room cameras."; layer = 4; name = "Isolation Room Telescreen"; network = list("Anomaly Isolation"); pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor,/area/research_outpost/iso1) "dxg" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera{c_tag = "Research Outpost Expedition Prep"; dir = 8; network = list("Research","SS13")},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor,/area/research_outpost/gearstore) @@ -9317,9 +9317,9 @@ "dxi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/research_outpost/power) "dxj" = (/obj/machinery/portable_atmospherics/scrubber,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/research_outpost/power) "dxk" = (/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) -"dxl" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "mining_outpost_inner"; locked = 1; name = "Mining Dock Airlock"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (EAST)"; icon_state = "intact-f"; dir = 4},/turf/simulated/floor,/area/mine/production) +"dxl" = (/obj/item/weapon/storage/fancy/cigarettes,/obj/structure/table/reinforced{icon_state = "table"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "dxm" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "mining_outpost_airlock"; pixel_x = 0; pixel_y = 30; req_access_txt = "0"; req_one_access_txt = "13;48"; tag_airpump = "mining_outpost_pump"; tag_chamber_sensor = "mining_outpost_sensor"; tag_exterior_door = "mining_outpost_outer"; tag_interior_door = "mining_outpost_inner"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "mining_outpost_sensor"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "mining_outpost_pump"},/turf/simulated/floor,/area/mine/production) -"dxn" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "mining_outpost_airlock"; name = "interior access button"; pixel_x = -30; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "13;48"},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact-f (SOUTHWEST)"; icon_state = "intact-f"; dir = 10},/turf/simulated/floor,/area/mine/production) +"dxn" = (/obj/item/weapon/lighter/zippo,/obj/structure/table/reinforced{icon_state = "table"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "dxo" = (/obj/item/stack/rods,/obj/structure/lattice,/turf/space,/area) "dxp" = (/obj/item/weapon/shard,/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dxq" = (/turf/simulated/floor/plating/airless,/area/mine/abandoned) @@ -9345,7 +9345,7 @@ "dxK" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/research_outpost/maintstore2) "dxL" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/mine/production) "dxM" = (/obj/structure/lattice,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "mining_outpost_airlock"; name = "exterior access button"; pixel_x = -8; pixel_y = 25; req_access_txt = "0"; req_one_access_txt = "13;48"},/turf/space,/area) -"dxN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/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) +"dxN" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dxO" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; layer = 2.4; level = 2; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/research_outpost/power) "dxP" = (/obj/machinery/conveyor_switch{id = "archgunc"},/turf/simulated/floor/plating,/area/research_outpost/power) "dxQ" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plating,/area/research_outpost/power) @@ -9366,10 +9366,10 @@ "dyf" = (/obj/machinery/computer/shuttle_control/mining,/turf/simulated/floor,/area/mine/production) "dyg" = (/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) "dyh" = (/obj/structure/sign/science,/turf/simulated/wall,/area/research_outpost/entry) -"dyi" = (/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/research_outpost/entry) -"dyj" = (/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/research_outpost/entry) +"dyi" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "synd_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"dyj" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dyk" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor{icon_state = "dark"},/area/mine/maintenance) -"dyl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/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) +"dyl" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dym" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/wood,/area/research_outpost/hallway) "dyn" = (/obj/structure/table/reinforced,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 8},/area/mine/explored) "dyo" = (/obj/machinery/mining/brace,/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) @@ -9381,8 +9381,8 @@ "dyu" = (/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 5},/area/mine/explored) "dyv" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/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) "dyw" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/research_outpost/power) -"dyx" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"dyy" = (/obj/machinery/atmospherics/pipe/manifold/visible,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"dyx" = (/obj/machinery/vending/cigarette{contraband = newlist(); premium = newlist(); prices = list(/obj/item/weapon/storage/fancy/cigarettes = 15, /obj/item/weapon/storage/box/matches = 1, /obj/item/weapon/lighter/zippo = 4, /obj/item/clothing/mask/cigarette/cigar/havana = 20); products = list(/obj/item/weapon/storage/fancy/cigarettes = 10, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/zippo = 4, /obj/item/clothing/mask/cigarette/cigar/havana = 2)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"dyy" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/flasher_button{id = "syndieflash"; name = "Flasher"; pixel_x = 27; pixel_y = 0; tag = "permflash"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dyz" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall/r_wall,/area/research_outpost/power) "dyA" = (/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},/turf/simulated/floor/plating,/area/research_outpost/hallway) "dyB" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/simulated/wall/r_wall,/area/research_outpost/hallway) @@ -9421,7 +9421,7 @@ "dzi" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dzj" = (/obj/structure/disposalpipe/segment,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/hallway/primary/central) "dzk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) -"dzl" = (/obj/machinery/door/airlock/engineering{name = "Power substation"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor/plating,/area/research_outpost/power) +"dzl" = (/obj/machinery/cell_charger,/obj/structure/table/reinforced{icon_state = "table"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "dzm" = (/obj/structure/transit_tube{icon_state = "D-NE"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) "dzn" = (/obj/structure/transit_tube{icon_state = "E-NW"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) "dzo" = (/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) @@ -9442,7 +9442,7 @@ "dzD" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/simulated/floor{icon_state = "bot"},/area/research_outpost/entry) "dzE" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/research_outpost/entry) "dzF" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/research_outpost/entry) -"dzG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/glass_research{name = "Research Shuttle Dock"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/research_outpost/entry) +"dzG" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "floor5"},/area/syndicate_station/start) "dzH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/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) "dzI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/research_outpost/entry) "dzJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor,/area/research_outpost/entry) @@ -9460,10 +9460,10 @@ "dzV" = (/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/turf/simulated/floor,/area/hallway/primary/central) "dzW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dzX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/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) -"dzY" = (/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) +"dzY" = (/obj/machinery/door/window{dir = 1; name = "Cell"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dzZ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dAa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) -"dAb" = (/obj/machinery/door/airlock/research{name = "Temporary Storage"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) +"dAb" = (/obj/machinery/vending/assist{contraband = null; name = "AntagCorpVent"; products = list(/obj/item/device/assembly/prox_sensor = 5, /obj/item/device/assembly/signaler = 4, /obj/item/device/assembly/infra = 4, /obj/item/device/assembly/prox_sensor = 4, /obj/item/weapon/handcuffs = 8, /obj/item/device/flash = 4, /obj/item/weapon/cartridge/signal = 4)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dAc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "dAd" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowcorner"},/area/research_outpost/hallway) "dAe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/firealarm{dir = 4; layer = 3.3; pixel_x = 26},/turf/simulated/floor,/area/crew_quarters/heads) @@ -9556,7 +9556,7 @@ "dBN" = (/obj/machinery/optable,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) "dBO" = (/turf/simulated/wall/r_wall,/area/research_outpost/iso1) "dBP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/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) -"dBQ" = (/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},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) +"dBQ" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_closed"; id_tag = "synd_inner"; locked = 0; name = "Ship External Access"; req_access = null; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dBR" = (/turf/simulated/wall/r_wall,/area/research_outpost/iso2) "dBS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/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) "dBT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/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) @@ -9566,7 +9566,7 @@ "dBX" = (/obj/machinery/hydroponics,/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor{icon_state = "hydrofloor"},/area/rnd/xenobiology/xenoflora_storage) "dBY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/sign/examroom{desc = "A guidance sign which reads 'ISOLATION ROOM TWO'"; name = "\improper ISOLATION ROOM TWO"; pixel_y = -32},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/research_outpost/hallway) "dBZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/firealarm{pixel_y = -24},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/research_outpost/hallway) -"dCa" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{name = "Long Term Storage"; req_access_txt = "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{icon_state = "vault"; dir = 5},/area/research_outpost/longtermstorage) +"dCa" = (/obj/machinery/microwave,/obj/structure/table/reinforced{icon_state = "table"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "dCb" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/research_outpost/harvesting) "dCc" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/research_outpost/harvesting) "dCd" = (/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) @@ -9596,7 +9596,7 @@ "dCB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/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) "dCC" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/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) "dCD" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 1},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/alarm/isolation{pixel_y = 24},/turf/simulated/floor,/area/research_outpost/iso2) -"dCE" = (/obj/machinery/door/airlock/research{name = "Exotic Particles Collection"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/research_outpost/harvesting) +"dCE" = (/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/table/reinforced{icon_state = "table"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "dCF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/research_outpost/harvesting) "dCG" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 1},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/alarm/isolation{pixel_y = 24},/turf/simulated/floor,/area/research_outpost/iso3) "dCH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) @@ -9623,7 +9623,7 @@ "dDc" = (/obj/structure/closet/excavation,/turf/simulated/floor,/area/research_outpost/gearstore) "dDd" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/research_outpost/gearstore) "dDe" = (/obj/structure/rack,/obj/item/weapon/storage/belt/archaeology,/obj/item/clothing/suit/space/anomaly,/obj/item/clothing/head/helmet/space/anomaly,/obj/item/clothing/mask/breath,/turf/simulated/floor,/area/research_outpost/gearstore) -"dDf" = (/obj/machinery/door/airlock/external{name = "Access Airlock"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/research_outpost/harvesting) +"dDf" = (/obj/item/device/multitool,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/reinforced{icon_state = "table"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "dDg" = (/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) "dDh" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/medical{name = "Operating Theatre 2 Storage"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) "dDi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgery) @@ -9631,7 +9631,7 @@ "dDk" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/research_outpost/maintstore1) "dDl" = (/obj/machinery/hydroponics/soil,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/grass,/area/research_outpost/maintstore1) "dDm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/longtermstorage) -"dDn" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;65"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) +"dDn" = (/obj/structure/toilet{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start) "dDo" = (/obj/machinery/conveyor{dir = 2; id = "anotempload"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) "dDp" = (/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) "dDq" = (/obj/machinery/conveyor{dir = 1; id = "anosample"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) @@ -9644,10 +9644,10 @@ "dDx" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgery) "dDy" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgery2) "dDz" = (/obj/machinery/camera{c_tag = "Research Outpost Anomalous Materials Lab"; dir = 8; network = list("Research","SS13")},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"dDA" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials Loading"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor,/area/research_outpost/anomaly) +"dDA" = (/obj/item/weapon/cigbutt,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start) "dDB" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{name = "Operating Theatre 1 Maintenance Access"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/medical/surgery) -"dDC" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Operating Theatre 2 Maintenance Access"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/medical/surgery2) -"dDD" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 0; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) +"dDC" = (/obj/machinery/door/window{dir = 2; name = "Seating"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"dDD" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dDE" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/asmaint) "dDF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/asmaint) "dDG" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/longtermstorage) @@ -9662,7 +9662,7 @@ "dDP" = (/obj/structure/ore_box,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "dDQ" = (/turf/simulated/wall,/area/mine/explored) "dDR" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/wall,/area/mine/explored) -"dDS" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/research_outpost/gearstore) +"dDS" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "synd_pump"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dDT" = (/obj/structure/cable,/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/item/weapon/storage/toolbox/mechanical,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/research_outpost/entry) "dDU" = (/obj/machinery/recharge_station,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 27},/turf/simulated/floor/plating,/area/engine/drone_fabrication) "dDV" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor,/area/research_outpost/gearstore) @@ -9675,7 +9675,7 @@ "dEc" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the isolation room cameras."; layer = 4; name = "Isolation Room Telescreen"; network = list("Anomaly Isolation"); pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/binary/pump{dir = 8},/turf/simulated/floor/plating,/area/research_outpost/maint) "dEd" = (/obj/machinery/shower{icon_state = "shower"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "showroomfloor"},/area/research_outpost/hallway) "dEe" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/research_outpost/hallway) -"dEf" = (/obj/machinery/door/airlock{id_tag = "rbath"; name = "Bathroom"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/research_outpost/hallway) +"dEf" = (/obj/structure/table,/obj/machinery/computer/pod/old/syndicate{id = "smindicate"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dEg" = (/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},/turf/simulated/floor{icon_state = "showroomfloor"},/area/research_outpost/hallway) "dEh" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) "dEi" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) @@ -9695,20 +9695,31 @@ "dEw" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/mine/explored) "dEx" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area) "dEy" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor,/area/research_outpost/gearstore) -"dEz" = (/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh{name = "Cuban Pete-Meat"},/obj/item/weapon/spacecash/c1,/turf/simulated/floor/engine,/area/tcommsat/computer) +"dEz" = (/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh{name = "Cuban Pete-Meat"},/turf/simulated/floor/engine,/area/tcommsat/computer) "dEA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/research_outpost/maintstore1) "dEB" = (/obj/machinery/hydroponics/soil,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/grass,/area/research_outpost/maintstore1) "dEC" = (/turf/simulated/floor,/area/research_outpost/gearstore) "dED" = (/obj/machinery/recharge_station,/turf/simulated/floor,/area/research_outpost/gearstore) "dEE" = (/obj/machinery/mineral/unloading_machine,/turf/simulated/floor{icon_state = "floorgrime"},/area/research_outpost/tempstorage) -"dEF" = (/obj/structure/table,/obj/item/clothing/suit/space/rig/engineering,/obj/item/clothing/head/helmet/space/rig/engineering,/turf/simulated/floor/plating,/area/djstation) +"dEF" = (/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh{name = "Cuban Pete-Meat"},/obj/item/weapon/spacecash/c1,/turf/simulated/floor/engine,/area/tcommsat/computer) "dEG" = (/obj/machinery/conveyor{dir = 2; id = "anotempload"},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) +"dEH" = (/obj/structure/table,/obj/effect/spawner/newbomb/timer/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dEI" = (/obj/machinery/conveyor{dir = 1; id = "anosample"},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) "dEJ" = (/obj/machinery/atmospherics/binary/pump{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/maint) "dEK" = (/obj/machinery/artifact_analyser,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/bluegrid,/area/research_outpost/anomaly) +"dEL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "syndieshutters_workshop"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"dEM" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"dEN" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"dEO" = (/obj/structure/table,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"dEP" = (/obj/structure/table,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler{pixel_y = 2},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"dEQ" = (/obj/structure/table,/obj/structure/closet/secure_closet/medical_wall{pixel_y = 32; req_access = null; req_access_txt = "150"},/obj/item/bodybag,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = -4; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline{pixel_x = 4; pixel_y = 7},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"dER" = (/obj/structure/table,/obj/item/roller{pixel_y = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"dES" = (/obj/structure/closet{name = "custodial"},/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"dET" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Brig"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dEU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/research_outpost/spectro) "dEV" = (/obj/machinery/camera{c_tag = "Isolation Room Three"; dir = 8; network = list("Anomaly Isolation")},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/research_outpost/iso3) "dEW" = (/obj/structure/closet/walllocker/emerglocker/west,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) +"dEX" = (/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "Preparation"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dEY" = (/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/research_outpost/longtermstorage) "dEZ" = (/turf/simulated/floor{dir = 1; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/research_outpost/longtermstorage) "dFa" = (/obj/structure/transit_tube{icon_state = "S-NE"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) @@ -9730,7 +9741,9 @@ "dFq" = (/obj/machinery/conveyor{dir = 2; id = "anotempload"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "dFr" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "dFs" = (/obj/machinery/conveyor{dir = 1; id = "anosample"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) -"dFt" = (/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) +"dFt" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/syndicate{pixel_x = 1; pixel_y = 3},/obj/item/weapon/storage/toolbox/syndicate{pixel_x = -2; pixel_y = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"dFu" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"dFv" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/fire{pixel_x = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "dFw" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 0},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/iso1) "dFx" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 0; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/iso1) "dFy" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/iso1) @@ -9741,6 +9754,7 @@ "dFD" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 0; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/iso3) "dFE" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/iso3) "dFF" = (/obj/structure/closet/hydrant{pixel_x = -32},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) +"dFG" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/adv{pixel_x = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "dFH" = (/turf/simulated/wall/r_wall,/area/research_outpost/maintstore2) "dFI" = (/obj/structure/transit_tube{icon_state = "D-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/longtermstorage) "dFJ" = (/obj/structure/transit_tube{icon_state = "N-SW"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) @@ -9754,6 +9768,7 @@ "dFR" = (/obj/machinery/atmospherics/portables_connector{dir = 2},/obj/machinery/portable_atmospherics/canister/air,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window{dir = 4; name = "Air Tank Access"; req_access_txt = "0"; req_one_access_txt = "47;10;24"},/turf/simulated/floor,/area/research_outpost/gearstore) "dFS" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "research_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = null},/turf/simulated/floor,/area/research_outpost/gearstore) "dFT" = (/obj/structure/table,/obj/item/weapon/storage/box/excavation,/obj/item/weapon/pickaxe,/obj/item/weapon/wrench,/obj/item/device/measuring_tape,/turf/simulated/floor,/area/research_outpost/gearstore) +"dFU" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "dFV" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/maint) "dFW" = (/obj/machinery/atmospherics/unary/heat_reservoir/heater{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/maint) "dFX" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/research_outpost/iso1) @@ -9795,7 +9810,11 @@ "dGH" = (/obj/structure/lattice,/obj/structure/transit_tube,/turf/space,/area/mine/explored) "dGI" = (/obj/structure/transit_tube,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/mine/explored) "dGJ" = (/obj/structure/transit_tube/station{dir = 2; icon_state = "closed"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'VACUUM'"; icon_state = "space"; layer = 4; name = "VACUUM"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/mine/explored) +"dGK" = (/obj/machinery/door/window{dir = 1; name = "Surgery"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"dGL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/bonesetter,/obj/item/weapon/bonegel,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"dGM" = (/obj/machinery/door_control{id = "syndieshutters_workshop"; name = "remote shutter control"; pixel_x = 25; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dGN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) +"dGO" = (/obj/structure/table,/obj/item/weapon/storage/belt,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dGP" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "research_pump"},/turf/simulated/floor,/area/research_outpost/gearstore) "dGQ" = (/obj/structure/closet/emcloset,/turf/simulated/floor,/area/research_outpost/gearstore) "dGR" = (/obj/machinery/door/window/westleft,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) @@ -9812,6 +9831,9 @@ "dHc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/transit_tube{icon_state = "D-NW"},/turf/simulated/floor/plating,/area/mine/explored) "dHd" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/mine/explored) "dHe" = (/obj/machinery/door/window/westleft{dir = 2},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"dHf" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"dHg" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"dHh" = (/obj/machinery/door_control{id = "syndieshutters_infirmary"; name = "remote shutter control"; pixel_x = -25; req_access_txt = "0"},/obj/structure/mopbucket,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "dHi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dHj" = (/obj/structure/ore_box,/turf/simulated/floor{icon_state = "warning"},/area/research_outpost/gearstore) "dHk" = (/obj/structure/transit_tube{icon_state = "N-SE"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/mine/explored) @@ -9820,7 +9842,7 @@ "dHn" = (/turf/space,/area/mine/unexplored) "dHo" = (/obj/machinery/door/airlock/external{name = "Mining Bridge"; req_access_txt = "0"; req_one_access_txt = "54;65"},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "dHp" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/mine/explored) -"dHq" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "research_outer"; locked = 1; name = "Research Outpost External Access"; req_access = null; req_access_txt = "10;13"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/gearstore) +"dHq" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "dHr" = (/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/explored) "dHs" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'VACUUM'"; icon_state = "space"; layer = 4; name = "VACUUM"; pixel_x = 0; pixel_y = -32},/obj/machinery/door/window/westleft,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "dHt" = (/obj/structure/transit_tube{icon_state = "D-NE"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/mine/explored) @@ -9903,11 +9925,13 @@ "dIS" = (/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris,/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "dIT" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/carpet,/area/mine/living_quarters) "dIU" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm1"; 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) +"dIV" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dIW" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/obj/machinery/light,/turf/space,/area/mine/explored) "dIX" = (/obj/structure/table,/turf/simulated/floor/carpet,/area/mine/living_quarters) "dIY" = (/turf/simulated/floor/carpet,/area/mine/living_quarters) "dIZ" = (/obj/machinery/door/airlock{id_tag = "miningdorm1"; name = "Room 1"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/mine/living_quarters) "dJa" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"dJb" = (/obj/structure/table,/obj/item/device/aicard,/obj/effect/spawner/newbomb/timer/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dJc" = (/obj/structure/disposalpipe/segment,/turf/simulated/mineral/random,/area/mine/unexplored) "dJd" = (/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) "dJe" = (/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) @@ -9936,10 +9960,10 @@ "dJB" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor,/area/mine/west_outpost) "dJC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) "dJD" = (/obj/machinery/recharge_station,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/mine/west_outpost) -"dJE" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) +"dJE" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "syndieshutters_workshop"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "dJF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/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) "dJG" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) -"dJH" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dJH" = (/obj/machinery/body_scanconsole,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "dJI" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor,/area/research_outpost/maintstore1) "dJJ" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "mining_west_outpost_pump"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) "dJK" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/west_outpost) @@ -9961,9 +9985,9 @@ "dKa" = (/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/mine/west_outpost) "dKb" = (/obj/machinery/light/small{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dKc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) -"dKd" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_outpost_inner"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor,/area/mine/west_outpost) +"dKd" = (/obj/machinery/bodyscanner,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "dKe" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost) -"dKf" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_outpost_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = "10;13"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost) +"dKf" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "dKg" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "mining_west_outpost_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = null},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored) "dKh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry) "dKi" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) @@ -9972,9 +9996,13 @@ "dKl" = (/obj/machinery/light{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dKm" = (/turf/simulated/floor,/area/mine/living_quarters) "dKn" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor,/area/mine/living_quarters) +"dKo" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"dKp" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "syndieshutters_workshop"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "dKq" = (/obj/machinery/light,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "dKr" = (/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) "dKs" = (/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor,/area/mine/west_outpost) +"dKt" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) +"dKu" = (/obj/structure/table,/obj/item/weapon/cautery,/obj/item/weapon/hemostat,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "dKv" = (/obj/structure/ore_box,/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "mining_west_outpost_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/west_outpost) "dKw" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dKx" = (/obj/machinery/camera{c_tag = "Crew Area"; dir = 1; network = list("MINE")},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) @@ -9984,6 +10012,7 @@ "dKB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/mine/living_quarters) "dKC" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/structure/sign/electricshock{pixel_x = 32},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/research_outpost/power) "dKD" = (/obj/machinery/camera{c_tag = "Storage Room"; dir = 1; network = list("MINE")},/turf/simulated/floor,/area/mine/living_quarters) +"dKE" = (/obj/structure/table,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/weapon/retractor,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "dKF" = (/turf/simulated/wall,/area/mine/production) "dKG" = (/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) "dKH" = (/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) @@ -9995,15 +10024,19 @@ "dKN" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor,/area/mine/west_outpost) "dKO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/sign/science{desc = "A warning sign which reads 'MASS SPECTROMETRY'"; name = "\improper MASS SPECTROMETRY"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 1; icon_state = "whitegreencorner"},/area/research_outpost/hallway) "dKP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/research_outpost/hallway) +"dKQ" = (/obj/machinery/optable,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "dKR" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/mine/west_outpost) "dKS" = (/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/living_quarters) +"dKT" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dKU" = (/obj/machinery/door/airlock/glass{name = "Crew Area"; req_access_txt = "48"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/mine/living_quarters) +"dKV" = (/obj/machinery/teleport/hub,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dKW" = (/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) "dKX" = (/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) "dKY" = (/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) +"dKZ" = (/obj/structure/table,/obj/item/weapon/scalpel,/obj/item/weapon/circular_saw{pixel_y = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "dLa" = (/turf/simulated/floor,/area/mine/production) "dLb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor,/area/medical/surgeryprep) -"dLc" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/research_outpost/hallway) +"dLc" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "dLd" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) "dLe" = (/turf/simulated/floor,/area/mine/eva) "dLf" = (/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 = 8; icon_state = "barber"},/area/research_outpost/hallway) @@ -10028,6 +10061,7 @@ "dLy" = (/obj/machinery/door/airlock{name = "Toilet"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/mine/living_quarters) "dLz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/mine/living_quarters) "dLA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/research_outpost/anomaly) +"dLB" = (/obj/structure/closet/secure_closet/medical_wall{pixel_y = 0; req_access = null; req_access_txt = "150"},/obj/item/clothing/gloves/white,/obj/item/weapon/storage/box/syringes,/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start) "dLC" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/mine/living_quarters) "dLD" = (/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/mine/living_quarters) "dLE" = (/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) @@ -10042,16 +10076,18 @@ "dLN" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station EVA"; req_access_txt = "54"},/turf/simulated/floor,/area/mine/eva) "dLO" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/mine/eva) "dLP" = (/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},/turf/simulated/floor,/area/mine/eva) -"dLQ" = (/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/door/firedoor/border_only{dir = 2},/turf/simulated/floor,/area/mine/eva) +"dLQ" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "dLR" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/eva) "dLS" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/eva) -"dLT" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_east_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = "10;13"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/eva) +"dLT" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "synd_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "dLU" = (/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{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored) +"dLV" = (/obj/machinery/door/window{dir = 4; name = "Brig"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "dLW" = (/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) "dLX" = (/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},/turf/simulated/floor/plating,/area/mine/west_outpost) "dLY" = (/obj/machinery/conveyor{backwards = 2; dir = 2; forwards = 1; id = "mining_west"},/obj/structure/plasticflaps/mining,/turf/simulated/floor,/area/mine/west_outpost) "dLZ" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/mine/living_quarters) "dMa" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/mine/living_quarters) +"dMb" = (/turf/simulated/floor/wood{icon_state = "wood-broken"},/area/syndicate_mothership) "dMc" = (/obj/structure/rack,/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/mine/west_outpost) "dMd" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/mine/living_quarters) "dMe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor,/area/mine/living_quarters) @@ -10077,10 +10113,12 @@ "dMy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/mine/west_outpost) "dMz" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/west_outpost) "dMA" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/mine/west_outpost) +"dMB" = (/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/shuttle/plating,/area/syndicate_mothership) "dMC" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) "dMD" = (/obj/machinery/conveyor_switch{id = "mining_west"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) "dME" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor,/area/mine/west_outpost) -"dMF" = (/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/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor/plating,/area/mine/west_outpost) +"dMF" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Equipment Room"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) +"dMG" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "dMH" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/mine/living_quarters) "dMI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/mine/living_quarters) "dMJ" = (/obj/machinery/camera{c_tag = "EVA"; dir = 4; network = list("MINE")},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor,/area/mine/eva) @@ -10089,7 +10127,10 @@ "dMM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/mine/west_outpost) "dMN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor,/area/mine/west_outpost) "dMO" = (/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},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/mine/living_quarters) +"dMP" = (/obj/structure/table,/obj/item/stack/medical/ointment,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_mothership) +"dMQ" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler,/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "dMR" = (/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,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/mine/eva) +"dMS" = (/obj/structure/table,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler,/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "dMT" = (/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/supply{dir = 4},/turf/simulated/floor/plating,/area/mine/eva) "dMU" = (/obj/structure/dispenser/oxygen,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/mine/eva) "dMV" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor,/area/mine/eva) @@ -10109,12 +10150,12 @@ "dNj" = (/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) "dNk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "48"},/turf/simulated/floor/plating,/area/mine/living_quarters) "dNl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/mine/west_outpost) -"dNm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/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},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor,/area/mine/living_quarters) -"dNn" = (/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/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor/plating,/area/mine/eva) +"dNm" = (/obj/machinery/sleeper,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_mothership) +"dNn" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_mothership) "dNo" = (/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) "dNp" = (/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) "dNq" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/mine/production) -"dNr" = (/obj/machinery/computer/mech_bay_power_console,/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/turf/simulated/floor,/area/mine/eva) +"dNr" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_mothership) "dNs" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/turf/simulated/wall,/area/mine/production) "dNt" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "dNu" = (/obj/machinery/conveyor{dir = 4; id = "mining_internal"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) @@ -10131,6 +10172,7 @@ "dNF" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/mine/living_quarters) "dNG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/mine/production) "dNH" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/mine/living_quarters) +"dNI" = (/obj/structure/table,/obj/item/stack/medical/bruise_pack,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_mothership) "dNJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/living_quarters) "dNK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/mine/living_quarters) "dNL" = (/obj/machinery/status_display{layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor,/area/mine/production) @@ -10142,6 +10184,7 @@ "dNR" = (/obj/machinery/sleep_console,/turf/simulated/floor{icon_state = "warnwhite"; dir = 5},/area/mine/living_quarters) "dNS" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/camera{c_tag = "Sleeper Room"; dir = 1; network = list("MINE")},/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) "dNT" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) +"dNU" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "dNV" = (/turf/simulated/floor/plating,/area/mine/living_quarters) "dNW" = (/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/mine/living_quarters) "dNX" = (/obj/structure/ore_box,/turf/simulated/floor{icon_state = "warning"},/area/mine/living_quarters) @@ -10158,7 +10201,7 @@ "dOi" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/living_quarters) "dOj" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/mine/living_quarters) "dOk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/mine/living_quarters) -"dOl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/living_quarters) +"dOl" = (/obj/structure/table,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "dOm" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor,/area/mine/production) "dOn" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/mine/west_outpost) "dOo" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/space,/area/mine/living_quarters) @@ -10181,16 +10224,20 @@ "dOF" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor,/area/mine/west_outpost) "dOG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored) "dOH" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored) +"dOI" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/infra,/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) +"dOJ" = (/obj/structure/table,/obj/item/weapon/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/toolbox/syndicate{pixel_x = -3; pixel_y = -3},/obj/effect/spawner/newbomb/timer/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "dOK" = (/obj/machinery/door/window/westright{name = "Production Area"; req_access_txt = "48"},/turf/simulated/floor,/area/mine/production) "dOL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/space,/area/mine/production) "dOM" = (/obj/structure/window/reinforced{dir = 8},/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/mine/production) "dON" = (/obj/machinery/mineral/input,/turf/simulated/floor{icon_state = "loadingarea"},/area/mine/production) "dOO" = (/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) +"dOP" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_mothership) "dOQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/mine/living_quarters) "dOR" = (/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/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/mine/living_quarters) "dOS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/mine/living_quarters) "dOT" = (/obj/machinery/mineral/processing_unit_console,/turf/simulated/wall/r_wall,/area/mine/production) "dOU" = (/obj/machinery/mineral/processing_unit,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) +"dOV" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "dOW" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/closet/crate,/turf/simulated/floor,/area/mine/production) "dOX" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "dOY" = (/turf/simulated/wall/r_wall,/area/mine/production) @@ -10246,6 +10293,7 @@ "dPW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/mine/production) "dPX" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/mine/production) "dPY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/engine_eva_maintenance) +"dPZ" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_mothership) "dQa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/asmaint) "dQb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/mine/production) "dQc" = (/obj/structure/holostool,/turf/simulated/floor/holofloor{icon_state = "carpet7-3"; dir = 4},/area/holodeck/source_theatre) @@ -10255,7 +10303,7 @@ "dQg" = (/obj/machinery/door/airlock/glass{name = "Arrivals Bar"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) "dQh" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor,/area/medical/surgeryprep) "dQi" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{dir = 9; icon_state = "warnwhite"},/area/rnd/xenobiology) -"dQj" = (/obj/machinery/computer/security/nuclear,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"dQj" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "dQk" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "dQl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/mine/production) "dQm" = (/obj/machinery/portable_atmospherics/pump,/turf/simulated/shuttle/plating,/area/centcom/evac) @@ -10266,6 +10314,7 @@ "dQr" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) "dQs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/mine/production) "dQt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) +"dQu" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_mothership) "dQv" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "mining_west_pump"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/living_quarters) "dQw" = (/obj/structure/holostool,/turf/simulated/floor/holofloor{icon_state = "carpet11-12"; dir = 4},/area/holodeck/source_theatre) "dQx" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/plating,/area/mine/living_quarters) @@ -10300,6 +10349,7 @@ "dRa" = (/obj/machinery/telecomms/processor/preset_cent,/turf/unsimulated/floor{icon_state = "green"; dir = 1},/area/centcom/control) "dRb" = (/obj/machinery/telecomms/bus/preset_cent,/turf/unsimulated/floor{icon_state = "green"; dir = 1},/area/centcom/control) "dRc" = (/obj/machinery/telecomms/receiver/preset_cent,/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/control) +"dRd" = (/obj/item/weapon/weldingtool,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_mothership) "dRe" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) "dRf" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/control) "dRg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) @@ -10318,6 +10368,7 @@ "dRt" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "dark"},/area/mine/maintenance) "dRu" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor,/area/mine/living_quarters) "dRv" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Communications"; req_access_txt = "48"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "vault"},/area/mine/maintenance) +"dRw" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_mothership) "dRx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/mine/living_quarters) "dRy" = (/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/centcom/control) "dRz" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{tag = "icon-red (EAST)"; icon_state = "red"; dir = 4},/area/centcom/control) @@ -10331,6 +10382,7 @@ "dRH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor,/area/centcom/control) "dRI" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Arrivals Processing"; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "dRJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor,/area/centcom/control) +"dRK" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/adv,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_mothership) "dRL" = (/obj/structure/stool/bed/chair/office/dark,/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_x = -12; pixel_y = -25; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "dRM" = (/obj/machinery/shield_gen/external,/turf/simulated/floor/plating,/area/engine/storage_hard) "dRN" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio3"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/turf/simulated/floor/engine,/area/rnd/xenobiology) @@ -10379,6 +10431,7 @@ "dSE" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station) "dSF" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/under/psysuit,/obj/item/clothing/suit/wizrobe/psypurple,/obj/item/clothing/head/wizard/amp,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station) "dSG" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/shoes/sandal/marisa{desc = "A set of fancy shoes that are as functional as they are comfortable."; name = "Gentlemans Shoes"},/obj/item/clothing/under/gentlesuit,/obj/item/clothing/suit/wizrobe/gentlecoat,/obj/item/clothing/head/wizard/cap,/obj/item/weapon/staff/gentcane,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station) +"dSH" = (/obj/structure/table,/obj/effect/spawner/newbomb/timer/syndicate,/turf/unsimulated/floor{icon_state = "floor4"},/area/syndicate_mothership) "dSI" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/backpack/cultpack,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station) "dSJ" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/backpack,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station) "dSK" = (/obj/structure/table/woodentable,/obj/machinery/chem_dispenser/soda,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) @@ -10416,6 +10469,9 @@ "dTq" = (/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station) "dTr" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/turf/unsimulated/beach/sand,/area/beach) "dTs" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/turf/unsimulated/beach/sand,/area/beach) +"dTt" = (/obj/item/weapon/crowbar,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_mothership) +"dTu" = (/obj/machinery/door/poddoor{id = "smindicate"; name = "Outer Airlock"},/turf/simulated/shuttle/plating,/area/syndicate_mothership) +"dTv" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_mothership) "dTw" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dTx" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dTy" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area) @@ -10436,7 +10492,7 @@ "dTN" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engine_room) "dTO" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) "dTP" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/starboard) -"dTQ" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/starboard) +"dTQ" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "dTR" = (/obj/structure/window/shuttle{icon_state = "window1"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) "dTS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/hallway/primary/starboard) "dTT" = (/obj/structure/closet/wardrobe/engineering_yellow,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi) @@ -10445,7 +10501,7 @@ "dTW" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/starboard) "dTX" = (/obj/machinery/mech_bay_recharge_port,/turf/simulated/floor/plating,/area/assembly/chargebay) "dTY" = (/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor/bluegrid,/area/assembly/chargebay) -"dTZ" = (/obj/machinery/firealarm,/turf/simulated/wall,/area/storage/emergency3) +"dTZ" = (/obj/machinery/teleport/hub,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "dUa" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/medical/reception) "dUb" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor,/area/medical/reception) "dUc" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Medical Reception"; req_access_txt = "5"},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor,/area/medical/reception) @@ -10507,6 +10563,7 @@ "dVg" = (/obj/structure/morgue,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/medical/morgue) "dVh" = (/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/medical/morgue) "dVi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/medical/morgue) +"dVj" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/syndicate_mothership) "dVk" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/reception) "dVl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/airless{icon_state = "white"},/area/medical/reception) "dVm" = (/obj/structure/filingcabinet/chestdrawer{name = "Medical Forms"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{dir = 5; icon_state = "blue"},/area/medical/reception) @@ -10520,15 +10577,20 @@ "dVu" = (/obj/structure/stool/bed,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/exam_room) "dVv" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/medical/morgue) "dVw" = (/obj/structure/filingcabinet/chestdrawer{desc = "A large drawer filled with autopsy reports."; name = "Autopsy Reports"},/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/morgue) +"dVx" = (/obj/structure/rack,/obj/item/weapon/crowbar,/obj/item/weapon/extinguisher,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_mothership) "dVy" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor{dir = 4; icon_state = "whiteblue_ex"; tag = "icon-whiteblue (EAST)"},/area/medical/reception) "dVz" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/airless{icon_state = "white"},/area/medical/reception) "dVA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/exam_room) "dVB" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/medical{name = "Examination room"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/exam_room) "dVC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/exam_room) "dVD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/exam_room) +"dVE" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/syndicate_mothership) +"dVF" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/syndicate_mothership) +"dVG" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/syndicate_mothership) "dVH" = (/obj/structure/table/reinforced,/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 6},/obj/item/device/mass_spectrometer/adv,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/machinery/door_control{id = "chemwindow"; name = "Pharmacy Windows Shutter Control"; pixel_x = -22; pixel_y = -10; pixel_z = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "dVI" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "dVJ" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"dVK" = (/obj/structure/table,/obj/effect/landmark{name = "Nuclear-Code"},/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) "dVL" = (/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "blue"},/area/medical/morgue) "dVM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/bluegrid,/area/assembly/chargebay) "dVN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/wall/r_wall,/area/assembly/chargebay) @@ -10551,28 +10613,40 @@ "dWe" = (/obj/machinery/camera{c_tag = "Virology Starboard"; dir = 8; network = list("RD"); pixel_y = -22},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dWf" = (/obj/structure/extinguisher_cabinet,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/medical/virology) "dWg" = (/obj/structure/table,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"dWh" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/weapon/pen{pixel_y = 4},/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) "dWi" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{dir = 1; icon_state = "green"},/area/medical/virology) "dWj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/medical/virology) +"dWk" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 8},/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) +"dWl" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) +"dWm" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/hos,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) "dWn" = (/obj/structure/table,/obj/item/weapon/storage/fancy/vials,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dWo" = (/obj/structure/table,/obj/item/weapon/storage/lockbox/vials,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dWp" = (/obj/machinery/door/window/southright{name = "Virology Isolation Room Three"; req_access_txt = "39"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) "dWq" = (/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/scrubbers,/turf/simulated/floor/plating,/area/medical/virology) "dWr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/medical/virology) "dWs" = (/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/medical/virology) +"dWt" = (/obj/item/device/pda/syndicate,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) +"dWu" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome) +"dWv" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6; icon_state = "intact"; tag = "icon-intact-f (SOUTHEAST)"},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "dWw" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/maintenance/asmaint) "dWx" = (/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/medical/virology) "dWy" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dWz" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/computer/med_data/laptop,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dWA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/virology) "dWB" = (/obj/machinery/door/window/southright{name = "Virology Isolation Room Two"; req_access_txt = "39"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) +"dWC" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "dWD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/medical/virology) "dWE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "virologyq_airlock_interior"; locked = 1; name = "Virology Quarantine Airlock"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dWF" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"dWG" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) +"dWH" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/turf/unsimulated/floor{dir = 8; icon_state = "whitegreencorner"},/area/centcom/holding) "dWI" = (/obj/structure/stool/bed/chair/office/dark,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"dWJ" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1; icon_state = "map"; tag = "icon-manifold (NORTH)"},/turf/simulated/floor,/area/tdome) "dWK" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/meter,/obj/machinery/door_control{id = "disvent"; name = "Incinerator Vent Control"; pixel_x = 0; pixel_y = -24; req_access_txt = null; req_one_access_txt = "12;5"},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "dWL" = (/obj/item/roller,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dWM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/medical/virology) "dWN" = (/obj/machinery/disease2/diseaseanalyser,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"dWO" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "dWP" = (/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/virology) "dWQ" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/virusdish/random,/obj/item/weapon/virusdish/random,/obj/item/weapon/virusdish/random,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dWR" = (/obj/machinery/computer/diseasesplicer,/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) @@ -10594,12 +10668,15 @@ "dXh" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/asmaint) "dXi" = (/obj/structure/table,/obj/item/weapon/storage/box/cups,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dXj" = (/obj/structure/reagent_dispensers/water_cooler,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"dXk" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space,/area) "dXl" = (/turf/unsimulated/wall{icon_state = "phoron14"},/area/alien) "dXm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/medical/virology) "dXn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "virologyq_airlock_exterior"; locked = 1; name = "Virology Quarantine Airlock"; req_access_txt = "39"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "virologyq_airlock_control"; name = "Virology Quarantine Access Button"; pixel_x = -24; pixel_y = 0; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dXo" = (/turf/unsimulated/wall{icon_state = "phoron10"},/area/alien) +"dXp" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8; icon_state = "map"; tag = "icon-manifold (WEST)"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "dXq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dXr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"dXs" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/valve/digital/open{name = "Mixed Air Outlet Valve"},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) "dXt" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/green,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dXu" = (/turf/unsimulated/wall{icon_state = "phoron6"},/area/alien) "dXv" = (/turf/unsimulated/wall{icon_state = "phoron2"},/area/alien) @@ -10614,12 +10691,14 @@ "dXE" = (/turf/unsimulated/wall{icon_state = "phoron5"},/area/alien) "dXF" = (/turf/simulated/wall/r_wall,/area/medical/virologyaccess) "dXG" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01},/area/maintenance/asmaint) +"dXH" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor,/area/tcommsat/computer) "dXI" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) "dXJ" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgery) "dXK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgery) "dXL" = (/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgery) "dXM" = (/obj/machinery/door/airlock/medical{name = "Operating Theatre 1 Storage"; req_access_txt = "45"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgeryprep) "dXN" = (/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/medical/surgeryprep) +"dXO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor,/area/tcommsat/computer) "dXP" = (/turf/simulated/floor{icon_state = "blue"; dir = 6},/area/medical/surgeryprep) "dXQ" = (/obj/machinery/door/airlock/medical{name = "Operating Theatre 2 Storage"; req_access_txt = "45"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgeryprep) "dXR" = (/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgery2) @@ -10639,17 +10718,29 @@ "dYf" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) "dYg" = (/obj/structure/window/shuttle{icon_state = "window2"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) "dYh" = (/obj/structure/window/shuttle{icon_state = "window12"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) +"dYi" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor,/area/tcommsat/computer) +"dYj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/turf/simulated/floor,/area/tcommsat/computer) "dYk" = (/obj/structure/rack{dir = 1},/obj/item/weapon/extinguisher,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint) "dYl" = (/obj/structure/window/shuttle{icon_state = "window4"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) "dYm" = (/obj/structure/window/shuttle{icon_state = "window8"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) "dYn" = (/obj/structure/closet/secure_closet/medical2,/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgery) "dYo" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor,/area/mine/production) +"dYp" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/turf/simulated/floor/plating,/area/tcommsat/chamber) +"dYq" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/turf/simulated/wall/r_wall,/area/tcommsat/chamber) "dYr" = (/obj/structure/closet/secure_closet/medical2,/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgery2) "dYs" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/shuttle/escape/centcom) "dYt" = (/turf/simulated/wall,/area/medical/surgeryprep) +"dYu" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 120; icon_state = "map_vent_in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) +"dYv" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dYw" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored) +"dYx" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "engineering_station_airlock"; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; req_one_access_txt = "13;32"; tag_airpump = "engineering_station_pump"; tag_chamber_sensor = "engineering_station_sensor"; tag_exterior_door = "engineering_station_outer"; tag_interior_door = "engineering_station_inner"},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/floor/plating,/area/djstation) +"dYy" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "listeningpost_inner"; locked = 1; name = "Engineering Dock Airlock"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/djstation) "dYz" = (/obj/machinery/portable_atmospherics/canister,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/power) "dYA" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor,/area/quartermaster/office) +"dYB" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/turf/simulated/floor/plating,/area/djstation) +"dYC" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "listeningpost_airlock"; pixel_x = -25; req_access_txt = "0"; tag_airpump = "listeningpost_pump"; tag_chamber_sensor = "listeningpost_sensor"; tag_exterior_door = "listeningpost_outer"; tag_interior_door = "listeningpost_inner"},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/floor/plating,/area/djstation) +"dYD" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/djstation) +"dYE" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/turf/simulated/floor/plating,/area/djstation) "dYF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dYG" = (/obj/machinery/atmospherics/pipe/simple/visible/supply,/obj/structure/disposalpipe/sortjunction/flipped{dir = 1; sortType = "Atmospherics"; name = "Atmospherics"},/turf/simulated/floor,/area/atmos) "dYH" = (/obj/machinery/door/airlock/maintenance{name = "Incinerator Access"; req_access_txt = null; req_one_access_txt = "5;12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/incinerator) @@ -10657,7 +10748,18 @@ "dYJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/sortjunction/flipped{dir = 2; sortType = "Engineering"; name = "Engineering"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor,/area/engine/hallway) "dYK" = (/obj/machinery/computer/security/engineering{name = "Drone Monitoring Cameras"; network = list("Engineering")},/turf/simulated/floor/plating,/area/engine/drone_fabrication) "dYL" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/drone_fabrication) +"dYM" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/plating,/area/djstation) +"dYN" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/plating,/area/djstation) +"dYO" = (/obj/structure/table,/obj/item/clothing/suit/space/rig/engineering,/obj/item/clothing/head/helmet/space/rig/engineering,/turf/simulated/floor/plating,/area/djstation) +"dYP" = (/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "engineering_station_sensor"; pixel_x = -25; pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/turf/simulated/floor/plating,/area/djstation) +"dYQ" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; external_pressure_bound = 0; frequency = 1443; icon_state = "map_vent_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) +"dYR" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/wall,/area/constructionsite/atmospherics) +"dYS" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1443; icon_state = "map_injector"; id = "d_air_in"; on = 1},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/constructionsite/atmospherics) +"dYT" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "map_injector"; id = "d_o2_in"; on = 1},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/constructionsite/atmospherics) +"dYU" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; icon_state = "map_vent_in"; id_tag = "d_o2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/constructionsite/atmospherics) +"dYV" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; icon_state = "map_vent_in"; id_tag = "d_n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/constructionsite/atmospherics) "dYW" = (/obj/machinery/door/poddoor{density = 0; dir = 4; icon_state = "pdoor0"; id = "virologyquar"; name = "Virology Emergency Quarantine Blast Doors"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "delivery"},/area/medical/virologyaccess) +"dYX" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "map_injector"; id = "d_n2_in"; on = 1},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/constructionsite/atmospherics) "dYY" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dYZ" = (/obj/machinery/door/window/southright{dir = 4; name = "Primate Pen"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/medical/virology) "dZa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) @@ -10667,37 +10769,51 @@ "dZe" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dZf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dZg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"dZh" = (/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "research_sensor"; pixel_x = -25; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/turf/simulated/floor{icon_state = "warning"},/area/research_outpost/gearstore) "dZi" = (/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "virology_airlock_interior"; locked = 1; name = "Virology Interior Airlock"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dZj" = (/obj/structure/extinguisher_cabinet,/turf/simulated/wall/r_wall,/area/medical/virology) "dZk" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/virology) "dZl" = (/obj/machinery/door/window/southright{dir = 1; name = "Virology Isolation Room One"; req_access_txt = "39"},/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/medical/virology) "dZm" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dZn" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"dZo" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "research_outer"; locked = 1; name = "Research Outpost External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/research_outpost/gearstore) "dZp" = (/obj/structure/closet/l3closet/virology,/obj/item/clothing/mask/gas,/turf/simulated/floor{dir = 6; icon_state = "warnwhite"},/area/medical/virology) +"dZq" = (/obj/machinery/door/firedoor/border_only{dir = 2},/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},/turf/simulated/floor,/area/research_outpost/gearstore) "dZr" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "surgeryobs"; name = "Operating Theatre Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/surgeryobs) "dZs" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "surgeryobs"; name = "Operating Theatre Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/surgeryobs) "dZt" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "surgeryobs"; name = "Operating Theatre Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/surgeryobs) "dZu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/wall,/area/medical/surgeryobs) +"dZv" = (/obj/machinery/light/small{dir = 8},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "research_pump"; tag_exterior_door = "research_outer"; frequency = 1379; id_tag = "research_airlock"; tag_interior_door = "research_inner"; pixel_x = -25; pixel_y = 0; req_access_txt = null; tag_chamber_sensor = "research_sensor"},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/turf/simulated/floor,/area/research_outpost/gearstore) +"dZw" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/turf/simulated/wall,/area/research_outpost/gearstore) +"dZx" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/wall/r_wall,/area/research_outpost/iso1) "dZy" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/structure/stool/bed/chair/comfy/brown{icon_state = "comfychair_brown"; dir = 4},/turf/simulated/floor{icon_state = "bcarpet08"},/area/medical/psych) "dZz" = (/obj/structure/stool/bed/psych,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor{icon_state = "bcarpet09"},/area/medical/psych) +"dZA" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 1; icon_state = "map"; tag = "icon-manifold (NORTH)"},/turf/simulated/floor/plating,/area/research_outpost/maint) "dZB" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/table,/obj/item/bodybag/cryobag{pixel_x = -3},/obj/item/bodybag/cryobag{pixel_x = -3},/obj/item/weapon/gun/syringe,/turf/simulated/floor{icon_state = "dark"},/area/medical/biostorage) +"dZC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/external{id_tag = "riso3"; name = "Access Airlock"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/iso3) "dZD" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{dir = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/patient_wing) "dZE" = (/obj/structure/table/reinforced,/turf/simulated/floor,/area/engine/engineering_monitoring) "dZF" = (/obj/structure/table/reinforced,/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "dZG" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/machinery/camera{c_tag = "Medbay Mental Health Room"; dir = 1; network = list("SS13")},/turf/simulated/floor{icon_state = "bcarpet04"},/area/medical/psych) "dZH" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/camera{c_tag = "Medbay Recovery Ward"; dir = 1; network = list("SS13")},/turf/simulated/floor{dir = 6; icon_state = "whitered"},/area/medical/ward) +"dZI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/external{id_tag = "riso3"; name = "Access Airlock"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/iso2) "dZJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/rack,/obj/item/clothing/suit/radiation,/obj/item/clothing/head/radiation,/turf/simulated/floor{icon_state = "dark"},/area/medical/biostorage) "dZK" = (/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/floor{icon_state = "dark"},/area/medical/biostorage) "dZL" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/medical/surgeryobs) "dZM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/surgeryobs) "dZN" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "blue"; dir = 6},/area/medical/surgeryobs) "dZO" = (/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/surgeryobs) +"dZP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/external{id_tag = "riso3"; name = "Access Airlock"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/iso1) "dZQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/light_switch{pixel_x = 22; pixel_y = 0},/turf/simulated/floor{dir = 5; icon_state = "blue"},/area/medical/surgeryprep) "dZR" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{dir = 7; icon_state = "whitered"},/area/medical/ward) "dZS" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor{dir = 7; icon_state = "whitered"},/area/medical/ward) "dZT" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 10; icon_state = "whitered"},/area/medical/ward) +"dZU" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/turf/simulated/wall/r_wall,/area/research_outpost/iso1) "dZV" = (/obj/machinery/door/airlock/medical{autoclose = 0; icon_state = "door_open"; id_tag = "cubicle1"; name = "Cubicle 1"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/patient_wing) "dZW" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/patient_wing) +"dZX" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/research_outpost/gearstore) +"dZY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/research_outpost/iso2) +"dZZ" = (/obj/machinery/camera{c_tag = "Isolation Room Two"; dir = 8; network = list("Anomaly Isolation")},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/research_outpost/iso2) "eaa" = (/obj/structure/table,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner"},/turf/simulated/floor{dir = 4; icon_state = "whitered"},/area/medical/surgery) "eab" = (/obj/structure/table,/obj/item/weapon/FixOVein,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/item/weapon/surgicaldrill,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "eac" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "surgeryobs2"; name = "Operating Theatre Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/surgery2) @@ -10706,10 +10822,18 @@ "eaf" = (/obj/machinery/computer/operating,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) "eag" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "surgeryobs"; name = "Operating Theatre Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/surgery) "eah" = (/obj/structure/table,/obj/item/device/radio{anchored = 1; broadcasting = 0; canhear_range = 7; frequency = 1487; icon = 'icons/obj/items.dmi'; icon_state = "red_phone"; listening = 1; name = "Surgery Emergency Phone"},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/surgeryprep) +"eai" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/wall/r_wall,/area/research_outpost/iso3) "eaj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/item/roller,/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/medical/surgeryprep) +"eak" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/research_outpost/iso3) +"eal" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/research_outpost/iso1) +"eam" = (/obj/machinery/camera{c_tag = "Isolation Room One"; dir = 8; network = list("Anomaly Isolation")},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/research_outpost/iso1) "ean" = (/obj/structure/table,/obj/item/weapon/FixOVein,/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/obj/item/weapon/surgicaldrill,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) +"eao" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/wall/r_wall,/area/research_outpost/iso2) +"eap" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/research_outpost/iso2) +"eaq" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/research_outpost/iso1) "ear" = (/obj/machinery/door/airlock/medical{autoclose = 0; icon_state = "door_open"; id_tag = "cubicle2"; name = "Cubicle 2"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/patient_wing) "eas" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/patient_wing) +"eat" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_mining{name = "Expedition Prep"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/entry) "eau" = (/obj/structure/closet/secure_closet/medical2,/obj/machinery/light_switch{pixel_x = 22; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) "eav" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "eaw" = (/obj/machinery/door_control{id = "surgeryobs"; name = "Privacy Shutters"; pixel_y = 25},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor{dir = 4; icon_state = "whitered"},/area/medical/surgery) @@ -10717,48 +10841,112 @@ "eay" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) "eaz" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Operating Theatre 2"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/medical/surgeryprep) "eaA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/door_control{id = "surgeryobs2"; name = "Privacy Shutters"; pixel_y = 25},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/surgery2) +"eaB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only{dir = 4; 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) +"eaC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_mining{name = "Loading area"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/tempstorage) "eaD" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Operating Theatre 1"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/medical/surgeryprep) "eaE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/surgeryprep) "eaF" = (/obj/structure/stool/bed/chair/comfy/black{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/surgeryprep) +"eaG" = (/obj/machinery/door/firedoor/border_only{dir = 4; 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) "eaH" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/medical/surgeryprep) "eaI" = (/obj/machinery/holosign_switch{pixel_x = -24; pixel_y = 2},/obj/machinery/camera{c_tag = "Medbay Operating Theatre 2"; dir = 4; network = list("SS13")},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{dir = 1; icon_state = "whiteredcorner"},/area/medical/surgery2) "eaJ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) +"eaK" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "map_scrubber"; on = 0; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) +"eaL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "map_scrubber"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowcorner"},/area/research_outpost/hallway) "eaM" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) +"eaN" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "eaO" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "eaP" = (/obj/machinery/camera{c_tag = "Medbay Operating Theatre 1"; dir = 8; network = list("SS13")},/obj/machinery/holosign_switch{pixel_x = 24; pixel_y = 2},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "whiteredcorner"},/area/medical/surgery) "eaQ" = (/obj/structure/sign/biohazard,/turf/simulated/wall/r_wall,/area/medical/virologyaccess) +"eaR" = (/obj/machinery/door/firedoor/border_only{dir = 4; 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) "eaS" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) "eaT" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Virology Access"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/medical/virologyaccess) "eaU" = (/obj/structure/sign/biohazard,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/medical/virologyaccess) +"eaV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/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; name = "Firelock"},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) +"eaW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) +"eaX" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/engineering{name = "Outpost Power"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) +"eaY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/entry) +"eaZ" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/entry) "eba" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/medical/surgery2) +"ebb" = (/obj/structure/window/reinforced{dir = 5},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor/wood,/area/research_outpost/hallway) "ebc" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) +"ebd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/window/reinforced{dir = 5},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor/wood,/area/research_outpost/hallway) +"ebe" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "research_outpost_hatch"; locked = 1; name = "Research Outpost Docking Hatch"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/research_outpost/entry) "ebf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/maintenance/asmaint) +"ebg" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/camera{c_tag = "Research Outpost Hallway Starboard"; dir = 2; network = list("Research","SS13"); 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"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "ebh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/medical/surgeryprep) "ebi" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Operating Theatre 1"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/medical/surgeryprep) "ebj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/surgeryprep) "ebk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) +"ebl" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "ebm" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Operating Theatre 2"; req_access_txt = "45"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/medical/surgeryprep) "ebn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/surgery2) +"ebo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; 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) "ebp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "ebq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 4; icon_state = "whitered"},/area/medical/surgery) "ebr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) +"ebs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Research Shuttle Dock"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/entry) +"ebt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/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/entry) +"ebu" = (/obj/machinery/door/firedoor/border_only{name = "\improper Firelock South"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "ebv" = (/obj/machinery/light{dir = 8},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/structure/closet/wardrobe/medic_white,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/surgeryprep) "ebw" = (/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/weapon/reagent_containers/blood/empty,/obj/structure/table,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/camera{c_tag = "Medbay Surgery Prep"; dir = 8; network = list("SS13")},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/medical/surgeryprep) "ebx" = (/obj/machinery/status_display,/turf/simulated/wall,/area/medical/surgery) +"eby" = (/obj/machinery/door/firedoor/border_only{name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) +"ebz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/engineering{name = "Outpost Power"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) +"ebA" = (/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/entry) +"ebB" = (/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/entry) "ebC" = (/obj/machinery/status_display,/turf/simulated/wall,/area/medical/surgery2) +"ebD" = (/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; 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) "ebE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/medical/virologyaccess) "ebF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "bluecorner"},/area/medical/virologyaccess) "ebG" = (/obj/structure/table,/obj/item/weapon/hemostat,/obj/machinery/light,/obj/item/weapon/cautery,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) +"ebH" = (/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/sign/greencross,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/entry) "ebI" = (/obj/structure/table,/obj/machinery/vending/wallmed1{pixel_y = -32},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) +"ebJ" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "ebK" = (/obj/machinery/computer/med_data,/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery2) +"ebL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "ebM" = (/obj/structure/table,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/medical/surgeryprep) "ebN" = (/obj/structure/table,/obj/machinery/vending/wallmed1{pixel_y = -32},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "ebO" = (/obj/machinery/computer/med_data,/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) +"ebP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Exotic Particles Collection"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/harvesting) +"ebQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/external{name = "Access Airlock"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/harvesting) "ebR" = (/obj/structure/table,/obj/item/weapon/hemostat,/obj/machinery/light,/obj/item/weapon/cautery,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "ebS" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table/holotable/wood,/turf/simulated/floor/holofloor{icon_state = "asteroid"; dir = 2},/area/holodeck/source_picnicarea) "ebT" = (/obj/effect/landmark/costume,/obj/structure/rack/holorack,/turf/simulated/floor/holofloor{icon_state = "cult"; dir = 2},/area/holodeck/source_theatre) "ebU" = (/obj/structure/rack/holorack,/obj/item/clothing/under/dress/dress_saloon,/obj/item/clothing/head/hairflower,/turf/simulated/floor/holofloor{icon_state = "cult"; dir = 2},/area/holodeck/source_theatre) "ebV" = (/obj/structure/table/holotable/wood,/turf/simulated/floor/holofloor{icon_state = "grimy"; dir = 2},/area/holodeck/source_meetinghall) +"ebW" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/visible/yellow{dir = 1; icon_state = "map"; tag = "icon-manifold (NORTH)"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"ebX" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/atmospherics/binary/pump/on{dir = 8; name = "Filter to Waste"; target_pressure = 4500},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"ebY" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow{dir = 1; icon_state = "map"; tag = "icon-manifold (NORTH)"},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"ebZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Anomalous Materials Loading"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/anomaly) +"eca" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/binary/pump/on{dir = 8; name = "Air to Distro"; target_pressure = 285},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"ecb" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 1; icon_state = "map"; tag = "icon-manifold (NORTH)"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; layer = 2.4; level = 2; on = 1; scrub_Toxins = 0},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"ecc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock{id_tag = "rbath"; name = "Bathroom"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/research_outpost/hallway) +"ecd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Sample Preparation"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) +"ece" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; icon_state = "map_injector"; on = 1},/obj/structure/window/reinforced/tinted{dir = 4; health = 1000; icon_state = "twindow"; name = "hardened window"; opacity = 0},/turf/simulated/floor/engine{name = "Outpost O2"; nitrogen = 0; oxygen = 5000},/area/research_outpost/atmos) +"ecf" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; icon_state = "map_injector"; on = 1},/obj/structure/window/reinforced/tinted{dir = 8; health = 1000; icon_state = "twindow"; name = "hardened window"; opacity = 0},/turf/simulated/floor/engine{name = "Outpost N2"; nitrogen = 20000; oxygen = 0},/area/research_outpost/atmos) +"ecg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) +"ech" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; icon_state = "map_vent_in"; id_tag = null; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/obj/structure/window/reinforced/tinted{dir = 8; health = 1000; icon_state = "twindow"; name = "hardened window"; opacity = 0},/obj/structure/window/reinforced/tinted{dir = 1; health = 1000; icon_state = "twindow"; name = "hardened window"; opacity = 0},/turf/simulated/floor/engine{name = "Outpost N2"; nitrogen = 20000; oxygen = 0},/area/research_outpost/atmos) +"eci" = (/obj/machinery/door/firedoor/border_only{dir = 4; 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) +"ecj" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) +"eck" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) +"ecl" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "map_vent_in"; id_tag = null; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/obj/structure/window/reinforced/tinted{dir = 4; health = 1000; icon_state = "twindow"; name = "hardened window"; opacity = 0},/obj/structure/window/reinforced/tinted{dir = 1; health = 1000; icon_state = "twindow"; name = "hardened window"; opacity = 0},/turf/simulated/floor/engine{name = "Outpost O2"; nitrogen = 0; oxygen = 5000},/area/research_outpost/atmos) +"ecm" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) +"ecn" = (/obj/machinery/door/firedoor/border_only{dir = 4; 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) +"eco" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"ecp" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/research_outpost/hallway) +"ecq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; external_pressure_bound = 140; icon_state = "map_vent_out"; on = 1; pressure_checks = 0},/turf/simulated/floor/plating/airless,/area) +"ecr" = (/obj/machinery/door/firedoor/border_only{dir = 4; 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) +"ecs" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock{id_tag = "rminingdorm1"; name = "Dorm 1"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/research_outpost/hallway) +"ect" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock{id_tag = "rdorm2"; name = "Dorm 2"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/research_outpost/hallway) +"ecu" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_outpost_inner"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/turf/simulated/floor,/area/mine/west_outpost) +"ecv" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_outpost_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/mine/west_outpost) +"ecw" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_east_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/mine/eva) +"ecx" = (/obj/machinery/door/firedoor/border_only{dir = 2},/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},/turf/simulated/floor,/area/mine/eva) +"ecy" = (/obj/machinery/computer/mech_bay_power_console,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/mine/eva) +"ecz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only{dir = 2},/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) +"ecA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/turf/simulated/floor/plating,/area/mine/living_quarters) +"ecB" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "mining_outpost_inner"; locked = 1; name = "Mining Dock Airlock"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor,/area/mine/production) +"ecC" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "mining_outpost_airlock"; name = "interior access button"; pixel_x = -30; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "13;48"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/turf/simulated/floor,/area/mine/production) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10779,65 +10967,65 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaabaabaabaabaabaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaabaabaabaabaabaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaabaabaabaabaabaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaafaafaafaafaafaaaaaaaaaaaaaagaaaaafaafaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaafaafaafaagaagaafaafaagaafaagaagaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiaalaawaakaamaanaaiaaiaaiaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaiaaoaapaaqaavaataauaaraasaajaaxaayaazaaiaafaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaafaaiaaAaaBaaxaaCaaxaaxaaDaaEaaNaaxaaGaaHaaiaafaafaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaaiaaoabeaaIaaJaaFaaxaaLaaMaaKaaOaaPaaPaaiaaQaaaaaeaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaagaaiaaPaaPaaPaaPabyaaSaaDaaEaaNaaxaaTaaUaaiaafaaaaaaaaaaafaaVaaVaaVaaVaaVaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaafaafaafaafaafaaaaaaaaaaaaaagaaaaafaafaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaafaafaafaagaagaafaafaagaafaagaagaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiaalaawaakaamaanaaiaaiaaiaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaiaaoaapaaqaavaataauaaraasaajaaxaayaazaaiaafaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaafaaiaaAaaBaaxaaCaaxaaxaaDaaEaaNaaxaaGaaHaaiaafaafaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaaiaaoabeaaIaaJaaFaaxaaLaaMaaKaaOaaPaaPaaiaaQaaaaaeaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaagaaiaaPaaPaaPaaPabyaaSaaDaaEaaNaaxaaTaaUaaiaafaaaaaaaaaaafaaVaaVaaVaaVaaVaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagaafaafaaiaaRaaWaaZabaaaXaaYabcabdabbaaxabfabgaaiaafaaaaaaaaaaafaaVabhabiabjaaVaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaiabCablaaDabmacuaboaaDabqabbabmaaPabraaiaafaaaaaaaaaaafaaVabsabtabuaaVaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaiabAaaiabwabxabvabBabnabpabkabDaaPabEaaiaafaaaaaaaaaaafaaVabFabuabGaaVaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaafaaiabKaaPabIabJaaPabSabRabMabMabNaaPabOaaiaafaafaagaafaafabPabuabsabuabPaafaagaaaaaaaafaagaagaagaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaacaacaacaacaacaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaiabKaaPabIabQaaPabLabHaaaaaaaaaaaPabTabTabTabTabTaafaafabUabsabuabsabVaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaacaacaacaacaacaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaiamSaaPabXabYaaiamTamUaaiaaaaaaabTabTacbaccacdabTabTaafaaVabsabsabuaaVaceaceaceaceaceaceapRapRapRapRapRapRaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagaaiamXahSancamZaneandanfaaPaaaabTabTapeacoacoacoapVabTabTaaVacqabsacraaVaceacsactaqNacvacwapRavoavoavoavoapRaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaiacxamvalBamuamnamkacDaaPaaaabTacEalbacGacoacHalaacJabTacKacLacMacNacOaceacsacPamJapjapjapnanKarLasvaejapRaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiakAamIamDamCaaPaaPaaPaaPaaaabTacYalbacZacoacHalaadaabTadbadcaddadeadfaceacsactapQacRaqcapRapCavgatFaurapRaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiadiadjadkadlaldalcaloalhaavadqadraaPaaaabTadsalbadtacoacHalaaduabTadvadwadxadyalGaceaceaceakSakWaceapRaqnaqPaqWarfapRaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiadCadDadEadDalxalvalBalAadIadJanJaaPaaaabTabTalralsacoalKalUabTabTadOalVadxalWaaVaceadRadSalFalMadVadWadWalqarnadWadWaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiadZaeaakdakcakbakaajZajYaaJaehaeiaaPaaaaaaabTatBajXacoajWaemabTaenaaVajVaepajUaaVaeraesaetajSajTaewaexaeyajRaeAaktadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaafaaiabKaaPabIabJaaPabSabRabMabMabNaaPabOaaiaafaafaagaafaafabPabuabsabuabPaafaagaaaaaaaafaagaagaagaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaiabKaaPabIabQaaPabLabHaaaaaaaaaaaPabTabTabTabTabTaafaafabUabsabuabsabVaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaiamSaaPabXabYaaiamTamUaaiaaaaaaabTabTacbaccacdabTabTaafaaVabsabsabuaaVaceaceaceaceaceaceapRapRapRapRapRapRaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagaaiamXahSancamZaneandanfaaPaaaabTabTapeacoacoacoapVabTabTaaVacqabsacraaVaceacsactaqNacvacwapRavoavoavoavoapRaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaiacxamvalBamuamnamkacDaaPaaaabTacEalbaqyacoacHalaacJabTacKacLacMacNacOaceacsacPamJapjapjapnanKarLasvaejapRaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaacaacaacaacaacaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiakAamIamDamCaaPaaPaaPaaPaaaabTacYalbacZacoacHalaadaabTadbadcaddadeadfaceacsactapQacRaqcapRapCavgatFaurapRaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaacaacaacaacaacaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiadiadjadkadlaldalcaloalhaavadqadraaPaaaabTadsalbadtacoacHalaaduabTadvadwadxadyalGaceaceaceakSakWaceapRaqnaqPaqWarfapRaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiadCadDadEadDalxalvalBalAadIadJanJaaPaaaabTabTalralsacoalKalUabTabTadOalVadxalWaaVaceadRadSalFalMadVadWadWalqarnadWadWaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiadZaptakdakcakbakaajZajYaaJaehaeiaaPaaaaaaabTatBajXacoajWaemabTaenaaVajVaepajUaaVaeraesaetajSajTaewaexaeyajRaeAaktadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiakAaeCakzakyaeFaeFaeFaeFaeFaeFabTabTakxaeHakIabTabTaeJakFakGaeMakHakEaePaeQaeRakBakCaeUakDaeWakwaeYaeZafaafbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcaaaaaaaaaafcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafdafeaquafgaqvalAaeFarqafjafjafjafjaenaroaqwafmaqDafoaenafpakBafqaiDaqEaqGaqHaqFaqFaqJaqMafyaqIafAaqRafCafDafEafFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafGarSarUafJaloarVaeFafLascafNafOafNafPafQarWafSaqXafUafVafWarjarlarrarsartaruarvarzarNarQaruarRarXarYagkaglagmadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcaaaaaaafcaaaaaaafcafcafcafcafcafcafcaaaaaaafcaaaaaaafcaaaaaaaaaaaaaaaaaiagnaaxagoaoGaoFaoEaeFagsapkafNaoIagvaenagwaoHagyaplagAaenagBanAagDagEagFaqTagHagIagJapmagJagHagLagMapoagOagPagQappaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcaaaafcafcafcafcafcafcafcafcafcaaaafcafcafcafcaaaaaaaaaaaaaaaaaiagSanbagUagVaqpalAaeFagXaqqagZaqragXabTahbagfahdafTahfaenagBanAagDahgapqapZaqoapUapUapTapUapWapXaqsaqtatdahqahrahsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcaaaafcafcafcafcafcafcafcafcafcaaaafcafcafcafcaaaaaaaaaaaaaaaaaiaaiaaiaaiahtanVavBaeFahwanRahyanQahyahAahBanSahDaocahFahGahHanAagDahIaodaoaagHahLagJahLagJahMahNahOahPahQahRadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcaaaafcafcafcafcafcafcafcafcafcaaaafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaaaaaiahSaoDalAaaPahUaozahWaoBahYahZaiaaoCaicaonaieaifaigaotagDaiiaodaofagHagIagJagIaikailaimadWadWainaioadWaipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcaaaafcafcafcafcafcafcafcafcafcaaaafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaaaaaiahSaoDalAaaPahUaozahWaoBahYaqCaiaaoCaicaonaieaqzaigaotagDaiiaodaofagHagIagJagIaikailaimadWadWainaioadWaipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaaaaaiaiqantansaaPaitanqaivaniahYaixaiyangahDanBaiBahGaiCanAagDaiDanzanvanyanuaiIagHaiJaiKaiLacfaceaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcaaaaaaaaaaaaaeFaeFaeFaeFagXaiManPanOaeFaiPanMaiRaniahYaenaiSaqOaiUanFaiWaenaiXanEaeUaiZakBanCaceajbajcajdajeajfajgajhaceaceacfacfacfacfacfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajiaaaaaaaaaajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcaaaaaaaafaaaaeFajjajkajlajmajnagbagcaeFajqageajqagdajqaenahbagfajtafTahfaenaeFafYajvajwafXagaaceafZajAajAajBaceakkajhajhaceajDajEajFajFajGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10846,143 +11034,147 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcaaaaaaaafaeFaeFaeFaeFaeFaeFaeFaeFaebakTakUaeFaeFagXakVaecafMakYakZaeeakZagXaeFaeFaeFaedaekalealealfalgaegalialjalealkaceaceacfacfacfacfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiaaaajiajiajiajiajiajiajiajiajiaaaajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcaaaaaaafcafcafcafcafcafcafcaaaaaaafcafcafcafcaaaaaeaaaaafaafaafaafaeFalmalnadXadYadTadUadPafvaluadKalwadQalyalzadMadLalCadKalDalEadPadNadFalealHalIalJadHalLagraleakPalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalOalOalOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPalPalPalQalQaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiaaaajiajiajiajiajiajiajiajiajiaaaajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaalQalQalPalQalQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafamqaeFafialTadpaeFadAadBalXalYalZadoambaefaeBameaframgalCagpamialYamjadGadFaleamlammammacCammagialeakPalNaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalOalOalOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaaaaafaaaampaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaaaampaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafamqadzaeFamsamtadmaeFadgadhacXamyamzamAamBacWacVamEacUamFalCamAamGamHacSacIacFaleamLamMammacCammadnaleakPalNaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaalOalOalOalOalOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafamOaafalPaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafamPaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafamqamqaeFacjackabZacaacgaciaeFaeFaeFagXamWamFabWamYacBanaacQagXaeFaeFaeFacAacnacmaczacyanhaclammabzaleakPalNaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalOalOalOaaaaaaaaaaaaaaaaaaalPalPalPalPalPaaaaaaaaaankaaaaaaaaaalPalPalQalQalQaaaaaaajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalQalPalPaaaaaaaaaanlaaaaaaaaaalPalPalQalQalQaaaaaaaaaaaaafcafcafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaafaafapxaqdanGaqdaeFanwanrajsaeFajpajrajuaiRanxadKajzajMajxajyajNamFalCadKanDalEadPadNajQaleajPajOanHacCammapcaleakPalNaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalOalOalOaaaaaaaaaaaaaaaaaaampaaaaaaaafaafaafaaaaaaankaafaafaaaaafaafaaaaaaalQaaaaaaajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaaaampaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafamqadzaeFamsamtadmaeFadgadhacXamyamzamAamBacWacVamEacUamFalCamAamGaclacSacIacFaleamLamMammacCammadnaleakPalNaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaalOalOalOalOalOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafamOaafalPaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafamPaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafamqamqaeFacjackabZacaacgaciaeFaeFaeFagXamWamFabWamYacBanaacQagXaeFaeFaeFacAacnacmaczacyanhacCammabzaleakPalNaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalOalOalOaaaaaaaaaaaaaaaaaaalPalPalPalPalPaaaaaaaaaankaaaaaaaaaalPalPalQalQalQaaaaaaajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalQalPalPaaaaaaaaaanlaaaaaaaaaalPalPalQalQalQaaaaaaaaaaaaafcafcafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaafaafapxaqdanGaqdaeFanwanrajsaeFajpajrajuaiRanxadKajzajMajxajyajNamFalCadKanDalEadPadNajQaleajPajOaoyacCammapcaleakPalNaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalOalOalOaaaaaaaaaaaaaaaaaaampaaaaaaaafaafaafaaaaaaankaafaafaaaaafaafaaaaaaalQaaaaaaajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaafaafaaaaaaaaaanlaafaafaaaaafaafaaaaaaalQaaaaaaaaaaaaafcafcafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaafaaaapxanpanpanpaeFaiHanLaiNaeFanNaiOaiQaiTaiVaohajaanUajoamFanWamFalCagpamianYanZaiAaobaleaiFaiEaoeaiGaoganXaleaoialNalNaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalOalOalOaaaaaaaaaaaaaaaaaaalPaafaojaojaojaojaojaafaokaafaojaojaojaojaojaafalPaaaajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafaolaolaolaolaolaafaomaafaolaolaolaolaolaafalPaaaaaaaaaaaaaaaafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaafaafaaaapxapaannapaaeFaooaopaoqaeFaoraosahXaouamzamAaovaowaoxaoxanWamFalCamAamGaoyacXaibaoAaleaisairaijaihanoanIanTaiuaizalNalNaoJaoKaoLalNalNaafaaaaaaaaaalOalOalOalOalOaaaaaaaaaaaaaaaaaaalPaafaoMaoNaoNaoNaoNaoOaoPaoQaoRaoRaoRaoRaoSaafalPaaaajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaalPaafaoTaoUaoUaoUaoUaoVaoWaoXaoYaoYaoYaoYaoZaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaapxapaapbapxaeFagXagXagXagXagXagXagXagXagXagXamRapdapdamVapfapgaphagXagXagXagXagXagXapiamQamKahxahxamramNanjahKahJalNaprapsapsapsaptalNalNalNalNapualOalOalOalOalOaaaaaaaaaaaaaaaaaaalPaafapvapvapvapvapvaafaoPaafapvapvapvapvapvaafalPaaaaaaajiajiajiajiaaaaaaajiajiajiajiajiajiajiaaaaaaajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafaolaolaolaolaolaafaomaafaolaolaolaolaolaafalPaaaaaaaaaaaaaaaafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaafaafaaaapxapaannapaaeFaooaopaoqaeFaoranHahXaouamzamAaovaowaoxaoxanWamFalCamAamGaosacXaibaoAaleaisairaijaihanoanIanTaiuaizalNalNaoJaoKaoLalNalNaafaaaaaaaaaalOalOalOalOalOaaaaaaaaaaaaaaaaaaalPaafaoMaoNaoNaoNaoNaoOaoPaoQaoRaoRaoRaoRaoSaafalPaaaajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaalPaafaoTaoUaoUaoUaoUaoVaoWaoXaoYaoYaoYaoYaoZaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaapxapaapbapxaeFagXagXagXagXagXagXagXagXagXagXamRapdapdamVapfapgaphagXagXagXagXagXagXapiamQamKahxahxamramNanjahKahJalNaprapsapsapsamHalNalNalNalNapualOalOalOalOalOaaaaaaaaaaaaaaaaaaalPaafapvapvapvapvapvaafaoPaafapvapvapvapvapvaafalPaaaaaaajiajiajiajiaaaaaaajiajiajiajiajiajiajiaaaaaaajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafapwapwapwapwapwaafaoWaafapwapwapwapwapwaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxapxapyapxapzapxapAatoapBalRapDaltapAapAapAapAapAapAapAapAapEapFapGapHapIapJapKapLaleapMapNapOapPalSamxapiahnahoajhajhajhacpajhahuahpapYamdaqaaqbalOalOalOalOalOaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaafaoPaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaafaoWaaaaaaaaaaafaaaaaaaaaampaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxallaqdapxapxaqeapEaqfapEapEapEapEapEapEapEapEapEapEapEaqgapEaqhapEaqiapEapEapEaleaqjaqkaqlaqmakXamoapiahkahjahiahhaheahcamwahmahlalNalNalNajhalOalOalOalOalOaaaaaaaaaaaaaaaaaaalPaafaojaojaojaojaojaafaoPaafaojaojaojaojaojaafalPaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafaolaolaolaolaolaafaoWaafaolaolaolaolaolaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxaqxaqAaqCaqyaqzagNagRaqBaqBaqBaqBaqBaqBaqBagGagzagCagzaraaqLaqKaqLagKakoaqLakmaleapiapiapiapiapiapSamfaqQagWaqSakuaqUaqVajhalNamhagYalNaaaaaaaaaalOalOalOaaaaaaaaaaaaaaaaaaaaaalPaafaoMaoNaoNaoNaoNaoOaoPaoQaoRaoRaoRaoRaoSaafalPaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqYaqZaqYaaaaaaaaaaaaaaaaaaaaaalPaafaoTaoUaoUaoUaoUaoVaoWaoXaoYaoYaoYaoYaoZaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxapaagxapxarbarbarcaguarbarbarbareareareakKargarearearhariagharkalNaggalNarmalNalNakJagjagjbbNagjakpalpakOakMakLakLakLamaagjagtamcagqalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafapvapvapvapvapvaafaoPaafapvapvapvapvapvaafalPaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafarwarxarwaaaaaaaaaaaaaaaaaaaaaalPaafapwapwapwapwapwaafaoWaafapwapwapwapwapwaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapxaryaHDapxarEatVatXaNYaOtatYarbaWvarGarHarIarJarKaNCaMJaFsaNKarOarPaLEaLGaLGaLGaLGaNoaLGaLGaNoaLGaNraNnaLvaKWaNeaMTaNaajhaMNalNasdasealNaaaaafaKEaKzaKzaKDaKzaKzaKjaafaaaaaaaaaalQaaaaaaaaaaafaaaaaaaaaaoPaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasjaPXaslaaaasmaPYasoaaaaafaspaqYaspaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaaaaoWaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxapxapxapxaHDapxarEarAatXatWaOWasrarbaWwarIarIarIarJasuaOzaswasxaOXalNaMLaIkaMKaMKaMKaMUatpaHraGVaOCaGVaGVaGVaGVaGVaOyarTbctasPasPasPasPasPasPasPasPaLMasRasRasRasRasRaLMasPaaaaaaaaaalPaafaojaojaojaojaojaafaoPaafaojaojaojaojaojaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasTbdJasTasSasVbdPasVasSaafaspbdSaOkaaaaaaaaaaaaaaaaaaaaaalPaafaolaolaolaolaolaafaoWaafaolaolaolaolaolaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafapxasZataapxaHDapxauParAatXatWasqauNarbatearIatfatfarJatgaOzapAapEaOYalNaNDaNFaNIaSLaHqaHraBPaAvaGVaNObkqbdwaNpbcGaRQaSfarTaYEatAaJsavYaRgaKkaQBaRxasPaNgasRasRasRasRasRaLMasPaafaaaaaaalQaafaoMaoNaoNaoNaoNaoOaoPaoQaoRaoRaoRaoRaoSaafalPaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafaolaolaolaolaolaafaoWaafaolaolaolaolaolaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxaqxaqAakKahZaifagNagRaqBaqBaqBaqBaqBaqBaqBagGagzagCagzaraaqLaqKaqLagKakoaqLakmaleapiapiapiapiapiapSamfaqQagWaqSakuaqUaqVajhalNamhagYalNaaaaaaaaaalOalOalOaaaaaaaaaaaaaaaaaaaaaalPaafaoMaoNaoNaoNaoNaoOaoPaoQaoRaoRaoRaoRaoSaafalPaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqYaqZaqYaaaaaaaaaaaaaaaaaaaaaalPaafaoTaoUaoUaoUaoUaoVaoWaoXaoYaoYaoYaoYaoZaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxapaagxapxarbarbarcaguarbarbarbareareareaeaargareaXcarhariaghacGalNaggalNarmalNalNakJagjagjbbNagjakpalpakOakMakLakLakLamaagjagtamcagqalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafapvapvapvapvapvaafaoPaafapvapvapvapvapvaafalPaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafarwarxarwaaaaaaaaaaaaaaaaaaaaaalPaafapwapwapwapwapwaafaoWaafapwapwapwapwapwaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapxaryaHDapxarEatVatXaNYaOtatYarbaWvarGarHarIarJarKbboaMJaFsaNKbauarPaLEaLGaLGaLGaLGaNoaLGaLGaNoaLGaNraNnaLvaKWaNeaMTaNaajhaMNalNasdasealNaaaaafaKEaKzaKzaKDaKzaKzaKjaafaaaaaaaaaalQaaaaaaaaaaafaaaaaaaaaaoPaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasjaPXaslaaaasmaPYasoaaaaafaspaqYaspaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaaaaoWaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxapxapxapxaHDapxarEarAatXatWaOWasrarbaWwarIarIarIarJasubbBaswasxaOXaXcaMLaIkaMKaMKaMKaMUatpaHraGVaOCaGVaGVaGVaGVaGVaOyarTbctasPasPasPasPasPasPasPasPaLMasRasRasRasRasRaLMasPaaaaaaaaaalPaafaojaojaojaojaojaafaoPaafaojaojaojaojaojaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasTbdJasTasSasVbdPasVasSaafaspbdSaOkaaaaaaaaaaaaaaaaaaaaaalPaafaolaolaolaolaolaafaoWaafaolaolaolaolaolaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafapxbdcataapxaHDapxauParAatXatWasqauNarbatearIatfatfarJatgbbBapAapEaOYaXcaNDaNFaNIaSLaHqaHraBPaAvaGVaNObkqbdwaNpbcGaRQaSfarTaYEatAaJsavYaRgaKkaQBaRxasPaNgasRasRasRasRasRaLMasPaafaaaaaaalQaafaoMaoNaoNaoNaoNaoOaoPaoQaoRaoRaoRaoRaoSaafalPaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHasTatIasTatHasVatJasVatHatKatLatMaPLatOatOatPatKatKaafaaaalPaafaoTaoUaoUaoUaoUaoVaoWaoXaoYaoYaoYaoYaoZaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafapxbdWatRatSaHDapxarEarAatXatWasqarEarbauaaubaucaucaudaueaOzapAapEapFalNaNDaNFaHyaPqaHqaHraCBauiaGVaPHaPCbdVaOEbdUaOGaOParTaSOauqaJsavYavYaKkaSFaMmaTsaODasRasRasRasRasRaOSasPasPasPaaaalQaaaapvapvapvapvapvaafaoPaafapvapvapvapvapvaaaampaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHauzaWOauBatHauCaWuauEatHaqYaqYauFauGauHauIauJaKFatKaaaaaaampaaaapwapwapwapwapwaafaoWaafapwapwapwapwapwaaaalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagapxauLapaapxaHDapxarEarAaMQarCaCCarBarbaHAauSauTauTaLxaHCaKLaHsaHtaDGaHvaHwaHxaHyaHzaHqaHraEgauiaGVaGVaGVaGWaGWaGXaGVaGVarTaJvaJqaJsavYavYaKkaKoaJCaKiaGZasRasRasRasRasRaGUaGSavqavraaaalQaaaaafaaaaafaafaaaaaaaoPaaaaaaaafaaaaaaaafaaaalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHavsavtavuatHavsavtavuatHaYnaYgaXWaXWaXWaXWaYQaYHarwaaaaaaalPaaaaafaaaaafaafaaaaaaavAaaaaaaaafaaaaaaaafaaaalPaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaagapxapxapxapxaHDapxarbarbarbarbarbaYRaHIaHHaHGaHGaHGaHGaHKaHJaNqapEaJmalNaIjaIkaIhaIiaHYaIfaHNaHVaNQaLlavPavRavRaTIavRaKSavVavWavhaKPaviaviaKPaLcaKXaLaawbasRasRasRasRasRawbawcawdaweaaaalQalQalPaaaaaaaafaaaaaaaoPaaaaafaafaafaafalPalPalPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaasSatHaZAawgasSatHaZyawgasSatKaZzatKatKatKatKatKaZeaspaaaaaaalPalPalPaaaaaaaafaaaawjawkawjaafaafaafaafalPalPalPaafapxapxapxapxawlawmawmawmawmawmawmawmawnapxapxawoawpawqapxawrawsaNJawwaZCaJfaJfaJfaJfaJfaZBaJfaJpaLDaJfaJfaJeaJeaJlaIYaJaaJnahmaIxaIAaIDaITaIvaHravdaIwawLawLbcxawMawNaVcawLauiawPawQaLQayMayMayMayMaMdaMmaMqawUasRasRasRasRasRawUawVawdaweaaaaaaaaaaafaafaaaaafaaaaaaawWaaaaaaaafaaaaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXawYbaUawYawZawYaZOawYbaRaxcbaiaxbaxbaxbbaVatKbbEaspaaaaafaafaaaaaaaaaaaaaafaaaaxgbbFaKgaafaaaaafaaaaaaaaaaaaaaaapxapaapaaxjapaapaapaapaapaapaapaapaaxkaxlaxmaxnaxnaxnaxnaxnaxnaxoaJBaMMaxraxraxraxraxsaJAaxraMIaxraxsaxraxraxraxraxwaxxaxyaKdaKaaHxaJRaJRaJRaHrauhaJQawLawOawMaxCawMaVeaxEaWraxGaxHaMuaMmaMmaMmaMBaMEaMGaMHaJwasRasRasRasRasRaJxaJyaxNaxOaaaaaaaaaaaaaafaaaaafaaaaxPaxQaxPaaaaafaaaaaaaafaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxRaxSaxTaxUaxVaxTaxTaxWaxUaxTaxXaxYaxZaxZbmzatKbbEatLaafaafaaaaaaaaaaaaaaaaafaybaycaydbdBayfaaaaafaaaaaaaaaaaaaaaapxapaapxaygayhayiayiayiayiayiayiayiayjaygaykaylaylaylaylaylaylaylaQnaynaxrayoaypayqayrbdCbbraPaaPdaywayxaypaztaxrayzapEayAalNaQvaNFaNIbdEaHqaHravdbdFayDaxFaxFayEayFayGbeDayIavVbdHbdcbbUbbUbbUbaNbaTaPnbavbdGasRasRasRasRasRbdIasPasPasPaaaaaaaaaaafaafaafaafaaaaySbmRaySaaaaafaaaaaaaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafatHayUayVayUayWaxTaxTayXayUayVayUayYaxSaxVbnfatHbbEatKatKazaatOatOatOatOatPatKazbazcazdazeazbapxapxawoawpawqapxapxapxapaaryaygaaaaafaaaaafaaaaafaaaaafaaaaygaykaylazfazgazhaziazjaylaQnapaaxrazkazkazlazmaznazoaPpaBdaIEaIIaypaztaxrayzapEazualNaQvaNFaHybdEaHqaHrauhazvbbOazxazyazzazAazBazBazCazBasPbeXbfGbeFbeGbeHbeObeEasPbdLasRasRasRasRasRbdKasPaafaaaaaaaaaaaaaafaafaaaaafazLazMbdMazOazPaafaaaaaaaafaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHavsavtavuatHavsavtavuatHaYnaYgaXWaXWaXWaXWaYQaYHarwaaaaaaalPaaaaafaaaaafaafaaaaaaavAaaaaaaaafaaaaaaaafaaaalPaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaagapxapxapxapxaHDapxarbarbarbarbarbaYRaHIaHHaHGaHGaHGaHGaHKaHJaUPapEaJmalNaIjaIkaIhaIiaHYaIfaHNaHVaNQaLlavPavRavRaTIavRaKSavVavWavhaKPaviaviaKPaLcaKXaLaawbasRasRasRasRasRawbawcawdaweaaaalQalQalPaaaaaaaafaaaaaaaoPaaaaafaafaafaafalPalPalPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaasSatHaZAawgasSatHaZyawgasSatKaZzatKatKatKatKatKaZeaspaaaaaaalPalPalPaaaaaaaafaaaawjawkawjaafaafaafaafalPalPalPaafapxapxapxapxawlawmawmawmawmawmawmawmawnapxapxawoawpawqapxawrawsaNJawwaZCaJfaJfaJfaJfaJfaZBaJfaJpaJfaJfaJfaJeaJeaJlaIYaJaaYXahmaIxaIAaWHaITaIvaHravdaIwawLawLbcxawMawNaVcawLauiawPawQaLQayMayMayMayMaMdaMmaMqawUasRasRasRasRasRawUawVawdaweaaaaaaaaaaafaafaaaaafaaaaaaawWaaaaaaaafaaaaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXawYbaUawYawZawYaZOawYbaRaxcbaiaxbaxbaxbbaVatKbbEaspaaaaafaafaaaaaaaaaaaaaafaaaaxgbbFaKgaafaaaaafaaaaaaaaaaaaaaaapxapaapaaxjapaapaapaapaapaapaapaapaaxkaxlaxmaxnaxnaxnaxnaxnaxnaxoaJBaMMaxraxraxraxraxsaJAaxraMIaxraxsaxraxraxraxrbataxxbasaKdaKaaHxaJRaJRaJRaHrauhaJQawLawOawMaxCawMaVeaxEaWraxGaxHaMuaMmaMmaMmaMBaMEaMGaMHaJwasRasRasRasRasRaJxaJyaxNaxOaaaaaaaaaaaaaafaaaaafaaaaxPaxQaxPaaaaafaaaaaaaafaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxRaxSaxTaxUaxVaxTaxTaxWaxUaxTaxXaxYaxZaxZbhfatKbbEatLaafaafaaaaaaaaaaaaaaaaafaybaycaydbdBayfaaaaafaaaaaaaaaaaaaaaapxapaapxaygayhayiayiayiayiayiayiayiayjaygaykaylaylaylaylaylaylaylaQnaynaxrayoaypayqayrbdCbbraPaaPdaywayxaypaztaxrayzapEayAalNaQvaNFaNIbdEaHqaHravdbdFayDaxFaxFayEayFayGbeDayIavVbdHbhsbbUbbUbbUbaNbaTaPnbavbdGasRasRasRasRasRbdIasPasPasPaaaaaaaaaaafaafaafaafaaaaySbmRaySaaaaafaaaaaaaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafatHayUarkayUayWaxTaxTayXayUarkayUayYaxSaxVbhNatHbbEatKatKazaatOatOatOatOatPatKazbazcazdazeazbapxapxawoawpawqapxapxapxapaaryaygaaaaafaaaaafaaaaafaaaaafaaaaygaykaylazfazgazhaziazjaylaQnapaaxrazkazkazlazmaznazoaPpaBdaIEaIIaypaztaxrayzapEazualNaQvaNFaHybdEaHqaHrauhazvbbOazxazyazzazAazBazBazCazBasPbeXbfGbeFbeGbeHbeObeEasPbdLasRasRasRasRasRbdKasPaafaaaaaaaaaaaaaafaafaaaaafazLazMbdMazOazPaafaaaaaaaafaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafazQasSazRavtazSazTazUazVazWazSavtazXazYasSazZbnnatHbnPboUboUboUboUboUboUaYHbezaAeazbaAfaAgaAhazbbghapaapaapaapaapaapaapaapaaAjaygaafaAkaAkaAkaAkaAkaAkaAkaafaygaykaylaAlaAmaAnaAoaAlaylaQnaApaxraxraxraxrbnhaAraypaAsaArblAaIJaypaVvaxrayzapEaAualNaQvaNFaHybdEaHqaHravdaEhazBazBazBazBazBazBaAwaAxaAyazBasPasPasPasPbgobgrasPasPbdKasRasRasRasRasRbdKasPaaaaaaaaaaaeaaaaaaaaaaaaaafaAAaABbdTaADaAAaafaaaaaaaafaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxRayVaAEaAFaAFaAFaAFaAGayVaxRaAHasSaAIbqOaAKaAKaAKaAKaAKaAKaAKaAKaZebfxbfzazbbckaANaAOazbaAPaAQaAPaAPaAPaAPaAPaAPaAPaAPaARaaaaAkaASaATaAUbbTaAWaAkaaaaygaykaylaAlbqMbpJbqBaAlaylaQnapxaxraFNaBbazlbpdaBdazoazpaBdbniaxraxraxraxrayzapEayAalNbdZaIkaIhbdEbejbelavdaEiaHraBiaAxaBjaBjazBaAwaBkaAyazBaBlaBmaBnaBobhDaULaBqaafbfBbfdbfdbfdbfdbfdbfgaafaaaaaaaaaaaaaaaaaaaaaaaaaafaAAaBuaBvaBwaAAaafaaaaaaaBqaBqaBqaBqaBqbhqbhCaBqaBqaBqaBqaBqaBqaBqbgHaBFaBFaBFaBGaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaBHaBIaBJaBIaBIaDRaDSaBIaBIaBJaBMaBNasSbewbeAaQlbebbeuaBSaBTaBUaxeaAKaZeaPOatKazbazbaBXaBYaARaBZaCaaCbaCcaCdaCeaCfaCgaXEaCiaARaafaAkaQmaCkaClaCmaCnaAkaafaygaykaylbfCaAlbfFaAlaCraylaQnaCsaxrayoaypaCtaCuaAraCvaAsaArazsaDNaBfaBfaxrayzapEayAalNaQvaIAaIDaQxaIvaHraCAaEoaHraEpaAxaAxaAxazCaCDaCEaCFazBaCGaCHaCIaCJaYFaULaBqaaaaafaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaAAaZbaCMaCNaAAaBqaCOaCPaBqaQSaQDaQDaQDaQDaQDaQDaQFaRdaRdaRdaRdaRfaRdaRdaRdaRhaDaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxRarkaAEaAFaAFaAFaAFaAGarkaxRaAHasSaAIbqOatHaAKaAKaAKaAKaAKaAKaAKaZebfxbfzazbbckaANaAOazbaAPaAQaAPaAPaAPaAPaAPaAPaAPaAPaARaaaaAkaASaATaAUbbTaAWaAkaaaaygaykaylaAlbqMbpJbqBaAlaylaQnapxaxrbivaBbazlbpdaBdazoazpaBdbniaxraxraxraxrayzapEayAalNbdZaIkaIhbdEbejbelavdaEiaHraBiaAxaBjaBjazBaAwaBkaAyazBaBlaBmaBnaBobhDaULaBqaafbfBbfdbfdbfdbfdbfdbfgaafaaaaaaaaaaaaaaaaaaaaaaaaaafaAAaBuaBvaBwaAAaafaaaaaaaBqaBqaBqaBqaBqbhqbhCaBqaBqaBqaBqaBqaBqaBqbgHaBFaBFaBFaBGaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaBHaBIaBJaBIaBIaDRaDSaBIaBIaBJaBMaBNasSbdxbeAaQlbebbeuaBSaBTaBUaxeaAKaZeaPOatKazbazbaBXaBYaARaBZaCaaCbaCcaCdaCeaCfaCgaXEaCiaARaafaAkaQmaCkaClaCmaCnaAkaafaygaykaylbfCaAlbfFaAlaCraylaQnaCsaxrayoaypaCtaCuaAraCvaAsaArazsaDNaBfaBfaVHayzapEayAaXcaQvaIAaWHaQxaIvaHraCAaEoaHraEpaAxaAxaAxazCaCDaCEaCFazBaCGaCHaCIaCJaYFaULaBqaaaaafaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaAAaZbaCMaCNaAAaBqaCOaCPaBqaQSaQDaQDaQDaQDaQDaQDaQFaRdaRdaRdaRdaRfaRdaRdaRdaRhaDaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBHaBMaBIaDbaDcaDcaDdaDeaDfaDgaDhaDcaDcaDiaDjayUayWaZuaAKbgsbiraDnaDoaDnaBVaDpbfVaDsaqYaZnaDuaDvaAcaDwaDxaDyaDzaDzaDzaDAaDzaDzaDBbjWaARaaaaAkaRAaRTaRVaCmaSaaAkaaaaygaykaylbjgbjoaDIbjobjVaylaQnaDLaxraxraxraxraDMaAraypaAsaAraCwaCxaypaCyaVHaVzaVAaVpaVwaKJaVGaShaShaShaSEaScaFRbjYaTnbabaSPaSPaSPaUgaSPaTFaTTaTUaTVaUkaUGaVQaULaBqaBqaBqaBqaBqaBqaBqaBqaBqaCOaCPaBqaBqaBqaCOaEjaEkaBqaBqaAAaAAaElaEmaAAaEnaVqaVoaVoaVsaEsaEsaEsaEsaEsaWyaVraEuaEuaEuaEuaUNaEuaEyaEyaVnaEyaEyaEyaEyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaEBaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSayWaEHaAKblwblyaEKaELaEMaENaAKbjZbkiaAcaEQaAcaERaqYaAPaESaDBaDzaDzaDzaDzaDzaDzaETaWjaWgaVJaVIaWMaWNaWKaWLaWJaAkaafaygaWIaWpblGaWxaWqaWsblEaWpaZdaZcaxraFnaypazlaFmaBdazoazpaBdaDOaTuaypaDQaVHaWTaFsaFtaXcbdZagjagjagjagjaVEaVFaWSaVxaVybazaVxaXfaVxaXeaVxaXgaXhaFGaFHaFIaBoaXjaXmaXXaXVaXVaXCaYcaXYaXYaXYaXYaXYbaCaXYaXYaYwaYeaXnaRdaRdaYGaYxblNaWPaWQaWQaWQaWRaEsaEsaGeaEsaGfaGgaGhaEsaEuaWUaEuaGjaXlaXkaGmaGnaGoaIbasHaGraGsaGtaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXoaDcaDcaBJaDcaEEaDcaEEaGxaEEaDcaEEaDcaEFaEGazSayWaGyaAKaAKblVaYKaYPaYKaQlaQlaYJaYNaYOaYLaYMaYLaYLbakbajaGKaGLaGLaGLaGMaGLaGLaGNaGOaARaaaaZXaAkayJbmqayJaAkaAkaaaaygavOaylbmjaZIaZiaZqaZDaZEaZhbglaxraHbaypaFoaCuaAraypaAsaAraCwaZgaypaHdawGaYhaHfaHgaUnaYfalNalNalNalNalNaHjaYbazBaHlaAxazBaHmazBaHnazBaHobcvbcwbcNbczbdNbcXaYUbdlbdmbbvbdAbbwbbvbbvbbxbbzbbybbAbbybbybbybbibcubcbbawbawbawbmxbaSbawbaxbawbaWaYIaHOaHPaHQaHRaHSaHTaEsaHUbaXaEuaHWaHXaYiaHZaGnaIaaIbasHaIcaEyaEyaEyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaIdaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSaIeawzawyawxawuawuawuawzawCawDawzawAaImaInawBauKauKaAPaGOaIpaCaaIqaBOaGOaIraIsaItaIuaARaaaawaaaaavMavNavMaaaaafaaaaygavOaylaAZaAXavZaBeaBcaylaAtaAJaxrachaypazlaIFaIGazoaIHayyazraIKaILaIMawGaBsaIOaIPaAqaBKaISaaaaaaaUnaIUaIVaBLazBaIXaAxaAxaAxaCEaAxaAxaAxauOaBoaKyaBoaBoavJaBoaJcaBoaJdavHavGaJgaJhaJiaJjaJkavFaJjaJjaJjaJjaJjavDaJjaJjaJjaJjaJjaJjaJjaJjasIayRayvaAzaAiaBraBpazHbMsazIavpavlavmavnazFayNayPazDazEasHaIbaJDaJEaJFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaJIaBIaDbaDcaDcaDcaJJaDcaDcaJKaDcaDcaDiaJLaJMayWaxTaJNaJOaJOaJOaJOaJOaJOaJOaJPasDatKatKavkatKatKaAPaJSaJTaJUaJVaJVaJVaJVaJWaJXaJYaARaJZavaaKbaKcavbaKeaKbaKbaKfaygavcaylaylazJaAbaAaayLawGaUnazGaxraxraxraxraKlaKmaCxaCxaKnayHawGawGaxraxraIOaIOaIOaIOaKpaKqaKraKsaUnaKtaIVaKuazBazBazBazBazBazBazBazBazBauOaKwaKvaKxaIZauMavIaKBaKCaJdauyauWauXaKGaKHaJjayOayQayZayCaIyaPbayKaxDaxJayaayBaxBaJbaxfaDqaJjauwauvaKYaJraxdaxaaJuaysaEsaLbauuaLdavfauoaveaunaEuaEyaLhasHaIbaLiaLjaLkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaBIaBJaBIaBIaDRaDSaBIaBIaBJaJIaLmasSaLnaxTawXaLoaLoaLpaLoaLqatHaLraLsasDaLtaLuaACaLwazwaLyaLzaLAaLzaLzaLzaLzaLzaLzaLzaLBaLCazNaAdaLFaLFayTaLHaLFaLFaLFaLIazKaLJaLKaLzaxtaNmaLOaLPaIOaIBaMkaLSaLWaLUaLTaLTaLTaLTaLTaLTaOraLVaOAaLXaLYaLZaMaaMbaMcaIOaIOaIOaOBaMeaMfaMeaMgaMhaLSaMjaIzaMkaGQaBoaMlaxMaOOaMoaMnaMpaxKaMraMsaMtaJdaxLaMvaMwaMwaMxaJjaGwaFTaEJaEJaEJaEJaEJaFqaBaaEOaEUaHLaEJaEJaHMaJjasIarZaHPaHPaCXaDFaHPaHPaEsaMOaMPaEuaytaMRaHZavTaEuaMSaymayeaIbaEyaEyaEyaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXayVaMVaAFaAFaAFaAFaMWayVawXaAHasSaAIaMXaMYaDKavSaNbaNbaNcatHaNdaLsaxAaNfaLuaxzaNhaNiaNjaNkaNlaLzaLzaLzaLzaLzaLzaLzaxhaxiaxuaLzaLzaLzaxpayuaLzaLzaLzaLzaxvaLzaLzaLzaxtaNmaLuaLPaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaNsaNtaNuaNvaNwaNxaNyaNzaNAaIOaIOaIOaLPaIOaIOaIOaIOaIOaIOaIOaIOaNBbNwaCjaCWaCQaMpaNEaMpaMpawEaNGaMsaCoaJdawFawJawSaNLaNMaJjaDraDHaCpaCpaCpaCpaCpaCqaCTaDlaDmaCpaCpaDJaNRaJjasIarZaNVaHPaHPaNWaHPaNXaEsaEuaEuaEuaEuaEuaEuavQaEuaIbaIbasHaIbaNZaOaaEyaaaaafaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafazQasSaMYavtazSaObaOcaOdaOeazSavtaOfaOgasSayWaxTaMYaOhaOiaNbaNbaNcatHaOjaLsasDaNfaLuasXaLAaLzaLzaRyaChaEzaRCaLzausardaOmaOmaALatmarMaOmaOvaOwaOxathatlatkatjatiatcatbatbasYaVdaNmaLuaLPaIOaOHaIOaOIaOIaOIaOIaOIaOIaOIaOIaOJaOKaOIaOIaOIaOIaOLaOIaOIaOIaOIaOIaOMaONaOIaOIaOIaOIaOIaOIaOIaIOaIOaIOaBoaAYasOaOQaOQaOQaORasQaNGaMsaBQaJdaJdaJdaJdaJdaOUaJjatsatraSgaTAaTzaUSatQatEaCKatyatCasUasNasNasWaJjasIarZaPfaPfaPgaPhaPiaPiaPjaEsaPkaPlaPmaEyaskaVbasbaIbaIbasHaIbaEyaPsaEyaPtaPtaPtaPuaPvaPwaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafatHaxRayVaJMayWaxTaxTayXaJMayVaJMaPxawYaPyaxTaxRaPzaPzaLpaPzaLqatHaPAaLsasDaPBaPBasCatzaPBaPEaPEaPEaPEaPEaPFaPGaPEaPEaPEaPEaPEasEaPIaPJaPIaPKasGaPMaLzaLAaPNasFaPPaPQaLAaZHaPRaPRaUnaIOaIOaIPaPTaKraKraPUaPUaPUaPUaPVawGawRaxqaPZaQaaQaaQbaQcaQaaQdaQeaQfawGaQgaPUaPUaPUaPUaKraKraQhaINaIOaIOaBoaQiashaQkaQkaQkaQkasyassasiaQoavXarFdZFaQsaQtaQuaJdaJdaszaTwaQwaQyaQzasfasfasfasLasMasAasfasfasfasfasaarZaQGaHPaPgaPhaHPaHPaQHaEsasBaQJaQKaEyaQLarpaPraSoaPoasgaIbaQQaQRaEyasKasJaPtaQUaQVaQWaafaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXaQXaxTaQYaPyaxTaxTaQZaQYaxTaQXaPyaxTaxTaxTaRaaRbaRbaRbaRbaRbaRbaRbaRcatUaPBaReaufaFvautaumaRjaRkaRlaRmaRnaRoaRpaukaRraRsaRtaujaRvaRwaxIaPKatwaPMaPMaRzaPMaugaPSaPSaRBbaHaPSaPSaPSaRDaIOaIPaREaaaaaaaaaaaaaaaaaaaaaaPWaRFaRGaRHaRIaRJaRKaRJaRLaRMaRNaROaPWaaaaaaaaaaaaaaaaaaaaaaRPaINaIOauZaRRaRSatDaQoaQoaQoaQoaQoaRUatGaQoaQoaQoaQraMpaRWaRXaRYaRZatxaRXavKaSdavEasAaSnbcWavLawfawHawvawTawIasfasIarZaSjaSjaPgaPhaSkaSkaSlaEsaEsaSmaEsaEyaLhatZaulaulaulatNaTJaEyaEyaEyawtaSqaSraSsbeKaSuaafaafaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaxRaSvaSwaSvaSvaSvaSvaSvaSvaSwaSvaSvaSxaxTaxTaSyaxTavzaSzaxTaSAaSBaSCaSDatuaPBaReattbeRaPEaSHaRnaRnaRnaRnaRnaRoaSIaRnaRnaRnaRtasEaSJaSKauRaPKatwaPMaSMaSNaupatvaPSasnaSRbdnaSTaSUaSVaIOaIOaIPaREaaaaaaaaaaaaaPWaPWaPWaPWaSWaSXaSYaSZavCaTbaTcaTdaTeaTfaTgaPWaPWaPWaPWaaaaaaaaaaaaaRPaINaIOaIOaThaQoatnaTjaTkaQoaTlaTmaCIatqaToaTkaQoaQraMpaTpaRXaTqaTratTaTtauxauAauDauQauUauVauYavjavyavxavwavvasfasIarZaQGaHPaPgaPhaHPaHPaHPaTCaTDaHPaTEaEyarDastaSoaSoaSoasgaIbaIbaEyaTKaSsaSsaSsaSsaStaTLaTMaTMaTNaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasSaTOaTPaTPaTPaTPaTPaTPaTPazYasSatHaTQaTRaTSaTSaTSaFuaTSaTSaTSaBgaTSaBgaPBaReattbeRaPEaTXaRnaRnaTYaTZaUaaUbaTYaRnaRnaRnaUcasEaUdaUeaUfaPKaFkaPMaUhaUiaUjaFpaPSbdxbdsbdyaSSaSUaUmaIOaIOaIPaKqaPVaUnaUoaPWaPWaUpaUqaUraUsaUtaUtaUuaUvaUtaUuaUvaUtaUwaUxaUyaUzaUAaPWaPWaUoaUnaUBaUCaINaIOaIOaBoaUDatnaToaTkaQoaUEaUFaQoaFjaUHaTkaQoaQraMpaUIaRXaUJaFzaFyaUMaFxaUOaSbaTyawhawiaQTaTxavyaKTavwaTvasfasIarZaUWaUWaPgaPhaUXaHPaHPaUYaHPaUZaVaaEyaIbaTGaTHaSoaTGaFwaQqaVfaEyaVgaSsaSsaSsaSQaSpaSiaSeaTiaTaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaafaVmazTaxVaxTaExaEwaEvaEtaEraEXaEWaEVaQEaEPaEIaEAaOqaEqaPEaVBaRnaRnaTYaUaaVCaVDaTYaRnaRnaRnaRtasEaPKaPKaEfaPKatwaPMaPMaPMaPMaugaPSbfIaSSaSSaSSaHcaUmaIOaIOaIPaLTaLTaVKaVLaVMaPWaVNaTbaUtaVOaUtaUtaUtaUtaVPaUtaUtaUtaVRaVSaVSaVTaVUaPWaVVaVLaVWaVXaLTaINaIOaIOaThaQoatDaQoaQoaQoaVYaVZaQoaFjaWaaTkaQoaQraMpaWbaRXaWcaWdaWeaWfaFiaUOaRqaRuawhawiaQTaRiavyaKTavwaQIasfaFharZaEsaEsaFgaPhaWlaWmbfKaWnaWoaKZaFfaFaaymaFdaFeaFcaFdaFbaymaEZaFaaEYaWzaSsaSsaKQaWAaWBaWCaTMaWDaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaWEaWFaWGayWaWHaGlaGzaVkaGBaGAaGDaGCaGEaGqaGGaGFaGIaYCaFXaPEaWVaRnaWWaWXaYdaYAaYBaWYaWYaWYaXaaXbaFYaXdaGcaGbaGaaFZaReaReaXiaPBaGdaPSaIoaIlaHFaHEaHBaHpaIRaIOaIOaIOaIOaXpaXqaXraXsaXtaXuaUtaXvaXwaXxaXyaXzaXAaXBaIWaXDaKUaXFaXtaXGaXHaXIaXJaXKaXLaXMaXNaXOaIOaXPaBoaRSatnaXQaTkaQoaXRaXSaQoaFjaToaTkaQoaQraXTaRWaRXaWcaRXaXUaRXaGJaUOaVuaWhawiaWkaWiaRiavyaWtavwaUUasfaYDaGRaXZaYaaQOaQPaPgaPgaPgaPgaPgaPgaFVaEyaIbaTGaTHaSoaTGaTHaIbasHaEyaZKaSsaSsaSsaKQaYkaYlaYmaafaVtaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaUQaURaUPaUlaYoaBgaYpaYqaYraYraYraYraYsaYtaTSaYuaYvaOlaCSaYyaYyaYyaYzaYyaOsaRnaTWaUKaWZaWZaPDaSGaFOaFPaFEaFDaFJaFFaFAaIgaFCaFBaFLaFKaFMaYSaYSaYSaYTaUnaHhaIOaYVaYWaYXaYYaYZaZaaPWaHkaHiaTBaZfaPWaPWaPWaPWaPWaPWaPWaPWaPWaHeaXwaZkaZlaPWaZaaYZaZmaGTaYWaZoaIOaIOaThaQoaZpaQoaQoaQoaFHaQoaQoaFUaQoaZraZraZraZraZsaZtaKAaRXaRXaRXaZvaZwaZxasfaUTaUVaVhaViavyaKTavwaVjasfaFWaBDaZFaZGaPgaPgaPgaPgaPgaPgaPgaPgaFVawKaIbaPoaPraSoaPoaPraIbasHawKaYjaSsaSsaZJaKQaSsbusaYmaafaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaZLaZMaWGaKRaZNaBWaZPaZQaZRaZSaZTaYraZUaZVaTSaZWbaEaOlaCSaZYaZZbaaaCLaYybacbadbaeaPEbafbagbahaOnaPEaCRaBtbalbalbalbalaHubalbalbanbaobaobaobapbaobaqaUnbasbatbauawGawGawGbaAbaAbaAbayaFQbaybaAbaBbaBbaBbaBbaBbaBbaBbaBbaBaCVbaDbbubaDaPWaPWaPWawGawGawGaZoaIOaIOaUnbaFbaGaBlbaJaQobaIaQobaJbaKbaLaZrbaMbhWbaOaJdaJdaJdbaPbaQbaQbaQaJdaJdasfaLNaLeaLeaLLavyaKTaKTaKVasfaBEaBDbaYaEsbaZbbabbbaWmbbcbbabbdaWmbbeaEybbfaQMaQNbbgaQMaQNaIbbbhaEyaDkbbjbbkaSsaKQbblbbmaYmaafaLRaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaJoaxRbbnaIQbboaBgbbpbbpaICaAMbbsbbqbbtbbpaTSaQpaOTaGHaByaBzaBzaBAaBBaBzbbBbadbbCaPEbafbagbbDaGPaPEaBxbfabalbbGbbHbbHazqbbIbalbbJbbKbbLbbMbarbarbaraUnaIOaIOaYVawGbbPbbQbbRbbSaBRaFraFlbbWbaAbaBbbXbbYbbZbcaaBhbccbcdbaBaCVbcebcfbcgbchbcibcjaAVbjtawGbcmbcnbcnaUnbcqbcqaBoaBobcoaThbcobcpaBoaBoaRRaBoaBoaBobcqbcrbcrbcrbcrbcrbcrbcsaKObcqaKKaKMaKMaKNaKIaKIaKIaKhbcqaBEaBDbaYaEsaEsaEsaEsaEsarZaEsaEsaEsaEsaEyaBCbcAawKavUawKbcyaJtbcqaPtbcBaSsbcCaSsaKQaWAbcDbcEaTMaWDaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazQasSbcFaAFaWGatHatHatHatHatHatHaNUaOuaBgaTSaTSaTSaTSaTSaTSaTSaTSaTSaNTaNTaOlaCSaZYbcIbcJbcKaYybcLbcMaDEaPEbafbagbcOaOpaPEaBxbfabalbbHbcQbcQbbHbcQbalbbJbcRbcSbcSbcTbcUbcVbaraIOaIOaYVaGpbcYbgCbdabdbbdbbdaaGibddbaAbaBbdebdfbdgbdhbdibdjbdkaGYaHablibdobclbdpbdqbdrbclaLgawGaOFbdtaIOaNsbdubdvaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbdvaZFaZFaZFaZFaZFaZFaZFaOVbdzaDPaDTaCYaDUaCYaDVaCYaDXaDWaCYaCYaDZaDYaEaaEbaCYaCYaCYaCYaCYaCYaEcaEdaEebdObcCaSsaQCaQAaQjaPeaPcaOZaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaaaaafbdRazTaNNaNHaMZaMAaMAaMAaMAaMAaMAaMzaMyaMFaMDaMCaOlaCSaYyaYybdXbdYaYyaPEaPEaCUaPEbafbeabcOaOoaPEbfbaFSbalbecbedbbHbcQbeebalbbJbefbcSbcSbcSbegbehbarbeiaIOaYVaGkbekbgCbembenbeobepaGibeqbaAbaBberbesbetbetbetaNPbevbaBaCVbexbclbclbdpbeybdrbclaLfawGbvTaIOaIOaNsbdubdvaZFaZFaZFaZFaZFaZFaZFbeBaZFaZFaZFaZFaZFaZFbeCaCYaCYaCYaCYaCYaCYaCZaCYaCYaCYaCYaCYaCYaCYaNSaDDaDCaDtaZFaZFaZFaZFaZFaBDaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbeIbdzbeJaSsaSsbcCaSsaKQaStbeLaTMaTMaTNaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaWEaWFbeMaKRbeNbUVbePbePbeQbePbePbePbeRaPBaPBaPBaPBaOlaCSaZYbeSbeTbeUaYybeVbeWbUWaPEaPEaPEaPEbUmaPEbUybfabalbUqbbHbcQbUibUkbalbbJbarbfcbcSbcSbPhbfebarbULaIOaYVbTrbfhbgCbembfibfjbepaGibfkbaAbflbfmbfnbetbfobetbdfbfpbfqaCVbfrbfsbftbfubfubfvbclbfwawGcCTcuScFlcvvcxRdPwdPxdTPbmZcFsdPxbqadTQbTtdTSctbctbctaaZFaZFaZFaZFaZFbfDbfybEuaZFctccByctdcGebWUbGabFebMfdTUdTVdTWaZFaZFaZFaZFaZFbfObfPbfDaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbdzbfQbfRbfSbfTbfUcGxcGybfWaafaaaaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQcrWcrQcrZcskbfXbePbfYbfZbgabgabgbbgcbgdbgebgebgebgebPBbUubUrbUrbUtbUsbUrbUobUobUpbUobUnbUlbUlbSbbRubTJbTRbUCbTQbUBbUBbTPcslbalbTKbarbgybcSbcSbPhbgzbgAbffaIOaYVbaAbgCbTpbdabdabdabdaaGibgEbaAbaBbgFbgGbWJbgIbgJbgGbgKbaBaCVbURbUQbgNbgObgPbgQbgRbgSawGcsoaHfcsnawGbTqbTqbgUbgUbgUbgUcmTcmTcsUcsVcsrcsscsVcsUcmTcmTcmTckbckbckbckbckbbcqbcqcsJbhbbhbbhbbhbbhbbktcsXbcqcsYcsZctebhkbhkbhlbhlbhlbhlbhlbhmbhnbhnbhobhnaZFbhnbhobhnbhnbhpbTqcuRcuRbNtbhrbhgcBhaPtaPtaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaZLaZMbeMaKRbhsbePbhtbePbhubhvbePbePbePaRebhwbhxbhxbTHaYyaZYbhzbcJbhAaYybUabTZbTTbTSbMubTUbTXbTWbTzbTXbTMbTNbLkbTCbLkbLkbKEbTDblqbTbbhSbcSbcSbTLbhUbhVbffaIObTVbaAbhXbaAbhZbVnbibbSObTYbaAbaAbaBbiebifbigbihbiibijbikbaBaCVbTybimckrbiobipbgQbclbiqawGcrtcrvbDbawGcqlcqncqSbTncrDcrGcrMcrFcqUcqVcrAcrBcogcofcpscoYcmTcmIcrocmUcpMckbcrscpNcrpcptbVUcktcktclSbktcggbiSbiScksbiSbiUbiUbhlbiVbiWbiXbhlbiYbiZbiYbhlbhmbhnbhpbNtbSQbTibSQbNtbThbTgbNtbjebTEcrKbhgaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaaacqMaMYbbnaIQbjhbePbjibePbjjbjkbjlbQYbePbjnaReaXibcHbTjaYyaYyaYyaYyaYyaYybTAbjrbjsaRebWEbalbalbalbalbalbalbalbrnbalbalbalbMVbalblubRFbjzbcSbcSbPhbjAbgAbSwaIObSybaAbjCbaAbaAbaAbaAbxBbTkbaAbTmbTlbjGbjHbbXbjIbbXbjJbjKbTvbTxbTybjNbclbjObjPbgQbjQbjRbaDbSNaIObDbcgQcqOcgPcgjcqNcrfcrmcqPcqYchochocgRcgScjtcjpciHciEciDciCciBciAckcckbcjDcgecrncgecjvcjucgecgfbktcggbiSbkwcfKcgdbkzbkAbkBbkCbkDbkCbSjbkFbkGbkHbhlbkIbkJbkKbNtbSzbSEbSDbSMbNHbSAbNtbkRbkSbkTbhgaaaaaaaaaaaeaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazQasSbcFaAFaZMaTPaTPaTPbkUaTPbkVayWcRSaxTbePbkWbkXbkYbkZblablbblcbldbldbldbldbXnbWDbWDbWDbTXbTXbTXbWCblhblhblhcolbalbljblkcrwblmblnbloblpcQkblrblschfckRcnZbgAbjzbcSbXvbWwbWxbWxbWRbEvbWMbXmbWXbWLbZTbWIbXmbWTbXkbXjbXibTvbTvbTvbTvbWHbTvbTvbTvbTvbWjbWGbWQbWSbWObWPbWKbWNbWsbWFbWVaIObDbbgUdVHdVIdVJcVhcUBbgUcUZdUTcjtcjtcjtcjtcjtcjpdVzdVydVBdVAdVDdVCdVuckbdVwdVvcRYcgecjvcjucgedVLbktcggdVNbYedVMbYbbXHbXMbXFbXGbXGbXGbXUbXWbXAbXzbXybXxbXEbXDbXhbXgbXebNHbXcbXbbXfbNtbmPbkSbmsbhgaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmQcOfcNOcOocOncOwcOwcOxcOGaxTbePbmSbmTbkZbmUbePbePbePaPBbmVbmWbmXbmYbmXbmXbmXbmYbmXaPBaPBbalbalbalcFHbalblpblpblpblpblpblpblpblpbnbbVobndbcSbWebWdbWdbWdbWabWcbVYbVcbVgbWibWncrRbWfbWfbWhbWgbWqbWpbVsbWrbWobnxbnybnzbnAbnBbnCbnzbnDbnxbPVbTybnFbnGbnFbaDbaDbaDbWAbaDdUZaIObDbcgQcqOcgPdVadVbbWBbgUdUSdUTdUXdUYdUVdUWdVndVmdVldVkcmTdVpdUEdVodVfdVedVddVccONdVidVhdVgdVidVqbUedVrdVsdTXbnYdTYboabobbocbodboebofbofbogbkCbohbhlbWvbojbokbNtbVZbVAbVzbUJbVVbVXbNtbmPbkSborbhgaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaEBaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSayWaEHaAKbewblyaEKaELaEMaENaAKbjZbkiaAcaEQaAcaERaqYaAPaESaDBaDzaDzaDzaDzaDzaDzaETaWjaWgaVJaVIaWMaWNaWKaWLaWJaAkaafaygaWIaWpblGaWxaWqaWsblEaWpaZdaZcaxraFnaypazlaFmaBdazoazpaBdaDOaTuaypaDQaVHaWTaFsaFtaXcbdZagjagjagjagjaVEaVFaWSaVxaVybazaVxaXfaVxaXeaVxaXgaXhaFGaFHaFIaBoaXjaXmaXXaXVaXVaXCaYcaXYaXYaXYaXYaXYbaCaXYaXYaYwaYeaXnaRdaRdaYGaYxblNaWPaWQaWQaWQaWRaEsaEsaGeaEsaGfaGgaGhaEsaEuaWUaEuaGjaXlaXkaGmaGnaGoaIbasHaGraGsaGtaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXoaDcaDcaBJaDcaEEaDcaEEaGxaEEaDcaEEaDcaEFaEGazSayWaGyatHatHblVaYKaYPaYKaQlaQlaYJaYNaYOaYLaYMaYLaYLbakbajbfPaGLaGLaGLaGMaGLaGLaGNaGOaARaaaaZXaAkayJbmqayJaAkaAkaaaaygavOaylbmjaZIaZiaZqaZDaZEaZhbglaxraHbaypaFoaCuaAraypaAsaAraCwaZgaypaHdawGaYhaHfaHgaUnaYfalNalNalNalNalNaHjaYbazBaHlaAxazBaHmazBaHnazBaHobcvbcwbcNbczbdNbcXaYUbdlbdmbbvbdAbbwbbvbbvbbxbbzbbybbAbbybbybbybbibcubcbbawbawbawbmxbaSbawbaxbawbaWaYIaHOaHPaHQaHRaHSaHTaEsaHUbaXaEuaHWaHXaYiaHZaGnaIaaIbasHaIcaEyaEyaEyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaIdaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSaIeawzawyawxawuawuawuawzawCawDawzawAaImaInawBauKauKaAPaGOaIpaCaaIqaBOaGOaIraIsaItaIuasSaaaawaaaaavMavNavMaaaaafaaaasSavOaylaAZaAXavZaBeaBcaylaAtaAJaxrachaypazlaIFaIGazoaIHayyazraIKaILaIMawGaGwaIOaIPaAqaBKaISaaaaaaaUnaIUaIVaBLazBaIXaAxaAxaAxaCEaAxaAxaAxauOaBoaKyaBoaBoavJaBoaJcaBoaJdavHavGaJgaJhaJiaJjaJkavFaJjaJjaJjaJjaJjavDaJjaJjaJjaJjaJjaJjaJjaJjasIayRayvaAzaAiaBraBpazHbMsazIavpavlavmavnazFayNayPazDazEasHaIbaJDaJEaJFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaJIaBIaDbaDcaDcaDcaJJaDcaDcaJKaDcaDcaDiaJLaJMayWaxTaJNaJOaJOaJOaJOaJOaJOaJOaJPasDatHaPRarOaPRaPRaAPaJSaJTaJUaJVaJVaJVaJVaJWaJXaFrasSaFNavaaKbaKcavbaKeaKbaKbaKfasSavcaylaylazJaAbaAaayLawGaUnazGaxraxraxraxraKlaKmaCxaCxaKnayHawGawGaxraxraExaIOaIOaIOaKpaKqaKraKsaUnaKtaIVaKuazBazBazBazBazBazBazBazBazBauOaKwaKvaKxaIZauMavIaKBaKCaJdauyauWauXaKGaKHaJjayOayQayZayCaIyaPbayKaxDaxJayaayBaxBaJbaxfaDqaJjauwauvaKYaJraxdaxaaJuaysaEsaLbauuaLdavfauoaveaunaEuaEyaLhasHaIbaLiaLjaLkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaBIaBJaBIaBIaDRaDSaBIaBIaBJaJIaLmasSaLnaxTawXaLoaLoaLpaLoaLqatHaLraLsasDaLtaLuaACaJnazwaLyaLzaLAaLzaLzaLzaLzaLzaLzaLzaLBaLCazNaAdaLFaLFayTaLHaLFaLFaLFaLIazKaLJaLKaLzaxtaNmaLOaLPaIOaIBaIOaLSaIzaJYaLTaLTaLTaLTaLTaLTaOraLVaOAaLXaLYaLZaMaaMbaMcaIOaIOaIOaOBaMeaMfaMeaMgaMhaLSaMjaIzaMkaGQaBoaMlaxMaOOaMoaMnaMpaxKaMraMsaMtaJdaxLaMvaMwaMwaMxaJjaHkaFTaEJaEJaEJaEJaEJaFqaHhaEOaEUaHLaEJaEJaHMaJjasIarZaHPaHPaCXaDFaHPaHPaEsaMOaMPaEuaytaMRaHZavTaEuaIDaymayeaIbaEyaEyaEyaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXarkaMVaAFaAFaAFaAFaMWarkawXaAHasSaGKaMXaMYaDKavSaNbaNbaNcatHaNdaLsaxAaNfaLuaxzaNhaNiaNjaNkaNlaLzaLzaLzaLzaLzaLzaLzaxhaxiaxuaLzaLzaLzaxpayuaLzaLzaLzaLzaxvaLzaLzaLzaxtaNmaLuaLPaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaNsaNtaNuaNvaNwaNxaNyaNzaNAaIOaIOaIOaLPaIOaIOaIOaIOaIOaIOaIOaIOaNBbNwaCjaCWaCQaMpaNEaMpaMpawEaNGaMsaCoaJdawFawJawSaNLaNMaJjaDraDHaCpaCpaCpaCpaCpaCqaCTaDlaDmaCpaCpaDJaNRaJjasIarZaNVaHPaHPaNWaHPaNXaEsaEuaEuaEuaEuaEuaEuavQaEuaIbaIbasHaIbaNZaOaaEyaaaaafaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafazQasSaMYavtazSaObaOcaOdaOeazSavtaOfaOgasSatzaxTaMYaOhaOiaNbaNbaNcatHaOjaLsasDaNfaLuasXaLAaLzaLzaRyaChaEzaRCaLzausaOmardaOmaALatmarMaOmaOvaOwavkathaxwatkatjatiatcatbatbasYaVdaNmaLuaLPaIOaOHaIOaOIaOIaOIaOIaOIaOIaOIaOIaOJaOKaOIaOIaOIaOIaOLaOIaOIaOIaOIaOIaOMaONaOIaOIaOIaOIaOIaOIaOIaIOaIOaIOaBoaAYasOaOQaOQaOQatlasQaNGaMsaBQaJdaJdaJdaJdaJdaOUaJjatsatraSgaTAaTzaUSatQatEaCKatyatCasUasNasNasWaJjasIarZaPfaPfaPgaPhaPiaPiaPjaEsaPkaPlaPmaEyaskaVbasbaIbaIbasHaIbaEyaPsaEyaPtaPtaPtaPuaPvaPwaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafatHaxRarkaJMayWaxTaxTayXaJMarkaJMaPxawYaPyaxTaxRaPzaPzaLpaPzaLqatHaPAaLsasDatHaPRarOasCaPRaPEaPEaPEaPEaPEaPFaPGaPEaPEaPEatHatHasnaPIaPJaPIaPKasGaPMaLzaLAaPNasFaPPaPQaLAaZHaPRaPRaUnaIOaIOaIPaPTaKraKraPUaPUaPUaPUaPVawGawRaxqaPZaQaaQaaQbaQcaQaaQdaQeaQfawGaQgaPUaPUaPUaPUaKraKraQhaINaIOaIOaBoaQiashaQkaQkaQkaQkasyassasiaQoavXarFdZFaQsaQtaQuaJdaJdaszaTwaQwaQyaQzasfasfasfasLasMasAasfasfasfasfasaarZaQGaHPaPgaPhaHPaHPaQHaEsasBaQJaQKaEyaQLarpaPraSoaPoasgaIbaQQaQRaEyasKasJaPtaQUaQVaQWaafaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXaQXaxTaQYaPyaxTaxTaQZaQYaxTaQXaPyaxTaxTaxTaRaaRbaRbaRbaRbaRbaRbaRbaRcatUaPBaReaufaFvautaumaBhaRkaRlaRmaRnaRoaRpaukaRraRsaRtaujaRvaRwaxIaPKatwaPMaPMaRzaPMaugaPSaPSaRBbaHaPSaPSaPSaBsaIOaIPaREaaaaaaaaaaaaaaaaaaaaaaPWaRFaRGaRHaRIaRJaRKaRJaRLaRMaRNaROaPWaaaaaaaaaaaaaaaaaaaaaaRPaINaIOauZaRRaRSatDaQoaQoaQoaQoaQoaRUatGaQoaQoaQoaQraMpaRWaRXaRYaRZatxaRXavKaSdavEasAaSnbcWavLawfawHawvawTawIasfasIarZaSjaSjaPgaPhaSkaSkaSlaEsaEsaSmaEsaEyaLhatZaulaulaulatNaTJaEyaEyaEyawtaSqaSraSsbeKaSuaafaafaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaxRaSvaSwaSvaSvaSvaSvaSvaSvaSwaSvaSvaSxaxTaxTaSyaxTavzaSzaxTaSAaSBaxyaSDatuaPBaReattbeRaPEaSHaRnaRnaRnaRnaRnaRoaSIaRnaRnaRnaRtasEaSJaSKauRaPKatwaPMaSMaSNaupatvaPSaBaaSRbdnayVaSUaSVaIOaIOaIPaREaaaaaaaaaaaaaPWaPWaPWaPWaSWaSXaSYaSZavCaTbaTcaTdaTeaTfaTgaPWaPWaPWaPWaaaaaaaaaaaaaRPaINaIOaIOaThaQoatnaTjaTkaQoaTlaTmaCIatqaToaTkaQoaQraMpaTpaRXaTqaTratTaTtauxauAauDauQauUauVauYavjavyavxavwavvasfasIarZaQGaHPaPgaPhaHPaHPaHPaTCaTDaHPaTEaEyarDastaSoaSoaSoasgaIbaIbaEyaTKaSsaSsaSsaSsaStaTLaTMaTMaTNaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasSaTOaTPaTPaTPaTPaTPaTPaTPazYasSatHaTRaTRatHatHaTSaFuaTSaTSaTSaBgaTSaBgaPBaReattbeRaPEaTXaRnaRnaTYaTZaUaaUbaTYaRnaRnaRnaUcasEaUdaUeaUfaPKaFkaPMaUhaUiaUjaFpaPSaQAbdsbdyaSSaSUaUmaIOaIOaIPaKqaPVaUnaUoaPWaPWaUpaUqaUraUsaUtaUtaUuaUvaUtaUuaUvaUtaUwaUxaUyaUzaUAaPWaPWaUoaUnaUBaUCaINaIOaIOaBoaUDatnaToaTkaQoaUEaUFaQoaFjaUHaTkaQoaQraMpaUIaRXaRDaFzaFyaUMaFxaUOaSbaTyawhawiaQTaTxavyaKTavwaTvasfasIarZaUWaUWaPgaPhaUXaHPaHPaUYaHPaUZaVaaEyaIbaTGaTHaSoaTGaFwaQqaVfaEyaVgaSsaSsaSsaSQaRjaQCaSeaTiaTaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaafaVmazTaxVaxTaQjaEwaEvaEtaEraEXaEWaEVaQEaEPaEIaEAaOqaEqaPEaVBaRnaRnaTYaUaaVCaVDaTYaRnaRnaRnaRtasEaPKaPKaEfaPKatwaPMaPMaPMaPMaugaPSbfIaSSaSSaSSaHcaUmaIOaIOaIPaLTaLTaVKaVLaVMaPWaVNaTbaUtaVOaUtaUtaUtaUtaVPaUtaUtaUtaVRaVSaVSaVTaVUaPWaVVaVLaVWaLTaVXaINaIOaIOaThaQoatDaQoaQoaQoaVYaVZaQoaFjaWaaTkaQoaQraMpaWbaRXaWcaWdaWeaWfaFiaUOaRqaRuawhawiaQTaRiavyaKTavwaQIasfaFharZaEsaEsaFgaPhaWlaWmbfKaWnaWoaKZaFfaFaaymaFdaFeaFcaFdaFbaymaEZaFaaEYaWzaSsaSsaKQaWAaWBaWCaTMaWDaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaWEaWFaWGayWaUJaGlaGzaVkaGBaGAaGDaGCaGEaGqaGGaGFaGIaYCaFXaPEaWVaRnaWWaWXaYdaYAaYBaWYaWYaWYaXaaXbaFYaXdaGcaGbaGaaFZaReaReaXiaPBaGdaPSaIoaIlaHFaHEaHBaHpaIRaIOaIOaIOaIOaXpaXqaXraXsaXtaXuaUtaXvaXwaXxaXyaXzaXAaXBaIWaXDaKUaXFaXtaXGaXHaXIaXJaXKaXLaXMaXNaXOaIOaXPaBoaRSatnaXQaTkaQoaXRaXSaQoaFjaToaTkaQoaQraXTaRWaRXaWcaRXaXUaRXaGJaUOaVuaWhawiaWkaWiaRiavyaWtavwaUUasfaYDaGRaXZaYaaQOaQPaPgaPgaPgaPgaPgaPgaFVaEyaIbaTGaTHaSoaTGaTHaIbasHaEyaZKaSsaSsaSsaKQaYkaYlaYmaafaVtaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaUQaURaUlaTQaYoaBgaYpaYqaYraYraYraYraYsaYtaTSaYuaYvaOlaCSaYyaYyaYyaYzaYyaOsaRnaTWaUKaWZaWZaPDaSGaFOaFPaFEaFDaFJaFFaFAaIgaFCaFBaFLaFKaFMaYSaYSaYSaYTaUnaSCaIOaYVaSpaSiaYYaYZaZaaPWaSTaHiaTBaZfaPWaPWaPWaPWaPWaPWaPWaPWaPWaHeaXwaZkaZlaPWaZaaYZaZmaGTaYWaZoaIOaIOaThaQoaZpaQoaQoaQoaFHaQoaQoaFUaQoaZraZraZraZraZsaZtaKAaRXaRXaRXaZvaZwaZxasfaUTaUVaVhaViavyaKTavwaVjasfaFWaBDaZFaZGaPgaPgaPgaPgaPgaPgaPgaPgaFVawKaIbaPoaPraSoaPoaPraIbasHawKaYjaSsaSsaZJaKQaSsbusaYmaafaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaZLaZMaWGaKRaZNaBWaZPaZQaZRaZSaZTaYraZUaZVaTSaZWbaEaOlaCSaZYaZZbaaaCLaYybacbadbaeaPEbafbagbahaOnaPEaCRaBtbalbalbalbalaHubalbalbanbaobaobaobapbaobaqaUnaLWaMiaMyawGawGawGbaAbaAbaAbayaFQbaybaAbaBbaBbaBbaBbaBbaBbaBbaBbaBaCVbaDbbubaDaPWaPWaPWawGawGawGaZoaIOaIOaUnbaFbaGaBlbaJaQobaIaQobaJbaKbaLaZrbaMbhWbaOaJdaJdaJdbaPbaQbaQbaQaJdaJdasfaLNaLeaLeaLLavyaKTaKTaKVasfaBEaBDbaYaEsbaZbbabbbaWmbbcbbabbdaWmbbeaEybbfaQMaQNbbgaQMaQNaIbbbhaEyaDkbbjbbkaSsaKQbblbbmaYmaafaLRaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaJoaxRbbnaIQaJZaBgbbpbbpaICaAMbbsbbqbbtbbpaTSaQpaOTaGHaByaBzaBzaBAaBBaBzaLUbadbbCaPEbafbagbbDaGPaPEaBxbfabalbbGbbHbbHazqbbIbalbbJbbKbbLbbMbarbarbaraUnaIOaIOaYVawGbbPbbQbbRbbSaBRaLDaFlbbWbaAbaBbbXbbYbbZbcaaLwbccbcdbaBaCVbcebcfbcgbchbcibcjaAVbjtawGbcmbcnbcnaUnbcqbcqaBoaBobcoaThbcobcpaBoaBoaRRaBoaBoaBobcqbcrbcrbcrbcrbcrbcrbcsaKObcqaKKaKMaKMaKNaKIaKIaKIaKhbcqaBEaBDbaYaEsaEsaEsaEsaEsarZaEsaEsaEsaEsaEyaBCbcAawKavUawKbcyaJtbcqaPtbcBaSsbcCaSsaKQaWAbcDbcEaTMaWDaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazQasSbcFaAFaWGatHatHatHatHatHatHaNUaOuaBgaTSaTSaTSaTSaTSaTSaTSaTSaTSaNTaNTaOlaCSaZYbcIbcJbcKaYybcLbcMaDEaPEbafbagbcOaOpaPEaBxbfabalbbHbcQbcQbbHbcQbalbbJbcRbcSbcSbcTbcUbcVbaraIOaIOaYVaGpbcYbgCbdabdbbdbbdaaGibddbaAbaBbdebdfbdgbdhbdibdjbdkaGYaHablibdobclbdpbdqbdrbclaLgawGaOFbdtaIOaNsbdubdvaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbdvaZFaZFaZFaZFaZFaZFaZFaOVbdzaDPaDTaCYaDUaCYaDVaCYaDXaDWaCYaCYaDZaDYaEaaEbaCYaCYaCYaCYaCYaCYaEcaEdaEebdObcCaSsaORaOxaNNaPeaPcaOZaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaaaaafbdRazTaNCaNqaMZaMCaMCaMCaMCaMCaMCaMAaMzaMSaMDaMFaOlaCSaYyaYybdXbdYaYyaPEaPEaCUaPEbafbeabcOaOoaPEbfbaFSbalbecbedbbHbcQbeebalbbJbefbcSbcSbcSbegbehbarbeiaIOaYVaGkbekbgCbembenbeobepaGibeqbaAbaBberbesaNHbetbetaNPbevbaBaCVbexbclbclbdpbeybdrbclaLfawGbvTaIOaIOaNsbdubdvaZFaZFaZFaZFaZFaZFaZFbeBaZFaZFaZFaZFaZFaZFbeCaCYaCYaCYaCYaCYaCYaCZaCYaCYaCYaCYaCYaCYaCYaNSaDDaDCaDtaZFaZFaZFaZFaZFaBDaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbeIbdzbeJaSsaSsbcCaSsaKQaStbeLaTMaTMaTNaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaWEaWFbeMaKRbeNbUVbePbePbeQbePbePbePbeRaPBaPBaPBaPBaOlaCSaZYbeSbeTbeUaYybeVbeWbUWaPEaPEaPEaPEbUmaPEbUybfabalbUqbbHbcQbUibUkbalbbJbarbfcbcSbcSbPhbfebarbULaIOaYVbTrbfhbgCbembfibfjbepaGibfkbaAbflbfmbfnbetbfobetbdfbfpbfqaCVbfrbfsbftbfubfubfvbclbfwawGcCTcuScFlcvvcxRdPwdPxdTPbmZcFsdPxcbqcbvbTtdTSctbctbctaaZFaZFaZFaZFaZFbfDbfybEuaZFctccByctdcGebWUbGabFebMfdTUdTVdTWaZFaZFaZFaZFcbwbfOcbAbfDaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbdzbfQbfRbfSbfTbfUcGxcGybfWaafaaaaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQcrWcrQcbicbmbfXbePbfYbfZbgabgabgbbgcbgdbgebgebgebgebPBbUubUrbUrbUtbUsbUrbUobUobUpbUobUnbUlbUlbSbbRubTJbTRbUCbTQbUBbUBbTPcslbalbTKbarbgybcSbcSbPhbgzbgAbffaIOaYVbaAbgCbTpbdabdabdabdaaGibgEbaAbaBbgFbgGbWJbgIbgJbgGbgKbaBaCVbURbUQbgNbgObgPbgQbgRbgSawGcsoaHfcsnawGbTqbTqbgUbgUbgUbgUcmTcmTcsUcsVcsrcsscsVcsUcmTcmTcmTckbckbckbckbckbbcqbcqcsJbhbbhbbhbbhbbhbbktcsXbcqcsYcsZctebhkbhkbhlbhlbhlbhlbhlbhmbhnbhnbhobhnaZFbhnbhobhnbhnbhpbTqcuRcuRbNtbhrbhgcBhaPtaPtaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaZLaZMbeMaKRcaJbePbhtbePbhubhvbePbePbePaRebhwbhxbhxbTHaYyaZYbhzbcJbhAaYybUabTZbTTbTSbMubTUbTXbTWbTzbTXbTMbTNbLkbTCbLkbLkbKEbTDblqbTbbhSbcSbcSbTLbhUbhVbffaIObTVbaAbhXbaAbhZbVnbibbSObTYbaAbaAbaBbiebifbigbihbiibijbikbaBaCVbTybimckrbiobipbgQbclbiqawGcrtcrvbDbawGcqlcqncqSbTncrDcrGcrMcrFcqUcqVcrAcrBcogcofcpscoYcmTcmIcrocmUcpMckbcrscpNcrpcptbVUcktcktclSbktcggbiSbiScaKbiSbiUbiUbhlbiVbiWbiXbhlbiYbiZbiYbhlbhmbhnbhpbNtbSQbTibSQbNtbThbTgbNtbjebTEcrKbhgaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaaacqMaMYcawaIQaxTbePbjibePbjjbjkbjlbQYbePbjnaReaXibcHbTjaYyaYyaYyaYyaYyaYybTAbjrbjsaRebWEbalbalbalbalbalbalbalbrnbalbalbalbMVbalblubRFbjzbcSbcSbPhbjAbgAbSwaIObSybaAbjCbaAbaAbaAbaAbxBbTkbaAbTmbTlcazbjHbbXbjIbbXbjJbjKbTvbTxbTybjNbclbjObjPbgQbjQbjRbaDbSNaIObDbcgQcqOcgPcgjcqNcrfcrmcqPcqYchochocgRcgScjtcjpciHciEciDciCciBciAckcckbcjDcgecrncgecjvcjucgecgfbktcggbiSbkwcfKcgdbkzbkAbkBbkCbkDbkCbSjbkFbkGbkHbhlbkIbkJbkKbNtbSzbSEbSDbSMbNHbSAbNtbkRbkSbkTbhgaaaaaaaaaaaeaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazQasSbcFaAFaZMaTPaTPaTPbkUaTPbkVayWcRScbQbePbkWbkXbkYbkZblablbccibldbldbldbldbXnbWDbWDbWDbTXbTXbTXbWCblhblhblhcolbalbljblkcrwblmblnbloblpcQkblrblschfckRcnZbgAbjzbcSbXvbWwbWxbWxbWRbEvbWMbXmbWXbWLbZTbWIbXmbWTbXkbXjbXibTvbTvbTvbTvbWHbTvbTvbTvbTvbWjbWGbWQbWSbWObWPbWKbWNbWsbWFbWVaIObDbbgUdVHdVIdVJcVhcUBbgUcUZdUTcjtcjtcjtcjtcjtcjpdVzdVydVBdVAdVDdVCdVuckbdVwdVvcRYcgecjvcjucgedVLbktcggdVNbYedVMbYbbXHbXMbXFbXGbXGbXGbXUbXWbXAbXzbXybXxbXEbXDbXhbXgbXebNHbXcbXbbXfbNtbmPbkSbmsbhgaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmQcOfcbEcbGcbFcbHcbHcbIcbKaxTbePbmSbmTbkZbmUbePbePbePaPBbmVbmWbmXbmYbmXbmXbmXbmYbmXaPBaPBbalbalbalcFHbalblpblpblpblpblpblpblpblpbnbbVobndbcSbWebWdbWdbWdbWabWcbVYbVcbVgbWibWncrRbWfbWfbWhbWgbWqbWpbVsbWrbWobnxbnybnzbnAbnBbnCbnzbnDbnxbPVbTybnFbnGbnFbaDbaDbaDbWAbaDdUZaIObDbcgQcqOcgPdVadVbbWBbgUdUSdUTdUXdUYdUVdUWdVndVmdVldVkcmTdVpdUEdVodVfdVedVddVccONdVidVhdVgdVidVqbUedVrdVsdTXbnYdTYboabobbocbodboebofbofbogbkCbohbhlbWvbojbokbNtbVZbVAbVzbUJbVVbVXbNtbmPbkSborbhgaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaabmQcLFcIHcInaxSaxSaxSbosaxSaxSbePbotboubovbkZbePaaaaaaaaaaafaafbowbowbowbowbowbowbowaaaaaaboxboybozdzaboBblpblpblpblpblpblpblpblpbUNbjzbUOdYAboEboFbarbarbVGbVHbaraUnboHboIbVEaUnboLboMboMbNsboMbVFbUGboMabLboQboRbnzboSbnBboSbnzboTboQbPVbVkboVbfuboWbVybVBbVDbUFbnFdzjaIObvUbgUbWmcqndUQdURdUNbixdUOdUPdUJdUKdULbVWdUGdUFdUIdUHcmTckbdUEdUDdUAckbdUCdUBdUydUxdUzdUzdUvdUwbktcggbiSdUubkxbkxboabpybpzbpAbpBbpCbpCbpDbpEbpFbhlbpGbojbpHbNtbUYbUTbUPbUJbNHbUIbNtbkRbkSbpMbhgaaaaaaaaaaaaaafbpNbpObMebpObMebpObpQaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHGaxRcHMcHMbpRaTPbpSazQasSbpTbpSbePbpUbpVbpWbpXbePaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaabpYbpZblpdzKbqbbqbbqbbqbbqbbqcbqbbqbbqbbqdbqebqfbUHbqhbqibarbqjbPhbqkbqlbtfbffbqnbqoaUnaUnboMbqpbVdbqrbXdbTuboMbTwbVfbVhbqxbqybqzbqybqAbVibVjbTxbVkbqEbfubqFbaDbqGbnFbTIbnFdzVaIOcHTbgUdUjdUkdUhdUidUgbixdUedUfdUcdUddUadUbbZzdUsdUrdUqdUpbPZdUodUnbPZbPZbPZbPZdUmdUlbPZbPZbktdTZbktcggbiSdTXbnYdTYbrabrbbrcbrdbrebrebrebpDbkCbrfbrgbrhbkJbVlbNtbUEbUAbUzbUDbNHbUvbNtbUwbmrbhgbhgaaaaaaaaaaaaaafbrobrpbrqbrrbrrbrsbroaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbrubrvbrwbrxblpbnablpbrybrybrybryboAblpblpblpbnbbqgbqTbrzboZbrCbrDbrEbPhbcSbrFbRgbffbqnbrHbrIbrJbNNbrLbPPbrNbPObNMboMaafbrQbrRbnzbqybrSbqybnzbrTbrUbPVbPWbrWbrXbrYbaDbrZbnFbOlaUnbpcbNycfEbNzbNAbNCbNDbPKbIibixbPMbPQbLDbPRbPubPSbLDbLDbPYbPUbPZbPZbQxbQpbQFbIrbQIbQHbQSbQJbQVbPZbJqbRabQWbQXbRfbRhbRbbRbbPGbsEbkBbsFbrebrebrebsGbkCbsHbrhbsIbsIbPHbrhbNEbNKbNJbNIbNHbNLbNtbmPbsPbhgaaaaaaaaaaaaaaaaafbsQbsRbrqbrrbrqcfLbMeaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowcfDbsUcfDbsVbsWblpblpblpblpblpblpboAblpbsXbalbalbsYbcSbndboCbtabtbbtcbPhbcSbcSbtdaIObqnbtebtfbtgbPrbtibtjbtkbPqbNxboMaafbrUbrUbIgbtobtpbnzbtqbOvbNgbPpbNqbtvbtvbtvbtvbtvbtvbXJawGbLTaHfaHfawGbMcbMmbLUcfbbPfbixcfdbOYbPubPvbPsbPtbOibOhcdQbNUbOybOubOkbOjbOCbOBbOAbOzceFbOFbOEbODbNubPAbPAboDbPCbPDbPDbPDbtZbHWbkBbubbkCbkCbucbPgbkCbuebkIcffbugbORbkIbMtbMCbMvcfhbHFbrhbNtbuobhgbhgbupbuqbuqbuqburbkIbrobrrbrqbrrbrrcfjbroaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaeaaaaaaaaabowbowbowbowbowbowbowcdKbutcdKbuublpblpblpbrybrybrybryboAblpbuvbuwbalbuxbcSbndboCbuybuzbtcbOxbuBbqfbuCbuDbuEbpcbuFbtgbuGbuHbuIbuJbOmdAeboMbOpbOobNBbOnbuRbrSbuRbOvcdpcdacdabNqbuUbuVbuWbuXbuYbuZbMkawGbvcaIOaIOawGbLSbMnbMrbMBbMSbMTbMUbnebMLbMPbZGbMRbNabMZbwubNbbApbHvbMYbMWbNlbNkbNGbNobNfbNebNibNhbMjbMlbMhbMibiSbvybvzbMgbvBbvBbkBbvCbvDbvEbkBbNVbkCbvGbYubvIbvJbOebvLbvMbOfbvObvPbvQbsIbkJbYPbYBcbncbpcbZbvVbvVccabvWbvXbpObMeccRbMebpObvZaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbwabrvbwbbXSblpblpblpblpblpblpblpboAblpbuvbwdbalbwebegbndbncbqfbwgbqfbNFbcSbrFbRdbffaIObpcbuFbtgboMbwibwjbwkbwlbMdboMbwpbwnbHhbzzbNgbNjbNmbUSbUZbVebXubNqbGCbwybwzbwAbwBbwBbnTbUcbambdDaIRbgUbSkbLRbLNbLPbeZbixbLYbLZbLDbLXcbObLWbFNbLDbLAbLzbDcbDcbDcbDcbDcbHfbIIbHfbAqbLJbLGbAqbAqbAqbAqbLybiSbiSbkIbkIbkIbxbbkBbkBbkBbkBbkBbMMbxebxfbxgbxhbxibMobRJbMpbMqbojbojbxnbxobxpbSibSebStbSKbMpbSrbMpbTobkIbupbuqburbTGbkIbTOaaaaafaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowcdKbutcdKbxubxvblpblpbxwbSRbSSbSRbSXbSRbSYbTabSTbSUbSVbzmbFnbSWbTcbTdbSVbxFbxGbRgbffaIObxHbxIbxJboMbxKbxLbxMbxNbSdbRzbXwbSfbRUcqibSubSvbSscqLcqxcqKcqkbShbybbycbycbydbyebyfbQEbtvcbPbDNbONbgUbixcbQcciccjcarcawcaWcbabPucbccbebLWcpzbPucdkbWubRSceEceJcqebDccckccFccEbAqbSCbTscpybRvbAybAqbwNbRybRBbRwbRxbRpbRpbRibRmbRpbRtbRrbRsbREbRDbRpbRCbQubSPbyPbyQbSLbySbrhbrhbrhbyScqgcqfbyVbupburbkIbojbvVbyWcpxcpacpvbzacpwaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowcoMbzdcoMbzebzfbzgbzgbzgbzgbzgbzhbPLblpbuvbzjbalbzkbOXcoCbwfbzoboEbRZbzqbzrbarbarbffaIObztbzubtgboMbzvbzwcoZbwjbQTboMbRGbRAbRHbOpbQwbzEbQDcdacoNcoOcoXbNqbzKbzLbzMbzNbyebyfbQEbtvbpcbDNbNwbOHcoabOMbOJbOKbEpbXtbXrbXsbLDbLDbLDcnGbWzbLDbWybWubXqbXpbXobOSbDccnsbVRbVQbWtbRcbQUbQKbRjbQabYcbrBbYObZMbZNbZObvMbvMbArbvMbAsbvMbOfbQqbQqbQqbQsbQrbQtbAvbAwbAxbRTbAzbAAbABbACbySbHMchObAFaafaafbkIcndcnrcmWcmWcmKcmVclMbkIaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbAKbALbAMbalbalbANbrvbrvbrvbAObalbalbAPbAQbARbalbASbASbASbRKbASbAUbRLbAWbAXbAYbAUbffaIOclFbBaaUnboMawGawGawGawGbQlboMbOpbQObOpbOpbQnbQobQncdacdacdacdabNqawGawGawGawGawGbtvbPobtvbpcbVabuDbVbcjwbQkbUUckLbUdbUfbUgbrAbTFciibUbcjabVKbVJbVMbVLbVxbVwbVIbVCbQcbVpbVvbVtbVmbPTbQbbQabOQbPEbAqchNbSJbzCbrhbrhbrhbzCbQjbzCbzCbELbQhbQiblTblTbBUbKjbOqbBWbAwbBXbQZbBZbCabCbbCcbySbHMchObCdaaaaaabkIcglchMbkIbvWbkIbkIbvWbkIaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabCgaafaaaaaaaaaaaabASbChbNpbQRbCkbAUbQQbCmbCnbCobAUbffaIObQMbQLbQNdAfbPzbPebPIbPFbPNbPJbQfbQPaXNbCzcfQbCBbCCbCDaIOaIOaMibDbaIOaNsbCubCGbCHaCzbPdcgkbpcbDNbSHbymbymbSBbSBbSBbymbymbSmbSxbRXbRYbScbSgbRYbRXbRWbRVbRSbRRbRQbRPbDcbRObRNbRMbRIbOtbOrbAybAgbNrbAqbRkbCTbzCbPbbPcbFUbOWbOZbPabOObELbOPbOTbIZblTblTbQdbOqbBWbDubDvbPXbDxbLubDzbJdbySbHMcfMbyVbyVbyVbyVbyVbkIbkIaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabASbDCbDDbDmbDFbDGbDnbDIbDlbDKbAUbffbDLbDiaIOaIOaIObDbaNsbCubCGbDNaIOaIObDdaIOaIObDPbDQbDRaIOaIOaIOaIObDbaIOaNsbCubCGbDSaXNbDYaXNbFrbENbJfbymbEbbBxbBxbBxbEebEdbEgbEfbEibEhbzGbEjbCUbCYbCZbDabDcbDebDfbJebDcbDhbDkbDwbDEbAgbCQbCRbAgbAgbAqbksbCTbzCbEqbEobEybEtbEsbErbEMbELbEBbEzbEmbEmblTbDqbEnbECbEDbEEbEFbDzbDtbDybDAbySbHMbINbKdbJgbKubKfbyVaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbEPbEQbEQbFgbtybtybjBbjBbjBbjBbEOaafaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaabERbESbBTbESbEUaaaaaaaaabASbASbEVbEWbDmbEWbEXbEYbEZbFdbFbbAUbFcbffbEwdAIbuDbFfbFybFAbFhbFibuEdAJbFjdAMaZjbEvbFaaIObDSaXNaXNaXNaXNbDWbjvbFobFpbvddAQbFCbFJbFHbuDbuEaIObymbFmbBxbFlbETbBxbEdbFubFtbFzbFxbFwbFvbFEbFFbFBbFDbFKbFQbFGbDcbDcbHfbHfbHfbAqbEGbExbEAbElbEkbAqbksbCTbzCbFRbFPbFUbFTbFWbFVbFXbELbFYbEzbEmbEmbkIbFIbFZbFLbKLbyHbFOdAVbKMbKObHGbySbLQbxAbxAbxAbMbbLVbAFaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbGjbmNbGhbmNbtybjBbjBbjSbmLbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHGaxRcHMcHMbpRaTPbpSazQasSbpTbpSbePbpUbpVbpWbpXbePaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaabpYbpZblpdzKbqbbqbbqbbqbbqbbqcbqbbqbbqbbqdbqebqfbUHbqhbqibarbqjbPhbqkbqlbtfbffbqnbqoaUnaUnboMbqpbVdbqrbXdbTuboMbTwbVfbVhcbCbqybqzbqybqAbVibVjbTxbVkbqEbfubqFbaDbqGbnFbTIbnFdzVaIOcHTbgUdUjdUkdUhdUidUgbixdUedUfdUcdUddUadUbbZzdUsdUrdUqdUpbPZdUodUnbPZbPZbPZbPZdUmdUlbPZbPZbktbktbktcggbiSdTXbnYdTYbrabrbbrcbrdbrebrebrebpDbkCbrfbrgbrhbkJbVlbNtbUEbUAbUzbUDbNHbUvbNtbUwbmrbhgbhgaaaaaaaaaaaaaafbrobrpbrqbrrbrrbrsbroaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbrubrvbrwbrxblpbnablpbrybrybrybryboAblpblpblpbnbbqgbqTbrzboZbrCbrDbrEbPhbcSbrFbRgbffbqnbrHbrIbrJbNNbrLbPPbrNbPObNMboMaafbrQbrRbnzbqybrSbqybnzbrTbrUbPVbPWbrWbrXbrYbaDbrZbnFbOlaUnbpcbNycfEbNzbNAbNCbNDbPKbIibixbPMbPQbLDbPRbPubPSbLDbLDbPYbPUbPZbPZbQxbQpbQFbIrbQIbQHbQSbQJbQVbPZbJqbRabQPbQXbRfbRhbRbbRbbPGbsEbkBbsFbrebrebrebsGbkCbsHbrhbsIbsIbPHbrhbNEbNKbNJbNIbNHbNLbNtbmPbsPbhgaaaaaaaaaaaaaaaaafbsQbsRbrqbrrbrqcfLbMeaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowcfDbsUcfDbsVbsWblpblpblpblpblpblpboAblpbsXbalbalbsYbcSbndboCbtabtbbtcbPhbcSbcSbtdaIObqnbtebtfbtgbPrbtibtjbtkbPqbNxboMaafbrUbrUbIgbtobtpbnzbtqbOvbNgbPpbNqbtvbtvbtvbtvbtvbtvbXJawGbLTaHfaHfawGbMcbMmbLUcfbbPfbixcfdbOYbPubPvbPsbPtbOibOhcdQbNUbOybOubOkbOjbOCbOBbOAbOzceFbOFbOEbODbNubPAbPAboDbQmbPDbPDbPDbtZbHWbkBbubbkCbkCbucbPgbkCbuebkIbOWbPCbOZbkIbMtbMCbMvcfhbHFbrhbNtbuobhgbhgbupbuqbuqbuqburbkIbrobrrbrqbrrbrrcfjbroaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaeaaaaaaaaabowbowbowbowbowbowbowcdKbutcdKbuublpblpblpbrybrybrybryboAblpbuvbuwbalbuxbcSbndboCbuybuzbtcbOxbuBbqfbuCbuDbuEbpcbuFbtgbuGbuHbuIbuJbOmdAeboMbOpbOobNBbOnbuRbrSbuRbOvcdpcdacdabNqbuUbuVbuWbuXbuYbuZbMkawGbvcaIOaIOawGbLSbMnbMrbMBbMSbMTbMUbnebMLbMPbZGbMRbNabMZbwubNbbApbHvbMYbMWbNlbNkbNGbNobNfbNebNibNhbMjbMlbMhbMibiSbvybvzbMgbvBbvBbkBbvCbvDbvEbkBbNVbkCbvGbYubvIbvJbOebvLbvMbOfbvObvPbORbsIbkJbYPbYBcbncbpcbZbvVbvVccabvWbvXbpObMeccRbMebpObvZaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbwabrvbwbbXSblpblpblpblpblpblpblpboAblpbuvbwdbalbwebegbndbncbqfbwgbqfbNFbcSbrFbRdbffaIObpcbuFbtgboMbwibwjbwkbwlbMdboMbwpbwnbHhbzzbNgbNjbNmbUSbUZbVebXubNqbGCbwybwzbwAbwBbwBbnTbUcbambdDaIRbgUbSkbLRbLNbLPbeZbixbLYbLZbLDbLXcbObLWbFNbLDbLAbLzbPZbPZbPZbDcbDcbHfbIIbHfbAqbLJbLGbAqbAqbAqbAqbLybiSbiSbkIbkIbkIbxbbkBbkBbkBbkBbkBbMMbxebxfbxgbxhbxibMobRJbMpbMqbojbojbLvbxobxpbSibSebStbSKbMpbSrbMpbTobkIbupbuqburbTGbkIbTOaaaaafaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowcdKbutcdKbxubxvblpblpbxwbSRbSSbSRbSXbSRbSYbTabSTbSUbSVbzmbFnbSWbTcbTdbSVbxFbxGbRgbffaIObxHbxIbxJboMbxKbxLbxMbxNbSdbRzbXwbSfbRUcqibSubSvbSscqLcqxcqKcqkbShbybbycbycbydbyebyfbQEbtvcbPbDNbONbZObymbZRcalcarbZFbZKcaWcbabPucbccbebLWcpzbPucdkbWubRSceEceJcqebDccckccFccEbAqbSCbTscpybRvbAybAqbwNbRybRBbRwcatbRpbRpbRibRmbRpbRtbRrbRsbREbRDbRpbRCbQubSPbyPbyQbSLbySbrhbrhbrhbyScqgcqfbyVbupburbkIbojbvVbyWcpxcpacpvbzacpwaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowcoMbzdcoMbzebzfbzgbzgbzgbzgbzgbzhbPLblpbuvbzjbalbzkbOXcoCbwfbzoboEbRZbzqbzrbarbarbffaIObztbzubtgboMbzvbzwcoZbwjbQTboMbRGbRAbRHbOpbQwbzEbQDcdacoNcoOcoXbNqbzKbzLbzMbzNbyebyfbQEbtvbpcbDNbNwbOHcoabOMbOJbOKbEpbXtbXrbXsbPZbPZbLDcnGbWzbLDbWybWubXqbZubZobOSbDccnsbVRbVQbWtbRcbQUbQKbRjbQabYcbrBbYObZMbZNbZvbvMbvMbArbvMbAsbvMbOfbQqbQqbQqbQsbQrbQtbAvbAwbAxbRTbAzbAAbABbACbySbHMchObAFaafaafbkIcndbZlbZkbZkbYEcmVclMbkIaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbAKbALbAMbalbalbANbrvbrvbrvbAObalbalbAPbAQbARbalbASbASbASbRKbASbAUbRLbAWbAXbAYbAUbffaIOclFbBaaUnboMawGawGawGawGbQlboMbOpbQObOpbOpbQnbQobQncdacdacdacdabNqawGawGawGawGawGbtvbPobtvbpcbVabuDbVbcjwbQkbUUckLbUdbUfbUgbrAbTFciibUbcjabVKbVJbVMbVLbVxbXpbVIbVCbQcbXobVvbVtbVmbPTbQbbQabOQbPEbAqchNbSJbzCbrhbrhbrhbzCbQjbzCbzCbELbQhbQiblTblTbBUbKjbOqbBWbAwbVwbQZbBZbCabCbbCcbySbHMchObCdaaaaaabkIcglchMbkIbvWbkIbkIbvWbkIaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabCgaafaaaaaaaaaaaabASbChbNpbQRbCkbAUbQQbCmbCnbCobAUbffaIObQMbQLbQNdAfbPzbPebPIbPFbPNbPJbQfbVpaXNbCzbRRbCBbCCbCDaIObSlaIObDbaIOaNsbCubCGbCHaCzbPdcgkbpcbDNbSHbymbymbSBbSBbSBbymbymbSmbSxbRXbRYbScbSgbRYbRXbRWbRVbRSbRQbRPbRxbDcbRObRNbRMbRIbOtbOrbAybAgbNrbAqbRkbCTbzCbPbbPcbQWbRebRlbPabOObELbOPbOTbIZblTblTbQdbOqbBWbDubDvbPXbDxbLubDzbJdbySbHMcfMbyVbyVbyVbyVbyVbkIbkIaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabASbDCbDDbDmbDFbDGbDnbDIbDlbDKbAUbffbDLbDiaIOaIOaIObDbaNsbCubCGbDNaIOaIObDdaIOaIObDPbDQbDRaIOaIOaIOaIObDbaIOaNsbCubCGbDSaXNbDYaXNbFrbENbJfbymbEbbBxbBxbBxbEebEdbEgbEfbErbEibzGbEjbCUbCYbCZbDabDcbDVbEhbJebDcbDhbDkbDwbDEbAgbCQbCRbAgbAgbAqbksbBXbzCbEqbEobEybEtbDebCfbDfbELbEBbEzbEmbEmblTbDqbEnbECbEDbEEbEFbDzbDtbDybDAbySbHMbINbEMbEsbFMbKfbyVaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbEPbEQbEQbFgbtybtybjBbjBbjBbjBbEOaafaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaabERbESbBTbESbEUaaaaaaaaabASbASbEVbEWbDmbEWbEXbEYbEZbFdbFbbAUbFcbffbEwdAIbuDbFfbFybFAbFhbFibuEdAJbFjdAMaZjbEvbFaaIObDSaXNaXNbFPaXNbDWbjvbFobFpbvddAQbFCbFJbFHbuDbuEaIObymbFmbBxbFlbETbBxbEdbFubFtbFzbFxbFwbFvbFEbFFbFBbFDbFKbFQbFGbDcbDcbHfbHfbHfbAqbEGbExbEAbElbEkbAqbFTbPwbzCbFRbFUbGebFWbGlbFVbFXbELbFYbEzbEmbEmbkIbFIbFZbFLbKLbyHbFOdAVbKMbKObHGbySbLQbxAbxAbxAbMbbLVbAFaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbGjbmNbGhbmNbtybjBbjBbjSbmLbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGpbGqbEHbEIbGpbGsbGtbGubASbDZbEWbGwbBbbGybGzbGAbGAbBcbuSbAUbGDbGDbBibGDaUnaUnaUnaUnaUnaUnaUnbGFbGFbGFbGFaUnbBgbBfbBeaUnbGHbGHbGHbBhbAfaUnaUnaUnaUnbAVbAubGKaIUaKtbzYbymbzXbBxbBxbBxbAebAcbApbAobzGbzZbAbbAabvxbzGbzObzPbyzbyAbyCbvwbzTbzUbEcbAgbAgbAgbAtbAybATbAgbAqbksbhQbhQbhQbhQbhQbhQbhQbhQbhQbhQbBRbBQbBqbBqbkIbBnbBdbHqbrhbjfbjfbjfbEKbFsbEJbjfbjfbjfbjfbjfbgqbgpbHxaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagbxXbmNbmNbtnbjBbjBbjSbjSbBSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBTbHBbHCbHBbBTbHDbFSbFMbGebGbbHHbEWbHIbHJbAUbHKbHLbBrbHNbAUbHObHObBBbGDaaaaaaaaaaaabGFbGfbHRbvAbHTbHUbHVbCtbBVbHXbBYbCtbHZbCjbCpbClbBGbBDbBKbBJbBMbCvbCwbzlbBobGKbGKbymbBmbBlbBlbBkbymbBCbBybBwbBubBtbBsbBpbCsbCybCqbCrbBHbBIbBEbBFbCNbCObFkbCIbBLbCFbBjbAgbAgbCJbAqbksbhQbGkbGrbCxbGIbCMbHEbGObGvbhQbCLbCKbDpbDpbkIbwxbCVbBWbHFbDjbDMbDObDTbDUbDrbDsbDHbDJbDXbjfbIhbCWbyVbngbngbngbngbngaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabxYbjBbxXbjBbjBbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGpbHBbHBbHBbNvbNnbEWbOgbNdbNcbEWbEWbJhbJibAUbAUbAUbJRbAUbAUbJvbJlbJDbJnaaabJCbJpbJBbJrbJsbHVbJtbJubJPbJKbJbbJybJxbJwbJbbCSbJobJEbJFbJGbJHbJIbGHbGHbJJbJcbDobJQbJNbJUbJSbJZbJWbJWbJWbIDbICbJabIFbzGbJjbJMbJLbIxbzGbIybIzbEcbIAbOLbIBbIubIvbEcbAqbIwbAqbAqbAqbAqbAqbAqbksbhQbKFbKvbCxbCxbCxbCxbCxbOIbhQbKtbEzbKpbKpblTbKjbKsbKrbKqbKgbKgbKgbKgbKhbIYbIYbKibKobJYbjfbOGbxlbJTbJObJXbJVbJAbJzaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbtybjBbptbpubpubjSbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBTbHCbHCbHCbBTbKKbQvbQmbKNbOUbEWbKPbLsbltbLibKVbKVbKZbKWbKVbKDbjwbKQbKYaaabGLbLabLbbLcbLdbHVbLebLfbLgbLhbCtbKHbKGbKRbCtbLlbLmbLnbLobLpbLqbLrbKUboNbKSbKIbGKbPybPybKnbymbFmbBxbFlbETbBxbHcbKcbFtbKmbKlbKkbKebKBbKCbGXbGYbLxbIAbIBbIBbIubKxbEcbKwbKzbKAbmobKybKbbKabkybksbhQbCxbLEbCxbCxbCxbCxbCxbRqbhQbLCbEzbHPbHPblTbLObojbBWbMabIYbIYbLFbLHbLIbLKbIYbLLbLMbLBbLwbLvbRebLtbLjbKXbKTbJAbKJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabjBbjBbkQbjSbjSbjSbjSbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaabGpbMwbMxbMybGpbMzbGtbGubASbASbMAbMAbMAbASbASbGDbJkbJkbGibJkbJkbJkblPbKYaaabGLbMDbMEbMFbMGbMHbMIbMJbMGbMGbMKbGBbGldBhbGHbGHbGHbGHbGHbGHbMObGHbGHbyKbGGbGmbGKbPycpqasZbymbEbbBxbBxbBxbHdbHcbApbFtbHabGZbHbbBtbGVbGWbGXbGYbGRbGSbGTbGUbGNbMNbEcbGPbGcbGdbmobGgbHgbHebkybksbhQbhQbIpbCxbCxbCxbCxbhQbhQbhQbIobHYbHPbHPblTbHQbojbBWbCXbHAbHybHzbHtbHubHrbHsbHnbHpbGEbGxbGMbGJbGQbngbHlbHkbGobGnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbjBbjSbjSbjSbjSbjSbjSbjXbjSbHmbjSbjSbjSbjSbjSbjBbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNObESbNPbESbNQbMQaafaaaaaabASbNRbNSbNTbASaaabGDccpcbybzibJkbJkbJkblPbKYaaabGLbNWbNXbNYbNZbHVbOabObbOcbOdbGFbIabIqbIcbIbbIdbIdbIdbIdbIdbIdbItbIdbIebIebIEbGKbGKbGKbGKbymbymbHwbHwbHwbymbymbHvbHobHjbHibzGbBubCUbInbIlbImbEcbIkbEcbEcbEcbEcbEcbIjbIfbBAbmobHSbIsbCibkybksbhQbIMbIVbIUbIRbIQbITbISbIMblUbIPbIObIZblTblTbJmbojbOVbngbngbjfbjfbjfbjfbIWbjfbIXbIYbIHbjfbIhbCWbyVbngbIKbIJbIGbngaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabjBbulbulbulbulbulbulbILbjSbuPbulbHmbjSbjSbjSbjSbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafcbxbGDbGDbGDbGDbJkblQblPbPiaaabPjbJpbPkbPlbPmbHVbHVbPnblOblMbtSbmwblSblRbCtbgXbgXbgXbgXbgXbgXbgXbgXbPwbPxboobonbmAbmybGKbymblCblBblDblDbtPblFblIblHblKblJblYblXbmabmbbmcbmdbmebmfbmgbmibtQbmkbidbmlbmmbmnbmobmpblfblebkybksbhQbsTblxbsSbicbicbicblzbtNblUbkIbsZblTblTbQebgnbojbojbQgaafbjcblZblWbjabmvbjabtObmtbnEbjfblLbnHbtRbngbnwbnjbnjbolaagaagaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabombmNbmNbmNbmNbmNbmNbmNbmMbmLbjSbjSbjSbjSbmObmLbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaBcaCcaCcaDcaEbGDccfbJkbmKbGDaaaaaaaaaaaabGFbQybQzbQAbQBbGFbQCbCtbmIbmHbmJbCtbgXbmEbmGbmFbmCbmBbmDbfNbfNbfNbfNbfNbfNbkjbnZbnXbvRboXbBzboObpkbpjbpibphbpobpnbnIbpmbnIbnJbnubnvbnNbnObnLbnMbnObnSbvpbnQbnVbnWbvHbnUbmubufbuTbxmbpbbpabpfbpebplbpgbpqbpgbpsbprbRlbmhbtTbRnbojbgnbojbojbRoaafbjcbjdbjdbopboqboKboPboYbpwbjfbgqbgpbUKbngbngbngbngbngaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabjBbpubpubpubpubpubpubpvbjSbptbpubkabjSbjSbjSbjSbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkfbrKcbobrPbJkbscbskbJkbgtbGDbguaaaaaaaaabGFbGFbGFbGFbGFbGFbGFbCtbhybhibhhbCtbgXbhBbgwbgxbgxbgwbgvbfNbgMbgLbgDbgBbfNbhGbymbymbrjbfAbrlbfEbBzbggbgibhHbfJbcPbgfbfLbgTbgVbgWbgYbgjbgkbbVbcZbgkbhfbhjbhEbhIbhabhcbhdbinbilbGKbhYbCTbhNbhNbhJbicbiubisbicbrmbiabSlbgmbSnbojbSobgnbojbSpbSqaafbjcbjdbjbbjabiAbjabivbiybjmbjfbgqbgpbjubitbyVaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbjBbjSbjSbjSbjSbjSbjSbjXbjSbkabjSbjSbjSbjSbjSbjBbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccecaCcaCcaDcbtbiLbkebGDbkubGDccgbkvbkEccgccgbjFbjLbjMbgZbjTbjUblvbYpbjqbjxbllbjybgwbjEbjDbiNbiMbiObfNbiQbiPbjpbiRbfNbsCbsabsrbsqbspbslbiTbiTbkhbkgbkkbiDbkdbkcbkbbiDbiDbiBbiCbizbwUbhebhFbhebiKbiIbiJbiGbiHbiEbiFbiGbklbGKbksbCTbknbkrbkobkMbkLbkPbkNbhQbhQbrhbiwbrhbrhbrhbhTbxqbhRbrhbjfbjfbjfbjfbjfbkmbjfbjfbjfbjfbjfbgqbgpblgbkpbyVaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabjBbjBbkQbjSbjSbjSbjSbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQchdalQalQalQalQalQaaaaaaaaaaaaaaaaaaaafaafaaabxWbxTbxTbxTbxVbxTbxTbxRbxSccgbwobwhccgbwJbwKbwHbwIbwDbwGbwtbwvbwSbwObfHbxUbwMbgwbjEbwLbxjbiMbxdbfNbiQbiPbxcbxabfNbxObPybymbvnbvlbCAbvobtLbtXbvebxEbiDbvfbvkbvjbuObiDbuQbvFbvNbwUbhebhFaJzbiKbvrbvsbiGbvtbvubuabiGbCfbGKbCebCTbhQbhQbhQbhQbhQbvqbhQbhQbwqbwmbvvbrkbxxbrhbiwbAHbvabrhbxybwCbwTbwrbwsbwYbxkbumbwVbumbumbuLbunbAEbyVbyVbyVaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbtybjBbuPbulbulbjSbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbAdbzWbsKbzRbDVbthbzBbzFbzHccgbzSbzVccgccgbAlbAmbAnbAhbAibAjbAkbYpbyNbyRbyObyxbyJbyMbyLbzDbyJbyJbyybzpbznbzAcjcbfNbkjbqZbqZbqZbqZbywbqZbqZbqZbysbyrbiDbyvbqJbytbtDbiDbylbynbzybwUbhebhFbhebiKbwWbwXbiGbyibwZbyhbwFbwEbDBbwPbwRbwRbwRbwRbwRbwRbygbwRbwRbygbwRbyBbygbygbCEbCPbDgbyqbCEbyubxAbxAbxAbxCbxDbxAbxAbxAbxAbxAbxzbyabxZbVNbVObyVbyVbyVbyVaaaaafaaaaaaaaaanmanmanmaafaaaaaaaafaaaaaaaafaaaaaabxYbjBbxXbjBbjBbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbsBbsBbsKbsMbsLbthbtlbsNbsOccgbqvbqsbqubqCbqDbqwbyobyTbqQbqIbqKbqVbqUbeYbqSbstbrMbrGbribsdbsebsdbsvbsubsjbjpbshbfNbkjbqZbqYbqWbqRbqXbqWbwcbqLbqPbqNbpxbppbqJbqJbsmbiDbsnbsobsibwUbhebqqbqtbiKbsfbsgbiGbrObrVbsbbiGbssbidbvKboNbrkbrkbsaboJboGboibnRbnKbwQbwwbyUbAZbypbxrbykbxtbyjbxrbxsbZPbOwcdqbvYbvYbvYbvYcoTbOwcdqbvYbvYbAEbnkbnmbnlbWWbvSbWYbWZbXabXabXabXabXabXabXabXabXabXabXabXabXabXabXabXabpKbpLbpLbpPbjBbjBbjSbjSbqmbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSFbSFbSFbSFbSFbSFbSFbuibujccgccgccgccgccgbukbuAbuKbuKbuKbuMbuNbYpbjqbjxbtsbjybttbtxbtubtEbtCbtGbfNbtVbtHbtYbtWbfNbzIbqZbzxbzsbzsbzcbtMbkObqZbzbbyZbiDbtIbtFbqJbtDbiDbtAbtBbtzbwUbhebqHbtJbiKbszbsAbiGbiGbiGbiGbiGbBPbidbidbidbfMcmHbBObGKbXObXPbXQbGKbwwbBNbBvbAJctibudbuhbFqbtUbudbAIbyYbyYbyYbAGbzJbzQbADbyYbyYbyYbyXbvYbXVbswbXXbyVbyVbyVbyVaaaaafaaaaaaaaaanmanmanmaafaaaaaaaafaaaaaaaafaafaafbtrbtwbtmbtnbtybjBbjBbjSbmLbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbSFbSGcnjcngcnhcnQbSFdgmdgldgkdgjcrEcrCcrrcrrcrucnEcnEcnDcnFbAkbYpbjqbjxcnCbwMcnzctfcnBcnwcnxcnybfNbtVcnpcnqdTTbfNbkjbqZdZLdZOdZOdZMdZNbqZdYtdgpdZQbiDdZTdZRdZSdZHbiDdZGbtBcrVbwUbxPbtKbxQbiKdZKdZJbiKcrXbPwbiddgCbssdZVdZWbidbfMdWwdXGbGKaaaaafaaaaaabwwctuctjdgrdgqdgtdgsdgvdgudgxdgwdgzdgydgodgAdfQdfQdgBdgodgodgodgndfTbYUcoebYWbYUaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcrLbEQbEQbFgbtybtybjBbjBbjBbjBbEOaafaafaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaafaafbTebTebTebTebTebTebTebTebTebTebTebTebTeaaaaaacmobSGbSGbSGbSGcmAbSFdfNdfMdfLdfKcqdcpVcqccpVcpUcpTcpScpQcpOcpLcqjcqwcmCdfPbgXbgXbgXbgXbgXbgXbgXbfNbfNcmBbfNbfNbfNbkjbqZbqZdZrdZsdZtdZubqZdfUcqDcqTbiDbkdbiDbiDbiDbiDbwUdZydZzbwUcqXcqWcqXbiKbXLdZBbiKbPybPybiddZDbssbidbidbidbfMcpWcmNbGKaaaaafaaaaaedfXdfVdfWdgbdgadfZdfYdggdgfdgedgcdfQdfQdfQdfQdgidghdfQdfQdfQdfRdfSdfTcqQcmGbZVbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaabTecnScqacnSbTecnOcpYcnObTecnMcpZcnMbTeaaaaaacphbSGcpXbSGbSGcpRbSFcFVcFUcQKcFXcRqcRpcFMcFKcFRbqVbqVcFTbqVbqKcFIcFJbjxcpCcpDcpucpucpEdgZdhadgGdhbdhcdhddhedhfdgGbkjbEaeaxbMXbMXeaveaweaDeaEdLbdPueazeaAeayeaeeaeeaudXBbwUbwUbwUdhtcZLdhubiKbiKbiKbiKbPybPybiddZDbsseareasbidbfMbGKbGKbGKaaaaafaaaaaadhqdhrdhsdhldhkdhmcWQdQSdhgdhidhhdfQdfQdfQdfQdhodhndfQdhpdfQdfRdghdfTcaycqbcaAbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaabTecnScnRcnSbTecnOcnPcnObTecnMcnNcnMbTeaaaaaacphbSGbSGbSGcpicoIcoHcsOcsNcvgcuVcsWbpIcsMcsEcsmcoycoEcoDdgFbAkbYpcpdcpbcpccpgcpfcpecpfdgIcoWdgGdgHdgKdgLdgJdgHdgGbkjbEaeabbMXbOsbMXeaaeageahcCNeajeaceadeaeeafeaeeandXBciZboNcDacEycExdgYcFGboNboNboNboNcEzbidbidbidbidbidbidbfMbGKaafaafaafcbfaafaafdgRdgPdgQdgQdgQccQbudcCKcyldgTdgSdgMdgMdgMdgXdgWdgWdgVdgMdgMdgNdgOdfTcbjcpjcblbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaabTecrgcnicrebTecrccnfcrbbTecracnccqZbTeaaaaafcphcrdbSGbSGcqqbWbbSFdPYdPVcvgcvgdPTcvgcvgcvgcvgcrzbYpcrxcrybAkbYpdRPcrlbyOcrhcricrkcridhIcrqdhKdhLdhGdhHdgGdgGdgGbkjbEadhOebrdBIebpebqebiebjdQhebhebmebnebkdBNebcdhNebadQabJNebfdQedQddhMbCTbyDbXPbXQbGKbvKboNboNboNboNboNboNciNbGKaaaaaaaaaaafaaaaaabwwdhWdhUdBXdhTbuddQidQSdQRdfTdhVbyYbyYbyYdhPcvudhQdhSbyYbyYbyYdhYdfTdhXcrNcccccdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaafaafbTecqocdMcqpbTecdWcdMcdXbTecdLcdMcdNbTeaaaaafcqrbSGbSGbSIcqqcqybSFdPAdPvcqvcqucqtcqscqAcqAdhvcqBcqAcmpcqzbAkbAkbjqcqIcqJcpDcqCcqCcqHdhBdhCdgGdhAdhydhzdhwdhxdgGbkjbEadhDeaMdCpeaOeaPbEaeaFdPDeaHdXBeaIeaJdCqeaSdhEdXBbfMbPydXFeaUeaTeaQdXFaaaaaaaaabGKbGKbGKbXObXPbXPbXQbGKbGKbGKaaaaaaaaabudbudbudbudbudbudbudbudbuddPHdPSdPPdfTdfTbZPbOwcdqdfTdfTdfTdfTcoTbOwcdqdfTdfTccSdhFccSaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachdaafaafaafaaaaafcsLaafcsLaafcdmaafcdlaafcdmaafcdlaafaafaaabSFcsKbUXcsIdbicszbQGcsBcsAbQGcsCcsDcmJcmJdTDcmJchBcsGcsFchBcsHcstcsucsvcswcaOcaOcaOcaOcsxcsycaOcjXcjXcjXcjXcjXcjXbkjbEaebRdibdCyebNebObEaeaFdTLebMdXBebKebIdCzdiaebGdXBbfMbPydXFebFebEdhZdXFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaabudcnbcmXcmYdTJdTKcdydTHcfcdTIdTFdTEdTGcrHaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafcebceccebaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaafcsgclgcshclgcshclgccWclgccUclgccWclgccUclgccVbQGbQGbQGbQGbQGbQGbQGbQGcrPcrOcrUcrTcrSdQTdQWdQVdQUchBcsadZEcrYchBcaTchwchtcaOcsdcsecsbcscchhcaPcaOdRMdRMcsfclLclLcjXbkjbEabEaebxdCJbEabEabEaebvckYebwdXBdXBdXBdDhebCdXBdXBbfMcpqdXFdYWdYcdYddXFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafbudccCcoLccCdRNcmEcbWdTCcfcdRUdTAdRUbudbudaaaaaaaaaaafaafaaaaaeaaaaaaaaaaaaaafaaaceWaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcbMbSZcgtcgrcgqcgAcgGchrcgFbSZcgDcgBcgCcgAbSZcgycgzcgwcgxcgucgvceVchachgdYGcgYcgXcgZckyclWclRcmacgUcgIcgHcgKcgJchjchkchlcaOcaPcaPcaPcaPchhchicaOcoVcoVcoVclLclLcjXbkjdaTbEadXWdDidXLdXVbEadXZckYdXYdXBdYadXRdDjdYbdXBbPybfMcpqdXFcmucmtcmvdXFaaaaaaaaaaaaaaaaaabVuckZbYRceXbVuaafaaaaaaaaaaaabudccCccCccCcllclmcdyclsclNdaUclPclOclQbudaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacfVaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafcfqcfpcfmcbDcfmcbDcfmcbDcfocbDcfmcbDcfncbkcbkcbkcflbSZbSZcfkbSZcgccbkcgbcgacfZcfTcfSckyckxckuckqcfJcfGcfFcfAcfzcducfycfxcaOcgocfvcfvcfvcftcfucaOckgcfgcfgcfgcfrcjXbkjdaLbEadXJdXKdXLdXLdXMdXNcjxdXPdXQdXRdXRdXSdXCdXBciZciNbGKbZJbVucZgbVubZJaaaaaaaafaaaaaaaaabVuceuccOccYbVuaafaafaaaaaaaaabudcfccfccfccfcckfcbWcjFcjEcjyckeckdcjWbudaaaaaaaaaaaaaaachcchcchcchdaafaafaafaafcfVaafaafaafaafaafampchcchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaafaafcbMciccibbSZcibciYchYciXciabSZcibbSZbSZbSZbSZbSZciUcbkciWciVcbkciqcipciscirciucitciwcnLcnHcnvcnIchBcindeKciochBcnKciMciQciRciSciSciTciTchqcixcaOcnAcfgcizcfgcnTcjXbkjdeCbEaciydDxdXLdYnbEadYtcnodYtdXBdYrdXRdDyciLdXBbfMbGKbGKbVucnucntdeIbVubVubVucnJbVubVubVubVucsjbXKcbdbVubVubVubZJaaaaaabudcnbcmXcmYcmZcnacdycnlcnncnmcnecbWcnkbudaaaaaaaaaaaaaaachcaaaaafaaaaafaaaaaaaaachWaaaaafaafaaaaaaaaaaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaafaafaaaaaacbMciccibbSZcidchUchXchHchGchHchYchZciachLchHchHchRchHchSchTchHchIchIchHchGcfTchKbWldeBdcxdbebQGchBchFchBchBchBchvchwchtchuchzchAchxchychqdypcaOchpcfgchscfgcfgcjXbkjbPybEabEadDBbEabEabEadYkbPycmFdXBdXBdXBdDCdXBdXBbfMbGKaaabVudaXdYFdbacaZdbdcmzcmwcilcmycmxbVudWFbXKdWLbVudaWcfCbVuaafaafbudccCccCccCcmDcmEcbWcmscmrcmqcmicbWcmcbudbudbudbudaaaaaachcaaaciOciOciOciOciOaafciPaafciOciOciOciOciOaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaacbMciccidchHchHchHchHchHchGchHchHchHchGchYckockmcknckkcklckhckickwckwckickGbSZckpckvclqckMdTzckNckHckIckHckKckJckHckQdYJckSckOckPckPckPckVckPckWckXckTckUclHclHcjXboodeMcocbondDEcodcokboNboNboNboNboNboNboNdDFboNcomciNbGKaaacaZdeObsxdZpcaZdeNdZnbXKbXKdZmcbbdZkdWqdZldWsdZjbXKbXKbVuaaaaaabudccCccCccCcmZconcdycorcotcoscovcoucoucowcoqcopbudaafaafchcaafcjGcjHcjHcjHcjHcjIciPcjJcjKcjKcjKcjKcjLaafchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaacbMcjlbSZbSZcjjcjbcjbcjbcjdcjbcjbcjbcjdcjbcjbcjhcjicjecjdcjfcjgcjScjRcjbcjQcjPcjOcjCcjBdYIcjZcjYcjqcjVcjUcjTcjqcjqcjrcjncjocjmcjkcjkckacjkcjkcjAcjscjscjzclHclHcjXbPybfMbTBbTBbTBbTBdYHbTBbTBbTBbTBbPybPybGKbGKbGKbGKbGKbGKaaacaZdXmdZicaZcaZdeLdZgdZddZcdZfdZedZadZbcspcsqdYZbXKdYYbVuaaaaaabudcfccfccfccfccnYcbWcmscnWcnVcmicbWcbWcnXcbWcnUbudaaaaaachcaafckzckzckzckzckzaaaciPaaackzckzckzckzckzaafchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaachdaaaaaaaaaaaacbMcicbSZbSZbSZbSZbSZbSZcmmbSZbSZbSZcmmbSZbSZcmmcicbSZcmmcidcmnclTcaiclUcljcbsclVbSZbSZcpJcpBbQGbQGbQGbQGclXclrcaTcaSccsciRclYcaPcmbcmjcaPcmkcaOcpKcmlcfgcqGcencjXcpIbfMbTBcpHbhMbhLbYhbhKcoAbhPbTBbSabhObGKaaaaaaaaaaaaaaaaaabVudfIdWicwJcoJdWjcsidWndWodfzcsTcsQdWdcsRdWedWfbVudWgbVuaaaaaabudcnbcmXcmYccLcnacdycpFcoBcpGcpmcplcpAcprcpkcoUbudaaaaaachcaaaaafaaaaafaafaafaaaciPaaaaafaaaaafaaaaafaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaacbMcicbSZbSZclKckickickiclBckickickiclBckickiclDclGckiclIckiclJclhcljcliclhclnclnclnclncoPclpclocbwclAclzclxclrclbcdzccsclacldcaPcaPclccaPclecaOcqhcqhclfcqGcencjXbPybfMbTBbvhbvibVTbVSbvmbVSbvbbTBbTfbvgbGKaaaaaaaaaaaaaaaaaabVudfxdfwdfmcoGdWxdWydWzdWAdWqdWBcgidWrdWqdWpdWsbVubVubVuaaaaaabudccCcoLccCcoKcmEcbWcoFcoBcozcbUcbWcoxcfccfccfcbudaaaaaachcaaaciOciOciOciOciOaafciPaafciOciOciOciOciOaafchcaaaaaaaaaaaaaaaaaaaaaaaacmdaaaaaaaaacmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaacbMcbJcbKcbDcbIcbDcbHcbDcbGcbDcbFcbDcbEcbDcbDcbCcbBcbAcbzcbwcbvcbscbubSZcbmcbmcbqcbrcbrbWlcbhcbicbgcazcaVcaXcaYcaTcaScaUcaOcaQcaPcaRcaPcaNcaMcaOcjXcjXcjXcjXcjXcjXbPybfMbTBbyGbyIbvibYgbvibVSbyFbTBbyEbUjbGKaaaaaaaaaaaaaaaaaabVudWDdWEcaZcaZcVPdWIcVQcgTdWFbXKdWLdWMdWFbXKdWLbVuaaaaaaaaaaaabudccCccCccCccLccGcbLcbRcbScbTcbUcbWcbUcbWcbXcbWccBaafaafchcaafcjGcjHcjHcjHcjHcjIciPcjJcjKcjKcjKcjKcjLaafchcaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaafaaaaaaaaacbMbSZcctccuccvckjccJccNccPbSZccDccIccHckjbSZbSZccAccxccwcczccycchcclbSZcbrcbrcbrbSZccbbWlcbYbQGcbhccMchEcbVcaYcaTcaSccscaOccrccqccoccnccmcaPcaOcVUcVTcVTcVScVRcdVbPybfMbTBbVSbnsbnrbVSbntbnpbnobTBbnqcWmbGKaaaaaaaaaaaaaaaaaabVucsjdYFcWodWPdWQdWRdWNciFcsjbXKdWydWMdWScsRdWybVuaaaaaaaaaaaaccQbudcdcccTccTcVVcWecWicdncdocdtcdwcdrcdscdycdAcdxaaaaaachcaafckzckzckzckzckzaaaciPaafckzckzckzckzckzaaachcaaacmdaaaaaacmdaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaacmdaaaaaacmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaccXclgccUclgccWclgccUclgccWclgccUclgccWclgclgclgccUclgccWclgccVbQGbQGcdecdfcdgcdhcdibQGcdBbQGbQGbQGbQGbQGbQGcddccZbZKcdbcaOcaOcaOcaOcaOcaOcaOcaOcWpcVTcVTcWrcWqcVFbPybfMbTBbsJbsDcWtbVSdWKbYdbsybTBbSabhObGKaaaaaaaaaaaaaaaaaabVudWScsQcWscaZccKdWYdXbcaZdWZdXadWUdWTdWWdWVdWXbVuaafaafaaaaaaaaaaaaclkaaabudcWucdCcdHcdIcdGcdCcdDcdFcdGcdCcdJbudaaaaaachdaaaaafaaaaafaaaaafaaacobaaaaafaaaaafaafaafaafchcaaacmdcmdcmdcmdaaacmdcmdcmdcmdcmdcmdcmdcmdcmdaaacmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBTbHBbHCbHBbBTbHDbFSbAHbAZbGbbHHbEWbHIbHJbAUbHKbHLbBrbHNbAUbHObHObBBbGDaaaaaaaaaaaabGFbGfbHRbvAbHTbHUbHVbCtbBVbHXbBYbCtbHZbCjbCpbClbBGbBDbBKbBJbBMbCvbCwbzlbBobGKbGKbymbBmbBlbBlbBkbymbBCbBybBwbBubBtbBsbBpbCsbCybCqbCrbBHbBIbBEbBFbCNbCObFkbCIbBLbCFbBjbAgbAgbCJbAqbksbhQbGkbGrbCxbGIbCMbHEbGObGvbhQbCLbCKbDpbDpbkIbwxbCVbBWbHFbDjbDMbDObDTbDUbDrbDsbDHbDJbDXbjfbIhbCWbyVbngbngbngbngbngaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabxYbjBbxXbjBbjBbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGpbHBbHBbHBbNvbNnbEWbOgbNdbNcbEWbEWbJhbJibAUbAUbAUbJRbAUbAUbJvbJlbJDbJnaaabJCbJpbJBbJrbJsbHVbJtbJKbJPbJubJbbJybJxbJwbJbbCSbJobJEbJFbJGbJHbJIbGHbGHbJJbJcbDobJQbJNbJUbJSbJZbJWbJWbJWbIDbICbJabIFbzGbJjbJMbJLbIxbzGbIybIzbEcbIAbOLbIBbIubIvbEcbAqbIwbAqbAqbAqbAqbAqbAqbksbhQbKFbKdbCxbCxbCxbCxbCxbOIbhQbKtbEzbKpbKpblTbKjbKsbKrbKqbKgbKgbKgbKgbKhbIYbIYbKibKobJYbjfbOGbxlbJTbJObJXbJVbJAbJzaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbtybjBbptbpubpubjSbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBTbHCbHCbHCbBTbKKbQvbKHbKNbOUbEWbKvbLsbltbLibKVbKVbKZbKWbKVbKDbjwbKQbKYaaabGLbLabLbbLcbLdbHVbLebLfbLgbHVbCtbKubKGbKRbCtbLlbLmbLnbLobLpbLqbLrbKUboNbKSbKIbGKbPybPybKnbymbFmbBxbFlbETbBxbHcbKcbFtbKmbKlbKkbKebKBbKCbGXbGYbLxbIAbIBbIBbIubKxbEcbKwbKzbKAbmobKybKbbKabkybksbhQbCxbLEbCxbCxbCxbCxbCxbRqbhQbLCbEzbHPbHPblTbLObojbBWbMabIYbIYbLFbLHbLIbLKbIYbLLbLMbLBbLwbLtbLhbKPbLjbKXbKTbJAbKJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabjBbjBbkQbjSbjSbjSbjSbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaabGpbMwbMxbMybGpbMzbGtbGubASbASbMAbMAbMAbASbASbGDbJkbJkbGibJkbJkbJkblPbKYaaabGLbMDbMEbMFbMGbMHbMIbMJbMGbMGbMKbGBbGxdBhbGHbGHbGHbGHbGHbGHbMObGHbGHbyKbGGbGmbGKbPycpqasZbymbEbbBxbBxbBxbHdbHnbApbFtbHjbGZbHbbBtbGVbHabGXbGYbGWbGSbGTbGUbGNbMNbEcbGPbGcbGdbmobGgbHgbHebkybksbhQbhQbIpbCxbCxbCxbCxbhQbhQbhQbIobHYbHPbHPblTbHQbojbBWbCXbHAbHybHzbHtbHubHrbHsbLHbHpbGMbGEbGRbGJbGQbngbHlbHkbGobGnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbjBbjSbjSbjSbjSbjSbjSbjXbjSbHmbjSbjSbjSbjSbjSbjBbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNObESbNPbESbNQbMQaafaaaaaabASbNRbNSbNTbASaaabGDccpcbybzibJkbJkbJkblPbKYaaabGLbNWbNXbNYbNZbHVbOabObbOcbOdbGFbIabIqbIcbIbbIdbIdbIdbIdbIdbIdbItbIdbIebIebIEbGKbGKbGKbGKbymbymbHwbHwbHwbymbPZbHvbHobInbHibzGbBubCUbJgbIlbImbPZbIkbEcbEcbEcbEcbEcbIjbIfbBAbmobHSbIsbCibkybksbhQbIMbIVbIUbIRbIQbITbISbIMblUbIPbIObIZblTblTbJmbojbOVbngbngbjfbjfbjfbjfbIWbjfbIXbIYbIHbjfbIhbCWbyVbngbIKbIJbIGbngaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabjBbulbulbulbulbulbulbILbjSbuPbulbHmbjSbjSbjSbjSbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafcbxbGDbGDbGDbGDbJkblQblPbPiaaabPjbJpbPkbPlbPmbHVbHVbPnblOblMbtSbmwblSblRbCtbgXbgXbgXbgXbgXbgXbgXbgXbPwbPxboobonbmAbmybGKbymblCboXbpbbpbbtPbqablIblHblKblJblYblXbmabmbbmcbmdbmebmfbmgbmibtQbmkbidbmlbmmbmnbmobmpblfblebkybksbhQbsTblxbsSbicbicbicblzbtNblUbkIbsZblTblTbQebgnbojbojbQgaafbjcblZbmvblwbnfblwbmzbmtbnEbjfblLbnHbtRbngbnwbnjbnjbolaagaagaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabombmNbmNbmNbmNbmNbmNbmNbmMbmLbjSbjSbjSbjSbmObmLbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaBcaCcaCcaDcaEbGDccfbJkbmKbGDaaaaaaaaaaaabGFbQybQzbQAbQBbGFbQCbCtbmIbmHbmJbCtbgXbmEbmGbmFbmCbmBbmDbfNbfNbfNbfNbfNbfNbkjbnZbnXbqCbqxbBzboObpkbpjbpibphbpobpnbnIbpmbnIbnJbnubnvbnNbnObnLbnMbnObnSbvpbnQbnVbnWbvHbnUbmubufbuTbxmbqqbpabpfbpebplbpgbpqbpgbpsbprbqvbmhbtTbRnbojbgnbojbojbRoaafbjcbjdbjdbopboqboKboPboYbpwbjfbgqbgpbUKbngbngbngbngbngaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabjBbpubpubpubpubpubpubpvbjSbptbpubkabjSbjSbjSbjSbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkfbrKcbobrPbJkbscbskbJkbgtbGDbguaaaaaaaaabGFbGFbGFbGFbGFbGFbGFbCtbhybhibhhbCtbgXbhBbgwbgxbgxbgwbgvbfNbgMbgLbgDbgBbfNbhGbymbymbiAbfAbrlbfEbBzbggbgibhHbfJbcPbgfbfLbgTbgVbgWbgYbgjbgkbbVbcZbgkbjabhjbhEbhIbhabhcbhdbinbilbGKbhYbCTbjbbjbbhJbicbiubisbicbrmbiabjhbgmbSnbojbSobgnbojbSpbSqaafbjcbjdblBblwblcblwbjGbiybjmbjfbgqbgpbjubitbyVaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbjBbjSbjSbjSbjSbjSbjSbjXbjSbkabjSbjSbjSbjSbjSbjBbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccecaCcaCcaDcbtbiLbkebGDbkubGDccgbkvbkEccgccgbjFbjLbjMbgZbjTbjUblvbYpbjqbjxbllbjybgwbjEbjDbiNbiMbiObfNbiQbiPbjpbiRbfNbsCboNblWblFblDbslbiTbiTbkhbkgbkkbiDbkdbkcbkbbiDbiDbiBbiCbizbwUbhebhFbhebiKbiIbiJbiGbiHbiEbiFbiGbklbGKbksbCTbknbkrbkobkMbkLbkPbkNbhQbhQbrhbiwbrhbrhbrhbhTbxqbhRbrhbjfbjfbjfbjfbjfbkmbjfbjfbjfbjfbjfbgqbgpblgbkpbyVaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabjBbjBbkQbjSbjSbjSbjSbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQchdalQalQalQalQalQaaaaaaaaaaaaaaaaaaaafaafaaabxWbxTbxTbxTbxVbxTbxTbxRbxSccgbwobwhccgbwJbwKbwHbwIbwDbwGbyybwvbwSbwObfHbxUbwMbgwbjEbwLbxjbiMbxdbfNbiQbiPbxcbxabfNbxObPybymbyxbvlbCAbvobtLbtXbvebxEbiDbvfbvkbvjbuObiDbuQbvFbvNbwUbhebhFaJzbiKbvrbvsbiGbvtbvubuabiGbxsbGKbCebCTbhQbhQbhQbhQbhQbvqbhQbhQbwqbwmbvvbrkbxxbrhbiwbypbvabrhbxybwCbwTbwrbwsbwYbxkbumbwVbumbumbuLbunbAEbyVbyVbyVaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbtybjBbuPbulbulbjSbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbAdbzWbsKbzRbAGbthbzBbzFbzHccgbzSbzVccgccgbAlbAmbAnbAhbAibAjbAkbYpbyUbyRbyObyNbyJbyMbyLbzDbyJbyJbzJbzpbznbzAcjcbfNbkjbqZbqZbqZbqZbywbqZbqZbqZbysbyrbiDbyvbqJbytbtDbiDbylbynbzybwUbhebhFbhebiKbwWbwXbiGbyibwZbyhbwFbwEbDBbwPbwRbwRbwRbwRbwRbwRbygbwRbwRbygbwRbyBbygbygbCEbCPbDgbyqbCEbyubxAbxAbxAbxCbxDbxAbxAbxAbxAbxAbxzbyabxZbVNbVObyVbyVbyVbyVaaaaafaaaaaaaaaanmanmanmaafaaaaaaaafaaaaaaaafaaaaaabxYbjBbxXbjBbjBbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbsBbsBbsKbsMbsLbthbtlbsNbsOccgbvRbqsbqubvYbqDbqwbyobyTbqQbqIbqKbqVbqUbeYbqSbwtbrMbrGbribsdbsebsdbwwbsubsjbjpbshbfNbkjbqZbqYbqWbqRbqXbqWbwcbqLbqPbqNbpxbppbqJbqJbsmbiDbsnbsobsibwUbhebspbqtbiKbsfbsgbiGbrObrVbsbbiGbssbidbvKboNbrkbrkboNboJboGboibnRbnKbstbsrbsqbvnbvQbxrbykbxtbyjbxrbugbtObsabrjdfTdfTdfTdfTbsvbsabrjdfTdfTbAEbnkbnmbnlbWWbvSbWYbWZbXabXabXabXabXabXabXabXabXabXabXabXabXabXabXabXabpKbpLbpLbpPbjBbjBbjSbjSbqmbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSFbSFbSFbSFbSFbSFbSFbuibujccgccgccgccgccgbukbuAbuKbuKbuKbuMbuNbYpbjqbjxbtsbjybttbtxbtubtEbtCbtGbfNbtVbtHbtYbtWbfNbzIbqZbzxbzsbzsbzcbtMbkObqZbzbbyZbiDbtIbtFbqJbtDbiDbtAbtBbtzbwUbhebqHbtJbiKbszbsAbiGbiGbiGbiGbiGbBPbidbidbidbfMcmHbBObGKbXObXPbXQbGKbsrbBNbBvbAJctibudbuhbFqbtUbudbAIbyYbyYbyYbxnbwQbzQbADbyYbyYbyYbyXdfTbXVbswbXXbyVbyVbyVbyVaaaaafaaaaaaaaaanmanmanmaafaaaaaaaafaaaaaaaafaafaafbtrbtwbtmbtnbtybjBbjBbjSbmLbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbSFbSGcnjcngcnhcnQbSFdgmdgldgkdgjcrEcCRcCQcCQcrucCEcCEcAMcCJbAkbYpbjqbjxcnCbwMcnzctfcnBcnwcnxcnybfNbtVcnpcnqdTTbfNbkjbqZdZLdZOdZOdZMdZNbqZdYtcZydZQbiDdZTdZRdZSdZHbiDdZGbtBcrVbwUbxPbtKbxQbiKdZKdZJbiKcrXbPwbiddgCbssdZVdZWbidbfMdWwdXGbGKaaaaafaaaaaabsrctuctjdgrdgqdgtdgscCVcCUdgxdgwdgzdgydgocDedfQdfQdgBdgodgodgodgndfTbYUcoebYWbYUaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcrLbEQbEQbFgbtybtybjBbjBbjBbjBbEOaafaafaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaafaafbTebTebTebTebTebTebTebTebTebTebTebTebTeaaaaaacmobSGbSGbSGbSGcmAbSFdfNdfMcsudfKcqdcpVcqccpVcstcpTcpScskcrZcpLcqjcqwcmCdfPbgXbgXbgXbgXbgXbgXbgXbfNbfNcsvbfNbfNbfNbkjbqZbqZdZrdZsdZtdZubqZdfUcqDcqTbiDbkdbiDbiDbiDbiDbwUdZydZzbwUcqXcqWcqXbiKbXLdZBbiKbPybPybiddZDbssbidbidbidbfMcpWcmNbGKaaaaafaaaaaedfXdfVdfWdgbdgadfZdfYcsBcsAcsycsxcvNcvNcvNcsGdgidghdfQdfQdfQdfRdfSdfTcqQcmGbZVbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaabTecnScqacnSbTecnOcpYcnObTecnMcpZcnMbTeaaaaaacphbSGcpXbSGbSGcpRbSFcFVcFUcQKcFXcRqcRpcFMcFKcDpbqVbqVcFTbqVbqKcFIcFJbjxcpCcpDcpucpucpEdgZdhadgGdhbdhcdhddhedhfdgGbkjbEaeaxbMXbMXeaveaweaDeaEdLbdPueazeaAeayeaeeaeeaudXBbwUbwUbwUdhtcZLdhubiKbiKbiKbiKbPybPybiddZDbsseareasbidbfMbGKbGKbGKaaaaafaaaaaadhqdhrdhsdhldhkdhmcWQdQScDxdhidhhdfQdfQdfQdfQdhodhndfQdhpdfQdfRdghdfTcaycqbcaAbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaabTecnScnRcnSbTecnOcnPcnObTecnMcnNcnMbTeaaaaaacphbSGbSGbSGcpicoIcDfcsOcsNcvgcuVcsWbpIcsMcsEcsmcoycoEcoDdgFbAkbYpcpdcpbcpccDncpfcpecpfdgIcoWdgGdgHdgKdgLdgJdgHdgGbkjbEaeabbMXbOsbMXeaaeageahcCNeajeaceadeaeeafeaeeandXBciZboNcDacEycExdgYcFGboNboNboNboNcEzbidbidbidbidbidbidbfMbGKaafaafaafcbfaafaafdgRdgPdgQdgQdgQccQbudcCKcyldgTdgSdgMdgMdgMdgXdgWdgWdgVdgMdgMdgNdgOdfTcbjcDocblbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaabTecEGcnicECbTecEBcnfcEtbTecEscnccErbTeaaaaafcphcrdbSGbSGcqqbWbbSFdPYdPVcvgcvgdPTcvgcvgcvgcvgcrzbYpcrxcrybAkbYpdRPcrlbyOcEIcricrkcridhIcrqcEJdhLdhGdhHdgGdgGdgGbkjbEadhOebrdBIebpebqebiebjdQhebhebmebnebkdBNebcdhNebadQabJNebfdQedQddhMbCTbyDbXPbXQbGKbvKboNboNboNboNboNboNciNbGKaaaaaaaaaaafaaaaaabsrdhWdhUdBXdhTbuddQidQSdQRdfTdhVbyYbyYbyYdhPcvudhQdhSbyYbyYbyYdhYdfTdhXcrNcccccdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaafaafbTecqocdMcqpbTecdWcdMcdXbTecdLcdMcdNbTeaaaaafcqrbSGbSGbSIcqqcqybSFdPAdPvcqvcDJcDzcDycEecEecEpcEfcEecDKcqzbAkbAkbjqcqIcqJcpDcqCcqCcqHdhBdhCdgGdhAdhydhzdhwdhxdgGcEqbEadhDeaMdCpeaOeaPbEaeaFdPDeaHdXBeaIeaJdCqeaSdhEdXBbfMbPydXFeaUeaTeaQdXFaaaaaaaaabGKbGKbGKbXObXPbXPbXQbGKbGKbGKaaaaaaaaabudbudbudbudbudbudbudbudbuddPHdPSdPPdfTdfTbZPbOwcdqdfTdfTdfTdfTcoTbOwcdqdfTdfTccSdhFccSaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachdaafaafaafaaaaafcsLaafcsLaafcdmaafcdlaafcdmaafcdlaafaafaaabSFcsKbUXcsIdbicszbQGcFbcEVbQGcsCcsDcmJcmJdTDcmJchBcFccsFchBcsHchRcEPcERcswcaOcaOcaOcaOcEScEUcaOcjXcjXcjXcjXcjXcjXbkjbEaebRdibdCyebNebObEaeaFdTLebMdXBebKebIdCzdiaebGdXBcFdbPydXFebFebEdhZdXFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaabudcnbcmXcmYdTJdTKcdydTHcfcdTIdTFdTEdTGchTaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafcebceccebaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaafcsgclgcshclgcshclgccWclgccUclgccWclgccUclgccVbQGbQGbQGbQGbQGbQGbQGbQGcrPcEKcrUcrTcrSdQTdQWdQVdQUchBcsadZEcrYchBcaTchwchtcaOcsdcsecsbcscchhcaPcaOdRMdRMcsfclLclLcjXbkjbEabEaebxdCJbEabEabEaebvckYebwdXBdXBdXBdDhebCdXBdXBbfMcpqdXFdYWdYcdYddXFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafbudccCcoLccCdRNcmEcbWdTCcfcdRUdTAdRUbudbudaaaaaaaaaaafaafaaaaaeaaaaaaaaaaaaaafaaaceWaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcbMbSZckWcgrcgqcgAclochrcgFbSZclncgBcgCcgAbSZcgycgzcgwcgxcgucgvceVchacmpdYGclXclRcmnckyclWclJcmacgUcgIcgHcgKcgJchjchkchlcaOcaPcaPcaPcaPchhchicaOcoVcoVcoVclLclLcjXbkjdaTbEadXWdDidXLdXVbEadXZckYdXYdXBdYadXRdDjdYbdXBbPybfMcpqdXFcmuckScmvdXFaaaaaaaaaaaaaaaaaabVuckZbYRceXbVuaafaaaaaaaaaaaabudccCccCccCcllclmcdyclsclNdaUclPclOclQbudaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacfVaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafcfqcfpcfmcbDcfmcbDcfmcbDckncbDcfmcbDckmcbkcbkcbkcflbSZbSZcfkbSZcgccbkckNcksckocfTcfSckyckxckuckqcfJcfGcfFcfAcfzcducfycfxcaOcgocfvcfvcfvcftcfucaOckgcfgcfgcfgcfrcjXbkjdaLbEadXJdXKdXLdXLdXMdXNcjxdXPdXQdXRdXRdXSdXCdXBciZciNbGKbZJbVucZgbVubZJaaaaaaaafaaaaaaaaabVuceuccOccYbVuaafaafaaaaaaaaabudcfccfccfccfcckfcbWcjFcjEcjyckeckdcjWbudaaaaaaaaaaaaaaachcchcchcchdaafaafaafaafcfVaafaafaafaafaafampchcchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaafaafcbMciccibbSZcibciYchYcpjciabSZcibbSZbSZbSZbSZbSZcoUcbkcpgciVcbkciqcipciscotciucitciwcnLcnHcnvcnIchBcindeKciochBcnKcoHciQciRciSciSciTciTchqcixcaOcnAcfgcizcfgcnTcjXbkjdeCbEaciydDxcnEdYnbEadYtcnodYtdXBdYrcnFdDyciLdXBbfMbGKbGKbVucnucntdeIbVubVubVucnJbVubVubVubVucsjbXKcbdbVubVubVubZJaaaaaabudcnbcmXcmYcmZcnacdycnlcnncnmcnecbWcnkbudaaaaaaaaaaaaaaachcaaaaafaaaaafaaaaaaaaachWaaaaafaafaaaaaaaaaaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaafaafaaaaaacbMciccibbSZcidcnrchXchHchGchHchYcnDciachLchHchHcmOchHcmPcmWchHchIchIchHchGcfTchKbWldeBdcxcmBbQGchBcmKchBchBchBchvchwchtchuchzchAchxchychqdypcaOchpcfgchscfgcfgcjXbkjbPybEabEadDBbEabEabEadYkbPycmFdXBdXBdXBcmtdXBdXBbfMbGKaaabVudaXdYFdbacaZdbdcmzcmwcilcmycmxbVudWFbXKdWLbVudaWcfCbVuaafaafbudccCccCccCcmDcmEcbWcmscmrcmqcmicbWcmcbudbudbudbudaaaaaachcaaaciOciOciOciOciOaafciPaafciOciOciOciOciOaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaacbMciccidchHchHchHchHchHchGchHchHchHchGchYcqZcqAcqBckkcquckhckickwckwckickGbSZckpckvclqckMdTzcrackHckIckHckKckJckHckQdYJcrbckOckPckPckPckVckPcrcckXckTckUclHclHcjXboodeMcocbondDEcodcokboNboNboNboNboNboNboNdDFboNcomciNbGKaaacaZdeObsxdZpcaZdeNdZnbXKbXKdZmcbbdZkdWqdZldWsdZjbXKbXKbVuaaaaaabudccCccCccCcmZconcdycorcqtcoscovcoucoucowcoqcopbudaafaafchcaafcjGcjHcjHcjHcjHcjIciPcjJcjKcjKcjKcjKcjLaafchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaacbMcjlbSZbSZcjjcjbcjbcjbcjdcjbcjbcjbcjdcjbcjbcpncjicjecjdcjfcjbcpUcpQcjbcjQcjPcjOcjCcjBdYIcjZcqscjqcjVcjUcjTcjqcjqcjrcjncppcjmcjkcjkckacjkcjkcpOcjscjscjzclHclHcjXbPybfMbTBbTBbTBbTBdYHbTBbTBbTBbTBbPybPybGKbGKbGKbGKbGKbGKaaacaZdXmdZicaZcaZdeLdZgdZddZcdZfdZedZadZbcspcsqdYZbXKdYYbVuaaaaaabudcfccfccfccfccnYcbWcmscnWcnVcmicbWcbWcnXcbWcnUbudaaaaaachcaafckzckzckzckzckzaaaciPaaackzckzckzckzckzaafchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaachdaaaaaaaaaaaacbMcicbSZbSZbSZbSZbSZbSZcmmbSZbSZbSZcmmbSZbSZcmmcicbSZcmmcidcrOclTcaiclUcljcbsclVbSZbSZcpJcpBbQGbQGbQGbQGcrHclrcaTcaSccsciRclYcaPcmbcmjcaPcmkcaOcpKcmlcfgcqGcencjXcpIbfMbTBcpHbhMbhLbYhbhKcoAbhPbTBbSabhObGKaaaaaaaaaaaaaaaaaabVudfIdWicwJcoJdWjcsidWndWodfzcsTcsQdWdcsRdWedWfbVudWgbVuaaaaaabudcnbcmXcmYccLcnacdycpFcoBcpGcpmcplcpAcprcpkcrCbudaaaaaachcaaaaafaaaaafaafaafaaaciPaaaaafaaaaafaaaaafaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaacbMcicbSZbSZclKckickickiclBckickickiclBckickiclDclGckiclIckicrrclhcljcliclhcrgcrgcrgcrgcoPclpcrhcfnclAclzclxclrclbcdzccsclacldcaPcaPclccaPclecaOcqhcqhclfcqGcencjXbPybfMbTBbvhbvibVTbVSbvmbVSbvbbTBbTfbvgbGKaaaaaaaaaaaaaaaaaabVucredfwdfmcoGdWxdWydWzdWAdWqdWBcgidWrdWqdWpdWsbVubVubVuaaaaaabudccCcoLccCcoKcmEcbWcoFcoBcozcbUcbWcoxcfccfccfcbudaaaaaachcaaaciOciOciOciOciOaafciPaafciOciOciOciOciOaafchcaaaaaaaaaaaaaaaaaaaaaaaacmdaaaaaaaaacmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaacbMcbJcgGcbDcgDcbDcgtcbDcgbcbDcgacbDcfZcbDcbDcfQcbBcfocbzcfncffcbscbubSZceqceqcercbrcbrbWlcbhcelcbgcekcaVcaXcaYcaTcaScaUcaOcaQcaPcaRcaPcaNcaMcaOcjXcjXcjXcjXcjXcjXbPybfMbTBbyGbyIbvibYgbvibVSbyFbTBbyEbUjbGKaaaaaaaaaaaaaaaaaabVudWDdWEcaZcaZcVPdWIcVQcgTdWFbXKdWLdWMdWFbXKdWLbVuaaaaaaaaaaaabudccCccCccCccLccGcbLcbRcbScbTcbUcbWcbUcbWcbXcbWccBaafaafchcaafcjGcjHcjHcjHcjHcjIciPcjJcjKcjKcjKcjKcjLaafchcaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaafaaaaaaaaacbMbSZcctccucgXckjccJccNchFbSZccDccIchDckjbSZbSZchgccxcgYcczcgZcchcclbSZcbrcbrcbrbSZccbbWlcbYbQGcbhccMchEcbVcaYcaTcaSccscaOccrccqccoccnccmcaPcaOcVUcVTcVTcVScVRcdVbPybfMbTBbVSbnsbnrbVSbntbnpbnobTBbnqcWmbGKaaaaaaaaaaaaaaaaaabVucsjdYFcWodWPdWQdWRdWNciFcsjbXKdWydWMdWScsRdWybVuaaaaaaaaaaaaccQbudcdcccTccTcVVcWecWicdncdocdtcdwcdrcdscdycdAcdxaaaaaachcaafckzckzckzckzckzaaaciPaafckzckzckzckzckzaaachcaaacmdaaaaaacmdaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaacmdaaaaaacmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaccXclgccUclgccWclgccUclgccWclgccUclgccWclgclgclgccUclgccWclgccVbQGbQGcdecdfcdgcdhcdibQGcdBbQGbQGbQGbQGbQGbQGcddchRchJchScaOcaOcaOcaOcaOcaOcaOcaOcWpcVTcVTcWrcWqcVFbPybfMbTBbsJbsDcWtbVSdWKbYdbsybTBbSabhObGKaaaaaaaaaaaaaaaaaabVudWScsQcWscaZccKdWYdXbcaZdWZdXadWUdWTdWWdWVdWXbVuaafaafaaaaaaaaaaaaclkaaabudcWucdCcdHcdIcdGcdCcdDcdFcdGcdCcdJbudaaaaaachdaaaaafaaaaafaaaaafaaacobaaaaafaaaaafaafaafaafchcaaacmdcmdcmdcmdaaacmdcmdcmdcmdcmdcmdcmdcmdcmdaaacmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaafaafaafaaaaafcdlaafcdmaafcdlaafcdmaafcdlaafcdmaafaaaaafcdlaafcdmaafaaaaaabQGcdecdfcdvcdhcdibQGcWvcWwcdOcdPcdTcdUcdRcdScdUceHcexcepcePceLceKceoceoceocWlcWxcWxcWxcWycWxcVFbPybfMbTBbTBbVPcoicohcoibVPcojbTBbGKbXIbGKaaaaaaaaaaaaaaaaaabVudXmdXndWPcaZdXidXjcWzcaZceQceRceXceTbYXceSbYTbZJaaaaaaaaaaaaaaaaaacooaafbudcWAcficWEcfccWDcfecWCcfccWBcfscWFbudaaaaaachcaaaciOciOciOciOciOaafcfVaafciOciOciOciOciOaafchcaaacmdcmdcmdcmdaaacmdcmdcmdcmdcmdcmdcmdcmdcmdaaacmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaafaafbTecdXcdMcdWbTecdXcdMcdWbTecdNcdMcdLbTeaaabTecdNcdMcdLbTeaaaaaabQGbQGcfRcfRcfRcfRcfRcgncfRcgpceocfUcdPcgmcdPcdPcfNcfPcfOcfIcfHcWHcWGcdPcdPcWRcWPcWKcWIcWMcWLcVFbPycmHdXccmNbVPcmObYdcmPbVPcmQaafcmRcmScmRaaaaaaaaaaaaaaaaaabVudXtcghcspcWTdXqdXrdUUcbNcgOaafaaaclZaagcgLcrHaaaaaaaaaaaeaaaaaaaaaaaaaaabudcWSccCccCcfccgsccCccCcfccgsccCccCbudaafaafchcaafcjGcjHcjHcjHcjHcoQcoRcoQcjKcjKcjKcjKcjLaafchcaaacmdcmdcmdcmdaaacmdcmdcmdcmdcmdcmdcmdcmdcmdaaacmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaabTeceicgMcejbTechDchPchJbTecekcemcelbTeaaabTecerbVqceqbTeaaaaaaaaachnbZdcgVbZpchbcgWchCdDUcrjcrjcdZcrjcgEcdYcehcegcdYcefcgEceecedceabYocgpcgpcVFcVvcWWcWVcWUcVFbGKbvKdXgdXhbVPcoicqmcoibVPcmQaafaaaaafaaaaaaaaaaaaaaaaaaaaabVudXtbYLdXzdXAdXAdVRdWydXybVuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabudcWXccCccCcfcchQccCccCcfcchQccCccCbudaaaaaachcaafckzckzckzckzckzaaacfVaaackzckzckzckzckzaaachcaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaabTecfBcgNcfBbTechVciechVbTebUhcesbUhbTeaaabTebUhbUhbVrbTeaaaaaaaaabYmcifbXTchmdYKcigchCbYKcrjceAceBceObYrceDcakcetcewcevbYrceCcezceybYoaaaaafcVFcWZcWYcXaaafaaabGKbPybPycpqbVPcpncpocppbVPcmQaafaafaaaaaaaaaaaaaaaaaaaaaaaabVudVPcsSdVRciGciGdVQbXKdVSbVuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabudccCccCccCcfccihccCccCcfccihccCccCbudaaeaaachcaaaaaaaafaafaafaaaaaacfVaafaaaaaaaafaafaaaaaachcaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaampaaaaaaaaaaafbTecfBceGcfBbTechVcijchVbTebUhceIbUhbTeaaabTebUhbUhbUhbTeaaaaaaaaabYmbXZcikbYNbXZcigcimcivcrjbYIceMceNbYrciIciJceUcaxcfwbYrcfaceZceYbYoaaaaaacVFcXdcXccXbaaaaaabGKbPybPybGKbVPcrJcrJcrJbVPcrIcrHaaaaaaaaaaaaaaaaaaaaaaaaaaabVudVTcYGbXKbXKbXKbXKbXKdVUbVuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccQbudbudbudbudbudbudbudbudciKciKciKccQaaaaaachcchcchcchcchcaaaaaaaaacfVaaaaaaaaachcchcchcchdchcaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafbTebTebTebTebTebTebTebTebTebTebTebTebTeaaabYybTebTebTebYyaaaaaaaaabYmcVjbXTbXYbXZbYabXRcVicrjbYlbYfbYibYjbYkbYwbWkbYxbXNbYrbYqbYtbYsbYoaafaaacVFcVvcVucVFcVwaaabGKbXBbPydVOcqRaafaafaafaaaclkaafaafaaaaaaaaaaaaaaaaaaaaaaaabZJbVubVubXCdVZdVQdVQdVQdVYbXCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXlbXlbXlaaaaaaaaaaaaaaaaaaaaaaaaaaachcaafcqEaafchcaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYmbYQbXTbYNbXZbYMbYJbYKcrjbYIbYfbYHbYrbYGbYFbYEbYDbYvbYrcVHbYAbYzbYoaagcVGcVGcVGcVGcVGcVGcVGbGKbUxctgdVVaafaaaaaaaafaaaclZaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYCciGciGciGciGciGbYCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaaaaafaaachcaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaalQaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaabYSaaaaaaaaaaaaaaaaaaaaaaaabZbbZdbZfbZmdYLbZqbXRbYKcrjbYVbYYbYZbYrbZabZsbZcbZtbZebYrbZgbZibZhbYoaaacVGcVGcVGcVGcVGcVGcVGbGKdVWcdjbGKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVubYXbYRbYRbYRbYTbVuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcchcchcchcchcaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaabZIbZIbZIbZIbZIcVIbZjbZjbZjbZjbZjbZjbZobZvbZlbZubZkbZjbZjbZnbZjbZjbZjcVGcVGcVGcVGcVGcVGcVGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaacmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaampaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZraaaaaaaaaaaaaaacOXcPabZjbZwbZxcVKbZQbZRbZSbZWbZCbZXbZCcdEbZybZUbZAbZEbZjcVGcVGcVGcVGcVGcVGcVGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaacfWcfXcfYaaacfWcfXcfYaaacfWcfXcfYaafaafaaaaaaaaaaaaaafaafaaaaaaaaaaaabZYaaaaaaaaaaaacOXcPabZjbZwbZxcabcagbZScaabZDbZCbZCbZCbZDbZHbZZbZFbZLbZjcVGcVGcVGcVGcVGcVGcVGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaacfWchecfYaaacfWchecfYaaacfWchecfYaafaafaafaafaaaaaabYnaaaaaaaaaaafaaaaaaaaaaaaaaaaaacOXcPabZjcaccadcaecafcahcahcamcajcafcafcamcalcaocancapbZjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafcfWchecfYaaacfWchecfYaafcfWchecfYaafaaaaaaaafaafcaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOXcPabZjcaHcaIcaLbZBcaJcaKcaucatbZHcascascaFcavcancaGbZjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvaaactvctvctvctvctvaaactvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacfWchecfYaafcfWchecfYaaacfWchecfYaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOXcPabZjcRQcaIcTocSfcRfcRfcRicRfcRecRfcRfcROdTMdTNcRdbZjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvaaactvctvctvctvctvaaactvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalPaafaaacfWchecfYaafcfWchecfYaaacfWchecfYaafaaaaaaaaaaaaaafaafcjMcjNcjNcjNcjNcOXcPddfHdfHdgDcOXcPabZjcPScPDcPVbZjbZjbZjcQHcQJcQNbZjbZjbZjcRbcRccPWbZjaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaaaaafaafckAaafaafaafckAaafaaaaafckAaafaaaaaaaaaaaaaaackBckCckDckEckFcPBcPqdhRdgEdigdicdicdihdpKbZjcOWbZCcvGcttcvEcIGdifcOLdiecIGctscttcyVbZCcFabZjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafcltclucluclvclwclwclwclwclwclwclwclwclwclwclwclwclwclwcEZclydidcELcBvclCcwKclEdyKdyKdyKdyKdyMdyKdyNbZjbZCbZCcvGcttcvEcwIctpcyWcyXcwIctscttcyVbZCcyhbZjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaaaaafaafcmeaafaaaaafcmeaafaaaaafcmeaafaaaaaaaaaaaaaaackBckCcmfcmgcmhdcCcjNdyPdyOdicdicdyQdyQdyRbZjbZCbZCcvFcttcvEctoctpctqctmctoctscttctrbZCbZCbZjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalPaafaafcfWcmLcfYaaacfWcmLcfYaaacfWcmLcfYaafaaaaaaaaaaaaaafaafcmMcjNcjNcjNcjNcOXcPddfHdfHdgDcOXcOXbZjbZjctkbZjbZjbZjbZjbZjctlbZjbZjbZjbZjbZjctkbZjbZjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfWcmLcfYaafcfWcmLcfYaaacfWcmLcfYaaaaaaaaaaafaaaaafaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaafaafbTecdXcdMcdWbTecdXcdMcdWbTecdNcdMcdLbTeaaabTecdNcdMcdLbTeaaaaaabQGbQGcfRcfRcfRcfRcfRcgncfRcgpceocfUcdPcgmcdPcdPcfNcfPcfOcfIcfHcWHcWGcdPcdPcWRcWPcWKcWIcWMcWLcVFbPycmHdXccmNbVPchZbYdchUbVPcmQaafcmRcmScmRaaaaaaaaaaaaaaaaaabVudXtcghcspcWTdXqdXrdUUcbNcgOaafaaaclZaagcgLchTaaaaaaaaaaaeaaaaaaaaaaaaaaabudcWSccCccCcfccgsccCccCcfccgsccCccCbudaafaafchcaafcjGcjHcjHcjHcjHcoQcoRcoQcjKcjKcjKcjKcjLaafchcaaacmdcmdcmdcmdaaacmdcmdcmdcmdcmdcmdcmdcmdcmdaaacmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaabTeciMcgMciUbTecjgchPcjhbTeciWcemciXbTeaaabTecjAbVqcjobTeaaaaaaaaachnbZdcgVbZpchbcgWchCdDUcrjcrjcdZcrjcgEcdYcehcircdYcefcgEceecedceabYocgpcgpcVFcVvcWWcWVcWUcVFbGKbvKdXgdXhbVPcoicqmcoibVPcmQaafaaaaafaaaaaaaaaaaaaaaaaaaaabVudXtbYLdXzdXAdXAdVRdWydXybVuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabudcWXccCccCcfcchQccCccCcfcchQccCccCbudaaaaaachcaafckzckzckzckzckzaaacfVaaackzckzckzckzckzaaachcaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaabTecfBcgNcfBbTechVciechVbTebUhcesbUhbTeaaabTebUhbUhbVrbTeaaaaaaaaabYmcifbXTchmdYKcigchCbYKcrjceAceBceObYrceDcakcetcewcevbYrceCcezceybYoaaaaafcVFcWZcjRcXaaafaaabGKbPybPycpqbVPcjYcpocjSbVPcmQaafaafaaaaaaaaaaaaaaaaaaaaaaaabVudVPcsSdVRciGciGdVQbXKdVSbVuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabudccCccCccCcfccihccCccCcfccihccCccCbudaaeaaachcaaaaaaaafaafaafaaaaaacfVaafaaaaaaaafaafaaaaaachcaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaampaaaaaaaaaaafbTecfBceGcfBbTechVcijchVbTebUhceIbUhbTeaaabTebUhbUhbUhbTeaaaaaaaaabYmbXZcikbYNbXZcigcimcivcrjbYIceMceNbYrciIciJceUcaxcfwbYrcfaceZceYbYoaaaaaacVFcXdcklcXbaaaaaabGKbPybPybGKbVPcrJcrJcrJbVPcrIchTaaaaaaaaaaaaaaaaaaaaaaaaaaabVudVTcYGbXKbXKbXKbXKbXKdVUbVuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccQbudbudbudbudbudbudbudbudciKciKciKccQaaaaaachcchcchcchcchcaaaaaaaaacfVaaaaaaaaachcchcchcchdchcaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafbTebTebTebTebTebTebTebTebTebTebTebTebTeaaabYybTebTebTebYyaaaaaaaaabYmcVjbXTbXYbXZbYabXRcVicrjbYlbYfbYibYjbYkbYwbWkbYxbXNbYrbYqbYtbYsbYoaafaaacVFcVvcVucVFcVwaaabGKbXBbPydVOcqRaafaafaafaaaclkaafaafaaaaaaaaaaaaaaaaaaaaaaaabZJbVubVubXCdVZdVQdVQdVQdVYbXCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXlbXlbXlaaaaaaaaaaaaaaaaaaaaaaaaaaachcaafcqEaafchcaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYmbYQbXTbYNbXZbYMbYJbYKcrjbYIbYfbYHbYrbYGbYFccjbYDbYvbYrcVHbYAbYzbYoaagcVGcVGcVGcVGcVGcVGcVGbGKbUxctgdVVaafaaaaaaaafaaaclZaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYCciGciGciGciGciGbYCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaaaaafaaachcaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaalQaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaabYSaaaaaaaaaaaaaaaaaaaaaaaabZbbZdbZfbZmdYLbZqbXRbYKcrjbYVbYYbYZbYrbZabZsbZcbZtbZebYrbZgbZibZhbYoaaacVGcVGcVGcVGcVGcVGcVGbGKdVWcdjbGKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVubYXbYRbYRbYRbYTbVuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcchcchcchcchcaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaabZIbZIbZIbZIbZIcVIbZjbZjbZjbZjbZjbZjccHccAccyccwccvbZjbZjbZnbZjbZjbZjcVGcVGcVGcVGcVGcVGcVGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaacmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaampaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZraaaaaaaaaaaaaaacOXcPabZjbZwbZxcVKbZQccPbZSbZWbZCbZXbZCcdEbZybZUbZAbZEbZjcVGcVGcVGcVGcVGcVGcVGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaacfWcfXcfYaaacfWcfXcfYaaacfWcfXcfYaafaafaaaaaaaaaaaaaafaafaaaaaaaaaaaabZYaaaaaaaaaaaacOXcPabZjbZwbZxcabcagbZScaabZDbZCbZCbZCbZDbZHbZZccZbZLbZjcVGcVGcVGcVGcVGcVGcVGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaacfWchecfYaaacfWchecfYaaacfWchecfYaafaafaafaafaaaaaabYnaaaaaaaaaaafaaaaaaaaaaaaaaaaaacOXcPabZjcaccadcaecafcahcahcamcajcafcafcamcdbcaocancapbZjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafcfWchecfYaaacfWchecfYaafcfWchecfYaafaaaaaaaafaafcaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOXcPabZjcaHcaIcaLbZBceicejcaucegbZHcascascaFcavcancaGbZjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacfWchecfYaafcfWchecfYaaacfWchecfYaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOXcPabZjcRQcaIcTocSfcRfcRfcFocRfcFncRfcRfcFpdTMdTNcRdbZjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalPaafaaacfWchecfYaafcfWchecfYaaacfWchecfYaafaaaaaaaaaaaaaafaafcjMcjNcjNcjNcjNcOXcPddfHdfHdgDcOXcPabZjcPScPDcPVbZjbZjbZjcQHcFkcQNbZjbZjbZjcRbcRccPWbZjaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaaaaafaafckAaafaafaafckAaafaaaaafckAaafaaaaaaaaaaaaaaackBckCckDckEckFcPBcPqdhRdgEdigdicdicdihdpKbZjcOWbZCcvGcttcvEcIGcFfcOLcFecIGctscttcyVbZCcFabZjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafcltclucluclvclwclwclwclwclwclwclwclwclwclwclwclwclwclwcEZclydidcELcBvclCcwKclEdyKdyKdyKdyKdyMdyKdyNbZjbZCbZCcvGcttcvEcwIctpcyWcyXcwIctscttcyVbZCcyhbZjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvaaactvctvctvctvctvaaactvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaaaaafaafcmeaafaaaaafcmeaafaaaaafcmeaafaaaaaaaaaaaaaaackBckCcmfcmgcmhdcCcjNdyPdyOdicdicdyQdyQdyRbZjbZCbZCcvFcttcvEctoctpctqctmctoctscttctrbZCbZCbZjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvaaactvctvctvctvctvaaactvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalPaafaafcfWcmLcfYaaacfWcmLcfYaaacfWcmLcfYaafaaaaaaaaaaaaaafaafcmMcjNcjNcjNcjNcOXcPddfHdfHdgDcOXcOXbZjbZjctkbZjbZjbZjbZjbZjctlbZjbZjbZjbZjbZjctkbZjbZjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfWcmLcfYaafcfWcmLcfYaaacfWcmLcfYaaaaaaaaaaafaaaaafaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafcfWcmLcfYaaacfWcmLcfYaaacfWcmLcfYaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafcfWcmLcfYaaacfWcmLcfYaafcfWcmLcfYaafaafaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaampaafcfWcoScfYaaacfWcoScfYaaacfWcoScfYaafalPaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaaaaafaaaaaaaaaaafaafaafaaaaaaaafaafaaaalPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaaaaafaaaaaaaaaaafaafaafaaaaaaaafaafaaaalPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalPalQalQampalPalPalPalPalQalPalPalQcpPaafaaaaaaaaaaaaaaacthaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFaaaaaaaaacqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFaaaaaaaaacqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFaaaaaacqFaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaacqFaaaaaacqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFaaacqFcqFcqFcqFcqFcqFcqFcqFcqFaaacqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFaaacqFcqFcqFcqFcqFcqFcqFcqFcqFaaacqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFaaacqFcqFcqFcqFcqFcqFcqFcqFcqFaaacqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaacqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFaaaaaacqFaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaacqFaaaaaacqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFaaacqFcqFcqFcqFcqFcqFcqFcqFcqFaaacqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFaaacqFcqFcqFcqFcqFcqFcqFcqFcqFaaacqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFaaacqFcqFcqFcqFcqFcqFcqFcqFcqFaaacqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaacqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwaaactwctwctwctwctwaaactwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwaaactwctwctwctwctwaaactwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxaaactxctxctxctxctxaaactxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwaaactwctwctwctwctwaaactwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwaaactwctwctwctwctwaaactwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxaaactxctxctxctxctxaaactxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxaaactxctxctxctxctxaaactxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxaaaaaaaaaaaaaaaaaaaaactxctxctxctxctxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10997,10 +11189,6 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11046,124 +11234,124 @@ ctFcuBcuAcupcuycuzcuxcuvczicwwcwvcwkcwjcwQcwycwPcwfcwuczncuAcupcuvcuocuycutcuqct ctEcuycuqcuwcuvcuCcuAcuxczncwPcwfcwgcwhcwicwjcwkcwlcwOcwtcuqcuwcuxcurcuvcupcuzctIcuEcuFcuGcuKcuHcuIcuJcucctOctPctQctRctSctTcuDcuEcuFcuGcuKcuHcuIcuJctNctOctPctQctRctSctTcuDcuEctWcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ctAcuvcuzcuscuxcuocuqcuAcwtcwkcwlcwucwvcwwcwhcwgcwxcwycwzcuzcuscuAcuucuxcuwcuCctyctQctRctSctTcuDcuEcuFctXctYctZcuacubcuccudcuecufcugcuhcuictUctVctWctXctYctZcuacubcuccudcuecufcugcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ctGcuxcuCcuBcuAcurcuzcuqcwzcwgcwxcwOcwfcwPcwvcwucwQcwjcwRcuCcuBcuqcutcuAcuscuoctHcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctDcuAcuocuycuqcuucuCcuzcwRcwucwQcwycwlcwkcwfcwOcwicwhcxccuocuycuzcupcuqcuBcurctKcujctyctzctActBctCctDctEctFctyctGctHctIctJctKctLctMctEctDctHctActBctFctIctCctKctGctMcujaaacujczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctLcuqcurcuvcuzcutcuocuCcxccwOcwicwjcwxcwgcwlcwycwwcwvcxxcurcuvcuCcuwcuzcuycuuctBcujctHcuocupcuqcurcuscutcuucuvcuwcuxcuycuzcuAcuBcuCcutcuscuxcupcuqcuucuycurcuAcuwctzcujaaacujczocuwcuocuvcuwcuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuwczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctIcuzcuucuxcuCcupcurcuocxxcwtcwycwucwvcwjcwgcyIczicwzcxPcuucuxcuocuscuCcuvcutctJcujctKcurcuwcuzcuucuBcupcutcuxcuscuAcuvcuCcuqcuycuocupcuBcuAcuwcuzcutcuvcuucuqcusctCcujaaacujczocuscurcuxcuscuxcuscurcuxcuscurcuxcuscurcuxcuscurcuxcuscurcuxcuscuxcuscurcuxcuscurcuxcuscurcuxcuscurcuxaaacusczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctycuCcutcuAcuocuwcuucurcuycwzcxUcxxcyIcxZcxccyRcuucuwcuvcutcuAcurcuBcuocuxcupctMcujctBcuucuscuCcutcuycuwcupcuAcuBcuqcuxcuocuzcuvcurcuwcuycuqcuscuCcupcuxcutcuzcuBctFcujaaacujczocuBcuucuAcuBcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuBcuuaaaczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctHcuocupcuqcurcuscutcuucuvcuwcuxcuycuzcuAcuBcuCcutcuscuxcupcuqcuucuycurcuAcuwctzcujctJcutcuBcuocupcuvcuscuwcuqcuycuzcuAcurcuCcuxcuucuscuvcuzcuBcuocuwcuAcupcuCcuyctEcujaaacujczocuBcutcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcuBcutcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcutcutczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczpczqczqczqczqczqczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctKcurcuwcuzcuucuBcupcutcuxcuscuAcuvcuCcuqcuycuocupcuBcuAcuwcuzcutcuvcuucuqcusctCcujctMcupcuycurcuwcuxcuBcuscuzcuvcuCcuqcuucuocuAcutcuBcuxcuCcuycurcuscuqcuwcuocuvctAcujaaacujczocuycupcupcuCcuycupcuCcuycupcuCcuycupcuCcuycupcuCcuycuycupcupcuCcuycupcuCcuycupcuCcuycupcuCcuycupcuCcuycupcupczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczscztczuczvczwczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctBcuucuscuCcutcuycuwcupcuAcuBcuqcuxcuocuzcuvcurcuwcuycuqcuscuCcupcuxcutcuzcuBctFcujctzcuwcuvcuucuscuAcuycuBcuCcuxcuocuzcutcurcuqcupcuycuAcuocuvcuucuBcuzcuscurcuxctGcujaaacujczocuCcuxcuxcuwcuCcuxcuwcuCcuxcuwcuCcuxcuwcuCcuxcuwcuCcuCcuxcuxcuwcuCcuxcuwcuCcuxcuwcuCcuxcuwcuCcuxcuwcuCcuqcuxczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczzczAczAczAczzczrczrczrczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctJcutcuBcuocupcuvcuscuwcuqcuycuzcuAcurcuCcuxcuucuscuvcuzcuBcuocuwcuAcupcuCcuyctEcujctCcuscuxcutcuBcuqcuvcuycuocuAcurcuCcupcuucuzcuwcuvcuqcurcuxcutcuycuCcuBcuucuActDcujaaacujczocuocuAcuAcuscuocuAcuscuocuAcuscuocuAcuscuocuAcuscuocuocuAcuAcuscuocuAcuscuocuAcuscuocuAcuscuocuAcuscuocuAcuAczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczzczEczEczEczzczrczFczGczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctMcupcuycurcuwcuxcuBcuscuzcuvcuCcuqcuucuocuAcutcuBcuxcuCcuycurcuscuqcuwcuocuvctAcujctFcuBcuAcupcuycuzcuxcuvczHcvLcvMcvNcvOcvPcvQcvRcvScvTczIcuAcupcuvcuocuycutcuqctLcujaaacujczocurcuqcuqcuBcurcuqcuBcurcuqcuBcurcuqcuBcurcuqcuBcurcurcuqcuqcuBcurcuqcuBcurcuqcuBcurcuqcuBcurcuqcuBcurcuqcuqczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczzczMczNczOczzczrczrczrczrczrczrczrczrczrczrczrczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctzcuwcuvcuucuscuAcuycuBcuCcuxcuocuzcutcurcuqcupcuycuAcuocuvcuucuBcuzcuscurcuxctGcujctEcuycuqcuwcuvcuCcuAcuxczIczPczQczRczSczTczUczVczWczXczYcuqcuwcuxcurcuvcupcuzctIcujaaacujczocuucuzcuzcuycuucuzcuycuucuzcuycuucuzcuycuucBbcAHczIczIcBbcBbcAHcuucuzcuycuucuzcuycuucuzcuycuucuzcuycuucuzcuzczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczzczMczNczOczzcAccAdcAecAfcAgcAhcAdcAicAjcAkcAkczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctCctLctKctActIctJctHctyctCctBctFctzctGctEctMctDctHctJctFctKctActyctzctIctEctBctDcujctAcuvcuzcuscuxcuocuqcuAczYczVczWcAlcAmcAnczSczRcAocApcvUcuzcuscuAcuucuxcuwcuCctycujaaacujczocutcuCcuCcuvcutcuCcuvcutcuCcuvcutcuCcuvcutcweczCczYczYcweczJcAOcutcuCcuvcutcuCcuvcutcuCcuvcutcuCcuvcutcuCcuCczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczzczMczNczOczzcAscAdcAhcAhcAgcAhcAdcAhcAkcAkcAkczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctFcuAcupcuvcuocuycutcuqcuycuAcupcuvcuocuycutcuqcuycutcuqcuAcupcuvcuocuycutcuqctLcujctGcuxcuCcuBcuAcurcuzcuqcvUczRcAoczXczQczPcAmcAlcAtczUcAucuCcuBcuqcutcuAcuscuoctHcujaaacujczocupcuocuocuxcupcuocuxcvUcBJcvKcvUcBJcvKcvUcBJczLczDczDczZczZcvKcvUcBJcvKcvUcBJcvKcvUcuocuxcupcuocuxcupcuocuoczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczzczNczNczNcAwcAxcAycAhcAhcAgcAhcAdcAicAjcAkcAkczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctEcuqcuwcuxcurcuvcupcuzcuvcuqcuwcuxcurcuvcupcuzcuvcupcuzcuqcuwcuxcurcuvcupcuzctIcujctDcuAcuocuycuqcuucuCcuzcAucAlcAtcApczWczVczQczXczTczScAzcuocuycuzcupcuqcuBcurctKcujaaacujczocuwcurcurcuAcuwcurcuAcAucAqcuAcuwcAqcCPcAucAqcAaczKczKcAqcAqcAacAuczHcAacuwcurcAacAucurcuAcuwcurcuAcuwcurcurczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczzczNczNczNcAwcAxcAycAhcAhcAhcAhcABcAhcAkcAkcAkczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacACcACcACaaacADcADcADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctAcuzcuscuAcuucuxcuwcuCcuxcuzcuscuAcuucuxcuwcuCcuxcuwcuCcuzcuscuAcuucuxcuwcuCctycujctLcuqcurcuvcuzcutcuocuCcAzczXczTczUcAoczRczWcApcAncAmcAEcurcuvcuCcuwcuzcuycuuctBcujaaacujczocuscuucuucuqcuscuucuqcAzcAvczxcAbcAvcDdcAbcAvczxcAbcAbcAvcAvczxcAbczIczxcAbcAvczxcAzcuucuqcuscuucuqcuscuucuuczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczzcAFczNcAGczzcAscAdcAhcAhcAgcAhcAdcAicAjcAkcAkczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacACcACcACaaacADcADcADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctGcuCcuBcuqcutcuAcuscuocuAcuCcuBcuqcutcuAcuscuocuAcuscuocuCcuBcuqcutcuAcuscuoctHcujctIcuzcuucuxcuCcupcurcuocAEcuycuuczScAtcAlcAoczUcutcuqcAHcuucuxcuocuscuCcuvcutctJcujaaacujczocuBcutcutcuzcuBcutcuzcAEcAAczBcArcAAcBbcArcAAczBcArcArcAAcAAczBcArczYczBcArcAAczBcAEcutcuzcuBcutcuzcuBcutcutczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqcAIczzcAJczzcAKcAccAdcAhcAhcAgcAhcAdcAhcAkcAkcAkczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacACcACcACaaacADcADcADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctDcuocuycuzcupcuqcuBcurcuqcuocuycuzcupcuqcuBcurcuqcuBcurcuocuycuzcupcuqcuBcurctKcujctycuCcutcuAcuocvOcvMcALcAMcANcvPcAmczTczXcAtczScupcuzcAOcutcuAcurcuBcuocuxcupctMcujaaacujczocuycupcupcuCcuycupcuCcAHczDczJczyczDcweczyczDczJczyczyczDczDczJczycvUczJczyczDczJcAHcupcuCcuycupcuCcuycupcupczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqaaacAIcAPcAKaaacAccAdcAhcAhcAgcAhcAdcAicAjcAkcAkczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAQcARcAScATcAUcACcACcACaaacADcADcADcAQcARcAScATcAUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctLcurcuvcuCcuwcuzcuycuucuzcurcuvcuCcuwcuzcuycuucuzcuycuucurcuvcuCcuwcuzcuycuuctBcujctHcuocupcuqcurcAzczPcAnczUczSczVczQcAncApczTcAmcuwcuCcvKcupcuqcuucuycurcuAcuwctzcujaaacujczocuwcuocuvcuwcuvcuwcuocAOczKczZczCczKczZczCczKczZczCczKczZczCczKczCczKczZczCczKczZcAOcuwcuocuvcuwcuocuvcuwcuwczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczrczrczrczrczrczrczrczrczrczrczrczrczrczrczrczrczrczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcAWcAWcAWcAXcAYdiicAYcAYcAYdijcAYcBacAWcAWcAWcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctIcuucuxcuocuscuCcuvcutcuCcuucuxcuocuscuCcuvcutcuCcuvcutcuucuxcuocuscuCcuvcutctJcujctKcurcuwcuzcuucAEczVczPczScAmczRczWczPczUcAnczQcvTcvTcvTcvTcBbcutcuvcuucuqcusctCcujaaacujczocuscurcuxcuscuxcuscurcvKcAbcAqczLcAbcAqczLcAbcAqczLcAbcAqczLcAbczLcAbcAqczLcAbcAqcvKcuscurcuxcuscurcuxaaacusczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVdQmcBxcBdcTpcBwdikcBkcBicBjdilcBwcTqcBldQpdQqcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctycutcuAcurcuycupcuvcuBcuqcurcBmcBncANcwmcBocuxcBpcBqcvMcBrcBscurcuBcuocuxcupctMcujctBcuucuscuCcutcAHczRczVcAmczQcAlcAoczVczSczPczWczXczTczQcAlcwecupcuxcutcuzcuBctFcujaaacujczocuBcuucuAcuBcuAcuBcuucCPcArcAvcAacArcAvcAacArcAvcAacArcAvcAacArcAacArcAvcAacArcAvcCPcuBcuucuAcuBcuucuAaaacuBczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcBccBccBuctncAZcBecAZcBfcAZcBecAZcBgcBucBccBccAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctHcuxcuqcuucuocuAcurcuCcupcuucBzcBAcBBcBCcBDcuucBEcBFcBGcBHcBIcuucuycurcuAcuwctzcujctJcutcuBcuocupcAOcAlczRczQczWczXcAtczRcAmczVcAocApcAnczWczXcBJcuwcuAcupcuCcuyctEcujaaacujczocuBcuucuAcuBcuAcuBczIcCPcArcAvcAacArcAvcAacArcAvcAacArcAvcAacArcAacArcAvcAacArcAvcCPcAEcuucuAcuBcuucuAaaacuBczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcBKcBKcBLcBKcBKcBKcBMcBNcBKcBKcBKcBMcBKcBKcBKcBKcBKcBKcBMcBKcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOcBlcBccBPcBecBecBecBecBecBecBecBecBecBPcBccBdcBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctKcuAcuzcutcurcuqcuucuocuwcutcBIcBRcBScBTcBUcutcBVcBWcBXcBYcBZcutcuvcuucuqcusctCcujctMcupcuycurcuwcvKczXcAlczWcAocApczTcAlczQczRcAtczUczPcAocApczHcuscuqcuwcuocuvctAcujaaacujczocuBcuucuAcuBcuAcuBczIcAacArcAvcAacArcAvcAacArcAvcAacArcAvcAacArcAacArcAvcAacArcAvcAacAEcuucuAcuBcuucuAaaacuBczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBLcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBMcBKcBKcBKcBKcBKcBMcBKcBKcBKcBKcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOcAYcBacCMcAZcBecAZcCLcCLcAZcBecCpcAXcAYcBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctBcuqcuCcupcuucuzcutcurcuscupcBZcCgcChcBBcBpcupcBzcCicCjcCkcClcupcuxcutcuzcuBctFcujctzcuwcuvcuucAzcCmcApczXcAocAtczUcAnczXczWcAlczTczSczVcAtczUcCncwmcBbcuscurcuxctGcujaaacujczocuycutcuqcuycuqcuyczYczxczycAAczxczycAAczxczycAAczxczycAAczxczyczxczycAAczxczycAAczxcAHcutcuqcuycutcuqaaacuyczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcCocBKcBKcBKcBKcBKcBLcBKcBKcBNcBMcBKcBKcBMcBKcBKcBMcBNcBKcBMcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcCBcBfcBecCAcCBcCBcCxcBecCrcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctJcuzcuocuwcutcuCcupcuucuBcuwcClcBCcCtcBScCucuwcBIcCvcBHcCwcBDcuwcuAcupcuCcuyctEcujctCcuscuxcutcAEczQczUcApcAtczTczSczPcApcAoczXcAncAmczRczTczSczPcApcwecuBcuucuActDcujaaacujczocuCcuxcuxcuwcuCcuxcAucweczLczKczJczLcAucweczLczKczJczJczLczLczKcwecvKczKczJczLczKcwecvKcuwcuCcuxcuwcuCcuqcuxczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBLcBKcBKcBMcBNcBKcBKcBMcBKcBNcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDccDccDccDccAVcCycAZcBecCAcCBcCBcCxcBecBwcAVcCzcCzcCzcCzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctMcuCcurcuscupcuocuwcutcuycuscBDcBzcBUcClcBmcuscBZcBscBEcBIcBUcuscuqcuwcuocuvctAcujctFcuBcuAcupcAHczWczSczUczTcAncAmczVczUcAtcApczPczQcAlcAncAmczVczUcBJcuycutcuqctLcujaaacujczocuocuAcuAcuscuocuAcuscBJcCPcAzcBJcCPcAzcBJcAacAbczZczZcAacAacAbcBJcCPcAzcBJcCPcAzcBJcuAcuscuocuAcuscuocuAcuAczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBLcBKcBKcBKcBKcBKcBNcBKcBMcBNcBKcBMcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDccDccDccDcdiqdipcBecBecAZcCscCscAZcBediodincCzcCzcCzcCzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctzcuocuucuBcuzcuscurcuxcuscuocuucuBcuzcuscurcuxcuscurcuxcuocuucuBcuzcuscurcuxctGcujctEcuycuqcuwcAOcAocAmczScAnczPczQczRczSczTczUczVczWczXczPczQczRczSczHcuvcupcuzctIcujaaacujczocurcuqcuqcuBcurcuqcuBcurcuqcuBcurcuqcuBczHczxcArcAqcAqczxczxcArczHcuqcuBcurcuqcuBcurcuqcuBcurcuqcuBcurcuqcuqczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcCCcCCcCCcCCcCCcCCcCCcBKcBKcBKcBKcBKcBKcBKcBMcBKcBKcCocBNcBKcBKcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDccDccDccDccAVcBwcCqcBecBecBecBecBecBecAZcAVcCzcCzcCzcCzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctCcuxcutcuycuCcuBcuucuAcuBcuxcutcuycuCcuBcuucuAcuBcuucuAcuxcutcuycuCcuBcuucuActDcujctAcuvcuzcuscvKcAtczQcAmczPczVczWcAlcAmcAnczSczRcAocApczVczWcAlcAmczIcuxcuwcuCctycujaaacujczocuucuzcuzcuycuucuzcuycuucuzcuycuucuzcuyczIczBczycAvcAvczBczBczyczIcuzcuycuucuzcuycuucuzcuycuucuzcuycuucuzcuzczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcCEcCFcCGcCHcCHcCHcCIcCFcCJcBKcBKcBKcBKcCocBKcBKcBLcBKcBLcBKcBMcBKcBMcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAXcAYcAYcAYcDFcBecAZcBecBecCDcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctFcupcupcuvcuocuycutcuqcuycupcupcuvcuocuycutcuqcuycutcuqcupcupcuvcuocuycutcuqctLcujctGcuxcuCcuBcCPczTczWczQczVczRcAoczXczQczPcAmcAlcAtczUczRcAoczXczQczYcuAcuscuoctHcujaaacujczocutcuCcuCcuvcutcuCcuvcutcuCcuvcutcuCcuvczYczJczCcAAcAAczJczJczCczYcuCcuvcutcuCcuvcutcuCcuvcutcuCcuvcutcuCcuCczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcCFcCQcCRdQjdimcCUcCVcCVcCFcCWcBKcBKcCCcCCcCCcCCcCCcCCcCCcCCcCXcCYcCCcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcCecCecCfdUMcBecAZcBecBecAZdVtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctEcuwcuwcuxcurcuvcupcuzcuvcuwcuwcuxcurcuvcupcuzcuvcupcuzcuwcuwcuxcurcuvcupcuzctIcujctDcuAcuocuycDdcAncAoczWczRcAlcAtcApczWczVczQczXczTczScAlcAtcApczWcvUcuqcuBcurctKcujaaacujczocupcuocuocuxcupcuocuxcupcuocuxcupcuocuxcvUczZczLczDczDczZczZczLcvUcuocuxcupcuocuxcupcuocuxcupcuocuxcupcuocuoczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcCFcDecCRcCRcDfcCRcCRcCRcCFcCWcBKcDgcDhcDicDicDjcBtcBtcBtcBtcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadTOcCacCacCadTRcBecCbcCccCdcCccAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctAcuscuscuAcuucuxcuwcuCcuxcuscuscuAcuucuxcuwcuCcuxcuwcuCcuscuscuAcuucuxcuwcuCctycujctLcuqcurcuvcBbczPcAtcAocAlczXcurczUcAoczRczWcApcuucAmczXczTczUcAocAucuzcuycuuctBcujaaacujczocuwcurcurcuAcuwcurcuAcuwcurcuAcuwcurcuAcAuczHcAaczKczKcAqcAqcCPcAucurcuAcuwcurcuAcuwcurcuAcuwcurcuAcuwcurcurczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcCFcDncCRcCRcCRcDocCRcDpcCFcCWcCocDgcDqcDrcDrcDrcDscDtcBtcDucDvcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcEdcEccCacDmcBedQkcEocEncSbcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctGcuBcuBcuqcutcuAcuscuocuAcuBcuBcuqcutcuAcuscuocuAcuscuocuBcuBcuqcutcuAcuscuoctHcujctIcuzcuucuxcweczVczTcAtczXczPcuycAlcAmczUczRczQcurczVcApcAnczScAtcAzcuCcuvcutctJcujaaacujczocuscuucuucuqcuscuucuqcuscuucuqcuscuucuqcusczIcDdcAzcAzczIczIcDdcuscuucuqcuscuucuqcuscuucuqcuscuucuqcuscuucuuczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcDxcCFcCFcCFcDycCFcCFcCFcDzcBKcBKcDAcDqcDrcDrcDBcDrcDrcDCcDDcDDcDEcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcEmcCacCadUMcBecCccDVcDVcElcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctDcuycuycuzcupcuqcuBcurcuqcuycuycuzcupcuqcuBcurcuqcuBcurcuycuycuzcupcuqcuBcurctKcujctycuCcutcuAcBJczRcAnczTcApczVcuvcuBcuqcuxcuscuzcuuczRczUczPcAmczTcAEcuocuxcupctMcujaaacujczocuBcutcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcuBcutcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcutcutczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcCFcDKcCRcDKcCFcDLcCCcCCcCCcDMcDNcDrcDOcDPcDQcDrcBtcDDcDRcDRcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcEdcEccCadTRcBecEkcDVcDVcDWcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctLctJctFctHctMctActCctzctLctEctIctDctKctyczoczoczoczoczoctFctHctzctDctMctyctEctBcujctHcuocupcuqczicxccwtczncxUcwRcxZcxPcyRcypcxxcyUcwtcxccxZcwzcyIczncxPcurcuAcuwctzcujaaacujczocuycupcupcuCcuycupcuCcuycupcuCcuycupcuCcuycupcuCcuycuycupcupcuCcuycupcuCcuycupcuCcuycupcuCcuycupcuCcuycupcupczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcCFcEpcCRdiscCFcDhcDicDicDicDjcBtcDrcDOcDUcDQcDrcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOcDScDScAYcPwcDTcAYcAYcDScDScBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cuBcuzcuucuxcuCcupcurcuocuBcutcuycuscuAcuvcuwcuqcurcupcuycuucuxcuocuscuCcuvcutcuqcujctKcurcuwcuzcuucuBcupcutcuxcuscuAcuvcuCcuqcuycuocupcuBcuAcuwcuzcutcuvcuucuqcusctCcujaaacujczocuwcuocuvcuwcuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuwczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcCEcCFcCFcCFcCFcCFcEpcCRdiscCFcDqcDXcDXcDXcDXcDYcDrcDrcDrcDrcDrcDZcEacEbcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOcBacDGcCxcBecDHcDIcAXcBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cuycutcuAcurcuBcuocurcuBcuocutcuAcurcuBcuocutcuAcurcuBcuocutcuAcurcuBcuocuxcupcuzcujctBcuucuscuCcutcuycuwcupcuAcuBcuqcuxcuocuzcuvcurcuwcuycuqcuscuCcupcuxcutcuzcuBctFcujaaacujczocuscurcuxcuscuxcuscurcuxcuscurcuxcuscurcuxcuscurcuxcuscurcuxcuscuxcuscurcuxcuscurcuxcuscurcuxcuscurcuxaaacusczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcCFcEecCRcCRcEfcCFcEpcCRdiscCFcDNcEgcEhcDicDjcBtcDrcDrcDrcDrcDrcBtcEicEicEjcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcCBcAZcCLcAZcDwcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cuvcupcuqcuucuycurcuucuycurcupcuqcuucuycurcupcuqcuucuycurcupcuqcuucuycurcuAcuwcuCcujctJcutcuBcuocupcuvcuscuwcuqcuycuzcuAcurcuCcuxcuucuscuvcuzcuBcuocuwcuAcupcuCcuyctEcujaaacujczocuBcutcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcuBcutcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcutcutczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcCFcEecCRcEpcEqcCFcEpcCRdiscCFcCFcErcEscEtcEucBtcBtcBtcBtcBtcEvcBtcEwcEicEjcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcCZcCOcDkcDbcDlcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cuxcuwcuzcutcuvcuucutcuvcuucuwcuzcutcuvcuucuwcuzcutcuvcuucuwcuzcutcuvcuucuqcuscuocujctMcupcuycurcuwcuxcuBcuscuzcuvcuCcuqcuucuocuAcutcuBcuxcuCcuycurcuscuqcuwcuocuvctAcujaaacujczocuycupcupcuCcuycupcuCcuycupcuCcuycupcuCcuycupcuCcuycuycupcupcuCcuycupcuCcuycupcuCcuycupcuCcuycupcuCcuycupcupczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcEAcBKcCFcEecCRcEpcEBcCFcCFdircCFcCFcECcDJcDJcCFcEDcEEcEucBtcEFcEGcEHcBtcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOdWadVXdVXdVXdWbcBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cuAcuscuCcupcuxcutcupcuxcutcuscuCcupcuxcutcuscuCcupcuxcutcuscuCcupcuxcutcuzcuBcurcujctzcuwcuvcuucuscuAcuycuBcuCcuxcuocuzcutcurcuqcupcuycuAcuocuvcuucuBcuzcuscurcuxctGcujaaacujczocuwcuocuvcuwcuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuwczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcCFcEecCRcCRcCRcEIcCRcCRcEJcEKcERdyxdiIcCFcCWcBKcDgcEMcENcEGcEOcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cuqcuBcuocuwcuAcupcuwcuAcupcuBcuocuwcuAcupcuBcuocuwcuAcupcuBcuocuwcuAcupcuCcuycuucujctCctLctKctActIctJctHctyctCctBctFctzctGctEctMctDctHctJctFctKctActyctzctIctEctBctDcujaaacujczocuscurcuxcuscuxcuscurcuxcuscurcuxcuscurcuxcuscurcuxcuscurcuxcuscuxcuscurcuxcuscurcuxcuscurcuxcuscurcuxaaacusczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcCFcEecCRcCRcCRcEPcCRcCRcCRcEQcERdyycEScCFcETcBKcDgcDqcEFcEUcEOcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cuzcuycurcuscuqcuwcuscuqcuwcuycurcuscuqcuwcuycurcuscuqcuwcuycurcuscuqcuwcuocuvcutcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujaaacujczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcCEcCFcCFcCFcCFcCFcCFcEVcCRcCRcCFcCFcCFcCFcCFcCFcCJcDgcDNcEFcEGcEOcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcCFcEWcEXcEYcVocVncCFcCRcCRcCRcCFcFbcFccFdcFecFfcCFcFgcBtcEFcEGcFhcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcCFcFicFicFicFicFicFjcCRcCRcCRcFkcCRcCRcCRcCRdiJcCFcFgcBtcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcCFcEWcEXcFicFicFicFmcCRcCRcCRcFncCRcCRcCRcCRdiJcCFcCWcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcCFcFicFicFicFicFocCFcFpcFqcFrcCFcVtcCFcFtcCFcCFcCFcFucBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcCFcFicFicFicCFcCFcCFcFvcFwcFicCFcCFcCFcCRcCRcCRcCFcCWcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcCFcEWcEXcFxcCFcBKcCFcFycFycFycCFcBKcCFcCVcFzcFAcCFcCWcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcCFcFycFycFycCFcBKcDxcFBcFCcFDcDzcBKcCFcFycFycFycCFcCWcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcDxcFBcFCcFDcDzcBKcBKcBKcBKcBKcBKcBKcDxcFBcFCcFDcDzcBKcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cFEcFEcFEcFEcFEcFEcFEcFFcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXudXfdXfdXfdXldXfdXfdXoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXdcFLcFLcFLdXecFLcFLdXdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXdcFLcFNcFLcFOcFLcFLdXdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cFPcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXdcFQcFQcFQdXvcFLcFLdXdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFScFScFScFSdXwdXDdXfdXfdXfdXxcFLcFLdXdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFScFScFScFScFOcFLcFOcFLcFLcFLcFLcFLdXdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFScFScFScFSdXwdXfdXfdXocFLcFLcFLcFWdXdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXdcFQcFLcFLcFWdXdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXdcFQcFLcFLcFWdXdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXEdXfdXfdXfdXfdXxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcFYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGbcGccGdcGdcGdcGddixdixcGdcGdcGdcGdcGfcGbcGbcGbcGbcFYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGccGgcGhcGicGjcGddiwcGkcGdcGlcGmcGdcGdcGdcGfcGbcGbcFYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGccGdcGncGncGncGncGdcGocGocGdcGncGncGpcGqcGdcGdcGfcGbcGrcGrcGrcGrcGraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGccGdcGdcGscGtcGucGvcGdcGncGncGwcGncGncGncGndiudivcGdcGbcGrcGzcGAcGBcGrcGrcGrcGrcGrcGCcGDcGDcGEcGrcGraaaaaaaaaaaaaaaaaaaaaaaacGFcGFcGFcGFcGFcGFcGFcGFcGFcGFcGFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGGcGHcGIcGncGJcGJcGJcGdcGncGncGdcGKcGLcGMcGNcGOcGPcGdcGbcGrcGQcGAcGAcGRcGScGTcGUcGVcygcGUcGXcGYcGZcGrcGrcGrcGrcGrcGrcGrcGrcGrcGrcHacHbcHbcHbcHbcHbcHbcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacHecGHcGncGncGncGncGncGwcGncGncGdcGdcGdcGdcGdcGdcGdcHfdiCcGrcGrcGrcGrcGrcGScGXcGUcyfcHhcGUcGXcGXcGXcHicHjcHjcHjcHjcHjcHjcHjcHjcHkcHacHlcHmcHmcHmcHmcHmcHncHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacHocGdcHpcGncHpcGncHpcGdcGncGncGndiBcHqcGbcGbcGbcGbcGbcHrdizcHjcHjcHjcHicGXcGXcGXcGXcGXcGXcGXcGXcGXcHicHjcHjcHjcHjcHjcHjcHjcHjcHkcHacHscHtcHtcHtcHtcHtcHscHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGdcGdcGdcGdcGdcGdcGdcGncGndiAcGncHqcGbcGbcGbcGbcGbcHrdizcHjcHjcHjcHicGXcGXcGXcGXcGXcGXcGXcGScGScGrcGrcGrcGrcGrcGrcGrcGrcGrcGFcHacHscHtcHtcHtcHtcHtcHscGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGccGdcHucHvcHwcHucHxcGdcGncGncGndiFcHqcGbcGbcGbcGbcGbcGbcGrcGrcGrcGrcGrcGXcGXcGUcyfcygcGUcGXcHycHzcGrcHAcHBcHBcHCcGrcHDcHEcHFcGFcHbcHscHtcHtcHtcHtcZydiGcGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGGcGHcHHcHHcHHcHHcHHcGwcGncGncGdcGdcGdcGdcGdcGdcGdcGfcGbcGrcGzcGAcGBcGrcGXcGXcGUcyfcHIcGUcGXcGScGScGrcHJcHJcHJcHJcGrcHKcHEcHLcGFcHbcHscHtcHtcHtcHtcHtdiDcGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacHecGHcHNcHHcHHcHHcHHcGdcGncGncGncGncGncGdcGncHOcHPcGdcGbcGrcGQcGAcGAcGRcGXcGXcGXcGXcGXcGXcGXcGXcGXcGrcHJcHQcHRcHRcGrcGrcHScGrcGFcHbcHscHtcHtcHtcHtdiEcHscGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacHocGdcGdcHUcHVcHVcHVcGdcGncHWcHXcHYcGncGwcGncHZcIacGdcGbcGrcGrcGrcGrcGrcGrcGrcIbcGrcGrcGrcGXcGXcGXcIccHJcIdcIdcHJcHJcHJcHJcIecGFcHbcHscHtcHtcHtcHtcHtdiDcGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcHocGdcHHcHHcHHcHHcGdcGncHXcIfcHXcGncGdcHpcGdcGdcHfcGbcGrcIgcIhcIicGrcIjcIkcIkcIkcIlcGrcGXcGXcGXcGXcHJcHJcHJcHJcImcHJcHJcHRcGFcHbcHscHtcHtcHtcHtcZVdiHcGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcHocGdcIocIpcIqcGdcGncGncGncGncGncGdcGdcGdcHfcGbcGbcGrcIrcIscItcIucIkcIkcIkcIkcIvcGrcGXcGXcGXcIccIwcHJcHJcHJcIxcHJcHJcIycGFcHbcHscHtcHtcHtcHtcHtcHscGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGbcHocGdcGdcGdcGdcGdcGdcGdcGdcGdcGdcHfcGbcGbcGbcGbcGrcGrcIzcIAcGrcGrcGrcIzcIBcIAcGrcGXcGXcGXcGrcICcIDcIDcIDcIDcIDcIEcGrcGFcHbcIFcUQcHtcHtcHtcUycIIcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGrcIJcIJcIJcIJcIJcIJcIJcIJcIJcGrcGrcIKcGrcGrcIJcIJcIJcIJcIJcIJcIJcGrcGFcHbcILcIMcINcINcINcIMcIOcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcIPcIPcIPcIPcIPcFYcFYcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIRcIRcIRcIRcIRcIRcIRcGrcIScITcIScGrcIRcIRcIRcIRcIRcIRcIRcIRcGFcHbcHbcIUcIVcIVcIVcIWcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcIZcJacJbcIPcJccJccIQcJdcJecIQcJfcJgcJhcJfcJicIQcJfcJjcIQcJfcJkcIQcJlcJmcIQcJfcJjcIQcJncIRdRcdRbdRadQZcJqcGrcIScITcIScGrcJrcJscJtcJucJucIRaaaaaacGFcHbcHbcHbcHbcHbcHbcHbcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJxcJycJwcJwcJwcJwcJzcJxcJAcJBcJCcJDcIPcJEcJFcIQcJGcJHcIQcJGcJjcIQcJGcJHcIQcJGcJmcIQcJGcJgcIQcJGcJjcIQcJGcJicIQcJncIRcJIcJJcJJcJJcJJcGrcIScITcIScGrcJucJucJucJucJucIRaaaaaacJKcJKcJKcJKcJKcJKcJKcJKcJKcJKcJKcIRcIRcIRcIRcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcJLcJacJDcIPcJEcJMcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcJncIRcJIcJJcJJcJJcJJcGrcGrcIKcGrcGrcJucJucJucJucJucIRcJKcJKcJKcJKcJKcJKcJNcJOcJPcIRcJQcJQcJQcIRcJQcJQcJQcJQcJQcJQcJQcJQcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJRcJycJwcJwcJwcJwcJzcJRcJScJBcJCcJTcJUcJEcJVcIQcJWcJmcIQcJfcJXcIQcJfcJHcIQcJYcJicIQcJfcJicIQcJZcJjcIQcJfcJmcIQcJncIRcKadQYdPKcKccKdcIRcKecKecKecIRcJucJucJucJucJucIRcKfcKgcKfcKhcKicJKcKjcKjcKjcKkcJQcJQcJQcKkcJQcKlcKmcKlcJQcKncKocKpcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcKqcJacJDcIPcJEcKrcIQcJGcKscIQcJGcJjcIQcJGcJicIQcJGcJjcJhcJGcJjcIQcJGcJXcIQcJGcKtcIQcJncIRcKucIRcKvcKwcKxcIRcJJcJJcJJcIRcKvcKwcKycIRcKzcIRcKAcKBcKAcKBcKAcJKcIRcIRcIRcIRcJQcJQcJQcIRcKCcKDcKlcKEcKCcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcKHcJycJwcJwcJwcJwcJzcKHcKIcJBcJCcJDcIPcJEcKJcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcJncIRcJJcJJcKKcKbcKbcKbcKbcKbcKbcKbcKbcKbcKLcJJcJJcKMcKAcKAcKAcKAcKAcJKcKNcKjcJNcIRcJQcJQcJQcIRcKOcKOcKPcKOcKOcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcKqcJacJDcIPcJEcKQcKRcKRcFYcKScKTcKUcKVcFYcKWcKXcKXcIPcKYcKYcKYcKYcKYcKYcKZcLacLbcIPcJncIRcJJcJJcLccLdcLecLecLecLecLecLecLecLfcJIcJJcJJcJKcLgcLhcLicLjcLkcJKcLlcKjcJOcIRcJQcJQcJQcIRcLmcLmcKjcLmcLmcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcLncJycJwcJwcJwcJwcJzcLncLocLpcJCcJDcIPcJEcJEcJEcJEcFYcJEcJEcJEcLqcFYcKXcJEcLrcLscLtcLtcLtcLtcLtcLtcLucIPcIPcIPcIPcIPcJJcJJcLccLvcLwcJJcLxcLycLzcJJcLwcLvcJIcJJcJJcJKcJKcJKcJKcJKcJKcJKcLlcKjcJOcIRcJQcJQcJQcIRcLAcLAcKjcLAcLAcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcLBcLCcLDcJEcFYcJEcLEcLEdiPcFYcKXcJEcLGcIPcLHcLIcLIcLIcLJcLIcLKcIPcLLcLLcLLcIPcJJcJJcLMcLNcLOcLPcLQcLRcLScLTcLUcLNcLVcJJcJJcIRcLWcLWcLWcLWcLWcIRcIRcKkcIRcIRcIRcKkcIRcIRcKjcKjcKjcKjcKjcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcIPcFYcFYcLXcFYcLYcFYcFYcFYcFYcKXcJEcLrcLZcMacMacMacMacMacMacMacMbcMacMacMacMbcJJcJJcJJcMccJJcJJcMdcJJcMdcJJcJJcMccJJcJJcJJcMecJQcJQcJQcJQcJQcMecJQcJQcJQcJQcJQcJQcJQcMecLAcLAcLAcLAcLAcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcMfcMgcFYcJEcMhcJEcMicJEcMjcJEcJEcJEcMkcIPcMlcMmcMmcMncMocMpcMqcIPcMrcMrcMrcIPcJJcJJcKKcMscMtcLPcMucJJcMvcLTcMwcMscKLcJJcJJcMecJQcJQcJQcJQcJQcMecJQcJQcJQcJQcJQcJQcJQcMecLAcLAcLAcLAcLAcIRcKkcKkcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcLtcJEcMxcJEcMycJEcKXcKXcKXcMzcMzcKXcMkcIPcMAcMAcMAcMBcMCcMBcMDcIPcIPcIPcIPcIPcJJcJJcLccLNcMEcJJcMdcJJcMdcJJcMEcLNcJIcJJcJJcIRcMFcMGcMGcMGcMHcIRcIRcMIcIRcIRcIRcKkcIRcIRcIRcMJcMJcMJcIRcIRcJQcJQcJQcMKcJQcMLcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcIPcFYcFYcMMcFYcJEcKXcKXcMNcMOcMOcMPcMkcIPcIPcMQcMRcMScMTcMUcMVcMQaaaaaaaaacIRcJJcJJcLccIRcIRcMWcMXcJJcMYcMZcIRcIRcJIcJJcJJcIRaaaaaaaaaaaaaaacIRcNacNbcIRcKjcNccKjcKjcNdcNecNfcNfcNfcNgcIRcJQcJQcKmcKmcJQcJQcNhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcNicNjcNjcLtcIPcLtcMCcMCcNkcNlcNlcNmcMCcNncNocMQcNpcNqcNrcNscNtcMQaaaaaaaaacIRcJJcJJcLccIRcIRcKvcKwcKwcKwcKycIRcIRcJIcJJcJJcIRaaaaaaaaaaaaaaacIRcNbcNbcIRcNucNucNucKjcNdcNfcNfcNfcNfcNvcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcNicLtcLtcLtcIPcLtcLtcLtcLtcLucLucMCcMCcMCcNzcMQcNAcNrcNrcNrcNrcMQaaaaaaaaacIRcJJcJJcLMcJpcJpcJpcJpcJpcJpcJpcJpcJpcLVcJJcJJcIRaaaaaaaaaaaaaaacIRcNBcNbcIRcNucNCcNucKjcNdcNdcNdcNdcNdcNdcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcNDcNDcNEcNFcIPcNGcNGcNGdjdcLtcLtcNHcNIcNJcNKcMQcNrcNrcNrcNrcNLcMQcIRcIRcIRcIRcIRcIRdaQcIRcIRcJJcJJcJJcJJcJJcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaacIRcNNcNbcIRcKNcKjcKjcKjcNdaaaaaaaaaaaaaaacIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcIPcIPcIPcIPcIPcIPcIPcIPcIPdjedjecIPcIPcIPcIPcMQcNrcNPcNQcNRcNScMQdRydRYdRYdRydRHdRXcJJdRzcIRcIRcIRcOacIRcIRcwZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRcNdaaaaaaaaaaaaaaacNUcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctDcuAcuocuycuqcuucuCcuzcwRcwucwQcwycwlcwkcwfcwOcwicwhcxccuocuycuzcupcuqcuBcurctKcuoctyctzctActBctCctDctEctFctyctGctHctIctJctKctLctMctEctDctHctActBctFctIctCctKctGctMcuocuycujczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctLcuqcurcuvcuzcutcuocuCcxccwOcwicwjcwxcwgcwlcwycwwcwvcxxcurcuvcuCcuwcuzcuycuuctBcurctHcuocupcuqcurcuscutcuucuvcuwcuxcuycuzcuAcuBcuCcutcuscuxcupcuqcuucuycurcuAcuwctzcurcuvcujczocuwcuocuvcuwcuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuwczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctIcuzcuucuxcuCcupcurcuocxxcwtcwycwucwvcwjcwgcyIczicwzcxPcuucuxcuocuscuCcuvcutctJcuuctKcurcuwcuzcuucuBcupcutcuxcuscuAcuvcuCcuqcuycuocupcuBcuAcuwcuzcutcuvcuucuqcusctCcuucuxcujczocuscurcuxcuscuxcuscurcuxcuscurcuxcuscurcuxcuscurcuxcuscurcuxcuscuxcuscurcuxcuscurcuxcuscurcuxcuscurcuxaaacusczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctycuCcutcuAcuocuwcuucurcuycwzcxUcxxcyIcxZcxccyRcuucuwcuvcutcuAcurcuBcuocuxcupctMcutctBcuucuscuCcutcuycuwcupcuAcuBcuqcuxcuocuzcuvcurcuwcuycuqcuscuCcupcuxcutcuzcuBctFcutcuAcujczocuBcuucuAcuBcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuBcuuaaaczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctHcuocupcuqcurcuscutcuucuvcuwcuxcuycuzcuAcuBcuCcutcuscuxcupcuqcuucuycurcuAcuwctzcupctJcutcuBcuocupcuvcuscuwcuqcuycuzcuAcurcuCcuxcuucuscuvcuzcuBcuocuwcuAcupcuCcuyctEcupcuqcujczocuBcutcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcuBcutcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcutcutczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczpczqczqczqczqczqczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctKcurcuwcuzcuucuBcupcutcuxcuscuAcuvcuCcuqcuycuocupcuBcuAcuwcuzcutcuvcuucuqcusctCcuwctMcupcuycurcuwcuxcuBcuscuzcuvcuCcuqcuucuocuAcutcuBcuxcuCcuycurcuscuqcuwcuocuvctAcuwcuzcujczocuycupcupcuCcuycupcuCcuycupcuCcuycupcuCcuycupcuCcuycuycupcupcuCcuycupcuCcuycupcuCcuycupcuCcuycupcuCcuycupcupczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczscztczuczvczwczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctBcuucuscuCcutcuycuwcupcuAcuBcuqcuxcuocuzcuvcurcuwcuycuqcuscuCcupcuxcutcuzcuBctFcusctzcuwcuvcuucuscuAcuycuBcuCcuxcuocuzcutcurcuqcupcuycuAcuocuvcuucuBcuzcuscurcuxctGcuscuCcujczocuCcuxcuxcuwcuCcuxcuwcuCcuxcuwcuCcuxcuwcuCcuxcuwcuCcuCcuxcuxcuwcuCcuxcuwcuCcuxcuwcuCcuxcuwcuCcuxcuwcuCcuqcuxczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczzczAczAczAczzczrczrczrczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctJcutcuBcuocupcuvcuscuwcuqcuycuzcuAcurcuCcuxcuucuscuvcuzcuBcuocuwcuAcupcuCcuyctEcuBctCcuscuxcutcuBcuqcuvcuycuocFqcTscvQcFrcCncvTcBrcTydTycurcuxcutcuycuCcuBcuucuActDcuBcuocujczocuocuAcuAcuscuocuAcuscuocuAcuscuocuAcuscuocuAcuscuocuocuAcuAcuscuocuAcuscuocuAcuscuocuAcuscuocuAcuscuocuAcuAczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczzczEczEczEczzczrczFczGczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctMcupcuycurcuwcuxcuBcuscuzcuvcuCcuqcuucuocuAcutcuBcuxcuCcuycurcuscuqcuwcuocuvctAcuyctFcuBcuAcupcuycuzcuxcuvczHcvLcAncAtczRczPcAocAlczScvTczIcuAcupcuvcuocuycutcuqctLcuycurcujczocurcuqcuqcuBcurcuqcuBcurcuqcuBcurcuqcuBcurcuqcuBcurcurcuqcuqcuBcurcuqcuBcurcuqcuBcurcuqcuBcurcuqcuBcurcuqcuqczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczzczMczNczOczzczrczrczrczrczrczrczrczrczrczrczrczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctzcuwcuvcuucuscuAcuycuBcuCcuxcuocuzcutcurcuqcupcuycuAcuocuvcuucuBcuzcuscurcuxctGcuvctEcuycuqcuwcuvcuCcuAcuxczIczPczQczRczSczTczUczVczWczXczYcuqcuwcuxcurcuvcupcuzctIcuvcuucujczocuucuzcuzcuycuucuzcuycuucuzcuycuucuzcuycuucBbcAHczIczIcBbcBbcAHcuucuzcuycuucuzcuycuucuzcuycuucuzcuycuucuzcuzczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczzczMczNczOczzcAccAdcAecAfcAgcAhcAdcAicAjcAkcAkczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctCctLctKctActIctJctHctyctCctBctFctzctGctEctMctDctHctJctFctKctActyctzctIctEctBctDcuxctAcuvcuzcuscuxcuocuqcuAczYczVczWcAlcAmcAnczSczRcAocApcvUcuzcuscuAcuucuxcuwcuCctycuxcutcujczocutcuCcuCcuvcutcuCcuvcutcuCcuvcutcuCcuvcutcweczCczYczYcweczJcAOcutcuCcuvcutcuCcuvcutcuCcuvcutcuCcuvcutcuCcuCczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczzczMczNczOczzcAscAdcAhcAhcAgcAhcAdcAhcAkcAkcAkczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctFcuAcupcuvcuocuycutcuqcuycuAcupcuvcuocuycutcuqcuycutcuqcuAcupcuvcuocuycutcuqctLcuActGcuxcuCcuBcuAcurcuzcuqcvUczRcAoczXczQczPcAmcAlcAtczUcAucuCcuBcuqcutcuAcuscuoctHcuAcupcujczocupcuocuocuxcupcuocuxcvUcBJcvKcvUcBJcvKcvUcBJczLczDczDczZczZcvKcvUcBJcvKcvUcBJcvKcvUcuocuxcupcuocuxcupcuocuoczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczzczNczNczNcAwcAxcAycAhcAhcAgcAhcAdcAicAjcAkcAkczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctEcuqcuwcuxcurcuvcupcuzcuvcuqcuwcuxcurcuvcupcuzcuvcupcuzcuqcuwcuxcurcuvcupcuzctIcuqctDcuAcuocuycuqcuucuCcuzcAucAlcAtcApczWczVczQczXczTczScAzcuocuycuzcupcuqcuBcurctKcuqcuwcujczocuwcurcurcuAcuwcurcuAcAucAqcuAcuwcAqcCPcAucAqcAaczKczKcAqcAqcAacAuczHcAacuwcurcAacAucurcuAcuwcurcuAcuwcurcurczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczzczNczNczNcAwcAxcAycAhcAhcAhcAhcABcAhcAkcAkcAkczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacACcACcACaaacADcADcADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctAcuzcuscuAcuucuxcuwcuCcuxcuzcuscuAcuucuxcuwcuCcuxcuwcuCcuzcuscuAcuucuxcuwcuCctycuzctLcuqcurcuvcuzcutcuocuCcAzczXczTczUcAoczRczWcApcAncAmcAEcurcuvcuCcuwcuzcuycuuctBcuzcuBcujczocuscuucuucuqcuscuucuqcAzcAvczxcAbcAvcDdcAbcAvczxcAbcAbcAvcAvczxcAbczIczxcAbcAvczxcAzcuucuqcuscuucuqcuscuucuuczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczzcAFczNcAGczzcAscAdcAhcAhcAgcAhcAdcAicAjcAkcAkczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacACcACcACaaacADcADcADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctGcuCcuBcuqcutcuAcuscuocuAcuCcuBcuqcutcuAcuscuocuAcuscuocuCcuBcuqcutcuAcuscuoctHcuCctIcuzcuucuxcuCcupcurcuocAEcFwcAnczScAtcAlcAoczUczPdTycAHcuucuxcuocuscuCcuvcutctJcuCcuycujczocuBcutcutcuzcuBcutcuzcAEcAAczBcArcAAcBbcArcAAczBcArcArcAAcAAczBcArczYczBcArcAAczBcAEcutcuzcuBcutcuzcuBcutcutczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqcAIczzcAJczzcAKcAccAdcAhcAhcAgcAhcAdcAhcAkcAkcAkczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacACcACcACaaacADcADcADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctDcuocuycuzcupcuqcuBcurcuqcuocuycuzcupcuqcuBcurcuqcuBcurcuocuycuzcupcuqcuBcurctKcuoctycuCcutcuAcuocuwcuucurcuycTycvPcAmczTczXcAtczScFrcvTcuvcutcuAcurcuBcuocuxcupctMcuocuvcujczocuycupcupcuCcuycupcuCcAHczDczJczyczDcweczyczDczJczyczyczDczDczJczycvUczJczyczDczJcAHcupcuCcuycupcuCcuycupcupczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqaaacAIcAPcAKaaacAccAdcAhcAhcAgcAhcAdcAicAjcAkcAkczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAQcARcAScATcAUcACcACcACaaacADcADcADcAQcARcAScATcAUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctLcurcuvcuCcuwcuzcuycuucuzcurcuvcuCcuwcuzcuycuucuzcuycuucurcuvcuCcuwcuzcuycuuctBcurctHcuocupcuqcuucuBcFrcFvcvScFqcBrczWczPczUcAnczQcvTcvTcvTcvTcBbcutcuvcurcuAcuwctzcurcuxcujczocuwcuocuvcuwcuvcuwcuocAOczKczZczCczKczZczCczKczZczCczKczZczCczKczCczKczZczCczKczZcAOcuwcuocuvcuwcuocuvcuwcuwczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczrczrczrczrczrczrczrczrczrczrczrczrczrczrczrczrczrczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcAWcAWcAWcAXcAYdiicAYcAYcAYdijcAYcBacAWcAWcAWcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctIcuucuxcuocuscuCcuvcutcuCcuucuxcuocuscuCcuvcutcuCcuvcutcuucuxcuocuscuCcuvcutctJcuuctKcurcuwcuzcutcAHcBrczVcAmczQcAlcAoczVczSczPczWczXczTczQcAlcwecFrcuxcuucuqcusctCcuucuAcujczocuscurcuxcuscuxcuscurcvKcAbcAqczLcAbcAqczLcAbcAqczLcAbcAqczLcAbczLcAbcAqczLcAbcAqcvKcuscurcuxcuscurcuxaaacusczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVdQmcBxcBdcTpcBwdikcBkcBicBjdilcBwcTqcBldQpdQqcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctycutcuAcurcuycupcuvcuBcuqcurcBmcBncANcwmcBocuxcBpcBqcvMcBrcBscurcuBcuocuxcupctMcutctBcuucuscuCcupcAOcAlczRczQczWczXcAtczRcAmczVcAocApcAnczWczXcAtcBrcuAcutcuzcuBctFcutcuqcujczocuBcuucuAcuBcuAcuBcuucCPcArcAvcAacArcAvcAacArcAvcAacArcAvcAacArcAacArcAvcAacArcAvcCPcuBcuucuAcuBcuucuAaaacuBczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcBccBccBuctncAZcBecAZcBfcAZcBecAZcBgcBucBccBccAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctHcuxcuqcuucuocuAcurcuCcupcuucBzcBAcBBcBCcBDcuucBEcBFcBGcBHcBIcuucuycurcuAcuwctzcupctJcutcuBcuocuwcvKczXcAlczWcAocApczTcAlczQczRcAtczUczPcAocApczTcvRcuqcupcuCcuyctEcupcuzcujczocuBcuucuAcuBcuAcuBczIcCPcArcAvcAacArcAvcAacArcAvcAacArcAvcAacArcAacArcAvcAacArcAvcCPcAEcuucuAcuBcuucuAaaacuBczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcBKcBKcBLcBKcBKcBKcBMcBNcBKcBKcBKcBMcBKcBKcBKcBKcBKcBKcBMcBKcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOcBlcBccBPcBecBecBecBecBecBecBecBecBecBPcBccBdcBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctKcuAcuzcutcurcuqcuucuocuwcutcBIcBRcBScBTcBUcutcBVcBWcBXcBYcBZcutcuvcuucuqcusctCcuwctMcupcuycurcuscCmcApczXcAocAtczUcAnczXczWcAlczTczSczVcAtczUcAncwmcuzcuwcuocuvctAcuwcuCcujczocuBcuucuAcuBcuAcuBczIcAacArcAvcAacArcAvcAacArcAvcAacArcAvcAacArcAacArcAvcAacArcAvcAacAEcuucuAcuBcuucuAaaacuBczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBLcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBMcBKcBKcBKcBKcBKcBMcBKcBKcBKcBKcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOcAYcBacCMcAZcBecAZcCLcCLcAZcBecCpcAXcAYcBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctBcuqcuCcupcuucuzcutcurcuscupcBZcCgcChcBBcBpcupcBzcCicCjcCkcClcupcuxcutcuzcuBctFcusctzcuwcuvcuucuBdTyczUcApcAtczTczSczPcApcAoczXcAncAmczRczTczSczPcFwcuCcuscurcuxctGcuBcuocujczocuycutcuqcuycuqcuyczYczxczycAAczxczycAAczxczycAAczxczycAAczxczyczxczycAAczxczycAAczxcAHcutcuqcuycutcuqaaacuyczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcCocBKcBKcBKcBKcBKcBLcBKcBKcBNcBMcBKcBKcBMcBKcBKcBMcBNcBKcBMcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcCBcBfcBecCAcCBcCBcCxcBecCrcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctJcuzcuocuwcutcuCcupcuucuBcuwcClcBCcCtcBScCucuwcBIcCvcBHcCwcBDcuwcuAcupcuCcuyctEcuBctCcuscuxcutcuycvTczSczUczTcAncAmczVczUcAtcApczPczQcAlcAncAmczVcTycuocuBcuucuActDaaacurcujczocuCcuxcuxcuwcuCcuxcAucweczLczKczJczLcAucweczLczKczJczJczLczLczKcwecvKczKczJczLczKcwecvKcuwcuCcuxcuwcuCcuqcuxczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBLcBKcBKcBMcBNcBKcBKcBMcBKcBNcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDccDccDccDccAVcCycAZcBecCAcCBcCBcCxcBecBwcAVcCzcCzcCzcCzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctMcuCcurcuscupcuocuwcutcuycuscBDcBzcBUcClcBmcuscBZcBscBEcBIcBUcuscuqcuwcuocuvctAcuyctFcuBcuAcupcAOcvQcAmczScAnczPczQczRczSczTczUczVczWczXczPczQczRcvSczHcuycutcuqctLcuycuucujczocuocuAcuAcuscuocuAcuscBJcCPcAzcBJcCPcAzcBJcAacAbczZczZcAacAacAbcBJcCPcAzcBJcCPcAzcBJcuAcuscuocuAcuscuocuAcuAczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBLcBKcBKcBKcBKcBKcBNcBKcBMcBNcBKcBMcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDccDccDccDcdiqdipcBecBecAZcCscCscAZcBediodincCzcCzcCzcCzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctzcuocuucuBcuzcuscurcuxcuscuocuucuBcuzcuscurcuxcuscurcuxcuocuucuBcuzcuscurcuxctGcuvctEcuycuqcuwcvKcAtczQcAmczPczVczWcAlcAmcAnczSczRcAocApczVczWcAlcAmczIcuvcupcuzctIcuvcutcujczocurcuqcuqcuBcurcuqcuBcurcuqcuBcurcuqcuBczHczxcArcAqcAqczxczxcArczHcuqcuBcurcuqcuBcurcuqcuBcurcuqcuBcurcuqcuqczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcCCcCCcCCcCCcCCcCCcCCcBKcBKcBKcBKcBKcBKcBKcBMcBKcBKcCocBNcBKcBKcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDccDccDccDccAVcBwcCqcBecBecBecBecBecBecAZcAVcCzcCzcCzcCzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctCcuxcutcuycuCcuBcuucuAcuBcuxcutcuycuCcuBcuucuAcuBcuucuAcuxcutcuycuCcuBcuucuActDcuxctAcuvcuzcuscCPczTczWczQczVczRcAoczXczQczPcAmcAlcAtczUczRcAoczXczQczYcuxcuwcuCctycuxcupcujczocuucuzcuzcuycuucuzcuycuucuzcuycuucuzcuyczIczBczycAvcAvczBczBczyczIcuzcuycuucuzcuycuucuzcuycuucuzcuycuucuzcuzczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcGtczrcGvcGucGucGucHYczrcHWcBKcBKcBKcBKcCocBKcBKcBLcBKcBLcBKcBMcBKcBMcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAXcAYcAYcAYcDFcBecAZcBecBecCDcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctFcupcupcuvcuocuycutcuqcuycupcupcuvcuocuycutcuqcuycutcuqcupcupcuvcuocuycutcuqctLcuActGcuxcuCcuBcDdcAncAoczWczRcAlcAtcApczWczVczQczXczTczScAlcAtcApczWcvUcuAcuscuoctHcuAcuwcujczocutcuCcuCcuvcutcuCcuvcutcuCcuvcutcuCcuvczYczJczCcAAcAAczJczJczCczYcuCcuvcutcuCcuvcutcuCcuvcutcuCcuvcutcuCcuCczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKczrcGlcFxcGqcGmcGjcFRcFRczrcCWcBKcBKcCCcCCcCCcCCcCCcCCcCCcCCcCXcCYcCCcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcCecCecCfdUMcBecAZcBecBecAZdVtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctEcuwcuwcuxcurcuvcupcuzcuvcuwcuwcuxcurcuvcupcuzcuvcupcuzcuwcuwcuxcurcuvcupcuzctIcuqctDcuAcuocuycBbczPcAtcAocAlczXczTczUcAoczRczWcApcAncAmczXczTczUcAocAucuqcuBcurctKcuqcuBcujczocupcuocuocuxcupcuocuxcupcuocuxcupcuocuxcvUczZczLczDczDczZczZczLcvUcuocuxcupcuocuxcupcuocuxcupcuocuxcupcuocuoczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKczrcFAcFxcFxcFzcFxcFxcFxczrcCWcBKcDgcDhcDicDicDjcBtcBtcBtcBtcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadTOcCacCacCadTRcBecCbcCccCdcCccAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctAcuscuscuAcuucuxcuwcuCcuxcuscuscuAcuucuxcuwcuCcuxcuwcuCcuscuscuAcuucuxcuwcuCctycuzctLcuqcurcuvcweczVczTcAtczXczPcApcAlcAmczUczRczQczTczVcApcAnczScAtcAzcuzcuycuuctBcuzcuycujczocuwcurcurcuAcuwcurcuAcuwcurcuAcuwcurcuAcAuczHcAaczKczKcAqcAqcCPcAucurcuAcuwcurcuAcuwcurcuAcuwcurcuAcuwcurcurczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKczrcVocFxcFxcFxcVtcFxcWcczrcCWcCocDgcDqcDrcDrcDrcDscDtcBtcDucDvcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcEdcEccCacDmcBedQkcEocEncSbcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctGcuBcuBcuqcutcuAcuscuocuAcuBcuBcuqcutcuAcuscuocuAcuscuocuBcuBcuqcutcuAcuscuoctHcuCctIcuzcuucuxcBJczRcAnczTcApczVczUczXczQczScAlczWcAnczRczUczPcAmczTcAEcuCcuvcutctJcuCcuvcujczocuscuucuucuqcuscuucuqcuscuucuqcuscuucuqcusczIcDdcAzcAzczIczIcDdcuscuucuqcuscuucuqcuscuucuqcuscuucuqcuscuucuuczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcVnczrczrczrcROczrczrczrcSLcBKcBKcDAcDqcDrcDrcDBcDrcDrcDCcDDcDDcDEcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcEmcCacCadUMcBecCccDVcDVcElcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctDcuycuycuzcupcuqcuBcurcuqcuycuycuzcupcuqcuBcurcuqcuBcurcuycuycuzcupcuqcuBcurctKcuoctycuCcutcuAczicAlczPcAnczUczRczScApczWcAmczXcAoczPcAlczSczVczQcAncxPcuocuxcupctMcuocuxcujczocuBcutcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcuBcutcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcutcutczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKczrcRJcFxcRJczrcDLcCCcCCcCCcDMcDNcDrcDOcDPcDQcDrcBtcDDcDRcDRcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcEdcEccCadTRcBecEkcDVcDVcDWcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctLctJctFctHctMctActCctzctLctEctIctDctKctyczoczoczoczoczoctFctHctzctDctMctyctEctBcurctHcuocupcuqcCnczXczVczPczScAlcAmczUcAoczQcApcAtczVczXcAmczRczWczPcTycurcuAcuwctzcurcuAcujczocuycupcupcuCcuycupcuCcuycupcuCcuycupcuCcuycupcuCcuycuycupcupcuCcuycupcuCcuycupcuCcuycupcuCcuycupcuCcuycupcupczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKczrcIfcFxcReczrcDhcDicDicDicDjcBtcDrcDOcDUcDQcDrcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOcDScDScAYcPwcDTcAYcAYcDScDScBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cuBcuzcuucuxcuCcupcurcuocuBcutcuycuscuAcuvcuwcuqcurcupcuycuucuxcuocuscuCcuvcutcuqcuuctKcurcuwcuzcFvcApczRczVcAmczXdTyczScAtczWczUczTcBrcApczQcAlcAoczVcvScuucuqcuBctCcuucuqcujczocuwcuocuvcuwcuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuwczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcGtczrczrczrczrczrcIfcFxcReczrcDqcDXcDXcDXcDXcDYcDrcDrcDrcDrcDrcDZcEacEbcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOcBacDGcCxcBecDHcDIcAXcBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cuycutcuAcurcuBcuocurcuBcuocutcuAcurcuBcuocutcuAcurcuBcuocutcuAcurcuBcuocuxcupcuzcutctBcuucuscuCcFrczUcAlczRczQcApcvTcAmczTcAoczScAncvRczUczWczXcAtczRcFqcutcuzcuBctFcutcuzcujczocuscurcuxcuscuxcuscurcuxcuscurcuxcuscurcuxcuscurcuxcuscurcuxcuscuxcuscurcuxcuscurcuxcuscurcuxcuscurcuxaaacusczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKczrcNOcFxcFxcFxczrcIfcFxcReczrcDNcDXcEhcDicDjcBtcDrcDrcDrcDrcDrcBtcEicEicEjcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcCBcAZcCLcAZcDwcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cuvcupcuqcuucuycurcuucuycurcupcuqcuucuycurcupcuqcuucuycurcupcuqcuucuycurcuAcuwcuCcupctJcutcuBcuocBrczSczXcAlczWczUcvQdTycCncOxcFqcFvcwmczScAocApczTcAldTycupcuCcuyctEcupcuCcujczocuBcutcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcuBcutcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcutcuzcuBcutcutczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKczrcNOcFxcIfcRIczrcIfcFxcReczrczrcRicOGcQJcEucBtcBtcBtcBtcBtcEvcBtcEwcEicEjcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcCZcCOcDkcDbcDlcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cuxcuwcuzcutcuvcuucutcuvcuucuwcuzcutcuvcuucuwcuzcutcuvcuucuwcuzcutcuvcuucuqcuscuocuwctMcupcuycurcvRcFqcFwcwmcvQcvScOxcuzcutcurcuqcupcFwcFqcOxcTycCncwmcvTcuwcuocuvctAcuwcuocujczocuycupcupcuCcuycupcuCcuycupcuCcuycupcuCcuycupcuCcuycuycupcupcuCcuycupcuCcuycupcuCcuycupcuCcuycupcuCcuycupcupczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcEAcBKczrcNOcFxcIfcOwczrczrcOoczrczrcOncFxcFxczrcEDcEEcEucBtcEFcEOcEHcBtcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOdWadVXdVXdVXdWbcBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cuAcuscuCcupcuxcutcupcuxcutcuscuCcupcuxcutcuscuCcupcuxcutcuscuCcupcuxcutcuzcuBcurcusctzcuwcuvcuuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuscurcuxctGcuBcurcujczocuwcuocuvcuwcuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuocuvcuwcuwczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKczrcNOcFxcFxcFxdLVcFxcFxdLTcFxcFxcFxcFxczrcCWcBKcDgcEMcENcEOcEOcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cuqcuBcuocuwcuAcupcuwcuAcupcuBcuocuwcuAcupcuBcuocuwcuAcupcuBcuocuwcuAcupcuCcuycuucuBctCctLctKctActIctJctHctyctCctBctFctzctGctEctMctDctHctJctFctKctActyctzctIctEctBctDaaacuucujczocuscurcuxcuscuxcuscurcuxcuscurcuxcuscurcuxcuscurcuxcuscurcuxcuscuxcuscurcuxcuscurcuxcuscurcuxcuscurcuxaaacusczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKczrcNOcFxcFxcFxdMFcFxcFxcFxdMBcFxcFxcFxczrcETcBKcDgcDqcEFdMbcEOcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cuzcuycurcuscuqcuwcuscuqcuwcuycurcuscuqcuwcuycurcuscuqcuwcuycurcuscuqcuwcuocuvcutcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczocujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcGtczrczrczrczrczrczrdMGcFxcFxczrczrczrczrczrczrcHWcDgcDNcEFcEOcEOcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKczrdNmdNndNrdNIdMPczrcFxcFxcFxczrdMQdMSdOIdOldNUczrcFgcBtcEFcEOcFhcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKczrdOPdOPdOPdOPdOPdPZcFxcFxcFxdOVcFxcFxcFxcFxdOJczrcFgcBtcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKczrdNmdNndOPdOPdOPdQucFxcFxcFxdQjcFxcFxcFxcFxdOJczrcCWcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKczrdOPdOPdOPdOPdRKczrdRddRwdTtczrdSHczrdTuczrczrczrcFucBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKczrdOPdOPdOPczrczrczrdTvdOPdOPczrczrczrcFxcFxcFxczrcCWcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKczrdNmdNndVxczrcBKczrdVjdVjdVjczrcBKczrcFRdTQdTZczrcCWcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKczrdVjdVjdVjczrcBKcVndVFdVGdVEcSLcBKczrdVjdVjdVjczrcCWcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcVndVFdVGdVEcSLcBKcBKcBKcBKcBKcBKcBKcVndVFdVGdVEcSLcBKcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWg +cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWd +cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWd +cFEcFEcFEcFEcFEcFEcFEcFFcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWd +cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaacWdcWdcWdaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWd +cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdaaaaaaaaacWdcWdcWdcWdcWdcWdcWdcWdcWdaaacWdcWdcWdcWdcWdcWdcWdcWd +cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXudXfdXfdXfdXldXfdXfdXoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdaaaaaaaaaaaaaaaalPaaaaafcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXdcFLcFLcFLdXecFLcFLdXdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdaaaaaaaaaaaaaaaalPaafcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +cFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXdcFLcFNcFLcFOcFLcFLdXdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdaaaaaaaaaaaaalPaaacWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +cFPcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEcFEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXdcFQcFQcFQdXvcFLcFLdXdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdaaaaaaaaaaaachcaafcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFScFScFScFSdXwdXDdXfdXfdXfdXxcFLcFLdXdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdaaaaaaaaaaaachdaaaaafcWdcWdcBtcBtcBtcBtcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFScFScFScFScFOcFLcFOcFLcFLcFLcFLcFLdXdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaaaaacBtcBtdWkdVKdWhcBtcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFScFScFScFSdXwdXfdXfdXocFLcFLcFLcFWdXdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaaaaacEMdWmdWldfLdWldWmcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXdcFQcFLcFLcFWdXdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaacDqdWmdWldfLdWldWmcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXdcFQcFLcFLcFWdXdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaacDNdWmdWldfLdWldWmcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXEdXfdXfdXfdXfdXxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaacWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBtdfLdfLdWtcBtcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtdfLdfLdfLcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaacWdcWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaadgedgddgddgfcBtcBtdgccBtcBtcBtcBtcBtcBtcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaacWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcDcZXdcvdbecZXcZXcZXcZCcBtcZccXccWYdcFcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcDcZXdfxdfxcZXcZXcZXcZXddnddmddmddmdcGcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcDdlTdlSdlQdlUcZXcZXcZXcBtddmddmddmdmwcBtcBtcBtcBtcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhgcCGcCHcCHcCHcCIdhvaaaaaadcDcZXdoidoicZXcZXcZXdolcBtdooddmdotdnycBtdnZcDXdohcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhgcCFdggdgudgvdgAdhKcCFdhvaaadcDcZXcZXcZXcZXcZXcZXdiecBtcBtcBtcBtcBtcBtdimcDXdifcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCFdiIdisdisdirdisdisdgAcCFaaadlBdgddgddlIcBtcDrcDrcDrcBtcEacEadlJdjXcBtdlzcDXdiJcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCFdqrdisdisdisdisdqqdgAcCFaaaaaaaaaaaaaaadqicDrcDrcDrdqocEicEidqbdqbcBtdlzcDXdqgcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCFdqRdisdisdisdrodisdqLcCFaaaaaaaaaaaaaaadqEcDrcDrcDrcBtdqFcEicBtcBtcBtdpXdqMdpXcBtcBtcBtcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoTcCFcCFcCFdoycCFcCFcCFdpschcchcchcchccBtcBtcDrcDrcDrcBtcBtcBtcBtdpmdpmcDXcDXcDXdpgdpgcBtcBtcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoTcCFdpzdisdpzcCFdpsdpWdpTdpWdpTdpWdpXdpPcDrcDrcDrcDrcBtdpBdpAcDXcDXcDXcDXcDXcDXcDXdqacBtcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCFdqqdisdrKcCFdvodvndvmdvmdvmdvmcDYcDrcDrcDrcDrcDrdvvcDXcDXcDXcDXcDXdvicDXcDXcDXdvlcBtcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdaaaaaaaaaaaaaaaaaaaaaaaacCFdvEdisdrKcCFdvocEgdvwdvxdvxdvxdvycDrcDrcDrcDrcDrcBtdvCdvBcDXcDXcDXcDXcDXcDXcDXdvDcBtcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdaaaaaaaaaaaadhgcCFcCFcCFcCFdqqdisdrKcCFcCFdspcCFdhvaaaaaacBtcBtdstdgddlIcBtcBtcBtcBtdsjdskcDXcDXcDXdsddsdcBtcBtcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcFYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdaaaaaaaaadhgcCFduQduiduMcCFdqqdisdrKcCFduTduWduVcCFdhvaaaaaaaaaaaaaaaaaaaaacWdcWdcBtcBtcBtdpXdvgdpXcBtcBtcBtcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGbcGccGdcGdcGdcGddixdixcGdcGdcGdcGdcGfcGbcGbcGbcGbcFYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdaaaaaaaaadzGdDnduQdDAduQcCFcCFdDCcCFcCFduTdDDdDSdEfcCFaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcBtdvNcDXdvNcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGccGgcGhcGidCacGddiwcGkcGddDfdCEcGdcGdcGdcGfcGbcGbcFYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdaaaaaaaaacCFcCFdzGdzYdzGcCFdisdisdAbcCFcEQdBQcEQcCFcCFaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcBtdvNcDXdvNcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGccGdcGncGncGncGncGdcGocGocGdcGncGncGpdzlcGdcGdcGfcGbcGrcGrcGrcGrcGraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdaaaaaaaaaaaacCFdyxdisdisdyycCFdisdisdiscCFdyldyidyjdxNcCFaaaaaaaaaaaaaaaaaaalPaaaaafcWdcWdcBtdvNcDXdvNcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGccGdcGdcGsdxddxndxlcGdcGncGncGwcGncGncGncGndiudivcGdcGbcGrcGzcGAcGBcGrcGrcGrcGrcGrcGCcGDcGDcGEcGrcGraaaaaaaaaaaaaaaaaaaaaaaacGFcGFcGFcGFcGFcGFcGFcGFcGFcGFcGFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdaaaaaaaaaaaacCFdxcdisdisdisdwidisdisdisdvWdisdisdisdvTcCFaaaaaaaaaaaaaaaaaaalPaafcWdcWdcWdcBtdvNcDXdvNcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGGcGHcGIcGncGJcGJcGJcGdcGncGncGdcGKcGLcGMcGNcGOcGPcGdcGbcGrcGQcGAcGAcGRcGScGTcGUcGVcygcGUcGXcGYcGZcGrcGrcGrcGrcGrcGrcGrcGrcGrcGrcHacHbcHbcHbcHbcHbcHbcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdaaaaaaaaaaaaaaacCFdESdisdisdisdETdisdisdisdEXdisdisdisdFtcCFaaaaaaaaaaaaaaaaaachdaaacWdcWdcWdcBtcBtcBtcBtcBtcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacHecGHcGncGncGncGncGncGwcGncGncGdcGdcGdcGdcGdcGdcGdcHfdiCcGrcGrcGrcGrcGrcGScGXcGUcyfcHhcGUcGXcGXcGXcHicHjcHjcHjcHjcHjcHjcHjcHjcHkcHacHlcHmcHmcHmcHmcHmcHncHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdaaaaaaaaaaaaaaadhgcCFcCFcCFcCFcCFcCFdisdisdiscCFcCFcCFcCFcCFcCFdhvaaaaaaaaaaaaaaaalPaafaafcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacHocGdcHpcGncHpcGncHpcGdcGncGncGndiBcHqcGbcGbcGbcGbcGbcHrdizcHjcHjcHjcHicGXcGXcGXcGXcGXcGXcGXcGXcGXcHicHjcHjcHjcHjcHjcHjcHjcHjcHkcHacHscHtcHtcHtcHtcHtcHscHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCFcEWcEXcEYdERdEQcCFdEMdisdiscCFdEPdEPdEPdEOdEOcCFaaaaaaaaaaaaaaaalPaaaaaaaafcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGdcGdcGdcGdcGdcGdcGdcGncGndiAcGncHqcGbcGbcGbcGbcGbcHrdizcHjcHjcHjcHicGXcGXcGXcGXcGXcGXcGXcGScGScGrcGrcGrcGrcGrcGrcGrcGrcGrcGFcHacHscHtcHtcHtcHtcHtcHscGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadENcFicFicFicFicFicCFdisdisdiscCFdEMdisdisdisdEHdELaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGccGdcHucHvcHwcHucHxcGdcGncGncGndiFcHqcGbcGbcGbcGbcGbcGbcGrcGrcGrcGrcGrcGXcGXcGUcyfcygcGUcGXcHycHzcGrcHAcHBcHBcHCcGrcHDcHEcHFcGFcHbcHscHtcHtcHtcHtcZVdiGcGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadKfdKddJHcFicFicFicFjdisdisdisdKodisdisdisdKtdEHdKpaaaaaaaaaaaaaaaaaaaaaalQaaaaafcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGGcGHcHHcHHcHHcHHcHHcGwcGncGncGdcGdcGdcGdcGdcGdcGdcGfcGbcGrcGzcGAcGBcGrcGXcGXcGUcyfcHIcGUcGXcGScGScGrcHJcHJcHJcHJcGrcHKcHEcHLcGFcHbcHscHtcHtcHtcHtcHtdiDcGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHqcFicFicFicFicFicFmdisdisdisdIVdisdisdisdisdJbdJEaaaaaaaaaaaaaaaaaaaaaalQaafaafcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacHecGHcHNcHHcHHcHHcHHcGdcGncGncGncGncGncGdcGncHOcHPcGdcGbcGrcGQcGAcGAcGRcGXcGXcGXcGXcGXcGXcGXcGXcGXcGrcHJcHQcHRcHRcGrcGrcHScGrcGFcHbcHscHtcHtcHtcHtdiEcHscGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCFdHhcFicFicFidHgcCFcEQdHfcEQcCFdGOdGOdisdisdGMcCFaaaaaaaaaaaaaaaaaaaaaalQaaaaafaaacWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacHocGdcGdcHUcHVcHVcHVcGdcGndxdcHXdxdcGncGwcGncHZcIacGdcGbcGrcGrcGrcGrcGrcGrcGrcIbcGrcGrcGrcGXcGXcGXcIccHJcIdcIdcHJcHJcHJcHJcIecGFcHbcHscHtcHtcHtcHtcHtdiDcGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCFdGLdGKdFUdFGdFvcCFdisdisdiscCFdFucCFcCFcFtcCFcCFaaaaaaaaaaaaaaaaaaaaaalQaafaafaafaafaafcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcHocGdcHHcHHcHHcHHcGdcGncHXdxdcHXcGncGdcHpcGdcGdcHfcGbcGrcIgcIhcIicGrcIjcIkcIkcIkcIlcGrcGXcGXcGXcGXcHJcHJcHJcHJcImcHJcHJcHRcGFcHbcHscHtcHtcHtcHtdgpdiHcGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdaaaaaacCFdKZcFidLcdLBcCFcCFdisdLQdiscCFcCFcCFdisdisdiscCFaaaaaaaaaaaaaaaaaaaaaalQaaaaafaaaaafaaaaaacWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcHocGdcIocIpcIqcGdcGncGncGncGncGncGdcGdcGdcHfcGbcGbcGrcIrcIscItcIucIkcIkcIkcIkcIvcGrcGXcGXcGXcIccIwcHJcHJcHJcIxcHJcHJcIycGFcHbcHscHtcHtcHtcHtcHtcHscGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdaaacCFdKudKQdKEcCFaaacCFcFycFycFycCFaaacCFdgAdKTdKVcCFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGbcHocGdcGdcGdcGdcGdcGdcGdcGdcGdcGdcHfcGbcGbcGbcGbcGrcGrcIzcIAcGrcGrcGrcIzcIBcIAcGrcGXcGXcGXcGrcICcIDcIDcIDcIDcIDcIEcGrcGFcHbcIFcUQcHtcHtcHtcUycIIcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdaaacCFcFycFycFycCFaaadoTcFBcFCcFDdpsaaacCFcFycFycFycCFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGrcIJcIJcIJcIJcIJcIJcIJcIJcIJcGrcGrcIKcGrcGrcIJcIJcIJcIJcIJcIJcIJcGrcGFcHbcILcIMcINcINcINcIMcIOcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoTcFBcFCcFDdpsaaaaaaaaaaaaaaaaaaaaadoTcFBcFCcFDdpsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcIPcIPcIPcIPcIPcFYcFYcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIRcIRcIRcIRcIRcIRcIRcGrcIScITcIScGrcIRcIRcIRcIRcIRcIRcIRcIRcGFcHbcHbcIUcIVcIVcIVcIWcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcIZcJacJbcIPcJccJccIQcJdcJecIQcJfcJgcJhcJfcJicIQcJfcJjcIQcJfcJkcIQcJlcJmcIQcJfcJjcIQcJncIRdRcdRbdRadQZcJqcGrcIScITcIScGrcJrcJscJtcJucJucIRaaaaaacGFcHbcHbcHbcHbcHbcHbcHbcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJxcJycJwcJwcJwcJwcJzcJxcJAcJBcJCcJDcIPcJEcJFcIQcJGcJHcIQcJGcJjcIQcJGcJHcIQcJGcJmcIQcJGcJgcIQcJGcJjcIQcJGcJicIQcJncIRcJIcJJcJJcJJcJJcGrcIScITcIScGrcJucJucJucJucJucIRaaaaaacJKcJKcJKcJKcJKcJKcJKcJKcJKcJKcJKcIRcIRcIRcIRcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcJLcJacJDcIPcJEcJMcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcJncIRcJIcJJcJJcJJcJJcGrcGrcIKcGrcGrcJucJucJucJucJucIRcJKcJKcJKcJKcJKcJKcJNcJOcJPcIRcJQcJQcJQcIRcJQcJQcJQcJQcJQcJQcJQcJQcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJRcJycJwcJwcJwcJwcJzcJRcJScJBcJCcJTcJUcJEcJVcIQcJWcJmcIQcJfcJXcIQcJfcJHcIQcJYcJicIQcJfcJicIQcJZcJjcIQcJfcJmcIQcJncIRcKadQYdPKcKccKdcIRcKecKecKecIRcJucJucJucJucJucIRcKfcKgcKfcKhcKicJKcKjcKjcKjcKkcJQcJQcJQcKkcJQcKlcKmcKlcJQcKncKocKpcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcKqcJacJDcIPcJEcKrcIQcJGcKscIQcJGcJjcIQcJGcJicIQcJGcJjcJhcJGcJjcIQcJGcJXcIQcJGcKtcIQcJncIRcKucIRcKvcKwcKxcIRcJJcJJcJJcIRcKvcKwcKycIRcKzcIRcKAcKBcKAcKBcKAcJKcIRcIRcIRcIRcJQcJQcJQcIRcKCcKDcKlcKEcKCcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcKHcJycJwcJwcJwcJwcJzcKHcKIcJBcJCcJDcIPcJEcKJcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcJncIRcJJcJJcKKcKbcKbcKbcKbcKbcKbcKbcKbcKbcKLcJJcJJcKMcKAcKAcKAcKAcKAcJKcKNcKjcJNcIRcJQcJQcJQcIRcKOcKOcKPcKOcKOcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcKqcJacJDcIPcJEcKQcKRcKRcFYcKScKTcKUcKVcFYcKWcKXcKXcIPcKYcKYcKYcKYcKYcKYcKZcLacLbcIPcJncIRcJJcJJcLccLdcLecLecLecLecLecLecLecLfcJIcJJcJJcJKcLgcLhcLicLjcLkcJKcLlcKjcJOcIRcJQcJQcJQcIRcLmcLmcKjcLmcLmcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcLncJycJwcJwcJwcJwcJzcLncLocLpcJCcJDcIPcJEcJEcJEcJEcFYcJEcJEcJEcLqcFYcKXcJEcLrcLscLtcLtcLtcLtcLtcLtcLucIPcIPcIPcIPcIPcJJcJJcLccLvcLwcJJcLxcLycLzcJJcLwcLvcJIcJJcJJcJKcJKcJKcJKcJKcJKcJKcLlcKjcJOcIRcJQcJQcJQcIRcLAcLAcKjcLAcLAcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcLBcLCcLDcJEcFYcJEcLEcLEdiPcFYcKXcJEcLGcIPcLHcLIcLIcLIcLJcLIcLKcIPcLLcLLcLLcIPcJJcJJcLMcLNcLOcLPcLQcLRcLScLTcLUcLNcLVcJJcJJcIRcLWcLWcLWcLWcLWcIRcIRcKkcIRcIRcIRcKkcIRcIRcKjcKjcKjcKjcKjcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcIPcFYcFYcLXcFYcLYcFYcFYcFYcFYcKXcJEcLrcLZcMacMacMacMacMacMacMacMbcMacMacMacMbcJJcJJcJJcMccJJcJJcMdcJJcMdcJJcJJcMccJJcJJcJJcMecJQcJQcJQcJQcJQcMecJQcJQcJQcJQcJQcJQcJQcMecLAcLAcLAcLAcLAcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWd +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcMfcMgcFYcJEcMhcJEcMicJEcMjcJEcJEcJEcMkcIPcMlcMmcMmcMncMocMpcMqcIPcMrcMrcMrcIPcJJcJJcKKcMscMtcLPcMucJJcMvcLTcMwcMscKLcJJcJJcMecJQcJQcJQcJQcJQcMecJQcJQcJQcJQcJQcJQcJQcMecLAcLAcLAcLAcLAcIRcKkcKkcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcLtcJEcMxcJEcMycJEcKXcKXcKXcMzcMzcKXcMkcIPcMAcMAcMAcMBcMCcMBcMDcIPcIPcIPcIPcIPcJJcJJcLccLNcMEcJJcMdcJJcMdcJJcMEcLNcJIcJJcJJcIRcMFcMGcMGcMGcMHcIRcIRcMIcIRcIRcIRcKkcIRcIRcIRcMJcMJcMJcIRcIRcJQcJQcJQcMKcJQcMLcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdcWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcIPcFYcFYcMMcFYcJEcKXcKXcMNcMOcMOcMPcMkcIPcIPcMQcMRcMScMTcMUcMVcMQaaaaaaaaacIRcJJcJJcLccIRcIRcMWcMXcJJcMYcMZcIRcIRcJIcJJcJJcIRaaaaaaaaaaaaaaacIRcNacNbcIRcKjcNccKjcKjcNdcNecNfcNfcNfcNgcIRcJQcJQcKmcKmcJQcJQcNhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWdcWdcWdcWdcWdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcNicNjcNjcLtcIPcLtcMCcMCcNkcNlcNlcNmcMCcNncNocMQcNpcNqcNrcNscNtcMQaaaaaaaaacIRcJJcJJcLccIRcIRcKvcKwcKwcKwcKycIRcIRcJIcJJcJJcIRaaaaaaaaaaaaaaacIRcNbcNbcIRcNucNucNucKjcNdcNfcNfcNfcNfcNvcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcNicLtcLtcLtcIPcLtcLtcLtcLtcLucLucMCcMCcMCcNzcMQcNAcNrcNrcNrcNrcMQaaaaaaaaacIRcJJcJJcLMcJpcJpcJpcJpcJpcJpcJpcJpcJpcLVcJJcJJcIRaaaaaaaaaaaaaaacIRcNBcNbcIRcNucNCcNucKjcNdcNdcNdcNdcNdcNdcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcNDcNDcNEcNFcIPcNGcNGcNGdjdcLtcLtcNHcNIcNJcNKcMQcNrcNrcNrcNrcNLcMQcIRcIRcIRcIRcIRcIRdaQcIRcIRcJJcJJcJJcJJcJJcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaacIRcNNcNbcIRcKNcKjcKjcKjcNdaaaaaaaaaaaaaaacIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcIPcIPcIPcIPcIPcIPcIPcIPcIPdjedjecIPcIPcIPcIPcMQcNrcNPcNQcNRcNScMQdRydRYdRYdRydRHdRXcJJdRzcIRcIRcIRcOacIRcIRcwZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRcNdaaaaaaaaaaaaaaacNUcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadXkcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgdXkcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWgcWg aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNVcNWcNWcNVaaaaaaaaacMQcNrcNXcNYcNZcNYcMQdRydRZdRZdRydRJdRCcJJdRzcIRcJocLVcJJcLMcOhcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcJQcJQcOccOccJQcJQcObaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOdcOecOecOecOedjfdjfcOecOecOgaaacMQcNrcNrcNrcNrcNrcMQdRydRYdRYdRydRRdRCcJJdRzcIRcJIcJJcJJcJJcLccIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOBdXUdXTcOFaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcOicJQcJQcJQcJQcOjcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOkcOlcOmdiYdiXcOpcOpcOqcOqcOecOgcMQcMQcMQcMQcMQcMQcMQdRydRydRydRydRBdRCcJJdRzcIRdRAcORdRAdRDdRAcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOBdaCdiZdROdaFcOFaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11184,11 +11372,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcQxcPbcPbcPbcQVcQTcUfcUicQYcQAcQWcSAcSzcQYcQAcQAcSecSecSecSecSecSecQzcShcSgcSrcSicUzcUzcUzcUAcUzcUzcQhcQhcQhcUGdiOcUDdiOdiNcOYcOYcOYcOYcOYcOYcPMdXIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbdiMcPbcPbcPbcQVcQLcQAcQAcQAcQAcQAcQAcQAcQAcQAcQCcRUcRUcRUcRUcRUcRUcQzcQzcQzcQzcQzcRZcRZcQzcQzcQzcQzcSacRVcRVcRVcRVcRVcRXcOVdXUdXTcRCdXIcZBcOYcZrcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcPbcREcPbcRGcQVcQTcRNcRFcQYcQAcQWcRAcRzcQYcQAcQCcRycQBcQBcQBcQBcQBcQzcRBcRBcRBcRDcOtcOtcRRcRhcRhcQzcPKcPKcPKcPKcNdaaaaaacOVcRLcRMcPAcRgcOVcZpcZrcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycQRcPbcPbcQPcPbcQVcQTcQUcQXcQYcQAcQWcRacQZcQYcQAcQCcQBcQBcQBcQBcQBcQBcQzcZccWncWkcWgcOtcOtcOtcRhcRhcQzcNdcNdcNdcNdcNdaaaaaadXIcPAcPAcPAcZecOVcZdcZdcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcPbcPbcPbcPbdiKcQLcQAcQAcQAcQAcQAcQAcQAcQAcQAcQCcQBcQBcQDcQFcQEcQGcQzcQIcWccWdcOtcPzcQpcOtcOtcQOcQzaaaaaaaaaaaaaaaaaaaaacOVcRLcRMcPAcWfcPocQjcQjcPsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycQRcPbcPbcQPcPbcQVcQTcQUcQXcQYcQAcQWcRacQZcQYcQAcQCcQBcQBcQBcQBcQBcQBcQzdWHcWncWkdWGcOtcOtcOtcRhcRhcQzcNdcNdcNdcNdcNdaaaaaadXIcPAcPAcPAcZecOVcZdcZdcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcPbcPbcPbcPbdiKcQLcQAcQAcQAcQAcQAcQAcQAcQAcQAcQCcQBcQBcQDcQFcQEcQGcQzcQIdWvdWCcOtcPzcQpcOtcOtcQOcQzaaaaaaaaaaaaaaaaaaaaacOVcRLcRMcPAcWfcPocQjcQjcPsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcQycPbcQxcOOcQvcQucQtcQtcQtcRjcRjcRjcRkcRlcQscRncRocRjcRjcRjcQzcQzcQzcQrcQqcQqcPzcQocQlcQpcQecQicQzaaaaaaaaaaaaaaaaaaaaacSncSocSpcSpcSpcPscSscSscSqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcPbcPbcOOcOPcOKcOUcOUcOUcOUcRjcRrcRscRtcRucRvcRwcRxcRscRrcRjcQzcQzcQzcQzcQzcQzcPPcQgcQfcPJcQecQicQzaaaaaaaaaaaaaaaaaaaaaaaacSncSscSscSscSqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycQdcPbcOOcOPcOKcOKcOUcOUcOUcOUcRjcRscRHcRIcRucRvcRwcRJcRKcRscRjcPTcPRcPQcQbcQacQzcOtcPPcPJcOtcOtcPzcPfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycQdcPbcOOcOPcOKcOKcOUcOUcOUcOUcRjcRscRHdWucRucRvcRwdWucRKcRscRjcPTcPRcPQcQbcQacQzcOtcPPcPJcOtcOtcPzcPfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcOOcOPcOKcOKcOKcOUcOUcOUcOUcRjcRTcRscRTcRucRvcRwcRTcRscRTcRjcPccOtcOtcOtcOtcPecOtcOtcOtcOtcOtcOTcOSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycOOcOPcOKcOKcOKcOKcOKcOKcOKcOKcRjcSccRscRscRucRvcRwcRscRscSdcRjcOJcOEcODcOCcOAcQzcOtcOtcOtcOtcOtcOzcOuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycOycOycOycOycOycOycOycOycOycOycOycRjcSjcSkcSkcRucRvcRwcSlcSlcSmcRjcNTcOscOrcHgcGWcQzcNMcywcyvcyucVZcCScQzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11197,7 +11385,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRvcRjcSucSvcSvcSvcSvcSwcRjcRjcRjcRjcRjcRjcRjcRjcSxcRjcRjcRjcRjcRjcRjcRjcRjcRvcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRvcRjcSucSvcSvcSvcSvcSwcRjcSycVWcVYcVWcSBcSCcSCcSCcSCcSCcSBcSCcSBcSCcSDcRjcRvcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRvcRjcSEcSvcSvcSvcSvcSFcRjcSCcSGcSGcSGcSGcSGcSCcSCcSCcSGcSGcSGcSGcSHcSIcRjcRvcRjcRjcRjcRjcRjcRjcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRvcRjcSEcSJcSKcSKcSvcSvcSLcSCcSCcSMcSNcSMcSCcSCcSCcSCcSCcSMcSNcSMcSOcSCcRjcRvcRvcRvcRvcRvcRvcRvcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRvcRjcSEcSJcSKcSKcSvcSvdWOcSCcSCcSMcSNcSMcSCcSCcSCcSCcSCcSMcSNcSMcSOcSCcRjcRvcRvcRvcRvcRvcRvcRvcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRjcRvcRjcRjcRjcRjcRjcRjcRjcRjcSCcSGcSGcSGcSGcSGcSCcSCcSCcSGcSGcSGcSGcSPcSCcRjcRjcRjcRjcRjcRjcRjcRvcRjcRjcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRvcRjcRjcSQcSQcSQcSQcSQcRjcSRcSRcSRcSRcSRcSRcSRcSRcSRcSRcSRcSRcSRcSScSRcRjcSTcSTcSTcSTcSTcRjcRvcRvcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcRjcRjcSUcSUcSUcSUcSUcRjcSVcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSXcSVcRjcSUcSUcSUcSUcSUcRjcRjcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11205,7 +11393,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcSYcSZcTacTgcTacTgcTacTbcTccSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSXcTdcTbcTecThcTecThcTecSZcTfcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcSYcSZcTacTacTicTacTacTbcTccSWcSWcSWcSWcSWcTjcTkcTjcSWcSWcSWcSWcSXcTdcTbcTecTecTlcTecTecSZcTfcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcSYcSZcTacTacTacTacTacTbcTccSWcSWcSWcSWcSWcTmcTncTmcSWcSWcSWcSWcSXcTdcTbcTecTecTecTecTecSZcTfcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTG -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcSYcSZcTacTgcTacTgcTacTbcTccSWcSWcSWcSWcSWcZUcZXdabcSWcSWcSWcSWcSXcTdcTbcTecThcTecThcTecSZcTfcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTMcTLcTLcTLcTNcTNcTNcTLcTLcTNcTNcTNcTLcTLcTLcTLcTLcTG +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcSYcSZcTacTgcTacTgcTacTbcTccSWcSWcSWcSWcSWcZUdWJdabcSWcSWcSWcSWcSXcTdcTbcTecThcTecThcTecSZcTfcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTMcTLcTLcTLcTNcTNcTNcTLcTLcTNcTNcTNcTLcTLcTLcTLcTLcTG aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcRscTrcTacTacTacTacTacTbcTccSWcSWcSWcSWcSWcSWcZRcSWcSWcSWcSWcSWcSXcTdcTbcTecTecTecTecTecTrcRscRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTPcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTQcTG aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcTtcRjcTucTucTucTucTucRjcSVcSWcSWcSWcSWcSWcSWcZRcSWcSWcSWcSWcSWcSXcSVcRjcTucTucTucTucTucRjcTtcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcUdcTLcTLcTLcTLcTLcTG aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSjcTvcRscRjcTwcTwcTwcTwcTwcRjcSRcSRcSRcSRcSRcSRcTxcZQcTxcSRcSRcSRcSRcSScSRcRjcTzcTzcTzcTzcTzcRjcRscTAcSmcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTPcTLcTLcTLcTLcTLcTG @@ -11259,7 +11447,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvcUvcUvcUvcUvdSkcU aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvdSrdSvdSwdStcUvdSxdSzdSydSxcVzdSCdSDdSAdSBcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVbcVccVccVdcVaaaacVbcVgdjndjmcVJcVgcVdaaacVacVbcVccVccVdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvdSrdSqdSudStcUvdSsdSsdSsdSscVXcVAcVDcVAcVDcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVgcVEdjgcVgcVacVbcVgdjldjjdjidjjdjkcVgcVdcVacVgdjhcVLcVgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvdSrdSWdSVdStcUvdSsdSsdSsdSsdSsdSsdSsdSsdSscUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVgdjQdjRcVgcVcdjPdjSdjkdjjdjTdjjdjkdjSdjPcVccVgdjUdjVcVgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvdSrdSXcUWdStcUvdSsdSsdSsdSsdSsdSsdSYdTadSZcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVgdjXdjWcVgcVcdjYdjSdjkdjjdjkdjjdjkdjSdjYcVccVgdjZdkacVgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvdSrdSXcUWdStcUvdSsdSsdSsdSsdSsdSsdSYdTadSZcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVgdXpdjWcVgcVcdjYdjSdjkdjjdjkdjjdjkdjSdjYcVccVgdjZdkacVgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvcUvcUvcUvcUvcUvdSsdSsdSsdSsdSsdSsdSsdSsdSscUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVgdjMcWhcVgcVgcVgcVgcVgcVgdjKcVgcVgcVgcVgcVgcVgcWjdjLcVgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscVlcVmcVmdSTcVmcVmcVmdSTcVmcVmcVmdSTcVmcVmdSUcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVcdjPdjOdjNdjNdjNdjNdjNdjNcVgdjNcVgdjNdjNdjNdjNdjNdjNdjOdjPcVcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUsdTbdTcdTccVzdTfdTgdThcVzdTddTddTecVzdTjdTicVycUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVcdkqdkpdksdkrdkxdkycVgdjKcVgdjKcVgdjKcVgdkvdktdkudkwdkpdkqcVcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11391,12 +11579,12 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcchcacTacTacTacTacTacTacTacTacTacTacTacTacTacTacTacTacTacTacTacTacTacTacTacTacTacTacTchcchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcchcacTacTcYWcYWcYWcYWcYWcYWcYWcYWcYWacTacTacTacTacTacTacTacTacTcYXcYXcYXcYXcYXcYXcYXcYXacTchcchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcacTacTcYWcYYcYZcZacZbdeQdbkdbjcZfcYWcYXcYXcYXcYXcYXcYXcYXcYXdkAcYXcZhcZicZjcZkcZlcZmcYXacTacTchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcacTcYWcYYcYYcYYcZncZodbgcZqdbhcZscZtcYXcZmcZucZvcZwcZmcZxcYXdmwcYXcZzcZmcZmcZmcZmcZmcYXacTacTchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcacTcYWcYZcYYcYZcZAdbScZCcZqcZDcZEcZFcYXcZGcZmcZHcZmcZmdbRcYXdmwcYXcZJcZmcZmcZmcZmcZmcYXacTacTaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcacTcYWcYZcYYcYZcYZdbNdbGcZMcZNcZOcZPdbBdbycZScZmcZmcZTdbucYXdEzcYXcZWdbpcZmcZYcZZdaacYXacTacTchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcacTcYWcYZcYYcYZcZAdcPdcOdcNdcMdcMdcMdcLdcKdcGdcFdcDdgddaldaldalcYXdamdcEcZmdaodapdaqdardasdasdatbUMdauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcacTcYWcYYcYYcYYcZncZodbgcZqdbhcZscZtcYXcZmcZucZvcZwcZmcZxcYXdEzcYXcZzcZmcZmcZmcZmcZmcYXacTacTchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcacTcYWcYZcYYcYZcZAdbSdXscZqcZDcZEcZFcYXcZGcZmcZHcZmcZmdbRcYXdEzcYXcZJcZmcZmcZmcZmcZmcYXacTacTaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcacTcYWcYZcYYcYZcYZdbNdbGcZMcZNcZOcZPdbBdbycZScZmcZmcZTdbucYXdEFcYXcZWdbpcZmcZYcZZdaacYXacTacTchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcacTcYWcYZcYYcYZcZAdcPdcOdcNdcMdcMdcMdcLdcKdYjdYidXOdXHdaldaldalcYXdamdcEcZmdaodapdaqdardasdasdatbUMdauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcchcchcchcchcchcchcchcchcchdchcchcchcchcchcchcchcchcchcchcchcacTcYWcYZcYYcYZcZAdcndawdaxdaydaydaycYXdcmdaAdaBcZmdbTdaDdaEdalcYXcYXdbUdaGcYXcYXcYXcYXacTacTchcchcchcchcchcchcchcchcchcchcchcchcchcchcchcchcchcchdchcchcchcchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafchcacTcYWcYYdaHcYYdaIdcncZtdaldaldaldaldalddjdaKddgdaKddmddndaOdaPdaldaldcVdaRdaScYYdaHcYYcYWacTchcchcchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafchcacTcYWcYYdaHcYYdaIdcncZtdaldaldaldaldalddjdaKddgdaKdYpdYqdaOdaPdaldaldcVdaRdaScYYdaHcYYcYWacTchcchcchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaafcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTaaaaaachcacTcYWcYZcYYcYZcZAdcTdcSdaldaVdaVdaVdgUdcUdaYdaZdaVdaVddbdbbdaVdaVdaldcVdaRcZFcYZcYYcYZcYWacTchcchcaaaaafcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaaaaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaaachcacTcYWcYZcYYcYZcZAdbcddHdaldaVdbbdbbdbbddBdbbdbfdbbdbbddBdbbdbbdaVdaldcVdaRcZFddUddLddVcYWacTacTchcaafaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaafchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaaacYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTaagaaachcacTcYWcYZcYYcYZcZAddwddrdaldaVdbldbbdbbddBdbbdbmdbbdbbddBdbndbodaVdaldcVdaRcZFddEdbqdbrdbscYWacTchcaaaaagcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11404,8 +11592,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaagamqcYVacTcYWcYYcYYcYYdaIdcndbHdaldbIdbJdbKdbLddbdaVdbMdaVdaVdsrdbOdbPdbQdalddWdsNdsMdssdbDdbDdbVcYWacTcYVamqaagaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaagaaachcacTcYWcYZcYYcYZcZAdcncZFdaldaVdbWdbXdbbddBdbYdbmdbZdbbddBdcadcbdaVdalcZAdsQdccdcddbDdcedcfcYWacTchcaaaaagaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaaacYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTaagaaachcacTcYWcYZcYYcYZcZAdsQcZFdaldaVdbbdbbdbbddBdbbdbmdbbdbbddBdbbdbbdaVdalcZAdsQcZFdcgdchdcidcjcYWacTchcaaaaagcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaaaaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaaachcacTcYWcYZcYYcYZcZAdcncZFdaldaVdckdclduIduMdbbdbfdbbdbbddBdcodcpdaVdalcZAdsQcZFdcqdcrdcscYWacTacTchcaafaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaafchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaafcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTaaaaaachcacTcYWcYZcYYcYZcZAdcncZFdaldaVdaVdaVdctdaVdaVdcudaVdaVdcvdaVdaVdaVdalcZAdsQcZFcYZcYYcYZcYWacTchcchcaaaaafcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaaaaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaaachcacTcYWcYZcYYcYZcZAdcncZFdaldaVdckdclduIdYvdbbdbfdbbdbbddBdcodcpdaVdalcZAdsQcZFdcqdcrdcscYWacTacTchcaafaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaafchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaafcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTaaaaaachcacTcYWcYZcYYcYZcZAdcncZFdaldaVdaVdaVdctdaVdaVdcudaVdaVdYudaVdaVdaVdalcZAdsQcZFcYZcYYcYZcYWacTchcchcaaaaafcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTcYTaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcchcacTcYWcYYdaHcYYdaIdsQcZtdaldaldaldaldaldaldaldcwdaldaldaldaldaldaldaldaIdsQcZtcYYdaHcYYcYWacTchcchcchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcchcchcchcchcchcchcchcchcchcchcchcchdchcchcchcchcchcchcchcchcacTcYWcYZcYYcYZcZAduFdcydczcZPcZPdcAdcBdjCdusdutduGduHdcHdcAcZPcZPdcIdcJdsQcZFcYZcYYcYZcYWacTchcchcchcchcchcchcchcchdchcchcchcchcchcchcchcchcchcchcchdchcchcchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcacTcYWcYZcYYcYZcZAdtLdtMdtMdtMdtMdufdtNdtPdtQdcQdcRduqduldupdtMdsMdtMdtMdugcZFcYZcYYdcWcYWacTchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11456,24 +11644,24 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadekdekdekdekdekaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdekdekdeldemdendekdekaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafdekdekdeodendepdendeqdekdekaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaderdesdendetdeudendendevdekaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadendendendewdewdewdendendekaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadekdendewdewdeudewdeudexdekaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafdekdekdeydezdeudewdeAdekdekaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdekdekdendewdendekdekaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadekdekdendekdekaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdekdekdeldemdendekdekaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafdekdekdeodendepdendeqdekdekaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaderdesdendetdeudendendevdekaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadendendendewdewdewdendendekaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadekdendewdewdeudewdeudexdekaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafdekdekdeydezdeudewdeAdekdekaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdekdekdendewdendekdekaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadekdekdendekdekaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadejdejdejdejdejdejdejdejdejdejdejdejdejdejdejdejdejaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11632,7 +11820,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkQdkQdkQdkQdkQdeDdeEdlbdeDdlddeFdeDdkQdkQdkQdkQdeDdeDdlcdeDdeDanmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaafaagaafaagaagaafaafaagaafaafaagdkJdkEdkDdkCdkCdkHaafdkJdkEdkEdkDdkPdkCdkCdkCdkDdkDaafaafaafdkXdkYdkZdkYdkXaafaafaafdkDdkDdkPdkCdkPdkPdkDdkEdkEdkJaafdkHdkCdkPdkDdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdkQdmFdmFdmFdmFdeGdeHdmGdmHdeSdmIdeGdmFdmFdmFdmFdeDdmJdeHdmKdmLdeDdeDdeDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaagaafaafaagaagaagaagaagaagaagaagaagaagaagdkJdkEdkDdkCdkCdkDdkJdkJdkEdkDdkDdkPdkCdkCdkCdkDaafaafaafdkXdkXdkXdlYdkXdkXdkXaafaafaafdkDdkPdkPdkCdkPdkDdkDdkEdkJdkJdkDdkPdkCdkDdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdkQdmUdmTdmTdmTdledmVdmWdmOdmNdmMdledmQdmQdmQdmPdeDdmJdeHdeHdeHdmSdmrdmRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagdkJdkEdkDdkCdkCdkDdkEdkEdkEdkDdkPdkPdkCdkCdkDdkDaafaafdkXdkXdlZdlZdkYdlZdlZdkXdkXaafaafdkDdkDdkPdkCdkPdkPdkDdkEdkEdkEdkDdkPdkPdkDdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdkQdmkdmkdmkdmkdeDdmtdeHdmudeHdePdeDdmkdmkdmkdmkdeDdEFdeHdeHdmvdeDdeDdeDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafanmaafaafaafaafaafanmanmanmanmanmaafaagaafaagaafaagaafaagaafaagdkJdkJdkJdkJdkJdkJdkJdkJdkJdkJdkJdkEdkDdkCdkCdkDdkIdkDdkDdkDdkPdkPdkPdkPdkDdkXdkXdkXdkXdkYdlZdkYdkYdkYdlZdkYdkXdkXdkXdkXdkDdkPdkPdkCdkPdkDdkDdkDdkIdkDdkPdkPdkDdkJdkJanmanmanmaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdkQdmkdmkdmkdmkdeDdmtdeHdmudeHdePdeDdmkdmkdmkdmkdeDdYOdeHdeHdmvdeDdeDdeDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafanmaafaafaafaafaafanmanmanmanmanmaafaagaafaagaafaagaafaagaafaagdkJdkJdkJdkJdkJdkJdkJdkJdkJdkJdkJdkEdkDdkCdkCdkDdkIdkDdkDdkDdkPdkPdkPdkPdkDdkXdkXdkXdkXdkYdlZdkYdkYdkYdlZdkYdkXdkXdkXdkXdkDdkPdkPdkCdkPdkDdkDdkDdkIdkDdkPdkPdkDdkJdkJanmanmanmaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdkQdmEdmDdmDdmDdmydeSdeHdePdeHdmzdmydmxdmxdmxdlhdeDdmCdeHdeHdeHdmBdmrdmAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaagaagaagaagaagaagaagaagaagaagaagaagaagdkEdkEdkEdkEdkEdkEdkEdkEdkEdkEdkEdkEdkDdkCdkCdkPdkPdkPdkPdkPdkPdkCdkPdkPdkDdkYdkYdkYdkXdlZdlZdkYdkZdkYdlZdlZdkXdkYdkYdkYdkDdkPdkPdkCdkPdkPdkPdkPdkCdkPdkPdkCdkDdkEdkEaagaagaagaagaagaagaagaagaagaagaagaagaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdkQdmkdmkdmkdmkdeJdmldeRdeSdeHdeTdeJdmkdmkdmkdmkdeDdmmdeHdeHdmndeDdeDdeDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaagaagaagaagaagaafaafaagaagaafaagaafaagaafaagaafaagaafaagdlwdkEdlwdkEdkEdkEdkEdkEdkEdkEdkEdkEdkDdkPdkPdkPdkPdkPdkPdkPdkCdkPdkPdkPdmgdkZdkZdkZdmhdkYdkYdkYdkZdkYdkYdkYdmidkZdkZdkZdmjdkCdkPdkCdkCdkCdkCdkCdkCdkPdkPdkPdkDdkEdkEaagaagaagaagaagaagaagaagaagaafaagaafaagaafaagaagaagaafaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadeDdeDdeDdeDdeDdeDdeDdeDdeDdeUdeDdeDdeDdeDdeDdeDdeDdeDdmpdeHdeHdeHdmsdmrdmqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaagaagaagaagaagaagaagaafaagaafaagaagaagaagaagdkEdkEdkEdlwdkEdkEdkEdkEdkEdkEdkEdkEdkDdkCdkCdkPdkCdkCdkCdkCdkCdkCdkCdkCdkDdkYdkYdkYdkXdlZdlZdkYdkZdkYdlZdlZdkXdmodmodmodkDdkPdkPdkCdkPdkPdkPdkPdkPdkPdkCdkCdkDdkEdkEaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11641,12 +11829,12 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdfjdfbdfcdlXdlXdfcdfjdfvdfndfvdeXdeXdfddfedffdfgdfhdeDdlNdlWdlOdeHdfqaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafdkJdlwdltdlrdlrdltdkJdkJdkEdltdltdlsdlvdlsdlvdltaafaafaafdkXdkXdkXdlYdkXdkXdkXaafaafaafdltdlsdlsdlrdlsdltdltdkEdkJdkJdltdlrdlrdltdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdfjdfkdfcdfudfudfcdfrdfvdfvdfvdeXdeXdfodfedfedfedfpdeDdeHdeHdeHdeHdfqaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafdkJdlwdltdlrdlrdluaafdkJdkEdkEdltdlsdlsdlsdlsdltdltaafaafaafdkXdkYdkZdkYdkXaafaafaafdltdltdlsdlsdlrdlsdltdkEdkEdkJaafdludlrdlrdltdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdfrdfsdftdfcdfcdfcdfldeXdeXdeXdeXdeXdfidfedfedfedfBdeDdlNdlPdlOdeHdfqaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafdkJdlwdltdlrdlrdluaafdkJdkEdkEdltdlsdlvdlsdlvdlsdltdltaafaafdkXdkYdkZdkYdkXaafaafdltdltdlsdlsdlsdlsdlsdltdkEdkEdkJaafdludlsdlrdltdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdeDdfCdeDdfDdeDdeDdeDdeDdeDdlRdlQdfEdfqdfedfedfgdfhdeDdlVdlUdlTdlSdeJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafdkJdlwdltdlrdlsdluaafdkJdkEdkEdltdltdlsdlsdlsdlsdlsdltdltdltdkXdkYdkZdkYdkXdltdltdltdlsdlrdlrdlrdlsdltdltdkEdkEdkJaafdludlsdlsdltdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafclkdeDdfFdeDdlEdeDdlEdeDdfGdlDdeXdfqdfedfedfedfpdeDdlBdfddeDdlCdeDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafdkJdlwdltdlrdlsdluaafdkJdkEdkEdkEdlFdlvdlsdlvdlsdlvdlsdlrdltdltdltdlGdltdltdltdlsdlsdlrdlrdlrdlsdlsdlAdkEdkEdkEdkJaafdludlrdlsdltdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclkdeDdlHdeDdfDdeDdfDdeDdlLdlKdeXdeJdfydlMdfAdfBdeDdlJdlIdeDanmanmaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafdkJdlwdltdlrdlsdluaafdkJdkJdkJdkJdltdltdlsdlsdlsdlsdlrdlrdlrdlrdlrdlrdlrdlrdlrdlrdlrdlrdlrdlsdlsdltdltdkJdkJdkJdkJaafdludlrdlsdltdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdeDdfCdeDdfDdeDdeDdeDdeDdeDdlRdYDdfEdfqdfedfedfgdfhdeDdlVdYNdYMdYEdeJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafdkJdlwdltdlrdlsdluaafdkJdkEdkEdltdltdlsdlsdlsdlsdlsdltdltdltdkXdkYdkZdkYdkXdltdltdltdlsdlrdlrdlrdlsdltdltdkEdkEdkJaafdludlsdlsdltdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafclkdeDdfFdeDdlEdeDdlEdeDdfGdlDdeXdfqdfedfedfedfpdeDdYydfddeDdlCdeDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafdkJdlwdltdlrdlsdluaafdkJdkEdkEdkEdlFdlvdlsdlvdlsdlvdlsdlrdltdltdltdlGdltdltdltdlsdlsdlrdlrdlrdlsdlsdlAdkEdkEdkEdkJaafdludlrdlsdltdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclkdeDdlHdeDdfDdeDdfDdeDdlLdlKdeXdeJdfydlMdfAdfBdeDdYCdYBdeDanmanmaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafdkJdlwdltdlrdlsdluaafdkJdkJdkJdkJdltdltdlsdlsdlsdlsdlrdlrdlrdlrdlrdlrdlrdlrdlrdlrdlrdlrdlrdlsdlsdltdltdkJdkJdkJdkJaafdludlrdlsdltdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclkdeDdfJdfFdfFdfFdfFdeDdeDdlqdfddeDdlddlodlpdeFdeDdlmdlndeDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafdkJdlwdltdlrdlsdluaafaafaafaafaafaafdltdltdlvdlsdlvdlsdlrdlrdlrdlrdlrdlrdlrdlrdlrdlrdlrdlsdlsdltdltaafaafaafaafaafaafdludlrdlsdltdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoodeDdeDdeDdeDdeDdeDdeDdeDdlzdlydeDaafaafaafaafdeDdlxdfddeDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafdkJdlwdltdlrdlsdluaafaaaaafaaaaafaafaafdltdlAdltdlsdlrdlrdlrdlrdlrdlrdlrdlrdlrdlrdlrdlrdltdlAdltaafaafaafaaaaafaaaaafdludlrdlsdltdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafdeDdnydnzdeDaafaafaaaaafdnAaagaagaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafdkJdlwdltdlrdlrdluaafaaaaafaaaaafaaaaafdkJdkEdltdltdltdltdlrdlrdlrdlrdlrdlrdlrdltdltdltdltdkEdkJaafaaaaafaaaaafaaaaafdludlrdlrdltdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoodeDdeDdeDdeDdeDdeDdeDdeDdYxdlydeDaafaafaafaafdeDdlxdfddeDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafdkJdlwdltdlrdlsdluaafaaaaafaaaaafaafaafdltdlAdltdlsdlrdlrdlrdlrdlrdlrdlrdlrdlrdlrdlrdlrdltdlAdltaafaafaafaaaaafaaaaafdludlrdlsdltdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafdeDdYPdnzdeDaafaafaaaaafdnAaagaagaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafdkJdlwdltdlrdlrdluaafaaaaafaaaaafaaaaafdkJdkEdltdltdltdltdlrdlrdlrdlrdlrdlrdlrdltdltdltdltdkEdkJaafaaaaafaaaaafaaaaafdludlrdlrdltdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafdeDdnwdfddeDdnxaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafdkJdlwdltdlrdlsdluaafaafaafaafaafaafaafdkJdkEdkEdkEdkEdltdltdltdlrdlrdlrdltdltdltdkEdkEdkEdkEdkJaafaafaafaafaafaafaafdludlrdlsdltdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadntdnfdnfdnvdnfdnfdnuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafdkJdlwdltdlsdlsdluaafaaaaafaaaaafaaaaafdkJdkEdkEdkEdkEdkEdkEdltdlrdlrdlrdltdkEdkEdkEdkEdkEdkEdkJaafaaaaafaaaaafaaaaafdludlrdlsdltdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnndnmdnidnkdnrdnsdnqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdkJdlwdltdlsdlsdluaafaaaaafaaaaafaaaaafdkJdkJdkJdkJdkJdkJdkEdltdlrdlrdlrdltdkEdkJdkJdkJdkJdkJdkJaafaaaaafaaaaafaaaaafdludlsdlsdltdkEdkJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11669,14 +11857,14 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdltdlvdlvdltdnVdmXdnVdmXdnVdmXdmXdmYdmXdmYdmXdmYdmXdmYdludlrdlrdlrdludmZdmZdmZdmZdnadnadnadnadmZdmZdmZdmZdmZdmZdltdlsdlsdltaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdltdlvdlvdltdmXdmXdmXdmXdmXdmXdmXdmXdmYdmYdmYdmYdltdltdltdlrdlrdlrdltdltdltdmZdmZdnadnadnadnadmZdmZdmZdmZdmZdmZdltdlsdlsdluaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlvdlvdlvdoddnVdmXdnVdmXdnVdmXdnVdnVdnVdmXdmXdltdltdlrdlrdlrdlrdlrdlrdlrdltdltdnadnadnadnadnadmZdmZdmZdoedoedoedltdlsdlsdluaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoddlvdlvdlvdmXdmXdmXdmXdmXdmXdmXdmXdmXdmXdmXdltdlrdlrdlrdlrdlrdlrdlrdlrdlrdltdnadnadnadnadnadnadocdobdnYdnZdoadltdlsdlsdluaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoddlvdlvdoddnVdnVdnVdnVdnVdnVdnVdnVdnVdmXdmXdltdlrdlrdlrdlrdlrdlrdlrdlrdlrdltdnadnadnadmZdmZdmZdojdocdohdoidogdltdlsdlsdluaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoddlvdlvdlvdmXdmXdmXdmXdmXdmXdmXdmXdmXdmXdmXdltdlrdlrdlrdlrdlrdlrdlrdlrdlrdltdnadnadnadnadnadnadocdobdnYdYQdoadltdlsdlsdluaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoddlvdlvdoddnVdnVdnVdnVdnVdnVdnVdnVdnVdmXdmXdltdlrdlrdlrdlrdlrdlrdlrdlrdlrdltdnadnadnadmZdmZdmZdojdocdYRdYSdogdltdlsdlsdluaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoddoddoddoddnVdnVdmYdnVdnVdmYdmYdmYdmYdmYdmYdofdlrdlrdlrdlrdlrdlrdlrdlrdlrdnWdnadnadnadmZdmZdmZdmZdmZdoedoedoedltdlsdlsdluaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoddoddoddoddmYdnVdmYdnVdmYdmXdmYdmXdmYdmXdmYdofdlrdlrdlrdlrdlrdlrdlrdlrdlrdnWdnadnadnadnadnadnadokdopdnYdoodondltdlsdlsdluaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoddoddoddoddnVdnVdnVdnVdnVdmYdmYdmYdmYdmYdmYdofdlrdlrdlrdlrdlrdlrdlrdlrdlrdnWdnadnadnadnadnadnadnadokdohdoldomdltdlsdlsdluaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoddoddoddoddmYdnVdmYdnVdmYdmXdmYdmXdmYdmXdmYdofdlrdlrdlrdlrdlrdlrdlrdlrdlrdnWdnadnadnadnadnadnadokdopdnYdYUdondltdlsdlsdluaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoddoddoddoddnVdnVdnVdnVdnVdmYdmYdmYdmYdmYdmYdofdlrdlrdlrdlrdlrdlrdlrdlrdlrdnWdnadnadnadnadnadnadnadokdYRdYTdomdltdlsdlsdluaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoddoddoddoddnVdnVdnVdnVdnVdnVdnVdnVdnVdmXdmXdltdlrdlrdlrdlrdlrdlrdlrdlrdlrdltdnadnadnadnadnadnadnadnadoedoedoedltdlsdlsdluaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadordoqdoqdoqdoqdoqdoqdoqdoqdoqdoqdoqdordmXdmXdmXdmXdmXdltdlrdlrdlrdlrdlrdlrdlrdlrdlrdltdnadnadnadnadnadnadokdosdnYdotdoudltdlsdlsdluaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadordovdowdovdowdovdovdovdovdovdovdowdoqdnVdmXdnVdmYdmYdltdltdlrdlrdlrdlrdlrdlrdlrdltdltdoedoednadnadozdokdnadokdohdoydoxdltdlvdlvdluaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadordoqdoqdoqdoqdoqdoqdoqdoqdoqdoqdoqdordmXdmXdmXdmXdmXdltdlrdlrdlrdlrdlrdlrdlrdlrdlrdltdnadnadnadnadnadnadokdosdnYdYVdoudltdlsdlsdluaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadordovdowdovdowdovdovdovdovdovdovdowdoqdnVdmXdnVdmYdmYdltdltdlrdlrdlrdlrdlrdlrdlrdltdltdoedoednadnadozdokdnadokdYRdYXdoxdltdlvdlvdluaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadordovdovdovdovdovdowdovdowdordowdowdoqaaaaafaaadowdovdowdltdltdltdlrdlrdlrdltdltdltaafaafdoedoedoedoedoedoedoedoedoedoedltdlsdlsdluaagaafaagaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadordovdowdovdowdovdovdovdovdovdovdoAdoqaafaafaafdovdovdovdovdovdltdlrdlrdlrdltdowdowdovdovdowdovdowdovdovdovdovdowdovdowdlsdlvdlvdlsaafaafaafaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadordovdovdovdovdovdoAdovdovdoAdoAdoAdoqaaaaafaaadowdovdowdovdowdltdlsdlrdlrdltdowdovdovdovdordordordordordordordordordordordordordordordowdowaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11825,47 +12013,47 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadGpdqTdqTdqTdqTdqTdqTdqTdqTaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqVdqWdqXdqXdrndrndrndrndrndurdrndujdrcdqTdqTdqTdqTdqTdqTdqTdqTdqTdrddredrfaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqVdrgdrhdqTdqTdqTdqTdqTdqTdridridridrjdrkdrcdqTdqTdqTdrlduvduUduUduXdrpdrqdrrdrsdrsdqXdrsdrtdruaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrvdrhdqTdqTdqTdqTdqTdqTdqTdridrwdrxdrydrjdrkdrzdridrAdrBdrCdrDdrDdrDdrEdrFdrDdrDdrDdrDaafdrGdrHdruaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrIdqTdqTdqTdqTdqTdqTdqTdqTdrJduYdrLdrMdrNdrOdrPdrQdrRdrSdrTdrUdrVdrTdrWdrEdrTdrXdrUdrDaafaafdrYdrZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdsadsadqTdqTdsadsadsadsadqTdsadsadsadsadsadsadsadqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaadrIdqTdqTdqTdqTdqTdrJdrJdrJdrJdsbdscdvAdsddsedsedsedsfdsgdrTdshdsidsjdrEdrEdskdsidshdrDaafaafdvgdslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdsadqTdqTdqTdqTdqTdqTdsadsadqTdqTdqTdqTdsadsadsadsadqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTaaaaaaaaaaaaaaaaaaaaaaaaaaadrIdqTdqTdqTdqTdrJdrJdsmdsndrJdsodsodsodsodJIdsedsqdDvdDudrTdrTdrTdrTdqvdqudsvdsvdsvdsvdsvdsvdqtdsxdsyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadszdsAdszaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdsadqTdqTdqTdsadsadqTdsadsadsadqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdsaaaaaaaaaaaaaaaaaaaaaaaaadrIdqTdqTdqTdqTdrJdsBdsCdsDdsEdqsdsGdsHdsIdsJdsKdsLdDldDkdrTdsOdsPdrTdqmdqldsvdqkdqqdqrdqodqpdqndsYdsZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtadtbdtaaafaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdsadsadsadsadsadsadqTdqTdqTdqTdqTdqTdqTdsadsadsadsadsadqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaadrIdqTdqTdqTdqTdrJdtcdtddKIdrJdtfdsFdtgdthdtidtjdtkdEBdEAdEedEddEgdEfdEidqIdqKdqJdqEdqCdqFdqGdqHdtydsZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtzdtAdtBdtCaafaaaaaadqTdqTdqTdqTdqTdqTdqTdsadqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaaaaaaaaaaaaaaaaaaaaaadqVdtDaaadqTdqTdqTdrJdtcdtddtEdrJdtFdtgdtGdtHdKbdtJdtKdtJdDAdtJdtJdtJdrDdqydqxdsvdqwdqBdqCdqzdqAdqDdsYdsZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtSdtTdtTdtUdtVdtWdtaaafaaaaaadqTdqTdqTdqTdsadsadsadqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaaafdtXdtYdrsdrsdrsdtZduaaaadqTdqTdqTdrJdtcdubdsudrJdudduedGwdGNduhduidMrdukdGudumdunduodrDdspdrKdsvdstdradrbdrmdrodsvduudqZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduwduxduyduzduAduBduCaafaafdsadsadqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaduDduDduDaafduEduaaafaafaafaafaafaaadrJdrJdrJdrJdrJdEUdFtdrJdsodrDdqedqLduJdtJduKduLdEKduNduOduPdrDdqPdqOdqNdqMdqSdqYdqQdqRdqNdpkdBvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUaaadqUdqUdqUdqUdqUaaadqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduZdtTdtTdvadvbdtWdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaduDduDduDaaaaaadrIdvddvddvddvddvddvddvddrTdvedvfdObdvhdKOdKPdKJdKKdLddLcdLgdLfdtJdvqdvrdLhdvtdLndLMdLAducdtRdvzdvzdvzdtOdvzdvzdvzdpkdBvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUaaadqUdqUdqUdqUdqUaaadqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdvGdvHdvIdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaduDaaaaaadrIdvddvddvddvddvddvddvddvJdvKdvLdvMdHidICdIKdILdIQdJFdJEdsTdswdvWdvXdvYdJGdKcdNidMWdJHdsWdsVdvzdsUdwhdsXdKCdvzdtxdtIdBvdBvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdwldwmdwndwodvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaaaaaaaaaaaaadrIdvddvddvddvddvddvddvddwpdwqdwrdwsdymdwudwudwvdwwdwxdrDdpudptdrDdwAdwBdwCdwDdwEdDzdtJdpqdppdpsdprdpxdpydyvdwMdpvdpwdBvdBvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdwQdwRdwSdvcdwTdwUdvcdvcdvcdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaaaaaaaaaaaaaaaaaaadrIdvddvddvddvddvddvddvddwVdwqdwrdwsdymdxxdpodwvdwYdwZdrDdyldxNdrDdxcdtJdtJdtJdtJdxddtJdpndpmdvzdDwdxhdxidxjdxkdpkdpldCidCiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdxodxpdxqdxrdxsdxtdszduBdxudvcdxvdxwdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaaaaaaaaaaaaaaaaaaadrIdvddvddvddvddvddvddvddrTdwqdwrdwsdymdxydpJdwvdxzdxAdrDdzkdpNdpOdxEdxFdxGdxHdrDdxIdxJdpLdyZdzgdpMdxOdxPdxQdxRdpkdBvdBvdBvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdxSdxTdxpdxUdxVdxWdxXdxYdxudxZdxwdyadxvdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaaaaaaaaaaaaaaaaaaadybdycdyddyedpBdycdyddygdyhdyidyjdpzdpAdpzdrDdrDdrDdrDdrDdySdpHdpIdxEdrEdxGdzQdrDdyqdyrdpGdpFdpEdYzdywdpDdpCdyzdyAdyBdrDdyCdtYdrsdrsdrsdrsdrsdrsdrtdyDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyEdxSdyFdxSdxqdxqdwTdyGdxVdvcdwodyHdvcdxwdyIdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaaaaaaaaaaaaaaaaaaadyJdpZdyLdpYdAUdATdATdARdASdAXdATdqadAWdyTdyUdyVdyWdyXdAGdpVdpUdzbdzcdzddzedzfdrDdzhdzidpXdpWdrDdvzdzldvzdrDdrDdzmdzndzodzpdzqdzrdzrdzsdzrdzrdzrdztdrZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdzudzvdxqdzwdzxdxqdvIdzydxWdzzdzAdzBdvcdvcdvcdvcdvcdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaadzCdzDdyLdyLdzEdyLdzFdzGdAjdzIdzJdpTdzLdzMdyUdAkdAldAcdAbdAadzZdzYdzXdzWdzPdAidAhdAgdzPdpSdpRdpQdAddzRdzSdzOdpPdzWdzPdzHdzNdzUdDHdzTdAmdAndAodApdzrdslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdAqdArdAsdxqdzxdAtdxUdAudxVdAvdvcdAwdAxdvcdAydxudAzdAAdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaadABdACdyLdyLdADdyLdAEdAFdBDdAHdBFdqgdAKdDXdyUdBfdANdAOdAPdBHdBGdBQdBPdBTdBSdBWdBVdBZdBYdqhdBVdBVdCrdBWdBVdCsdqidqjdCBdCCdCEdCFdCIdDfdBldBmdBmdBndzrdslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafdsadsadvcdxtdBodBpdBqdAsdBrdBsdxWdBtdszduBdBudvcdAydwodxudAAdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdqTdqTdBvdBvdBvdBvdBvdBvdqTdqTdqTdqTdqTdqTdBwdBxaaaaaaaaadBydBzdyLdBAdAYdAZdDTdBbdBcdBddBedqbdBJdBKdyUdqcdyVdBLdBMdBMdrDdrDdqfdBOdBidBkdBOdBRdBjdBCdBRdBUdBBdBgdBUdrDdqddqedvZdCadzrdCbdCcdzrdCddBmdBmdCedzrdslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdvcdvcdvcdvcdvcdvcdxsdxVdCfdBodxVdzydCgdBtdBtdxYdxudAwdvcdAydvIdChdAAdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdBvdBvdBvdCidCidCidCidBvdBvdBvdqTdqTdCjdCkdCldyDaaaaaaaaadCmdCndyddyedCodCodCodCodvUdpgdvSdrTdrTdrTdyUdvTdBMdCtdBMdCudCvdCwdyYdBOdwfdwcdCAdBRdwbdwedCDdBUdwddvVdCGdBUdCHdwadvZdphdCKdzrdzrdzrdCLdCMdCNdApdzrdslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdvcdCOduBdxWdCPdvcdCQdCRdCSdvcdzzdvcdCTdCUdCVdvcduBdCWdtbdCXdvIdwndtbdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdqTdBvdBvdCidCidCidCidCidCidCidCidBvdBvdqTdCYdCZdrYdDadrsdrsdrsdtZduaaafaafdDbdDcdDddDedwHdDgdwtdwjdwidwGdpjdpidDndDodDpdDqdDrdDsdDtdBOdxfdwLdALdBRdxadxbdBadBUdxedxBdCxdBUdDDdxKdxCdDGdDmdDIdDJdzrdzrdzrdzrdzrdDKdtDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadvcdCOdvIduBdxUdzzdCWdBodDLdBodDMduBduBdDNdxuduBdvIdvIdvcdtbdDOdvIduBdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdBvdBvdCidCidCidCidCidCidCidCidCidCidDPdDQdDRdDQaaaaaaaaaaaaaaaaaaaaaaaaaafdDbdDcdDSdvudvsdDVdvpdxgdDYdDYdpadpbdBMdCtdBMdEadBMdoZdEcdvodBOdvndBOdBRdBRdvmdBRdBUdBUdvldBUdBUdEhdvkdvjdEkdEldEldEmdCKdEndqWdrsdrsdEodEpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadvcdCOdEqdvIdvIdzzdvIdChdwTdvIdErdDMdChdBudEsdvIdEtdwodvcdBodtbdCWduBdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdBvdDQdCidCidCidCidCidCidCidCidCidCidCidEudEvdEwdExaaaaaaaaaaaaaaaaaaaaaaaaaafdDbdDcdEydvQdvRdvQdvPdECdEDdDYdpfdyUdyUdEGdpddEIdBMdpcdEJdvFdvNdvBdvCdvDdvEdvvdvwdvxdvydvOdEVdBUdEWdpedCKdEYdEZdEYdEZdCKdFadFbdsaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadsadvcdCOdFcdxUdxsdvcdFddvcdFedFfdvcdxWdvcdFedFfdvcdxVdCWdvcdDNdFgdtbdAwdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdBvdFhdCidCidCidCidCidCidCidCidCidCidCidCidFidFjdExaaaaaaaaaaaaaaaaaaaaaaaaaafdDbdoVdECdECdFkdFldFmdECdFndDYdEEdyUdMCdFqdFpdFsdBMdoWdviduWdFwdFxdFydBRdFzdFAdFBdBUdFCdFDdFEdBUdFFdwFdFHdCKdCKdCKdCKdFIdFJdqTdsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadGpdqTdqTdqTdqTdqTdqTdqTdqTaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqVdqWdqXdqXdrndrndrndrndrndurdrndujdrcdqTdqTdqTdqTdqTdqTdqTdqTdqTdrddredrfaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqVdrgdrhdqTdqTdqTdqTdqTdqTdridridridrjdrkdrcdqTdqTdqTdrlduvduUduUduXdrpdrqdrrdrsdrsdqXdrsdrtdruaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrvdrhdqTdqTdqTdqTdqTdqTdqTdridrwdrxdrydrjdrkdrzdridrAdrBdrCdrDdrDdrDdrEdrFdrDdrDdrDdrDaafdrGdrHdruaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrIdqTdqTdqTdqTdqTdqTdqTdqTdrJduYdrLdrMdrNdrOdrPdrQdrRdrSdrTdrUdrVdrTdrWdrEdrTdrXdrUdrDaafaafdrYdrZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdsadsadqTdqTdsadsadsadsadqTdsadsadsadsadsadsadsadqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaaaaaaaaaaaaaadrIdqTdqTdqTdqTdqTdrJdrJdrJdrJdsbdscdvAecrdsedsedsedsfdsgdrTdshdsiecsdrEdrEectdsidshdrDaafaafecqdslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdsadqTdqTdqTdqTdqTdqTdsadsadqTdqTdqTdqTdsadsadsadsadqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTaaaaaaaaaaaaaaaaaaaaaaaaaaadrIdqTdqTdqTdqTdrJdrJdsmdsndrJdsodsodsodsodJIdsedsqdDvdDudrTdrTdrTdrTdqvdqudsvdsvdsvdsvdsvdsvdqtdsxdsyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadszdsAdszaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdsadqTdqTdqTdsadsadqTdsadsadsadqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdsaaaaaaaaaaaaaaaaaaaaaaaaadrIdqTdqTdqTdqTdrJdsBdsCdsDdsEdqsdsGdsHdsIdsJdsKdsLdDldDkdrTdsOdsPdrTdqmdqldsvdqkebXebYebWdqpdqndsYdsZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtadtbdtaaafaaaaaaaaadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdsadsadsadsadsadsadqTdqTdqTdqTdqTdqTdqTdsadsadsadsadsadqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaadrIdqTdqTdqTdqTdrJdtcdtddKIdrJdtfdsFdtgdthdtidtjdtkdEBdEAdEedEddEgeccdEidqIdqKdqJecadqCecbdqGdqHdtydsZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtzdtAdtBdtCaafaaaaaadqTdqTdqTdqTdqTdqTdqTdsadqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaaaaaaaaaaaaaaaaaaaaaadqVdtDaaadqTdqTdqTdrJdtcdtddtEdrJdtFdtgdtGdtHdKbdtJdtKdtJebZdtJdtJdtJdrDdqydqxdsvdqwdqBdqCdqzdqAdqDdsYdsZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtSdtTdtTdtUdtVdtWdtaaafaaaaaadqTdqTdqTdqTdsadsadsadqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaaafdtXdtYdrsdrsdrsdtZduaaaadqTdqTdqTdrJdtcdubdsudrJdudduedGwdGNduhecidMrdukdGudumdunduodrDeckecjdsvecldradrbdrmechdsvduudqZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduwduxduyduzduAduBduCaafaafdsadsadqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaduDduDduDaafduEduaaafaafaafaafaafaaadrJdrJdrJdrJdrJdEUecgdrJdsodrDdqeecdduJdtJduKduLdEKduNduOduPdrDdqPdqOdqNecedqSdqYdqQecfdqNdpkdBvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduZdtTdtTdvadvbdtWdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaduDduDduDaaaaaadrIdvddvddvddvddvddvddvddrTdvedvfdObdvhdKOdKPdKJdKKdLdecpdLgdLfdtJdvqdvrdLhdvtdLndLMdLAducdtRdvzdvzdvzdtOdvzdvzdvzdpkdBvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdvGdvHdvIdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaduDaaaaaadrIdvddvddvddvddvddvddvddvJdvKdvLdvMdHidICdIKdILdIQdJFecmdsTdswecndvXdvYdJGdKcdNidMWecodsWdsVdvzdsUdwhdsXdKCdvzdtxdtIdBvdBvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdwldwmdwndwodvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaaaaaaaaaaaaadrIdvddvddvddvddvddvddvddwpdwqdwrdwsdymdwudwudwvdwwdwxdrDdpudptdrDdwAdwBdwCdwDdwEdDzdtJdpqdppeaXdprdpxdpydyvdwMdpvdpwdBvdBvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdwQdwRdwSdvcdwTdwUdvcdvcdvcdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaaaaaaaaaaaaaaaaaaadrIdvddvddvddvddvddvddvddwVdwqdwrdwsdymdxxdpodwvdwYdwZdrDeaWeaVdrDeaRdtJdtJdtJdtJeaNdtJdpneaLdvzdDwdxhdxidxjdxkdpkdpldCidCiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUaaadqUdqUdqUdqUdqUaaadqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdxodxpdxqdxrdxsdxtdszduBdxudvcdxvdxwdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaaaaaaaaaaaaaaaaaaadrIdvddvddvddvddvddvddvddrTdwqdwrdwsdymdxydpJdwvdxzdxAdrDdzkdpNdpOdxEdxFdxGdxHdrDdxIdxJdpLdyZdzgdpMdxOdxPdxQdxRdpkdBvdBvdBvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUaaadqUdqUdqUdqUdqUaaadqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdxSdxTdxpdxUdxVdxWdxXdxYdxudxZdxwdyadxvdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaaaaaaaaaaaaaaaaaaadybdycdyddyeebedycdyddygdyheaYeaZebbebdebbdrDdrDdrDdrDdrDdySdpHdpIdxEdrEdxGdzQdrDdyqdyrdpGdpFdpEdYzdywdpDdpCdyzdyAdyBdrDdyCdtYdrsdrsdrsdrsdrsdrsdrtdyDaaaaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaadqUdqUdqUdqUdqUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyEdxSdyFdxSdxqdxqdwTdyGdxVdvcdwodyHdvcdxwdyIdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsaaaaaaaaaaaaaaaaaaadyJdpZdyLdpYdAUdATdATdARdASdAXdATebAdAWdyTdyUdyVdyWdyXdAGdpVdpUdzbdzcdzddzedzfdrDdzhdziebyebudrDdvzebzdvzdrDdrDdzmdzndzodzpdzqdzrdzrdzsdzrdzrdzrdztdrZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdzudzvdxqdzwdzxdxqdvIdzydxWdzzdzAdzBdvcdvcdvcdvcdvcdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaaaaadzCdzDdyLdyLdzEdyLdzFebsdAjdzIdzJebtdzLdzMdyUdAkdAldAcebodAadzZebldzXdzWdzPdAidAhdAgdzPdpSdpRdpQdAddzRdzSdzOebgdzWdzPdzHdzNdzUdDHdzTdAmdAndAodApdzrdslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdAqdArdAsdxqdzxdAtdxUdAudxVdAvdvcdAwdAxdvcdAydxudAzdAAdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTaaaaaaaaaaaadABdACdyLdyLdADdyLdAEdAFdBDdAHdBFebHdAKdDXdyUdBfdANdAOdAPdBHdBGebJdBPdBTdBSdBWdBVdBZdBYdqhdBVdBVdCrdBWdBVdCsebLdqjdCBdCCebPdCFdCIebQdBldBmdBmdBndzrdslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafdsadsadvcdxtdBodBpdBqdAsdBrdBsdxWdBtdszduBdBudvcdAydwodxudAAdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdqTdqTdBvdBvdBvdBvdBvdBvdqTdqTdqTdqTdqTdqTdBwdBxaaaaaaaaadBydBzdyLdBAdAYdAZdDTdBbdBcdBddBeebBdBJdBKdyUdqcdyVdBLdBMdBMdrDdrDdqfdBOdBidBkdBOdBRdBjdBCdBRdBUdBBdBgdBUdrDdqddqedvZebDdzrdCbdCcdzrdCddBmdBmdCedzrdslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdvcdvcdvcdvcdvcdvcdxsdxVdCfdBodxVdzydCgdBtdBtdxYdxudAwdvcdAydvIdChdAAdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdBvdBvdBvdCidCidCidCidBvdBvdBvdqTdqTdCjdCkdCldyDaaaaaaaaadCmdCndyddyedCodCodCodCodvUeatdvSdrTdrTdrTdyUeaBdBMdCtdBMdCudCvdCwdyYdBOdwfdwcdCAdBRdwbdwedCDdBUdwddvVdCGdBUdCHdwadvZdphdCKdzrdzrdzrdCLdCMdCNdApdzrdslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdvcdCOduBdxWdCPdvcdCQdCRdCSdvcdzzdvcdCTdCUdCVdvcduBdCWdtbdCXdvIdwndtbdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdqTdBvdBvdCidCidCidCidCidCidCidCidBvdBvdqTdCYdCZdrYdDadrsdrsdrsdtZduaaafaafdDbdDcdDddDedwHdDgdwtdwjeaCdwGdpjdpieaGdDodDpdDqdDrdDsdDtdBOdxfdwLdALdBRdxadxbdBadBUdxedxBdCxdBUeaKdxKdxCdDGdDmdDIdDJdzrdzrdzrdzrdzrdDKdtDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadvcdCOdvIduBdxUdzzdCWdBodDLdBodDMduBduBdDNdxuduBdvIdvIdvcdtbdDOdvIduBdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdBvdBvdCidCidCidCidCidCidCidCidCidCidDPdDQdDRdDQaaaaaaaaaaaaaaaaaaaaaaaaaafdDbdDcdZXdvudvsdDVdvpdxgdDYdDYdpadpbdBMdCtdBMdEadBMdoZdEcdZUdBOdZPdBOdBRdBRdZIdBRdBUdBUdZCdBUdBUdEhdvkdvjdEkdEldEldEmdCKdEndqWdrsdrsdEodEpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadvcdCOdEqdvIdvIdzzdvIdChdwTdvIdErdDMdChdBudEsdvIdEtdwodvcdBodtbdCWduBdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdBvdDQdCidCidCidCidCidCidCidCidCidCidCidEudEvdEwdExaaaaaaaaaaaaaaaaaaaaaaaaaafdDbdDcdEydvQdvRdvQdvPdECdEDdDYdpfdyUdyUdEGdpddEIdBMdpcdEJdvFeaqealeameaoeapdZYdZZeaieakdvOdEVdBUdEWdpedCKdEYdEZdEYdEZdCKdFadFbdsaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadsadvcdCOdFcdxUdxsdvcdFddvcdFedFfdvcdxWdvcdFedFfdvcdxVdCWdvcdDNdFgdtbdAwdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdBvdFhdCidCidCidCidCidCidCidCidCidCidCidCidFidFjdExaaaaaaaaaaaaaaaaaaaaaaaaaafdDbdoVdECdECdFkdFldFmdECdFndDYdEEdyUdMCdFqdFpdFsdBMdoWdZAdZxdFwdFxdFydBRdFzdFAdFBdBUdFCdFDdFEdBUdFFdwFdFHdCKdCKdCKdCKdFIdFJdqTdsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadsadsadsadsadvcdvcdvcdvcdvcdvcdFddvcdFKdxudxWdAwdwodxVdBrdxVdzBdxUdvcdFedFLdFMdFNdvcdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdBvdDPdCidCidCidCidCidCidCidCidCidCidCidCidFidEwdExaaaaaaaaaaaaaaaaaaaaaaafaafdDbdFOdFPdFPdFQdFRdECdFSdFTdDYdFodyUdoXdFqdoYdFsdBMdFVdFWdBOdFXdFYdFZdBRdGadGbdGcdBUdGddGedGfdBUdGgdGhdFHdqTdsadqTdGidGjdGkdqTdsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadsadsadsadsadsadsadsadsadsadsadvcdFddvcdxudAwdGldzydtWdxUdxudvcdxVdwodvcdGmdGndGndGodvcdGpdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdBvdBvdCidCidCidoPdCidCidCidCidCidCidCidCidGqdGraafaaaaaaaaaaaaaaaaaaaafaafaafdDbdDbdGsdGtdDbduSdGvduTdGvdDbdoOdGTdCidCidCidCidBMdBMdBMdBOdBOdBOdBOdBRdBRdBRdBRdBUdBUdBUdBUdBUdFHdFHdGydGzdrndrndGAdFbdqTdqTdsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadsadsadsadsadsadsadsadsadsadsadvcdFddvcdAwduBdzBdxudxVdwodzBdvcdFddvcdvcdAydtbdGndGBdGCdGpdGpdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdBvdoFdoJdCidoUdoFdoKdCidCidCidCidCidCidCidCidGDdGEaaaaaaaaaaaaaaaaafdGFdGGdGHdGIdGJdoSdoRdoQduVdoTdGPdGQdDbdGxdCidCidCidCidCidGRdGSdGTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdrldGUdFbdGVdqTdqTdqTdqTdqTdsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadsadsadsadsadsadsadsadsadsadsadsadvcdFddvcdvcdvcdvcdvcdvcdvcdvcdvcdFddvcdAydtbdAzdtbdGodGWdGpdGpdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdBvdoFdCidCidCidoFdoKdCidCidCidCidCidCidCidGXdGYdGZdHadHadHadHadHadHadHbdHcdHddHedHedoLdFrdFrdDbduQduRdHjdDbdGxdCidCidCidCidCidFidHkdHldqTdqTdsadsadsadsadsadsadqTdqTdqTdqTdqTdrldGUdFbdHmdGpdHmdqTdqTdqTdqTdsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHnaaaaaaaaaaaaaaadHndsadsadsadsadsadsadsadsadsadsadsadsadsadsadvcdFddFddFddFddFddFddFddFddFddFddFddvcdAydAzdAzdAzdAAdvcdGpdGpdGpdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdBvdCidCidCidCidoMdoNdCidCidCidCidCidCidCidCidHodHpdHpdHpdHpdHpdHpdHpdHpdHodCidCidCidCidCidCidDbdGvdHqdGvdDbdHrdCidCidCidCidCidHsdHtdHudrndrndrndrndHvdrndrndrndrndrndHwdHxdHydHzdFbdGpdGpdGpdHmdBwdqTdsadsadsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadsadsadsadsadsadsadsadsadsadsadvcdFddvcdxudAwdGldzydtWdxUdxudvcdxVdwodvcdGmdGndGndGodvcdGpdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdBvdBvdCidCidCidoPdCidCidCidCidCidCidCidCidGqdGraafaaaaaaaaaaaaaaaaaaaafaafaafdDbdDbdGsdGtdDbduSdGvdZqdGvdDbdoOdGTdCidCidCidCidBMdBMdBMdBOdBOdBOdBOdBRdBRdBRdBRdBUdBUdBUdBUdBUdFHdFHdGydGzdrndrndGAdFbdqTdqTdsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadsadsadsadsadsadsadsadsadsadsadvcdFddvcdAwduBdzBdxudxVdwodzBdvcdFddvcdvcdAydtbdGndGBdGCdGpdGpdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdBvdoFdoJdCidoUdoFdoKdCidCidCidCidCidCidCidCidGDdGEaaaaaaaaaaaaaaaaafdGFdGGdGHdGIdGJdoSdoRdoQdZwdZvdGPdGQdDbdGxdCidCidCidCidCidGRdGSdGTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdrldGUdFbdGVdqTdqTdqTdqTdqTdsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadsadsadsadsadsadsadsadsadsadsadsadvcdFddvcdvcdvcdvcdvcdvcdvcdvcdvcdFddvcdAydtbdAzdtbdGodGWdGpdGpdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdBvdoFdCidCidCidoFdoKdCidCidCidCidCidCidCidGXdGYdGZdHadHadHadHadHadHadHbdHcdHddHedHedoLdFrdFrdDbdZhduRdHjdDbdGxdCidCidCidCidCidFidHkdHldqTdqTdsadsadsadsadsadsadqTdqTdqTdqTdqTdrldGUdFbdHmdGpdHmdqTdqTdqTdqTdsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHnaaaaaaaaaaaaaaadHndsadsadsadsadsadsadsadsadsadsadsadsadsadsadvcdFddFddFddFddFddFddFddFddFddFddFddvcdAydAzdAzdAzdAAdvcdGpdGpdGpdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdBvdCidCidCidCidoMdoNdCidCidCidCidCidCidCidCidHodHpdHpdHpdHpdHpdHpdHpdHpdHodCidCidCidCidCidCidDbdGvdZodGvdDbdHrdCidCidCidCidCidHsdHtdHudrndrndrndrndHvdrndrndrndrndrndHwdHxdHydHzdFbdGpdGpdGpdHmdBwdqTdsadsadsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadvcdvcdvcdvcdvcdvcdvcdvcdvcdvcdvcdvcdvcdvcdFNdHAdHBdvcdvcdGpdGpdGpdGpdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdBvdCidCidCidCidCidCidCidCidCidCidCidCidCidGXdHddHCdHDdHDdHDdHDdHDdHDdHDdGXdHddCidCidCidCidCidCidHEdHFdHGdHHdHIdHJdCidCidCidCidGTdGTdGTdqTdqTdsadsadsadsadsadsadsadsadHKdHLdHMdHNdGpdHmdGpdGpdHmdqTdqTdqTdsadsadsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadGpdGpdGpdvcdGndGndAzdvcdGpdGpdGpdGpdGpdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdBvdoFdoJdCidCidCidCidCidCidCidCidCidCiaaaaaaaaaaaaaaaaaaaaaaaadBvdBvdBvdBvdBvdBvdBvdBvdCidCidCidCidCidCidHEdHOdHGdCidCidCidBvdBvdqTdqTdqTdqTdsadsadsadsadsadsadsadBwdHmdGpdHPdGpdHmdGpdGpdGpdqTdqTdqTdqTdqTdsadsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadGpdGpdGpdvcdHQdHRdHQdvcdGpdGpdGpdGpdGpdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdBvdoFdCidCidCidCidCidCidCidCidCidCidCiaaaaaaaaaaaaaaaaaaaaaaaadBvdBvdBvdqTdqTdqTdqTdBvdBvdBvdCidCidCidCidCidHSdCidCidCidCidBvdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadBwdsadGpdGVdsadqTdsadsadqTdqTdqTdqTdsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11969,18 +12157,18 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndH aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHVdHVdHVdHVdHVdHVdHVdHVdHndHndHndHndHndHndHndHVdHVdHVdHVdHVdHVdHndHndHndHndHndHndHndHndHndCidCidCidCidCidCidCidCidJjdJkdJldCidCidCidBvdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdqTdBvdBvdBvdBvdBvdBvdBvdqTdqTdqTdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadIPdJmdIPdIPdIPdIPdIPdIPdMvdJndCidCidCidCidCidCidCidCidCidCidCiaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdDQdysdMCdytdytdyudCidIedHIdHJdCidCidCidCidCidCidCidGpdGpdBvdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHVdHVdHVdHVdHVdHVdHndHndHndHndHndHndHndHVdHVdHVdHVdHVdHVdHndHndHndHndCidCidJodJodJodJodJodJodJpdJqdJrdJodJodJodJodJodCidCidCidBvdqTdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdqTdqTdBvdBvdCidCidCidCidCidBvdBvdBvdBvdBvdqTdqTdqTdqTdqTdqTdqTdsadsadsadsadIPdIPdIPdIPdJsdJtdJudIPdITdJvdIPdRxdIPdIPdIPdJwdJxdJydIPdCidCidCidCidCidCiaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdBvdDQdyndFpdyodyodOsdCidHEdHOdHGdCidCidCidCidCidCidCidCidCidBvdBvdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadqTdsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHVdHVdHVdHVdHVdHVdHndHndHndHndHndHndHndHVdHVdHVdHVdHVdHndHndBvdCidCidCidJodJzdwgdJBdJCdJDdMfdMcdMtdMpdMudJJdJKdJLdHJdCidCidBvdBvdBvdBvdqTdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdqTdBvdBvdCidCidCidCidCidCidCidCidCidCidBvdBvdBvdBvdBvdqTdqTdqTdqTdsadsadsadIPdJMdJNdJOdJPdJNdJNdIPdIXdIYdJQdMvdIPdJRdJSdJTdJTdJTdJedCidCidCidCidCidCidCiaaaaaaaaaaaaaaaaaaaaaaaaaaadBvdBvdBvdDQdwydNbdwkdwkdHGdCidCidJUdJVdJWdJXdJVdJVdCidCidCidCidCidCidBvdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadqTdsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHndHVdHVdHVdHndHndHndHndHndHndHndHndHVdHVdHVdHndHndqTdBvdCidCidCidJodJYdJAdJZdKadJAdMydJAdJAdMwdKddKedJKdKfdKgdCidCidCidCidCidBvdBvdBvdqTdqTdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdBvdBvdDQdCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidBvdBvdqTdqTdqTdqTdqTdqTdIPdTwdJNdKidTxdKkdKldIPdIPdIPdIPdMvdIPdJRdKmdKmdKndKmdJidCidCidCidCidCidCidCiaaaaaaaaaaaaaaaaaaaaaaaaaaadCidCidCidCidCidCidCidCidCidCidCidJUdEjdEjdEjcsPdJVdCidKqdCidCidCidEudDQdBvdqTdqTdsadsadsadsadsadsadsadsadsadsadqTdqTdsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHVdHVdHVdHndHndHndHndHndHndHndHndHndHndHndHndHndqTdBvdCidCidCidJodKrdJAdJAdKsdJAdMydJAdJAdMEdMFdwzdKvdJLdHGdCidCidCidCidCidCidCidBvdBvdBvdBvdqTdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadqTdqTdBvdBvdCidJfdCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidBvdBvdBvdBvdqTdqTdqTdIPdKwdJNdKxdJNdKydJNdKzdKndKAdKBdMHdIPdJRdKmdKDdMIdwIdJndCidCidCidCidCidCiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadCidCidCidCidCidKFdKFdKGdKHdJUdMJdMLdMKdKLdJVdJVdJVdJVdCidCidCidCidBvdBvdqTdqTdsadsadsadsadsadsadsadsadsadqTdsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHndHVdHVdHVdHndHndHndHndHndHndHndHndHVdHVdHVdHndHndqTdBvdCidCidCidJodJYdJAdJZdKadJAdMydJAdJAdMwecudKedJKecvdKgdCidCidCidCidCidBvdBvdBvdqTdqTdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdBvdBvdDQdCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidBvdBvdqTdqTdqTdqTdqTdqTdIPdTwdJNdKidTxdKkdKldIPdIPdIPdIPdMvdIPdJRdKmdKmdKndKmdJidCidCidCidCidCidCidCiaaaaaaaaaaaaaaaaaaaaaaaaaaadCidCidCidCidCidCidCidCidCidCidCidJUdEjdEjdEjcsPdJVdCidKqdCidCidCidEudDQdBvdqTdqTdsadsadsadsadsadsadsadsadsadsadqTdqTdsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHVdHVdHVdHndHndHndHndHndHndHndHndHndHndHndHndHndqTdBvdCidCidCidJodKrdJAdJAdKsdJAdMydJAdJAdMEdMudwzdKvdJLdHGdCidCidCidCidCidCidCidBvdBvdBvdBvdqTdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadqTdqTdBvdBvdCidJfdCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidBvdBvdBvdBvdqTdqTdqTdIPdKwdJNdKxdJNdKydJNdKzdKndKAdKBdMHdIPdJRdKmdKDdMIdwIdJndCidCidCidCidCidCiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadCidCidCidCidCidKFdKFdKGdKHdJUdMJdMLdMKdKLdJVdJVdJVdJVdCidCidCidCidBvdBvdqTdqTdsadsadsadsadsadsadsadsadsadqTdsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndsadsadBvdBvdCidCidJodKMdJAdKNdMMdMpdMNdKRdJAdJodJodJodJodJodJodIedHJdCidCidCidCidCidCidCidCidBvdBvdBvdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadqTdqTdqTdBvdCidCidCidCidCidCidCidCidCidCidCidIedHJdCidCidCidCidCidCidCidCidCidBvdBvdqTdqTdIPdIPdIPdIPdIPdIPdIPdKSdMOdKUdKSdMOdIPdIPdIPdIPdwJdIPdIPdIPdKWdKXdCidCiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadCidCidKYdKHdBEdEbdDZdMRdDWdLedMVdMUdMTdLidLjdLkdHJdCidCidCidDPdBvdqTdqTdsadsadsadsadsadsadsadqTdqTdqTdsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHndHndHndHndHndHndHndHndHndsadsadqTdBvdCidCidJodLldJAdLmdKadOFdLodLpdJAdLqdLrdLsdLtdLudLvdIkdIldIcdIcdIcdIcdIcdIbdCidCidCidCidBvdBvdBvdqTdqTdqTdqTdqTdsadsadsadqTdqTdqTdqTdBvdBvdCidCidIhdIcdIcdIcdIcdIcdIcdIcdIcdIkdIldIcdIcdIcdIcdIbdCidCidCidCidCidBvdqTdqTdqTdqTdqTdIPdLwdLxdLydKmdMIdLzdKndMIdKzdRudwNdLCdMIdwKdKmdKmdLDdLEdJxdJydLFdLGdLGdLGdLGdLGdLGdLGdLHdLHdLHdLHdLHdLHdLHdKGdLIdLJdLKdLadLLdMYdLNdLOdLedMXdLPdLQdLRdLSdLTdLUdCidCidCidDPdBvdqTdqTdsadsadsadsadsadsadqTdqTdqTdsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHndHndsadsadqTdBvdCidCidJodJodJodJodJodNldLWdLXdJodJodLYdJodJodJodJodHEdHGdCidCidCidCidCidHSdCidCidCidCidBvdCidBvdBvdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdBvdBvdCidCidCidHSdCidCidCidCidCidCidCidCidHEdHGdCidCidCidCidHSdCidCidCidCidCidBvdBvdDQdBvdBvdqTdIPdIPdIPdIPdLZdMIdMadOkdNWdKBdMddMedMedNKdNKdMgdMedMhdMidMedMidMjdMjdMjdMjdMjdMjdMjdMjdMkdMkdMkdMkdMkdMkdMkdMldMmdMldMndMmdModNGdMqdUtdMsdNCdNrdNndwOdMxdLkdHGdCidCidCidCidBvdBvdqTdqTdsadsadsadsadsadqTdqTdqTdsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHndHndHndHndHndHndHndHndHndsadsadqTdBvdCidCidJodLldJAdLmdKadOFdLodLpdJAdLqdLrdLsdLtdLudLvdIkdIldIcdIcdIcdIcdIcdIbdCidCidCidCidBvdBvdBvdqTdqTdqTdqTdqTdsadsadsadqTdqTdqTdqTdBvdBvdCidCidIhdIcdIcdIcdIcdIcdIcdIcdIcdIkdIldIcdIcdIcdIcdIbdCidCidCidCidCidBvdqTdqTdqTdqTdqTdIPdLwdLxdLydKmdMIdLzdKndMIdKzdRudwNdLCdMIdwKdKmdKmdLDdLEdJxdJydLFdLGdLGdLGdLGdLGdLGdLGdLHdLHdLHdLHdLHdLHdLHdKGdLIdLJdLKdLadLLdMYdLNdLOdLedMXdLPecxdLRdLSecwdLUdCidCidCidDPdBvdqTdqTdsadsadsadsadsadsadqTdqTdqTdsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHndHndsadsadqTdBvdCidCidJodJodJodJodJodNldLWdLXdJodJodLYdJodJodJodJodHEdHGdCidCidCidCidCidHSdCidCidCidCidBvdCidBvdBvdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdBvdBvdCidCidCidHSdCidCidCidCidCidCidCidCidHEdHGdCidCidCidCidHSdCidCidCidCidCidBvdBvdDQdBvdBvdqTdIPdIPdIPdIPdLZdMIdMadOkdNWdKBdMddMedMedNKdNKdMgdMedMhdMidMedMidMjdMjdMjdMjdMjdMjdMjdMjdMkdMkdMkdMkdMkdMkdMkdMldMmdMldMndMmdModNGdMqdUtdMsdNCecydMTdwOdMxdLkdHGdCidCidCidCidBvdBvdqTdqTdsadsadsadsadsadqTdqTdqTdsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndsadsadqTdBvdBvdCidCidCidCidCidJodOndMzdMAdwPdJodMCdMDdFrdCidCidCidCidCidHUdCidCidCidIadIcdIcdIbdCidCidCidCidBvdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdBvdCidCidIhdIcdIidCidCidCidCidBvdCidCidHUdCidCidCidCidCidCidHSdCidCidCidCidCidCidCidJfdCidBvdBvdBvdBvdBvdIPdKmdPLdPEdPJdPJdPEdPCdPzdPydPJdPIdPGdPzdOSdPadOQdORdOodOodOodOodOodOodOodOodOLdOLdOLdOLdOLdOLdPRdPOdPXdPWdQldQbdPNdPMdMZdKFdKFdKFdKFdKFdKFdKFdKFdNadNbdNcdNbdFrdDPdBvdqTdqTdsadsadsadsadqTdqTdqTdqTdsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadqTdBvdBvdCidCidCidCidJodNddNedNfdNgdJodCidCidCidCidCidCidBvdBvdDQdBvdCidCidCidCidCidHSdCidCidCidCidCidBvdqTdqTdqTdqTdqTdBvdBvdBvdBvdBvdCidIhdIidCidCidCidBvdBvdBvdBvdBvdBvdDQdCidCidCidCidCidCidHSdCidCidCidCidCidCidCidCidCidCidCidBvdBvdIPdIPdNhdQrdNhdIPdIPdNjdNkdQndIPdIPdQodNmdQodIPdNodCidCidCiaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaadNpdKHdLadNqdQsdNsdNtdNudNudNvdKFdNwdNxdNydNzdNzdNzdNzdFrdCidBvdqTdqTdsadsadsadsadqTdqTdqTdsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadqTdBvdBvdCidCidCidCidJodNddNedNfdNgdJodCidCidCidCidCidCidBvdBvdDQdBvdCidCidCidCidCidHSdCidCidCidCidCidBvdqTdqTdqTdqTdqTdBvdBvdBvdBvdBvdCidIhdIidCidCidCidBvdBvdBvdBvdBvdBvdDQdCidCidCidCidCidCidHSdCidCidCidCidCidCidCidCidCidCidCidBvdBvdIPdIPdNhdQrdNhdIPdIPdNjdNkdQndIPdIPdQoeczdQodIPdNodCidCidCiaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaadNpdKHdLadNqdQsdNsdNtdNudNudNvdKFdNwdNxdNydNzdNzdNzdNzdFrdCidBvdqTdqTdsadsadsadsadqTdqTdqTdsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadsadqTdBvdBvdCidCidCidJodJodJodJodJodJodCidCidBvdBvdBvdBvdBvdqTdqTdBvdBvdCidCidCidCidHSdCidCidCidCidCidCidBvdBvdBvdBvdBvdBvdCidCidCidCidCidHSdCidCidBvdBvdBvdqTdqTdqTdqTdqTdBvdCidCidCidCidCidCidHSdCidCidCidIedHJdCidCidCidCidCidCidCidBvdIPdNAdNBdQtdNBdIPdNDdNEdNFdQxdNHdIPdQvdNJdwWdIPdCidCidCidCidCidCiaaaaaaaafaaaaaaaaaaafaafaafaafaafaafaafaafaafdKFdNLdNMdNGdKFdKFdKFdKFdNNdKFdNOdKFdKFdNPdFrdFrdFrdFrdCidBvdqTdqTdsadsadsadqTdqTdsadsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadqTdqTdBvdCidCidCidCidCidCidCidCidCidCidCidBvdqTdqTdqTdqTdqTdqTdqTdBvdBvdCidCidCidIadIcdIcdIcdIbdCidCidCidCidCidCidCidCidCidCidCidCidCidHSdCidBvdBvdqTdqTdqTdqTdqTdqTdqTdBvdBvdCidCidCidCidCidIadIcdIcdIcdIkdIldIcdIcdIcdIbdCidCidCidCidIPdNQdNRdNSdNTdIPdwXdNVdNVdQAdNHdIPdNXdNYdNZdIPdCidCidCidCidCidCiaafaafaafaafaafaafaafdOadOadOadOadOaaafaaaaaadKFdYodOcdNGdOddOedOfdNudNudOgdNudNvdKFdCidCidCidCidCidBvdBvdqTdqTdsadsadqTdqTdqTdsadsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadsadqTdBvdCidCidCidCidCidCidCidCidCidBvdBvdBvdqTdqTdqTdqTdqTdqTdqTdqTdBvdBvdBvdCidCidCidCidCidIadIbdCidCidIedHJdCidCidIhdIcdIcdIcdIcdIcdIidCidBvdqTdqTdqTdqTdsadsadsadqTdqTdBvdBvdBvdCidCidCidCidCidCidCidHEdHGdCidCidCidHSdCidCidCidCidIPdIPdIPdIPdIPdIPdOhdOidOjdQCdNHdIPdNhdOldNhdIPdCidCidCidCidCidCiaaaaaaaafaaaaaaaaaaafdOadOadOadOadOaaafaaadKYdKHdOmdQOdQNdKFdKFdKFdKFdKFdKFdOpdOqdKFdCidCidCidCidCidBvdqTdqTdsadsadsadqTdqTdqTdqTdsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadsadqTdBvdCidCidCidCidCidCidCidCidCidBvdBvdBvdqTdqTdqTdqTdqTdqTdqTdqTdBvdBvdBvdCidCidCidCidCidIadIbdCidCidIedHJdCidCidIhdIcdIcdIcdIcdIcdIidCidBvdqTdqTdqTdqTdsadsadsadqTdqTdBvdBvdBvdCidCidCidCidCidCidCidHEdHGdCidCidCidHSdCidCidCidCidIPdIPdIPdIPdIPdIPdOhdOidOjdQCdNHdIPdNhecAdNhdIPdCidCidCidCidCidCiaaaaaaaafaaaaaaaaaaafdOadOadOadOadOaaafaaadKYdKHdOmdQOdQNdKFdKFdKFdKFdKFdKFdOpdOqdKFdCidCidCidCidCidBvdqTdqTdsadsadsadqTdqTdqTdqTdsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadsadsadBvdBvdBvdBvdCidCidCidCidBvdBvdBvdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdBvdBvdBvdCidHUdCidCidIadIcdIcdIkdIldIcdIcdIidCidCidCidCidCidCidCidBvdqTdqTdqTdsadsadsadsadsadqTdqTdqTdBvdBvdBvdBvdCidCidCidCidCidCidCidCidCidIadIcdIcdIbdCidCidCidCidCidCidIPdIPdIPdIPdIPdIPdIPdFpdOrdOsdOtdCidCidCidCidCiaaaaaaaaaaafaaaaaaaaaaafdOadOadOadOadOadOudLIdOvdOwdLadOxdNGdOydOzdOAdOBdOCdODdOEdOqdKFdCidCidCidCidBvdBvdqTdqTdsadsadqTdqTdqTdqTdsadsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadsadsadsadqTdBvdBvdBvdBvdBvdBvdqTdqTdqTdqTdqTdqTdqTdsadsadsadsadqTdqTdqTdqTdqTdBvdBvdDQdBvdCidCidCidCidHEdHGdCidCidCidCidHUdCidBvdBvdBvdBvdBvdqTdqTdsadsadsadsadsadsadsadqTdqTdqTdqTdqTdBvdBvdBvdBvdBvdBvdBvdBvdCidCidCidCidCidHSdCidCidCidCidCidCidCidCidHEdYwdOGdOGdOGdOGdOHdHGdCidCidCidCidCidCiaafaafaafaafaafaafaafaafdOadOadOadOadOadxDdxmdxldxndLadOxdNGdLadLadOKdLadLadQPdOMdONdKFdCidCidCidCidBvdqTdqTdqTdsadsadqTdqTdqTdsadsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadsadsadsadqTdBvdBvdBvdBvdBvdBvdqTdqTdqTdqTdqTdqTdqTdsadsadsadsadqTdqTdqTdqTdqTdBvdBvdDQdBvdCidCidCidCidHEdHGdCidCidCidCidHUdCidBvdBvdBvdBvdBvdqTdqTdsadsadsadsadsadsadsadqTdqTdqTdqTdqTdBvdBvdBvdBvdBvdBvdBvdBvdCidCidCidCidCidHSdCidCidCidCidCidCidCidCidHEdYwdOGdOGdOGdOGdOHdHGdCidCidCidCidCidCiaafaafaafaafaafaafaafaafdOadOadOadOadOadxDdxmecBecCdLadOxdNGdLadLadOKdLadLadQPdOMdONdKFdCidCidCidCidBvdqTdqTdqTdsadsadqTdqTdqTdsadsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadsadsadsadsadqTdqTdqTdqTdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadqTdqTdqTdqTdqTdqTdBvdBvdCidCidCidCidCidCidCidCidCidDQdBvdBvdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdqTdBvdBvdCidCidCidCidHSdCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidCiaaaaaaaaaaaaaaaaaaaafdOadOadOadOadOadKGdLIdOOdxLdLadOxdRodQbdQbdRldQbdQbdRkdOTdOUdKFdCidCidCidIddDQdqTdqTdqTdsadqTdqTdqTdqTdsadsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadsadsadqTdsadsadqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdqTdqTdqTdqTdBvdBvdBvdCidCidCidBvdBvdBvdBvdBvdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdqTdqTdqTdBvdCidCidCidCidIadIcdIcdIcdIcdIcdIcdIcdIcdIcdIcdIcdIcdIcdIcdIcdIcdIcdIbdCidCidCidCidCidCiaaaaaaaaaaaaaaaaafdOadOadOadOadOadxMaaadNpdKHdyfdOxdNGdLadLadOWdOzdLadLadOpdOXdKFdCidCidCidCidBvdqTdqTdqTdqTdqTdqTdqTdsadsadsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdqTdqTdqTdqTdBvdBvdBvdBvdBvdqTdqTdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdqTdqTdqTdBvdBvdBvdCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidHSdCidIedHJdCidCidCidGTdGTaaaaaaaaaaafdOadOadOadOadOaaafaaaaaadOYdOYdOZdRpdQbdPbdPcdPddPedPfdOMdOqdKFdCidCidCidCidBvdqTdqTdqTdqTdsadqTdqTdsadsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/nano/To BYOND Cache.bat b/nano/To BYOND Cache.bat new file mode 100644 index 00000000000..486b8d1beaa --- /dev/null +++ b/nano/To BYOND Cache.bat @@ -0,0 +1,4 @@ +copy css\* "%USERPROFILE%\Documents\BYOND\cache" /y +copy images\* "%USERPROFILE%\Documents\BYOND\cache" /y +copy js\* "%USERPROFILE%\Documents\BYOND\cache" /y +copy templates\* "%USERPROFILE%\Documents\BYOND\cache" /y diff --git a/nano/css/layout_basic.css b/nano/css/layout_basic.css new file mode 100644 index 00000000000..30a75490f39 --- /dev/null +++ b/nano/css/layout_basic.css @@ -0,0 +1,21 @@ +body { + background: #272727 url(uiBasicBackground.png) 50% 0 repeat-x; +} + +#uiContent { + clear: both; + padding: 8px; +} + +#uiLoadingNotice { + position: relative; + background: url(uiNoticeBackground.jpg) 50% 50%; + color: #000000; + font-size: 14px; + font-style: italic; + font-weight: bold; + padding: 3px 4px 3px 4px; + margin: 4px 0 4px 0; +} + + diff --git a/nano/css/layout_default.css b/nano/css/layout_default.css new file mode 100644 index 00000000000..df5ce06e77c --- /dev/null +++ b/nano/css/layout_default.css @@ -0,0 +1,64 @@ +body { + background: #272727 url(uiBackground.png) 50% 0 repeat-x; +} + +#uiWrapper { + width: 100%; + height: 100%; +} + +#uiTitleWrapper { + position: relative; + height: 30px; +} + +#uiTitle { + position: absolute; + top: 6px; + left: 44px; + width: 66%; + overflow: hidden; + color: #E9C183; + font-size: 16px; +} + +#uiTitle.icon { + padding: 6px 8px 6px 42px; + background-position: 2px 50%; + background-repeat: no-repeat; +} + +#uiTitleFluff { + position: absolute; + top: 4px; + right: 12px; + width: 42px; + height: 24px; + background: url(uiTitleFluff.png) 50% 50% no-repeat; +} + +#uiStatusIcon { + position: absolute; + top: 4px; + left: 12px; + width: 24px; + height: 24px; +} + +#uiContent { + clear: both; + padding: 8px; +} + +#uiLoadingNotice { + position: relative; + background: url(uiNoticeBackground.jpg) 50% 50%; + color: #000000; + font-size: 14px; + font-style: italic; + font-weight: bold; + padding: 3px 4px 3px 4px; + margin: 4px 0 4px 0; +} + + diff --git a/nano/css/shared.css b/nano/css/shared.css index ac4657db34e..ec9ff3f93d0 100644 --- a/nano/css/shared.css +++ b/nano/css/shared.css @@ -5,24 +5,43 @@ body { color: #ffffff; line-height: 170%; font-family: Verdana, Geneva, sans-serif; - background: #272727 url(uiBackground.png) 50% 0 repeat-x; + background: #272727; } + +#uiNoScript { + position: fixed; + top: 50%; + left: 50%; + margin: -60px 0 0 -150px; + width: 280px; + height: 120px; + background: #ffffff; + border: 2px solid #ff0000; + color: #000000; + font-size: 10px; + font-weight: bold; + z-index: 9999; + padding: 0px 10px; + text-align: center; +} + hr { background-color: #40628a; height: 1px; } + .link, .linkOn, .linkOff, .selected, .disabled { - float: left; + float: left; min-width: 15px; height: 16px; - text-align: center; + text-align: center; color: #ffffff; text-decoration: none; background: #40628a; border: 1px solid #161616; padding: 0px 4px 4px 4px; margin: 0 2px 2px 0; - cursor:default; + cursor: default; white-space: nowrap; } @@ -33,10 +52,12 @@ hr { a:hover, .linkActive:hover { background: #507aac; } + .linkPending, .linkPending:hover { color: #ffffff; background: #507aac; } + a.white, a.white:link, a.white:visited, a.white:active { color: #40628a; text-decoration: none; @@ -44,25 +65,30 @@ a.white, a.white:link, a.white:visited, a.white:active { border: 1px solid #161616; padding: 1px 4px 1px 4px; margin: 0 2px 0 0; - cursor:default; + cursor: default; } + a.white:hover { color: #ffffff; background: #40628a; } + .linkOn, a.linkOn:link, a.linkOn:visited, a.linkOn:active, a.linkOn:hover, .selected, a.selected:link, a.selected:visited, a.selected:active, a.selected:hover { color: #ffffff; background: #2f943c; } + .linkOff, a.linkOff:link, a.linkOff:visited, a.linkOff:active, a.linkOff:hover, .disabled, a.disabled:link, a.disabled:visited, a.disabled:active, a.disabled:hover { color: #ffffff; background: #999999; border-color: #666666; } + a.icon, .linkOn.icon, .linkOff.icon, .selected.icon, .disabled.icon { position: relative; padding: 1px 4px 2px 20px; } + a.icon img, .linkOn.icon img, .linkOff.icon img, .selected.icon img, .disabled.icon img { position: absolute; top: 0; @@ -70,11 +96,13 @@ a.icon img, .linkOn.icon img, .linkOff.icon img, .selected.icon img, .disabled.i width: 18px; height: 18px; } + .linkDanger, a.linkDanger:link, a.linkDanger:visited, a.linkDanger:active { color: #ffffff; background-color: #ff0000; border-color: #aa0000; } + .linkDanger:hover { background-color: #ff6666; } @@ -84,81 +112,37 @@ ul { margin: 0; list-style-type: none; } + li { padding: 0 0 2px 0; } + img, a img { - border-style:none; + border-style: none; } + h1, h2, h3, h4, h5, h6 { margin: 0; padding: 12px 0 6px 0; color: #517087; clear: both; } + h1 { font-size: 18px; } + h2 { font-size: 16px; } + h3 { font-size: 14px; } + h4 { font-size: 12px; } -#uiWrapper { - width: 100%; - height: 100%; -} -#uiTitleWrapper { - position: relative; - height: 30px; -} -#uiTitle { - position: absolute; - top: 6px; - left: 44px; - width: 66%; - overflow: hidden; - color: #E9C183; - font-size: 16px; -} -#uiTitle.icon { - padding: 6px 8px 6px 42px; - background-position: 2px 50%; - background-repeat: no-repeat; -} -#uiTitleFluff { - position: absolute; - top: 4px; - right: 12px; - width: 42px; - height: 24px; - background: url(uiTitleFluff.png) 50% 50% no-repeat; -} -#uiStatusIcon { - position: absolute; - top: 4px; - left: 12px; - width: 24px; - height: 24px; -} -#uiContent { - clear: both; - padding: 8px; -} -#uiNoJavaScript { - position: relative; - background: url(uiNoticeBackground.jpg) 50% 50%; - color: #000000; - font-size: 14px; - font-style: italic; - font-weight: bold; - padding: 3px 4px 3px 4px; - margin: 4px 0 4px 0; -} .white { color: white; @@ -169,10 +153,12 @@ h4 { color: #4f7529; font-weight: bold; } + .average { color: #cd6500; font-weight: bold; } + .bad { color: #ee0000; font-weight: bold; @@ -184,17 +170,21 @@ h4 { } .redBackground { - background: #ea0000; + background: #ea0000; } + .yellowBackground { - background: #cacc00; + background: #cacc00; } + .highlight { color: #8BA5C4; } + .dark { color: #272727; } + .noticePlaceholder { position: relative; font-size: 12px; @@ -203,6 +193,7 @@ h4 { padding: 3px 4px 3px 4px; margin: 4px 0 4px 0; } + .notice { position: relative; background: url(uiNoticeBackground.jpg) 50% 50%; @@ -213,9 +204,11 @@ h4 { padding: 3px 4px 3px 4px; margin: 4px 0 4px 0; } + .notice.icon { padding: 2px 4px 0 20px; } + .notice img { position: absolute; top: 0; @@ -224,52 +217,56 @@ h4 { height: 16px; } - div.notice { clear: both; } + .itemGroup { border: 1px solid #e9c183; - background: #2c2c2c; - padding: 4px; - clear: both; -} -.item { - width: 100%; - margin: 4px 0 0 0; + background: #2c2c2c; + padding: 4px; clear: both; } +.item { + width: 100%; + margin: 4px 0 0 0; + clear: both; +} .itemLabel { float: left; width: 30%; color: #e9c183; } + .itemContent { float: left; width: 69%; } + .itemLabelNarrow { float: left; width: 20%; color: #e9c183; } + .itemLabelWide { float: left; width: 45%; color: #e9c183; } - .itemContentWide { float: left; width: 79%; } + .itemContentSmall { float: left; width: 33%; } + .itemContentMedium { float: left; width: 55%; @@ -282,6 +279,7 @@ div.notice { padding: 4px; margin: 3px 0; } + .statusDisplayRecords { background: #000000; color: #ffffff; @@ -292,25 +290,28 @@ div.notice { overflow-y: auto; } - .statusLabel { width: 138px; float: left; overflow: hidden; color: #98B0C3; } + .statusValue { float: left; } + .block { padding: 8px; margin: 10px 4px 4px 4px; border: 1px solid #40628a; background-color: #202020; } + .block h3 { padding: 0; } + .displayBar { position: relative; width: 236px; @@ -321,6 +322,7 @@ div.notice { overflow: hidden; background: #000000; } + .displayBarText { position: absolute; top: -2px; @@ -330,6 +332,7 @@ div.notice { color: #ffffff; font-weight: normal; } + .displayBarFill { width: 0%; height: 100%; @@ -337,58 +340,70 @@ div.notice { overflow: hidden; float: left; } + .displayBarFill.alignRight { float: right; } + .displayBarFill.good { color: #ffffff; background: #4f7529; } + .displayBarFill.average { color: #ffffff; background: #cd6500; } + .displayBarFill.bad { color: #ffffff; background: #ee0000; } + .displayBarFill.highlight { color: #ffffff; background: #8BA5C4; } + .clearBoth { clear: both; } + .clearLeft { clear: left; } + .clearRight { clear: right; } + .line { width: 100%; clear: both; } -.inactive, , a.inactive:link, a.inactive:visited, a.inactive:active, a.inactive:hover { + +.inactive, a.inactive:link, a.inactive:visited, a.inactive:active, a.inactive:hover { color: #ffffff; background: #999999; border-color: #666666; } + .fixedLeft { width: 110px; float: left; } + .fixedLeftWide { width: 165px; float: left; } -.fixedLeftWider{ +.fixedLeftWider { width: 220px; float: left; } -.fixedLeftWidest{ +.fixedLeftWidest { width: 250px; float: left; } @@ -399,150 +414,131 @@ div.notice { /* Used in PDA */ - -.wholeScreen -{ - position: absolute - color: #517087; - font-size: 16px; - font-weight: bold; - text-align:center; +.wholeScreen { + position: absolute; + color: #517087; + font-size: 16px; + font-weight: bold; + text-align: center; } -.pdalink -{ +.pdalink { float: left; - white-space:nowrap; + white-space: nowrap; } /* DNA Modifier UI (dna_modifier.tmpl) */ -.dnaBlock -{ +.dnaBlock { float: left; width: 90px; - padding: 0 0 5px 0; + padding: 0 0 5px 0; } -.dnaBlockNumber -{ - font-family: Fixed, monospace; - float: left; - color: #ffffff; - background: #363636; - min-width: 20px; +.dnaBlockNumber { + font-family: Fixed, monospace; + float: left; + color: #ffffff; + background: #363636; + min-width: 20px; height: 20px; - padding: 0; - text-align: center; + padding: 0; + text-align: center; } -.dnaSubBlock -{ - font-family: Fixed, monospace; - float: left; +.dnaSubBlock { + font-family: Fixed, monospace; + float: left; padding: 0; min-width: 16px; height: 20px; text-align: center; } -.mask -{ - position: fixed; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: url(uiMaskBackground.png); +.mask { + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: url(uiMaskBackground.png); } -.maskContent -{ - width: 100%; - height: 200px; - margin: 200px 0; - text-align: center; +.maskContent { + width: 100%; + height: 200px; + margin: 200px 0; + text-align: center; } /* Table stuffs for power monitor */ -table.pmon -{ -border:2px solid RoyalBlue; +table.pmon { + border: 2px solid RoyalBlue; } -table.pmon td, table.pmon th -{ -border-bottom:1px dotted black; -padding:0px 5px 0px 5px; +table.pmon td, table.pmon th { + border-bottom: 1px dotted black; + padding: 0px 5px 0px 5px; } - - /* Table Stuffs for manifest*/ -th.command -{ - background: #3333FF; - font-weight: bold; - color: #ffffff; +th.command { + background: #3333FF; + font-weight: bold; + color: #ffffff; } -th.sec -{ - background: #8e0000; - font-weight: bold; - color: #ffffff; -} -th.med -{ - background: #006600; - font-weight: bold; - color: #ffffff; -} -th.eng -{ - background: #b27300; - font-weight: bold; - color: #ffffff; -} -th.sci -{ - background: #a65ba6; - font-weight: bold; - color: #ffffff; -} -th.civ -{ - background: #a32800; - font-weight: bold; - color: #ffffff; -} -th.misc -{ - background: #666666; - font-weight: bold; - color: #ffffff; +th.sec { + background: #8e0000; + font-weight: bold; + color: #ffffff; } +th.med { + background: #006600; + font-weight: bold; + color: #ffffff; +} + +th.eng { + background: #b27300; + font-weight: bold; + color: #ffffff; +} + +th.sci { + background: #a65ba6; + font-weight: bold; + color: #ffffff; +} + +th.civ { + background: #a32800; + font-weight: bold; + color: #ffffff; +} + +th.misc { + background: #666666; + font-weight: bold; + color: #ffffff; +} /* Damage colors for crew monitoring computer */ -.burn -{ - color: orange; +.burn { + color: orange; } -.brute -{ - color: red; +.brute { + color: red; } -.toxin -{ - color: green; +.toxin { + color: green; } -.oxyloss -{ - color: blue; -} +.oxyloss { + color: blue; +} \ No newline at end of file diff --git a/nano/NTLogoRevised.fla b/nano/images/source/NTLogoRevised.fla similarity index 100% rename from nano/NTLogoRevised.fla rename to nano/images/source/NTLogoRevised.fla diff --git a/nano/images/icon-eye.xcf b/nano/images/source/icon-eye.xcf similarity index 100% rename from nano/images/icon-eye.xcf rename to nano/images/source/icon-eye.xcf diff --git a/nano/images/uiBackground-Syndicate.xcf b/nano/images/source/uiBackground-Syndicate.xcf similarity index 100% rename from nano/images/uiBackground-Syndicate.xcf rename to nano/images/source/uiBackground-Syndicate.xcf diff --git a/nano/uiBackground.fla b/nano/images/source/uiBackground.fla similarity index 100% rename from nano/uiBackground.fla rename to nano/images/source/uiBackground.fla diff --git a/nano/images/uiBackground.xcf b/nano/images/source/uiBackground.xcf similarity index 100% rename from nano/images/uiBackground.xcf rename to nano/images/source/uiBackground.xcf diff --git a/nano/images/source/uiBasicBackground.xcf b/nano/images/source/uiBasicBackground.xcf new file mode 100644 index 00000000000..56a31d7b2fc Binary files /dev/null and b/nano/images/source/uiBasicBackground.xcf differ diff --git a/nano/images/uiIcons24.xcf b/nano/images/source/uiIcons24.xcf similarity index 100% rename from nano/images/uiIcons24.xcf rename to nano/images/source/uiIcons24.xcf diff --git a/nano/images/uiNoticeBackground.xcf b/nano/images/source/uiNoticeBackground.xcf similarity index 100% rename from nano/images/uiNoticeBackground.xcf rename to nano/images/source/uiNoticeBackground.xcf diff --git a/nano/images/uiTitleBackground.xcf b/nano/images/source/uiTitleBackground.xcf similarity index 100% rename from nano/images/uiTitleBackground.xcf rename to nano/images/source/uiTitleBackground.xcf diff --git a/nano/images/uiBasicBackground.png b/nano/images/uiBasicBackground.png new file mode 100644 index 00000000000..03131d1e94c Binary files /dev/null and b/nano/images/uiBasicBackground.png differ diff --git a/nano/js/libraries.min.js b/nano/js/libraries.min.js index 11c9ffb9182..7b19cd3a5d1 100644 --- a/nano/js/libraries.min.js +++ b/nano/js/libraries.min.js @@ -1 +1 @@ -(function(e,t){function H(e){var t=e.length,n=w.type(e);if(w.isWindow(e)){return false}if(e.nodeType===1&&t){return true}return n==="array"||n!=="function"&&(t===0||typeof t==="number"&&t>0&&t-1 in e)}function j(e){var t=B[e]={};w.each(e.match(S)||[],function(e,n){t[n]=true});return t}function q(e,n,r,i){if(!w.acceptData(e)){return}var s,o,u=w.expando,a=e.nodeType,f=a?w.cache:e,l=a?e[u]:e[u]&&u;if((!l||!f[l]||!i&&!f[l].data)&&r===t&&typeof n==="string"){return}if(!l){if(a){l=e[u]=c.pop()||w.guid++}else{l=u}}if(!f[l]){f[l]=a?{}:{toJSON:w.noop}}if(typeof n==="object"||typeof n==="function"){if(i){f[l]=w.extend(f[l],n)}else{f[l].data=w.extend(f[l].data,n)}}o=f[l];if(!i){if(!o.data){o.data={}}o=o.data}if(r!==t){o[w.camelCase(n)]=r}if(typeof n==="string"){s=o[n];if(s==null){s=o[w.camelCase(n)]}}else{s=o}return s}function R(e,t,n){if(!w.acceptData(e)){return}var r,i,s=e.nodeType,o=s?w.cache:e,u=s?e[w.expando]:w.expando;if(!o[u]){return}if(t){r=n?o[u]:o[u].data;if(r){if(!w.isArray(t)){if(t in r){t=[t]}else{t=w.camelCase(t);if(t in r){t=[t]}else{t=t.split(" ")}}}else{t=t.concat(w.map(t,w.camelCase))}i=t.length;while(i--){delete r[t[i]]}if(n?!z(r):!w.isEmptyObject(r)){return}}}if(!n){delete o[u].data;if(!z(o[u])){return}}if(s){w.cleanData([e],true)}else if(w.support.deleteExpando||o!=o.window){delete o[u]}else{o[u]=null}}function U(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(I,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r==="string"){try{r=r==="true"?true:r==="false"?false:r==="null"?null:+r+""===r?+r:F.test(r)?w.parseJSON(r):r}catch(s){}w.data(e,n,r)}else{r=t}}return r}function z(e){var t;for(t in e){if(t==="data"&&w.isEmptyObject(e[t])){continue}if(t!=="toJSON"){return false}}return true}function it(){return true}function st(){return false}function ot(){try{return o.activeElement}catch(e){}}function ct(e,t){do{e=e[t]}while(e&&e.nodeType!==1);return e}function ht(e,t,n){if(w.isFunction(t)){return w.grep(e,function(e,r){return!!t.call(e,r,e)!==n})}if(t.nodeType){return w.grep(e,function(e){return e===t!==n})}if(typeof t==="string"){if(ut.test(t)){return w.filter(t,e,n)}t=w.filter(t,e)}return w.grep(e,function(e){return w.inArray(e,t)>=0!==n})}function pt(e){var t=dt.split("|"),n=e.createDocumentFragment();if(n.createElement){while(t.length){n.createElement(t.pop())}}return n}function Mt(e,t){return w.nodeName(e,"table")&&w.nodeName(t.nodeType===1?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function _t(e){e.type=(w.find.attr(e,"type")!==null)+"/"+e.type;return e}function Dt(e){var t=Ct.exec(e.type);if(t){e.type=t[1]}else{e.removeAttribute("type")}return e}function Pt(e,t){var n,r=0;for(;(n=e[r])!=null;r++){w._data(n,"globalEval",!t||w._data(t[r],"globalEval"))}}function Ht(e,t){if(t.nodeType!==1||!w.hasData(e)){return}var n,r,i,s=w._data(e),o=w._data(t,s),u=s.events;if(u){delete o.handle;o.events={};for(n in u){for(r=0,i=u[n].length;r").css("cssText","display:block !important")).appendTo(t.documentElement);t=(It[0].contentWindow||It[0].contentDocument).document;t.write("");t.close();n=fn(e,t);It.detach()}Qt[e]=n}return n}function fn(e,t){var n=w(t.createElement(e)).appendTo(t.body),r=w.css(n[0],"display");n.remove();return r}function vn(e,t,n,r){var i;if(w.isArray(t)){w.each(t,function(t,i){if(n||cn.test(e)){r(e,i)}else{vn(e+"["+(typeof i==="object"?t:"")+"]",i,n,r)}})}else if(!n&&w.type(t)==="object"){for(i in t){vn(e+"["+i+"]",t[i],n,r)}}else{r(e,t)}}function _n(e){return function(t,n){if(typeof t!=="string"){n=t;t="*"}var r,i=0,s=t.toLowerCase().match(S)||[];if(w.isFunction(n)){while(r=s[i++]){if(r[0]==="+"){r=r.slice(1)||"*";(e[r]=e[r]||[]).unshift(n)}else{(e[r]=e[r]||[]).push(n)}}}}}function Dn(e,t,n,r){function o(u){var a;i[u]=true;w.each(e[u]||[],function(e,u){var f=u(t,n,r);if(typeof f==="string"&&!s&&!i[f]){t.dataTypes.unshift(f);o(f);return false}else if(s){return!(a=f)}});return a}var i={},s=e===An;return o(t.dataTypes[0])||!i["*"]&&o("*")}function Pn(e,n){var r,i,s=w.ajaxSettings.flatOptions||{};for(i in n){if(n[i]!==t){(s[i]?e:r||(r={}))[i]=n[i]}}if(r){w.extend(true,e,r)}return e}function Hn(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes;while(f[0]==="*"){f.shift();if(s===t){s=e.mimeType||n.getResponseHeader("Content-Type")}}if(s){for(u in a){if(a[u]&&a[u].test(s)){f.unshift(u);break}}}if(f[0]in r){o=f[0]}else{for(u in r){if(!f[0]||e.converters[u+" "+f[0]]){o=u;break}if(!i){i=u}}o=o||i}if(o){if(o!==f[0]){f.unshift(o)}return r[o]}}function Bn(e,t,n,r){var i,s,o,u,a,f={},l=e.dataTypes.slice();if(l[1]){for(o in e.converters){f[o.toLowerCase()]=e.converters[o]}}s=l.shift();while(s){if(e.responseFields[s]){n[e.responseFields[s]]=t}if(!a&&r&&e.dataFilter){t=e.dataFilter(t,e.dataType)}a=s;s=l.shift();if(s){if(s==="*"){s=a}else if(a!=="*"&&a!==s){o=f[a+" "+s]||f["* "+s];if(!o){for(i in f){u=i.split(" ");if(u[1]===s){o=f[a+" "+u[0]]||f["* "+u[0]];if(o){if(o===true){o=f[i]}else if(f[i]!==true){s=u[0];l.unshift(u[1])}break}}}}if(o!==true){if(o&&e["throws"]){t=o(t)}else{try{t=o(t)}catch(c){return{state:"parsererror",error:o?c:"No conversion from "+a+" to "+s}}}}}}}return{state:"success",data:t}}function zn(){try{return new e.XMLHttpRequest}catch(t){}}function Wn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function Yn(){setTimeout(function(){Xn=t});return Xn=w.now()}function Zn(e,t,n){var r,i=(Gn[t]||[]).concat(Gn["*"]),s=0,o=i.length;for(;s)[^>]*|#([\w-]*))$/,N=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,C=/^[\],:{}\s]*$/,k=/(?:^|:|,)(?:\s*\[)+/g,L=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,O=/^-ms-/,M=/-([\da-z])/gi,_=function(e,t){return t.toUpperCase()},D=function(e){if(o.addEventListener||e.type==="load"||o.readyState==="complete"){P();w.ready()}},P=function(){if(o.addEventListener){o.removeEventListener("DOMContentLoaded",D,false);e.removeEventListener("load",D,false)}else{o.detachEvent("onreadystatechange",D);e.detachEvent("onload",D)}};w.fn=w.prototype={jquery:h,constructor:w,init:function(e,n,r){var i,s;if(!e){return this}if(typeof e==="string"){if(e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3){i=[null,e,null]}else{i=T.exec(e)}if(i&&(i[1]||!n)){if(i[1]){n=n instanceof w?n[0]:n;w.merge(this,w.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,true));if(N.test(i[1])&&w.isPlainObject(n)){for(i in n){if(w.isFunction(this[i])){this[i](n[i])}else{this.attr(i,n[i])}}}return this}else{s=o.getElementById(i[2]);if(s&&s.parentNode){if(s.id!==i[2]){return r.find(e)}this.length=1;this[0]=s}this.context=o;this.selector=e;return this}}else if(!n||n.jquery){return(n||r).find(e)}else{return this.constructor(n).find(e)}}else if(e.nodeType){this.context=this[0]=e;this.length=1;return this}else if(w.isFunction(e)){return r.ready(e)}if(e.selector!==t){this.selector=e.selector;this.context=e.context}return w.makeArray(e,this)},selector:"",length:0,toArray:function(){return v.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);t.prevObject=this;t.context=this.context;return t},each:function(e,t){return w.each(this,e,t)},ready:function(e){w.ready.promise().done(e);return this},slice:function(){return this.pushStack(v.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0){return}n.resolveWith(o,[w]);if(w.fn.trigger){w(o).trigger("ready").off("ready")}},isFunction:function(e){return w.type(e)==="function"},isArray:Array.isArray||function(e){return w.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){if(e==null){return String(e)}return typeof e==="object"||typeof e==="function"?l[g.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||w.type(e)!=="object"||e.nodeType||w.isWindow(e)){return false}try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf")){return false}}catch(r){return false}if(w.support.ownLast){for(n in e){return y.call(e,n)}}for(n in e){}return n===t||y.call(e,n)},isEmptyObject:function(e){var t;for(t in e){return false}return true},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){if(!e||typeof e!=="string"){return null}if(typeof t==="boolean"){n=t;t=false}t=t||o;var r=N.exec(e),i=!n&&[];if(r){return[t.createElement(r[1])]}r=w.buildFragment([e],t,i);if(i){w(i).remove()}return w.merge([],r.childNodes)},parseJSON:function(t){if(e.JSON&&e.JSON.parse){return e.JSON.parse(t)}if(t===null){return t}if(typeof t==="string"){t=w.trim(t);if(t){if(C.test(t.replace(L,"@").replace(A,"]").replace(k,""))){return(new Function("return "+t))()}}}w.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!=="string"){return null}try{if(e.DOMParser){i=new DOMParser;r=i.parseFromString(n,"text/xml")}else{r=new ActiveXObject("Microsoft.XMLDOM");r.async="false";r.loadXML(n)}}catch(s){r=t}if(!r||!r.documentElement||r.getElementsByTagName("parsererror").length){w.error("Invalid XML: "+n)}return r},noop:function(){},globalEval:function(t){if(t&&w.trim(t)){(e.execScript||function(t){e["eval"].call(e,t)})(t)}},camelCase:function(e){return e.replace(O,"ms-").replace(M,_)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,s=e.length,o=H(e);if(n){if(o){for(;is.cacheLength){delete t[e.shift()]}return t[n]=r}var e=[];return t}function at(e){e[b]=true;return e}function ft(e){var t=h.createElement("div");try{return!!e(t)}catch(n){return false}finally{if(t.parentNode){t.parentNode.removeChild(t)}t=null}}function lt(e,t){var n=e.split("|"),r=e.length;while(r--){s.attrHandle[n[r]]=t}}function ct(e,t){var n=t&&e,r=n&&e.nodeType===1&&t.nodeType===1&&(~t.sourceIndex||O)-(~e.sourceIndex||O);if(r){return r}if(n){while(n=n.nextSibling){if(n===t){return-1}}}return e?1:-1}function ht(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function pt(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function dt(e){return at(function(t){t=+t;return at(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--){if(n[i=s[o]]){n[i]=!(r[i]=n[i])}}})})}function vt(){}function mt(e,t){var n,r,i,o,u,a,f,l=N[e+" "];if(l){return t?0:l.slice(0)}u=e;a=[];f=s.preFilter;while(u){if(!n||(r=X.exec(u))){if(r){u=u.slice(r[0].length)||u}a.push(i=[])}n=false;if(r=V.exec(u)){n=r.shift();i.push({value:n,type:r[0].replace(W," ")});u=u.slice(n.length)}for(o in s.filter){if((r=G[o].exec(u))&&(!f[o]||(r=f[o](r)))){n=r.shift();i.push({value:n,type:o,matches:r});u=u.slice(n.length)}}if(!n){break}}return t?u.length:u?ot.error(e):N(e,a).slice(0)}function gt(e){var t=0,n=e.length,r="";for(;t1?function(t,n,r){var i=e.length;while(i--){if(!e[i](t,n,r)){return false}}return true}:e[0]}function wt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u-1){s[f]=!(o[f]=c)}}}}else{g=wt(g===o?g.splice(d,g.length):g);if(i){i(null,o,g,a)}else{H.apply(o,g)}}})}function St(e){var t,n,r,i=e.length,o=s.relative[e[0].type],u=o||s.relative[" "],a=o?1:0,l=yt(function(e){return e===t},u,true),c=yt(function(e){return j.call(t,e)>-1},u,true),h=[function(e,n,r){return!o&&(r||n!==f)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];for(;a1&&bt(h),a>1&>(e.slice(0,a-1).concat({value:e[a-2].type===" "?"*":""})).replace(W,"$1"),n,a0,o=e.length>0,u=function(u,a,l,c,p){var d,v,m,g=[],y=0,b="0",w=u&&[],E=p!=null,x=f,T=u||o&&s.find["TAG"]("*",p&&a.parentNode||a),N=S+=x==null?1:Math.random()||.1;if(E){f=a!==h&&a;i=n}for(;(d=T[b])!=null;b++){if(o&&d){v=0;while(m=e[v++]){if(m(d,a,l)){c.push(d);break}}if(E){S=N;i=++n}}if(r){if(d=!m&&d){y--}if(u){w.push(d)}}}y+=b;if(r&&b!==y){v=0;while(m=t[v++]){m(w,g,a,l)}if(u){if(y>0){while(b--){if(!(w[b]||g[b])){g[b]=D.call(c)}}}g=wt(g)}H.apply(c,g);if(E&&!u&&g.length>0&&y+t.length>1){ot.uniqueSort(c)}}if(E){S=N;f=x}return w};return r?at(u):u}function Tt(e,t,n){var r=0,i=t.length;for(;r2&&(f=u[0]).type==="ID"&&r.getById&&t.nodeType===9&&d&&s.relative[u[1].type]){t=(s.find["ID"](f.matches[0].replace(rt,it),t)||[])[0];if(!t){return n}e=e.slice(u.shift().value.length)}o=G["needsContext"].test(e)?0:u.length;while(o--){f=u[o];if(s.relative[l=f.type]){break}if(c=s.find[l]){if(i=c(f.matches[0].replace(rt,it),$.test(u[0].type)&&t.parentNode||t)){u.splice(o,1);e=i.length&>(u);if(!e){H.apply(n,i);return n}break}}}}}a(e,h)(i,t,!d,n,$.test(e));return n}var n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b="sizzle"+ -(new Date),E=e.document,S=0,x=0,T=ut(),N=ut(),C=ut(),k=false,L=function(e,t){if(e===t){k=true;return 0}return 0},A=typeof t,O=1<<31,M={}.hasOwnProperty,_=[],D=_.pop,P=_.push,H=_.push,B=_.slice,j=_.indexOf||function(e){var t=0,n=this.length;for(;t+~]|"+I+")"+I+"*"),$=new RegExp(I+"*[+~]"),J=new RegExp("="+I+"*([^\\]'\"]*)"+I+"*\\]","g"),K=new RegExp(z),Q=new RegExp("^"+R+"$"),G={ID:new RegExp("^#("+q+")"),CLASS:new RegExp("^\\.("+q+")"),TAG:new RegExp("^("+q.replace("w","w*")+")"),ATTR:new RegExp("^"+U),PSEUDO:new RegExp("^"+z),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+I+"*(even|odd|(([+-]|)(\\d*)n|)"+I+"*(?:([+-]|)"+I+"*(\\d+)|))"+I+"*\\)|)","i"),bool:new RegExp("^(?:"+F+")$","i"),needsContext:new RegExp("^"+I+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+I+"*((?:-\\d)?\\d*)"+I+"*\\)|)(?=[^-]|$)","i")},Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=new RegExp("\\\\([\\da-f]{1,6}"+I+"?|("+I+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,r&1023|56320)};try{H.apply(_=B.call(E.childNodes),E.childNodes);_[E.childNodes.length].nodeType}catch(st){H={apply:_.length?function(e,t){P.apply(e,B.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]){}e.length=n-1}}}u=ot.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":false};r=ot.support={};c=ot.setDocument=function(e){var t=e?e.ownerDocument||e:E,n=t.defaultView;if(t===h||t.nodeType!==9||!t.documentElement){return h}h=t;p=t.documentElement;d=!u(t);if(n&&n.attachEvent&&n!==n.top){n.attachEvent("onbeforeunload",function(){c()})}r.attributes=ft(function(e){e.className="i";return!e.getAttribute("className")});r.getElementsByTagName=ft(function(e){e.appendChild(t.createComment(""));return!e.getElementsByTagName("*").length});r.getElementsByClassName=ft(function(e){e.innerHTML="
";e.firstChild.className="i";return e.getElementsByClassName("i").length===2});r.getById=ft(function(e){p.appendChild(e).id=b;return!t.getElementsByName||!t.getElementsByName(b).length});if(r.getById){s.find["ID"]=function(e,t){if(typeof t.getElementById!==A&&d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}};s.filter["ID"]=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}}else{delete s.find["ID"];s.filter["ID"]=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==A&&e.getAttributeNode("id");return n&&n.value===t}}}s.find["TAG"]=r.getElementsByTagName?function(e,t){if(typeof t.getElementsByTagName!==A){return t.getElementsByTagName(e)}}:function(e,t){var n,r=[],i=0,s=t.getElementsByTagName(e);if(e==="*"){while(n=s[i++]){if(n.nodeType===1){r.push(n)}}return r}return s};s.find["CLASS"]=r.getElementsByClassName&&function(e,t){if(typeof t.getElementsByClassName!==A&&d){return t.getElementsByClassName(e)}};m=[];v=[];if(r.qsa=Y.test(t.querySelectorAll)){ft(function(e){e.innerHTML="";if(!e.querySelectorAll("[selected]").length){v.push("\\["+I+"*(?:value|"+F+")")}if(!e.querySelectorAll(":checked").length){v.push(":checked")}});ft(function(e){var n=t.createElement("input");n.setAttribute("type","hidden");e.appendChild(n).setAttribute("t","");if(e.querySelectorAll("[t^='']").length){v.push("[*^$]="+I+"*(?:''|\"\")")}if(!e.querySelectorAll(":enabled").length){v.push(":enabled",":disabled")}e.querySelectorAll("*,:x");v.push(",.*:")})}if(r.matchesSelector=Y.test(g=p.webkitMatchesSelector||p.mozMatchesSelector||p.oMatchesSelector||p.msMatchesSelector)){ft(function(e){r.disconnectedMatch=g.call(e,"div");g.call(e,"[s!='']:x");m.push("!=",z)})}v=v.length&&new RegExp(v.join("|"));m=m.length&&new RegExp(m.join("|"));y=Y.test(p.contains)||p.compareDocumentPosition?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&(n.contains?n.contains(r):e.compareDocumentPosition&&e.compareDocumentPosition(r)&16))}:function(e,t){if(t){while(t=t.parentNode){if(t===e){return true}}}return false};L=p.compareDocumentPosition?function(e,n){if(e===n){k=true;return 0}var i=n.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(n);if(i){if(i&1||!r.sortDetached&&n.compareDocumentPosition(e)===i){if(e===t||y(E,e)){return-1}if(n===t||y(E,n)){return 1}return l?j.call(l,e)-j.call(l,n):0}return i&4?-1:1}return e.compareDocumentPosition?-1:1}:function(e,n){var r,i=0,s=e.parentNode,o=n.parentNode,u=[e],a=[n];if(e===n){k=true;return 0}else if(!s||!o){return e===t?-1:n===t?1:s?-1:o?1:l?j.call(l,e)-j.call(l,n):0}else if(s===o){return ct(e,n)}r=e;while(r=r.parentNode){u.unshift(r)}r=n;while(r=r.parentNode){a.unshift(r)}while(u[i]===a[i]){i++}return i?ct(u[i],a[i]):u[i]===E?-1:a[i]===E?1:0};return t};ot.matches=function(e,t){return ot(e,null,null,t)};ot.matchesSelector=function(e,t){if((e.ownerDocument||e)!==h){c(e)}t=t.replace(J,"='$1']");if(r.matchesSelector&&d&&(!m||!m.test(t))&&(!v||!v.test(t))){try{var n=g.call(e,t);if(n||r.disconnectedMatch||e.document&&e.document.nodeType!==11){return n}}catch(i){}}return ot(t,h,null,[e]).length>0};ot.contains=function(e,t){if((e.ownerDocument||e)!==h){c(e)}return y(e,t)};ot.attr=function(e,n){if((e.ownerDocument||e)!==h){c(e)}var i=s.attrHandle[n.toLowerCase()],o=i&&M.call(s.attrHandle,n.toLowerCase())?i(e,n,!d):t;return o===t?r.attributes||!d?e.getAttribute(n):(o=e.getAttributeNode(n))&&o.specified?o.value:null:o};ot.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};ot.uniqueSort=function(e){var t,n=[],i=0,s=0;k=!r.detectDuplicates;l=!r.sortStable&&e.slice(0);e.sort(L);if(k){while(t=e[s++]){if(t===e[s]){i=n.push(s)}}while(i--){e.splice(n[i],1)}}return e};o=ot.getText=function(e){var t,n="",r=0,i=e.nodeType;if(!i){for(;t=e[r];r++){n+=o(t)}}else if(i===1||i===9||i===11){if(typeof e.textContent==="string"){return e.textContent}else{for(e=e.firstChild;e;e=e.nextSibling){n+=o(e)}}}else if(i===3||i===4){return e.nodeValue}return n};s=ot.selectors={cacheLength:50,createPseudo:at,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){e[1]=e[1].replace(rt,it);e[3]=(e[4]||e[5]||"").replace(rt,it);if(e[2]==="~="){e[3]=" "+e[3]+" "}return e.slice(0,4)},CHILD:function(e){e[1]=e[1].toLowerCase();if(e[1].slice(0,3)==="nth"){if(!e[3]){ot.error(e[0])}e[4]=+(e[4]?e[5]+(e[6]||1):2*(e[3]==="even"||e[3]==="odd"));e[5]=+(e[7]+e[8]||e[3]==="odd")}else if(e[3]){ot.error(e[0])}return e},PSEUDO:function(e){var n,r=!e[5]&&e[2];if(G["CHILD"].test(e[0])){return null}if(e[3]&&e[4]!==t){e[2]=e[4]}else if(r&&K.test(r)&&(n=mt(r,true))&&(n=r.indexOf(")",r.length-n)-r.length)){e[0]=e[0].slice(0,n);e[2]=r.slice(0,n)}return e.slice(0,3)}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return e==="*"?function(){return true}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=T[e+" "];return t||(t=new RegExp("(^|"+I+")"+e+"("+I+"|$)"))&&T(e,function(e){return t.test(typeof e.className==="string"&&e.className||typeof e.getAttribute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=ot.attr(r,e);if(i==null){return t==="!="}if(!t){return true}i+="";return t==="="?i===n:t==="!="?i!==n:t==="^="?n&&i.indexOf(n)===0:t==="*="?n&&i.indexOf(n)>-1:t==="$="?n&&i.slice(-n.length)===n:t==="~="?(" "+i+" ").indexOf(n)>-1:t==="|="?i===n||i.slice(0,n.length+1)===n+"-":false}},CHILD:function(e,t,n,r,i){var s=e.slice(0,3)!=="nth",o=e.slice(-4)!=="last",u=t==="of-type";return r===1&&i===0?function(e){return!!e.parentNode}:function(t,n,a){var f,l,c,h,p,d,v=s!==o?"nextSibling":"previousSibling",m=t.parentNode,g=u&&t.nodeName.toLowerCase(),y=!a&&!u;if(m){if(s){while(v){c=t;while(c=c[v]){if(u?c.nodeName.toLowerCase()===g:c.nodeType===1){return false}}d=v=e==="only"&&!d&&"nextSibling"}return true}d=[o?m.firstChild:m.lastChild];if(o&&y){l=m[b]||(m[b]={});f=l[e]||[];p=f[0]===S&&f[1];h=f[0]===S&&f[2];c=p&&m.childNodes[p];while(c=++p&&c&&c[v]||(h=p=0)||d.pop()){if(c.nodeType===1&&++h&&c===t){l[e]=[S,p,h];break}}}else if(y&&(f=(t[b]||(t[b]={}))[e])&&f[0]===S){h=f[1]}else{while(c=++p&&c&&c[v]||(h=p=0)||d.pop()){if((u?c.nodeName.toLowerCase()===g:c.nodeType===1)&&++h){if(y){(c[b]||(c[b]={}))[e]=[S,h]}if(c===t){break}}}}h-=i;return h===r||h%r===0&&h/r>=0}}},PSEUDO:function(e,t){var n,r=s.pseudos[e]||s.setFilters[e.toLowerCase()]||ot.error("unsupported pseudo: "+e);if(r[b]){return r(t)}if(r.length>1){n=[e,e,"",t];return s.setFilters.hasOwnProperty(e.toLowerCase())?at(function(e,n){var i,s=r(e,t),o=s.length;while(o--){i=j.call(e,s[o]);e[i]=!(n[i]=s[o])}}):function(e){return r(e,0,n)}}return r}},pseudos:{not:at(function(e){var t=[],n=[],r=a(e.replace(W,"$1"));return r[b]?at(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--){if(s=o[u]){e[u]=!(t[u]=s)}}}):function(e,i,s){t[0]=e;r(t,null,s,n);return!n.pop()}}),has:at(function(e){return function(t){return ot(e,t).length>0}}),contains:at(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:at(function(e){if(!Q.test(e||"")){ot.error("unsupported lang: "+e)}e=e.replace(rt,it).toLowerCase();return function(t){var n;do{if(n=d?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang")){n=n.toLowerCase();return n===e||n.indexOf(e+"-")===0}}while((t=t.parentNode)&&t.nodeType===1);return false}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===p},focus:function(e){return e===h.activeElement&&(!h.hasFocus||h.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===false},disabled:function(e){return e.disabled===true},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling){if(e.nodeName>"@"||e.nodeType===3||e.nodeType===4){return false}}return true},parent:function(e){return!s.pseudos["empty"](e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},text:function(e){var t;return e.nodeName.toLowerCase()==="input"&&e.type==="text"&&((t=e.getAttribute("type"))==null||t.toLowerCase()===e.type)},first:dt(function(){return[0]}),last:dt(function(e,t){return[t-1]}),eq:dt(function(e,t,n){return[n<0?n+t:n]}),even:dt(function(e,t){var n=0;for(;n=0;){e.push(r)}return e}),gt:dt(function(e,t,n){var r=n<0?n+t:n;for(;++r";e.firstChild.setAttribute("value","");return e.firstChild.getAttribute("value")===""})){lt("value",function(e,t,n){if(!n&&e.nodeName.toLowerCase()==="input"){return e.defaultValue}})}if(!ft(function(e){return e.getAttribute("disabled")==null})){lt(F,function(e,t,n){var r;if(!n){return(r=e.getAttributeNode(t))&&r.specified?r.value:e[t]===true?t.toLowerCase():null}})}w.find=ot;w.expr=ot.selectors;w.expr[":"]=w.expr.pseudos;w.unique=ot.uniqueSort;w.text=ot.getText;w.isXMLDoc=ot.isXML;w.contains=ot.contains})(e);var B={};w.Callbacks=function(e){e=typeof e==="string"?B[e]||j(e):w.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){r=e.memory&&t;i=true;o=u||0;u=0;s=a.length;n=true;for(;a&&o-1){a.splice(r,1);if(n){if(r<=s){s--}if(r<=o){o--}}}})}return this},has:function(e){return e?w.inArray(e,a)>-1:!!(a&&a.length)},empty:function(){a=[];s=0;return this},disable:function(){a=f=r=t;return this},disabled:function(){return!a},lock:function(){f=t;if(!r){c.disable()}return this},locked:function(){return!f},fireWith:function(e,t){if(a&&(!i||f)){t=t||[];t=[e,t.slice?t.slice():t];if(n){f.push(t)}else{l(t)}}return this},fire:function(){c.fireWith(this,arguments);return this},fired:function(){return!!i}};return c};w.extend({Deferred:function(e){var t=[["resolve","done",w.Callbacks("once memory"),"resolved"],["reject","fail",w.Callbacks("once memory"),"rejected"],["notify","progress",w.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){i.done(arguments).fail(arguments);return this},then:function(){var e=arguments;return w.Deferred(function(n){w.each(t,function(t,s){var o=s[0],u=w.isFunction(e[t])&&e[t];i[s[1]](function(){var e=u&&u.apply(this,arguments);if(e&&w.isFunction(e.promise)){e.promise().done(n.resolve).fail(n.reject).progress(n.notify)}else{n[o+"With"](this===r?n.promise():this,u?[e]:arguments)}})});e=null}).promise()},promise:function(e){return e!=null?w.extend(e,r):r}},i={};r.pipe=r.then;w.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add;if(u){o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock)}i[s[0]]=function(){i[s[0]+"With"](this===i?r:this,arguments);return this};i[s[0]+"With"]=o.fireWith});r.promise(i);if(e){e.call(i,i)}return i},when:function(e){var t=0,n=v.call(arguments),r=n.length,i=r!==1||e&&w.isFunction(e.promise)?r:0,s=i===1?e:w.Deferred(),o=function(e,t,n){return function(r){t[e]=this;n[e]=arguments.length>1?v.call(arguments):r;if(n===u){s.notifyWith(t,n)}else if(!--i){s.resolveWith(t,n)}}},u,a,f;if(r>1){u=new Array(r);a=new Array(r);f=new Array(r);for(;t
a";n=p.getElementsByTagName("*")||[];r=p.getElementsByTagName("a")[0];if(!r||!r.style||!n.length){return t}u=o.createElement("select");f=u.appendChild(o.createElement("option"));s=p.getElementsByTagName("input")[0];r.style.cssText="top:1px;float:left;opacity:.5";t.getSetAttribute=p.className!=="t";t.leadingWhitespace=p.firstChild.nodeType===3;t.tbody=!p.getElementsByTagName("tbody").length;t.htmlSerialize=!!p.getElementsByTagName("link").length;t.style=/top/.test(r.getAttribute("style"));t.hrefNormalized=r.getAttribute("href")==="/a";t.opacity=/^0.5/.test(r.style.opacity);t.cssFloat=!!r.style.cssFloat;t.checkOn=!!s.value;t.optSelected=f.selected;t.enctype=!!o.createElement("form").enctype;t.html5Clone=o.createElement("nav").cloneNode(true).outerHTML!=="<:nav>";t.inlineBlockNeedsLayout=false;t.shrinkWrapBlocks=false;t.pixelPosition=false;t.deleteExpando=true;t.noCloneEvent=true;t.reliableMarginRight=true;t.boxSizingReliable=true;s.checked=true;t.noCloneChecked=s.cloneNode(true).checked;u.disabled=true;t.optDisabled=!f.disabled;try{delete p.test}catch(d){t.deleteExpando=false}s=o.createElement("input");s.setAttribute("value","");t.input=s.getAttribute("value")==="";s.value="t";s.setAttribute("type","radio");t.radioValue=s.value==="t";s.setAttribute("checked","t");s.setAttribute("name","t");a=o.createDocumentFragment();a.appendChild(s);t.appendChecked=s.checked;t.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;if(p.attachEvent){p.attachEvent("onclick",function(){t.noCloneEvent=false});p.cloneNode(true).click()}for(h in{submit:true,change:true,focusin:true}){p.setAttribute(l="on"+h,"t");t[h+"Bubbles"]=l in e||p.attributes[l].expando===false}p.style.backgroundClip="content-box";p.cloneNode(true).style.backgroundClip="";t.clearCloneStyle=p.style.backgroundClip==="content-box";for(h in w(t)){break}t.ownLast=h!=="0";w(function(){var n,r,s,u="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",a=o.getElementsByTagName("body")[0];if(!a){return}n=o.createElement("div");n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px";a.appendChild(n).appendChild(p);p.innerHTML="
t
";s=p.getElementsByTagName("td");s[0].style.cssText="padding:0;margin:0;border:0;display:none";c=s[0].offsetHeight===0;s[0].style.display="";s[1].style.display="none";t.reliableHiddenOffsets=c&&s[0].offsetHeight===0;p.innerHTML="";p.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;";w.swap(a,a.style.zoom!=null?{zoom:1}:{},function(){t.boxSizing=p.offsetWidth===4});if(e.getComputedStyle){t.pixelPosition=(e.getComputedStyle(p,null)||{}).top!=="1%";t.boxSizingReliable=(e.getComputedStyle(p,null)||{width:"4px"}).width==="4px";r=p.appendChild(o.createElement("div"));r.style.cssText=p.style.cssText=u;r.style.marginRight=r.style.width="0";p.style.width="1px";t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)}if(typeof p.style.zoom!==i){p.innerHTML="";p.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1";t.inlineBlockNeedsLayout=p.offsetWidth===3;p.style.display="block";p.innerHTML="
";p.firstChild.style.width="5px";t.shrinkWrapBlocks=p.offsetWidth!==3;if(t.inlineBlockNeedsLayout){a.style.zoom=1}}a.removeChild(n);n=p=s=r=null});n=u=a=f=r=s=null;return t}({});var F=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;w.extend({cache:{},noData:{applet:true,embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){e=e.nodeType?w.cache[e[w.expando]]:e[w.expando];return!!e&&!z(e)},data:function(e,t,n){return q(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return q(e,t,n,true)},_removeData:function(e,t){return R(e,t,true)},acceptData:function(e){if(e.nodeType&&e.nodeType!==1&&e.nodeType!==9){return false}var t=e.nodeName&&w.noData[e.nodeName.toLowerCase()];return!t||t!==true&&e.getAttribute("classid")===t}});w.fn.extend({data:function(e,n){var r,i,s=null,o=0,u=this[0];if(e===t){if(this.length){s=w.data(u);if(u.nodeType===1&&!w._data(u,"parsedAttrs")){r=u.attributes;for(;o1?this.each(function(){w.data(this,e,n)}):u?U(u,e,w.data(u,e)):null},removeData:function(e){return this.each(function(){w.removeData(this,e)})}});w.extend({queue:function(e,t,n){var r;if(e){t=(t||"fx")+"queue";r=w._data(e,t);if(n){if(!r||w.isArray(n)){r=w._data(e,t,w.makeArray(n))}else{r.push(n)}}return r||[]}},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),s=w._queueHooks(e,t),o=function(){w.dequeue(e,t)};if(i==="inprogress"){i=n.shift();r--}if(i){if(t==="fx"){n.unshift("inprogress")}delete s.stop;i.call(e,o,s)}if(!r&&s){s.empty.fire()}},_queueHooks:function(e,t){var n=t+"queueHooks";return w._data(e,n)||w._data(e,n,{empty:w.Callbacks("once memory").add(function(){w._removeData(e,t+"queue");w._removeData(e,n)})})}});w.fn.extend({queue:function(e,n){var r=2;if(typeof e!=="string"){n=e;e="fx";r--}if(arguments.length1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})},prop:function(e,t){return w.access(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){e=w.propFix[e]||e;return this.each(function(){try{this[e]=t;delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o=0,u=this.length,a=typeof e==="string"&&e;if(w.isFunction(e)){return this.each(function(t){w(this).addClass(e.call(this,t,this.className))})}if(a){t=(e||"").match(S)||[];for(;o=0){r=r.replace(" "+i+" "," ")}}n.className=e?w.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e;if(typeof t==="boolean"&&n==="string"){return t?this.addClass(e):this.removeClass(e)}if(w.isFunction(e)){return this.each(function(n){w(this).toggleClass(e.call(this,n,this.className,t),t)})}return this.each(function(){if(n==="string"){var t,r=0,s=w(this),o=e.match(S)||[];while(t=o[r++]){if(s.hasClass(t)){s.removeClass(t)}else{s.addClass(t)}}}else if(n===i||n==="boolean"){if(this.className){w._data(this,"__className__",this.className)}this.className=this.className||e===false?"":w._data(this,"__className__")||""}})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n=0){return true}}return false},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s){r=w.valHooks[s.type]||w.valHooks[s.nodeName.toLowerCase()];if(r&&"get"in r&&(n=r.get(s,"value"))!==t){return n}n=s.value;return typeof n==="string"?n.replace($,""):n==null?"":n}return}i=w.isFunction(e);return this.each(function(n){var s;if(this.nodeType!==1){return}if(i){s=e.call(this,n,w(this).val())}else{s=e}if(s==null){s=""}else if(typeof s==="number"){s+=""}else if(w.isArray(s)){s=w.map(s,function(e){return e==null?"":e+""})}r=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()];if(!r||!("set"in r)||r.set(this,s,"value")===t){this.value=s}})}});w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return t!=null?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a=0){n=true}}if(!n){e.selectedIndex=-1}return s}}},attr:function(e,n,r){var s,o,u=e.nodeType;if(!e||u===3||u===8||u===2){return}if(typeof e.getAttribute===i){return w.prop(e,n,r)}if(u!==1||!w.isXMLDoc(e)){n=n.toLowerCase();s=w.attrHooks[n]||(w.expr.match.bool.test(n)?X:W)}if(r!==t){if(r===null){w.removeAttr(e,n)}else if(s&&"set"in s&&(o=s.set(e,r,n))!==t){return o}else{e.setAttribute(n,r+"");return r}}else if(s&&"get"in s&&(o=s.get(e,n))!==null){return o}else{o=w.find.attr(e,n);return o==null?t:o}},removeAttr:function(e,t){var n,r,i=0,s=t&&t.match(S);if(s&&e.nodeType===1){while(n=s[i++]){r=w.propFix[n]||n;if(w.expr.match.bool.test(n)){if(Y&&G||!Q.test(n)){e[r]=false}else{e[w.camelCase("default-"+n)]=e[r]=false}}else{w.attr(e,n,"")}e.removeAttribute(G?n:r)}}},attrHooks:{type:{set:function(e,t){if(!w.support.radioValue&&t==="radio"&&w.nodeName(e,"input")){var n=e.value;e.setAttribute("type",t);if(n){e.value=n}return t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2){return}o=u!==1||!w.isXMLDoc(e);if(o){n=w.propFix[n]||n;s=w.propHooks[n]}if(r!==t){return s&&"set"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r}else{return s&&"get"in s&&(i=s.get(e,n))!==null?i:e[n]}},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):J.test(e.nodeName)||K.test(e.nodeName)&&e.href?0:-1}}}});X={set:function(e,t,n){if(t===false){w.removeAttr(e,n)}else if(Y&&G||!Q.test(n)){e.setAttribute(!G&&w.propFix[n]||n,n)}else{e[w.camelCase("default-"+n)]=e[n]=true}return n}};w.each(w.expr.match.bool.source.match(/\w+/g),function(e,n){var r=w.expr.attrHandle[n]||w.find.attr;w.expr.attrHandle[n]=Y&&G||!Q.test(n)?function(e,n,i){var s=w.expr.attrHandle[n],o=i?t:(w.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;w.expr.attrHandle[n]=s;return o}:function(e,n,r){return r?t:e[w.camelCase("default-"+n)]?n.toLowerCase():null}});if(!Y||!G){w.attrHooks.value={set:function(e,t,n){if(w.nodeName(e,"input")){e.defaultValue=t}else{return W&&W.set(e,t,n)}}}}if(!G){W={set:function(e,n,r){var i=e.getAttributeNode(r);if(!i){e.setAttributeNode(i=e.ownerDocument.createAttribute(r))}i.value=n+="";return r==="value"||n===e.getAttribute(r)?n:t}};w.expr.attrHandle.id=w.expr.attrHandle.name=w.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.value!==""?i.value:null};w.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:W.set};w.attrHooks.contenteditable={set:function(e,t,n){W.set(e,t===""?false:t,n)}};w.each(["width","height"],function(e,t){w.attrHooks[t]={set:function(e,n){if(n===""){e.setAttribute(t,"auto");return n}}}})}if(!w.support.hrefNormalized){w.each(["href","src"],function(e,t){w.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})}if(!w.support.style){w.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}}if(!w.support.optSelected){w.propHooks.selected={get:function(e){var t=e.parentNode;if(t){t.selectedIndex;if(t.parentNode){t.parentNode.selectedIndex}}return null}}}w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});if(!w.support.enctype){w.propFix.enctype="encoding"}w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(w.isArray(t)){return e.checked=w.inArray(w(e).val(),t)>=0}}};if(!w.support.checkOn){w.valHooks[this].get=function(e){return e.getAttribute("value")===null?"on":e.value}}});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;w.event={global:{},add:function(e,n,r,s,o){var u,a,f,l,c,h,p,d,v,m,g,y=w._data(e);if(!y){return}if(r.handler){l=r;r=l.handler;o=l.selector}if(!r.guid){r.guid=w.guid++}if(!(a=y.events)){a=y.events={}}if(!(h=y.handle)){h=y.handle=function(e){return typeof w!==i&&(!e||w.event.triggered!==e.type)?w.event.dispatch.apply(h.elem,arguments):t};h.elem=e}n=(n||"").match(S)||[""];f=n.length;while(f--){u=rt.exec(n[f])||[];v=g=u[1];m=(u[2]||"").split(".").sort();if(!v){continue}c=w.event.special[v]||{};v=(o?c.delegateType:c.bindType)||v;c=w.event.special[v]||{};p=w.extend({type:v,origType:g,data:s,handler:r,guid:r.guid,selector:o,needsContext:o&&w.expr.match.needsContext.test(o),namespace:m.join(".")},l);if(!(d=a[v])){d=a[v]=[];d.delegateCount=0;if(!c.setup||c.setup.call(e,s,m,h)===false){if(e.addEventListener){e.addEventListener(v,h,false)}else if(e.attachEvent){e.attachEvent("on"+v,h)}}}if(c.add){c.add.call(e,p);if(!p.handler.guid){p.handler.guid=r.guid}}if(o){d.splice(d.delegateCount++,0,p)}else{d.push(p)}w.event.global[v]=true}e=null},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,v,m=w.hasData(e)&&w._data(e);if(!m||!(l=m.events)){return}t=(t||"").match(S)||[""];f=t.length;while(f--){u=rt.exec(t[f])||[];p=v=u[1];d=(u[2]||"").split(".").sort();if(!p){for(p in l){w.event.remove(e,p+t[f],n,r,true)}continue}c=w.event.special[p]||{};p=(r?c.delegateType:c.bindType)||p;h=l[p]||[];u=u[2]&&new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)");a=s=h.length;while(s--){o=h[s];if((i||v===o.origType)&&(!n||n.guid===o.guid)&&(!u||u.test(o.namespace))&&(!r||r===o.selector||r==="**"&&o.selector)){h.splice(s,1);if(o.selector){h.delegateCount--}if(c.remove){c.remove.call(e,o)}}}if(a&&!h.length){if(!c.teardown||c.teardown.call(e,d,m.handle)===false){w.removeEvent(e,p,m.handle)}delete l[p]}}if(w.isEmptyObject(l)){delete m.handle;w._removeData(e,"events")}},trigger:function(n,r,i,s){var u,a,f,l,c,h,p,d=[i||o],v=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];f=h=i=i||o;if(i.nodeType===3||i.nodeType===8){return}if(nt.test(v+w.event.triggered)){return}if(v.indexOf(".")>=0){m=v.split(".");v=m.shift();m.sort()}a=v.indexOf(":")<0&&"on"+v;n=n[w.expando]?n:new w.Event(v,typeof n==="object"&&n);n.isTrigger=s?2:3;n.namespace=m.join(".");n.namespace_re=n.namespace?new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;n.result=t;if(!n.target){n.target=i}r=r==null?[n]:w.makeArray(r,[n]);c=w.event.special[v]||{};if(!s&&c.trigger&&c.trigger.apply(i,r)===false){return}if(!s&&!c.noBubble&&!w.isWindow(i)){l=c.delegateType||v;if(!nt.test(l+v)){f=f.parentNode}for(;f;f=f.parentNode){d.push(f);h=f}if(h===(i.ownerDocument||o)){d.push(h.defaultView||h.parentWindow||e)}}p=0;while((f=d[p++])&&!n.isPropagationStopped()){n.type=p>1?l:c.bindType||v;u=(w._data(f,"events")||{})[n.type]&&w._data(f,"handle");if(u){u.apply(f,r)}u=a&&f[a];if(u&&w.acceptData(f)&&u.apply&&u.apply(f,r)===false){n.preventDefault()}}n.type=v;if(!s&&!n.isDefaultPrevented()){if((!c._default||c._default.apply(d.pop(),r)===false)&&w.acceptData(i)){if(a&&i[v]&&!w.isWindow(i)){h=i[a];if(h){i[a]=null}w.event.triggered=v;try{i[v]()}catch(g){}w.event.triggered=t;if(h){i[a]=h}}}}return n.result},dispatch:function(e){e=w.event.fix(e);var n,r,i,s,o,u=[],a=v.call(arguments),f=(w._data(this,"events")||{})[e.type]||[],l=w.event.special[e.type]||{};a[0]=e;e.delegateTarget=this;if(l.preDispatch&&l.preDispatch.call(this,e)===false){return}u=w.event.handlers.call(this,e,f);n=0;while((s=u[n++])&&!e.isPropagationStopped()){e.currentTarget=s.elem;o=0;while((i=s.handlers[o++])&&!e.isImmediatePropagationStopped()){if(!e.namespace_re||e.namespace_re.test(i.namespace)){e.handleObj=i;e.data=i.data;r=((w.event.special[i.origType]||{}).handle||i.handler).apply(s.elem,a);if(r!==t){if((e.result=r)===false){e.preventDefault();e.stopPropagation()}}}}}if(l.postDispatch){l.postDispatch.call(this,e)}return e.result},handlers:function(e,n){var r,i,s,o,u=[],a=n.delegateCount,f=e.target;if(a&&f.nodeType&&(!e.button||e.type!=="click")){for(;f!=this;f=f.parentNode||this){if(f.nodeType===1&&(f.disabled!==true||e.type!=="click")){s=[];for(o=0;o=0:w.find(r,this,null,[f]).length}if(s[r]){s.push(i)}}if(s.length){u.push({elem:f,handlers:s})}}}}if(a1?w.unique(n):n);n.selector=this.selector?this.selector+" "+e:e;return n},has:function(e){var t,n=w(e,this),r=n.length;return this.filter(function(){for(t=0;t-1:n.nodeType===1&&w.find.matchesSelector(n,e))){n=s.push(n);break}}}return this.pushStack(s.length>1?w.unique(s):s)},index:function(e){if(!e){return this[0]&&this[0].parentNode?this.first().prevAll().length:-1}if(typeof e==="string"){return w.inArray(this[0],w(e))}return w.inArray(e.jquery?e[0]:e,this)},add:function(e,t){var n=typeof e==="string"?w(e,t):w.makeArray(e&&e.nodeType?[e]:e),r=w.merge(this.get(),n);return this.pushStack(w.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}});w.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return w.dir(e,"parentNode")},parentsUntil:function(e,t,n){return w.dir(e,"parentNode",n)},next:function(e){return ct(e,"nextSibling")},prev:function(e){return ct(e,"previousSibling")},nextAll:function(e){return w.dir(e,"nextSibling")},prevAll:function(e){return w.dir(e,"previousSibling")},nextUntil:function(e,t,n){return w.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return w.dir(e,"previousSibling",n)},siblings:function(e){return w.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return w.sibling(e.firstChild)},contents:function(e){return w.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:w.merge([],e.childNodes)}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);if(e.slice(-5)!=="Until"){r=n}if(r&&typeof r==="string"){i=w.filter(r,i)}if(this.length>1){if(!lt[e]){i=w.unique(i)}if(at.test(e)){i=i.reverse()}}return this.pushStack(i)}});w.extend({filter:function(e,t,n){var r=t[0];if(n){e=":not("+e+")"}return t.length===1&&r.nodeType===1?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return e.nodeType===1}))},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!w(s).is(r))){if(s.nodeType===1){i.push(s)}s=s[n]}return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling){if(e.nodeType===1&&e!==t){n.push(e)}}return n}});var dt="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|"+"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",vt=/ jQuery\d+="(?:null|\d+)"/g,mt=new RegExp("<(?:"+dt+")[\\s/>]","i"),gt=/^\s+/,yt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,wt=/
","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:w.support.htmlSerialize?[0,"",""]:[1,"X
","
"]},At=pt(o),Ot=At.appendChild(o.createElement("div"));Lt.optgroup=Lt.option;Lt.tbody=Lt.tfoot=Lt.colgroup=Lt.caption=Lt.thead;Lt.th=Lt.td;w.fn.extend({text:function(e){return w.access(this,function(e){return e===t?w.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var t=Mt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var t=Mt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){if(this.parentNode){this.parentNode.insertBefore(e,this)}})},after:function(){return this.domManip(arguments,function(e){if(this.parentNode){this.parentNode.insertBefore(e,this.nextSibling)}})},remove:function(e,t){var n,r=e?w.filter(e,this):this,i=0;for(;(n=r[i])!=null;i++){if(!t&&n.nodeType===1){w.cleanData(jt(n))}if(n.parentNode){if(t&&w.contains(n.ownerDocument,n)){Pt(jt(n,"script"))}n.parentNode.removeChild(n)}}return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){if(e.nodeType===1){w.cleanData(jt(e,false))}while(e.firstChild){e.removeChild(e.firstChild)}if(e.options&&w.nodeName(e,"select")){e.options.length=0}}return this},clone:function(e,t){e=e==null?false:e;t=t==null?e:t;return this.map(function(){return w.clone(this,e,t)})},html:function(e){return w.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t){return n.nodeType===1?n.innerHTML.replace(vt,""):t}if(typeof e==="string"&&!St.test(e)&&(w.support.htmlSerialize||!mt.test(e))&&(w.support.leadingWhitespace||!gt.test(e))&&!Lt[(bt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(yt,"<$1>");try{for(;r")){s=e.cloneNode(true)}else{Ot.innerHTML=e.outerHTML;Ot.removeChild(s=Ot.firstChild)}if((!w.support.noCloneEvent||!w.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!w.isXMLDoc(e)){r=jt(s);u=jt(e);for(o=0;(i=u[o])!=null;++o){if(r[o]){Bt(i,r[o])}}}if(t){if(n){u=u||jt(e);r=r||jt(s);for(o=0;(i=u[o])!=null;o++){Ht(i,r[o])}}else{Ht(e,s)}}r=jt(s,"script");if(r.length>0){Pt(r,!a&&jt(e,"script"))}r=u=i=null;return s},buildFragment:function(e,t,n,r){var i,s,o,u,a,f,l,c=e.length,h=pt(t),p=[],d=0;for(;d")+l[2];i=l[0];while(i--){u=u.lastChild}if(!w.support.leadingWhitespace&>.test(s)){p.push(t.createTextNode(gt.exec(s)[0]))}if(!w.support.tbody){s=a==="table"&&!wt.test(s)?u.firstChild:l[1]===""&&!wt.test(s)?u:0;i=s&&s.childNodes.length;while(i--){if(w.nodeName(f=s.childNodes[i],"tbody")&&!f.childNodes.length){s.removeChild(f)}}}w.merge(p,u.childNodes);u.textContent="";while(u.firstChild){u.removeChild(u.firstChild)}u=h.lastChild}}}if(u){h.removeChild(u)}if(!w.support.appendChecked){w.grep(jt(p,"input"),Ft)}d=0;while(s=p[d++]){if(r&&w.inArray(s,r)!==-1){continue}o=w.contains(s.ownerDocument,s);u=jt(h.appendChild(s),"script");if(o){Pt(u)}if(n){i=0;while(s=u[i++]){if(Nt.test(s.type||"")){n.push(s)}}}}u=null;return h},cleanData:function(e,t){var n,r,s,o,u=0,a=w.expando,f=w.cache,l=w.support.deleteExpando,h=w.event.special;for(;(n=e[u])!=null;u++){if(t||w.acceptData(n)){s=n[a];o=s&&f[s];if(o){if(o.events){for(r in o.events){if(h[r]){w.event.remove(n,r)}else{w.removeEvent(n,r,o.handle)}}}if(f[s]){delete f[s];if(l){delete n[a]}else if(typeof n.removeAttribute!==i){n.removeAttribute(a)}else{n[a]=null}c.push(s)}}}}},_evalUrl:function(e){return w.ajax({url:e,type:"GET",dataType:"script",async:false,global:false,"throws":true})}});w.fn.extend({wrapAll:function(e){if(w.isFunction(e)){return this.each(function(t){w(this).wrapAll(e.call(this,t))})}if(this[0]){var t=w(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){t.insertBefore(this[0])}t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1){e=e.firstChild}return e}).append(this)}return this},wrapInner:function(e){if(w.isFunction(e)){return this.each(function(t){w(this).wrapInner(e.call(this,t))})}return this.each(function(){var t=w(this),n=t.contents();if(n.length){n.wrapAll(e)}else{t.append(e)}})},wrap:function(e){var t=w.isFunction(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){if(!w.nodeName(this,"body")){w(this).replaceWith(this.childNodes)}}).end()}});var It,qt,Rt,Ut=/alpha\([^)]*\)/i,zt=/opacity\s*=\s*([^)]*)/,Wt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Vt=/^margin/,$t=new RegExp("^("+E+")(.*)$","i"),Jt=new RegExp("^("+E+")(?!px)[a-z%]+$","i"),Kt=new RegExp("^([+-])=("+E+")","i"),Qt={BODY:"block"},Gt={position:"absolute",visibility:"hidden",display:"block"},Yt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];w.fn.extend({css:function(e,n){return w.access(this,function(e,n,r){var i,s,o={},u=0;if(w.isArray(n)){s=qt(e);i=n.length;for(;u1)},show:function(){return rn(this,true)},hide:function(){return rn(this)},toggle:function(e){if(typeof e==="boolean"){return e?this.show():this.hide()}return this.each(function(){if(nn(this)){w(this).show()}else{w(this).hide()}})}});w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Rt(e,"opacity");return n===""?"1":n}}}},cssNumber:{columnCount:true,fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,order:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":w.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style){return}var s,o,u,a=w.camelCase(n),f=e.style;n=w.cssProps[a]||(w.cssProps[a]=tn(f,a));u=w.cssHooks[n]||w.cssHooks[a];if(r!==t){o=typeof r;if(o==="string"&&(s=Kt.exec(r))){r=(s[1]+1)*s[2]+parseFloat(w.css(e,n));o="number"}if(r==null||o==="number"&&isNaN(r)){return}if(o==="number"&&!w.cssNumber[a]){r+="px"}if(!w.support.clearCloneStyle&&r===""&&n.indexOf("background")===0){f[n]="inherit"}if(!u||!("set"in u)||(r=u.set(e,r,i))!==t){try{f[n]=r}catch(l){}}}else{if(u&&"get"in u&&(s=u.get(e,false,i))!==t){return s}return f[n]}},css:function(e,n,r,i){var s,o,u,a=w.camelCase(n);n=w.cssProps[a]||(w.cssProps[a]=tn(e.style,a));u=w.cssHooks[n]||w.cssHooks[a];if(u&&"get"in u){o=u.get(e,true,r)}if(o===t){o=Rt(e,n,i)}if(o==="normal"&&n in Yt){o=Yt[n]}if(r===""||r){s=parseFloat(o);return r===true||w.isNumeric(s)?s||0:o}return o}});if(e.getComputedStyle){qt=function(t){return e.getComputedStyle(t,null)};Rt=function(e,n,r){var i,s,o,u=r||qt(e),a=u?u.getPropertyValue(n)||u[n]:t,f=e.style;if(u){if(a===""&&!w.contains(e.ownerDocument,e)){a=w.style(e,n)}if(Jt.test(a)&&Vt.test(n)){i=f.width;s=f.minWidth;o=f.maxWidth;f.minWidth=f.maxWidth=f.width=a;a=u.width;f.width=i;f.minWidth=s;f.maxWidth=o}}return a}}else if(o.documentElement.currentStyle){qt=function(e){return e.currentStyle};Rt=function(e,n,r){var i,s,o,u=r||qt(e),a=u?u[n]:t,f=e.style;if(a==null&&f&&f[n]){a=f[n]}if(Jt.test(a)&&!Wt.test(n)){i=f.left;s=e.runtimeStyle;o=s&&s.left;if(o){s.left=e.currentStyle.left}f.left=n==="fontSize"?"1em":a;a=f.pixelLeft+"px";f.left=i;if(o){s.left=o}}return a===""?"auto":a}}w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n){return e.offsetWidth===0&&Xt.test(w.css(e,"display"))?w.swap(e,Gt,function(){return un(e,t,r)}):un(e,t,r)}},set:function(e,n,r){var i=r&&qt(e);return sn(e,n,r?on(e,t,r,w.support.boxSizing&&w.css(e,"boxSizing",false,i)==="border-box",i):0)}}});if(!w.support.opacity){w.cssHooks.opacity={get:function(e,t){return zt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=w.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if((t>=1||t==="")&&w.trim(s.replace(Ut,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(t===""||r&&!r.filter){return}}n.filter=Ut.test(s)?s.replace(Ut,i):s+" "+i}}}w(function(){if(!w.support.reliableMarginRight){w.cssHooks.marginRight={get:function(e,t){if(t){return w.swap(e,{display:"inline-block"},Rt,[e,"marginRight"])}}}}if(!w.support.pixelPosition&&w.fn.position){w.each(["top","left"],function(e,t){w.cssHooks[t]={get:function(e,n){if(n){n=Rt(e,t);return Jt.test(n)?w(e).position()[t]+"px":n}}}})}});if(w.expr&&w.expr.filters){w.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0||!w.support.reliableHiddenOffsets&&(e.style&&e.style.display||w.css(e,"display"))==="none"};w.expr.filters.visible=function(e){return!w.expr.filters.hidden(e)}}w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){var r=0,i={},s=typeof n==="string"?n.split(" "):[n];for(;r<4;r++){i[e+Zt[r]+t]=s[r]||s[r-2]||s[0]}return i}};if(!Vt.test(e)){w.cssHooks[e+t].set=sn}});var ln=/%20/g,cn=/\[\]$/,hn=/\r?\n/g,pn=/^(?:submit|button|image|reset|file)$/i,dn=/^(?:input|select|textarea|keygen)/i;w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&dn.test(this.nodeName)&&!pn.test(e)&&(this.checked||!xt.test(e))}).map(function(e,t){var n=w(this).val();return n==null?null:w.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(hn,"\r\n")}}):{name:t.name,value:n.replace(hn,"\r\n")}}).get()}});w.param=function(e,n){var r,i=[],s=function(e,t){t=w.isFunction(t)?t():t==null?"":t;i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t){n=w.ajaxSettings&&w.ajaxSettings.traditional}if(w.isArray(e)||e.jquery&&!w.isPlainObject(e)){w.each(e,function(){s(this.name,this.value)})}else{for(r in e){vn(r,e[r],n,s)}}return i.join("&").replace(ln,"+")};w.each(("blur focus focusin focusout load resize scroll unload click dblclick "+"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+"change select submit keydown keypress keyup error contextmenu").split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}});w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,gn,yn=w.now(),bn=/\?/,wn=/#.*$/,En=/([?&])_=[^&]*/,Sn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,xn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Tn=/^(?:GET|HEAD)$/,Nn=/^\/\//,Cn=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,kn=w.fn.load,Ln={},An={},On="*/".concat("*");try{gn=s.href}catch(Mn){gn=o.createElement("a");gn.href="";gn=gn.href}mn=Cn.exec(gn.toLowerCase())||[];w.fn.load=function(e,n,r){if(typeof e!=="string"&&kn){return kn.apply(this,arguments)}var i,s,o,u=this,a=e.indexOf(" ");if(a>=0){i=e.slice(a,e.length);e=e.slice(0,a)}if(w.isFunction(n)){r=n;n=t}else if(n&&typeof n==="object"){o="POST"}if(u.length>0){w.ajax({url:e,type:o,dataType:"html",data:n}).done(function(e){s=arguments;u.html(i?w("
").append(w.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){u.each(r,s||[e.responseText,t,e])})}return this};w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}});w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:gn,type:"GET",isLocal:xn.test(mn[1]),global:true,processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":On,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":true,"text json":w.parseJSON,"text xml":w.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(e,t){return t?Pn(Pn(e,w.ajaxSettings),t):Pn(w.ajaxSettings,e)},ajaxPrefilter:_n(Ln),ajaxTransport:_n(An),ajax:function(e,n){function N(e,n,r,i){var l,g,y,E,S,T=n;if(b===2){return}b=2;if(u){clearTimeout(u)}f=t;o=i||"";x.readyState=e>0?4:0;l=e>=200&&e<300||e===304;if(r){E=Hn(c,x,r)}E=Bn(c,E,x,l);if(l){if(c.ifModified){S=x.getResponseHeader("Last-Modified");if(S){w.lastModified[s]=S}S=x.getResponseHeader("etag");if(S){w.etag[s]=S}}if(e===204||c.type==="HEAD"){T="nocontent"}else if(e===304){T="notmodified"}else{T=E.state;g=E.data;y=E.error;l=!y}}else{y=T;if(e||!T){T="error";if(e<0){e=0}}}x.status=e;x.statusText=(n||T)+"";if(l){d.resolveWith(h,[g,T,x])}else{d.rejectWith(h,[x,T,y])}x.statusCode(m);m=t;if(a){p.trigger(l?"ajaxSuccess":"ajaxError",[x,c,l?g:y])}v.fireWith(h,[x,T]);if(a){p.trigger("ajaxComplete",[x,c]);if(!--w.active){w.event.trigger("ajaxStop")}}}if(typeof e==="object"){n=e;e=t}n=n||{};var r,i,s,o,u,a,f,l,c=w.ajaxSetup({},n),h=c.context||c,p=c.context&&(h.nodeType||h.jquery)?w(h):w.event,d=w.Deferred(),v=w.Callbacks("once memory"),m=c.statusCode||{},g={},y={},b=0,E="canceled",x={readyState:0,getResponseHeader:function(e){var t;if(b===2){if(!l){l={};while(t=Sn.exec(o)){l[t[1].toLowerCase()]=t[2]}}t=l[e.toLowerCase()]}return t==null?null:t},getAllResponseHeaders:function(){return b===2?o:null},setRequestHeader:function(e,t){var n=e.toLowerCase();if(!b){e=y[n]=y[n]||e;g[e]=t}return this},overrideMimeType:function(e){if(!b){c.mimeType=e}return this},statusCode:function(e){var t;if(e){if(b<2){for(t in e){m[t]=[m[t],e[t]]}}else{x.always(e[x.status])}}return this},abort:function(e){var t=e||E;if(f){f.abort(t)}N(0,t);return this}};d.promise(x).complete=v.add;x.success=x.done;x.error=x.fail;c.url=((e||c.url||gn)+"").replace(wn,"").replace(Nn,mn[1]+"//");c.type=n.method||n.type||c.method||c.type;c.dataTypes=w.trim(c.dataType||"*").toLowerCase().match(S)||[""];if(c.crossDomain==null){r=Cn.exec(c.url.toLowerCase());c.crossDomain=!!(r&&(r[1]!==mn[1]||r[2]!==mn[2]||(r[3]||(r[1]==="http:"?"80":"443"))!==(mn[3]||(mn[1]==="http:"?"80":"443"))))}if(c.data&&c.processData&&typeof c.data!=="string"){c.data=w.param(c.data,c.traditional)}Dn(Ln,c,n,x);if(b===2){return x}a=c.global;if(a&&w.active++===0){w.event.trigger("ajaxStart")}c.type=c.type.toUpperCase();c.hasContent=!Tn.test(c.type);s=c.url;if(!c.hasContent){if(c.data){s=c.url+=(bn.test(s)?"&":"?")+c.data;delete c.data}if(c.cache===false){c.url=En.test(s)?s.replace(En,"$1_="+yn++):s+(bn.test(s)?"&":"?")+"_="+yn++}}if(c.ifModified){if(w.lastModified[s]){x.setRequestHeader("If-Modified-Since",w.lastModified[s])}if(w.etag[s]){x.setRequestHeader("If-None-Match",w.etag[s])}}if(c.data&&c.hasContent&&c.contentType!==false||n.contentType){x.setRequestHeader("Content-Type",c.contentType)}x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+On+"; q=0.01":""):c.accepts["*"]);for(i in c.headers){x.setRequestHeader(i,c.headers[i])}if(c.beforeSend&&(c.beforeSend.call(h,x,c)===false||b===2)){return x.abort()}E="abort";for(i in{success:1,error:1,complete:1}){x[i](c[i])}f=Dn(An,c,n,x);if(!f){N(-1,"No Transport")}else{x.readyState=1;if(a){p.trigger("ajaxSend",[x,c])}if(c.async&&c.timeout>0){u=setTimeout(function(){x.abort("timeout")},c.timeout)}try{b=1;f.send(g,N)}catch(T){if(b<2){N(-1,T)}else{throw T}}}return x},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,n){return w.get(e,t,n,"script")}});w.each(["get","post"],function(e,n){w[n]=function(e,r,i,s){if(w.isFunction(r)){s=s||i;i=r;r=t}return w.ajax({url:e,type:n,dataType:s,data:r,success:i})}});w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){w.globalEval(e);return e}}});w.ajaxPrefilter("script",function(e){if(e.cache===t){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});w.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=o.head||w("head")[0]||o.documentElement;return{send:function(t,i){n=o.createElement("script");n.async=true;if(e.scriptCharset){n.charset=e.scriptCharset}n.src=e.url;n.onload=n.onreadystatechange=function(e,t){if(t||!n.readyState||/loaded|complete/.test(n.readyState)){n.onload=n.onreadystatechange=null;if(n.parentNode){n.parentNode.removeChild(n)}n=null;if(!t){i(200,"success")}}};r.insertBefore(n,r.firstChild)},abort:function(){if(n){n.onload(t,true)}}}}});var jn=[],Fn=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=jn.pop()||w.expando+"_"+yn++;this[e]=true;return e}});w.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.jsonp!==false&&(Fn.test(n.url)?"url":typeof n.data==="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Fn.test(n.data)&&"data");if(a||n.dataTypes[0]==="jsonp"){s=n.jsonpCallback=w.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback;if(a){n[a]=n[a].replace(Fn,"$1"+s)}else if(n.jsonp!==false){n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+s}n.converters["script json"]=function(){if(!u){w.error(s+" was not called")}return u[0]};n.dataTypes[0]="json";o=e[s];e[s]=function(){u=arguments};i.always(function(){e[s]=o;if(n[s]){n.jsonpCallback=r.jsonpCallback;jn.push(s)}if(u&&w.isFunction(o)){o(u[0])}u=o=t});return"script"}});var In,qn,Rn=0,Un=e.ActiveXObject&&function(){var e;for(e in In){In[e](t,true)}};w.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&zn()||Wn()}:zn;qn=w.ajaxSettings.xhr();w.support.cors=!!qn&&"withCredentials"in qn;qn=w.support.ajax=!!qn;if(qn){w.ajaxTransport(function(n){if(!n.crossDomain||w.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();if(n.username){a.open(n.type,n.url,n.async,n.username,n.password)}else{a.open(n.type,n.url,n.async)}if(n.xhrFields){for(u in n.xhrFields){a[u]=n.xhrFields[u]}}if(n.mimeType&&a.overrideMimeType){a.overrideMimeType(n.mimeType)}if(!n.crossDomain&&!i["X-Requested-With"]){i["X-Requested-With"]="XMLHttpRequest"}try{for(u in i){a.setRequestHeader(u,i[u])}}catch(f){}a.send(n.hasContent&&n.data||null);r=function(e,i){var u,f,l,c;try{if(r&&(i||a.readyState===4)){r=t;if(o){a.onreadystatechange=w.noop;if(Un){delete In[o]}}if(i){if(a.readyState!==4){a.abort()}}else{c={};u=a.status;f=a.getAllResponseHeaders();if(typeof a.responseText==="string"){c.text=a.responseText}try{l=a.statusText}catch(h){l=""}if(!u&&n.isLocal&&!n.crossDomain){u=c.text?200:404}else if(u===1223){u=204}}}}catch(p){if(!i){s(-1,p)}}if(c){s(u,l,c,f)}};if(!n.async){r()}else if(a.readyState===4){setTimeout(r)}else{o=++Rn;if(Un){if(!In){In={};w(e).unload(Un)}In[o]=r}a.onreadystatechange=r}},abort:function(){if(r){r(t,true)}}}}})}var Xn,Vn,$n=/^(?:toggle|show|hide)$/,Jn=new RegExp("^(?:([+-])=|)("+E+")([a-z%]*)$","i"),Kn=/queueHooks$/,Qn=[nr],Gn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Jn.exec(t),s=i&&i[3]||(w.cssNumber[e]?"":"px"),o=(w.cssNumber[e]||s!=="px"&&+r)&&Jn.exec(w.css(n.elem,e)),u=1,a=20;if(o&&o[3]!==s){s=s||o[3];i=i||[];o=+r||1;do{u=u||".5";o=o/u;w.style(n.elem,e,o+s)}while(u!==(u=n.cur()/r)&&u!==1&&--a)}if(i){o=n.start=+o||+r||0;n.unit=s;n.end=i[1]?o+(i[1]+1)*i[2]:+i[2]}return n}]};w.Animation=w.extend(er,{tweener:function(e,t){if(w.isFunction(e)){t=e;e=["*"]}else{e=e.split(" ")}var n,r=0,i=e.length;for(;r-1,f={},l={},c,h;if(a){l=i.position();c=l.top;h=l.left}else{c=parseFloat(o)||0;h=parseFloat(u)||0}if(w.isFunction(t)){t=t.call(e,n,s)}if(t.top!=null){f.top=t.top-s.top+c}if(t.left!=null){f.left=t.left-s.left+h}if("using"in t){t.using.call(e,f)}else{i.css(f)}}};w.fn.extend({position:function(){if(!this[0]){return}var e,t,n={top:0,left:0},r=this[0];if(w.css(r,"position")==="fixed"){t=r.getBoundingClientRect()}else{e=this.offsetParent();t=this.offset();if(!w.nodeName(e[0],"html")){n=e.offset()}n.top+=w.css(e[0],"borderTopWidth",true);n.left+=w.css(e[0],"borderLeftWidth",true)}return{top:t.top-n.top-w.css(r,"marginTop",true),left:t.left-n.left-w.css(r,"marginLeft",true)}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||u;while(e&&!w.nodeName(e,"html")&&w.css(e,"position")==="static"){e=e.offsetParent}return e||u})}});w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);w.fn[e]=function(i){return w.access(this,function(e,i,s){var o=sr(e);if(s===t){return o?n in o?o[n]:o.document.documentElement[i]:e[i]}if(o){o.scrollTo(!r?s:w(o).scrollLeft(),r?s:w(o).scrollTop())}else{e[i]=s}},e,i,arguments.length,null)}});w.each({Height:"height",Width:"width"},function(e,n){w.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){w.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!=="boolean"),u=r||(i===true||s===true?"margin":"border");return w.access(this,function(n,r,i){var s;if(w.isWindow(n)){return n.document.documentElement["client"+e]}if(n.nodeType===9){s=n.documentElement;return Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])}return i===t?w.css(n,r,u):w.style(n,r,i,u)},n,o?i:t,o,null)}})});w.fn.size=function(){return this.length};w.fn.andSelf=w.fn.addBack;if(typeof module==="object"&&module&&typeof module.exports==="object"){module.exports=w}else{e.jQuery=e.$=w;if(typeof define==="function"&&define.amd){define("jquery",[],function(){return w})}}})(window);(function(e,t,n){"use strict";function O(e,t){if(t&&t.onError){if(t.onError(e)===false){return}}this.name="JsRender Error";this.message=e||"JsRender error"}function M(e,t){var n;e=e||{};for(n in t){e[n]=t[n]}return e}function _(e,t,n){if(!it.rTag||e){a=e?e.charAt(0):a;f=e?e.charAt(1):f;l=t?t.charAt(0):l;c=t?t.charAt(1):c;h=n||h;e="\\"+a+"(\\"+h+")?\\"+f;t="\\"+l+"\\"+c;o="(?:(?:(\\w+(?=[\\/\\s\\"+l+"]))|(?:(\\w+)?(:)|(>)|!--((?:[^-]|-(?!-))*)--|(\\*)))"+"\\s*((?:[^\\"+l+"]|\\"+l+"(?!\\"+c+"))*?)";it.rTag=o+")";o=new RegExp(e+o+"(\\/)?|(?:\\/(\\w+)))"+t,"g");u=new RegExp("<.*>|([^\\\\]|^)[{}]|"+e+".*"+t)}return[a,f,l,c,h]}function D(e,t){if(!t){t=e;e=n}var r,i,s,o,u=this,a=!t||t==="root";if(e){o=u.type===t?u:n;if(!o){r=u.views;if(u._.useKey){for(i in r){if(o=r[i].get(e,t)){break}}}else for(i=0,s=r.length;!o&&i0){try{h=n.nodeType>0?n:!u.test(n)&&t&&t(e.document).find(n)[0]}catch(i){}if(h){n=h.getAttribute(C);r=r||n;n=et[n];if(!n){r=r||"_"+x++;h.setAttribute(C,r);n=et[r]=z(r,h.innerHTML,s,o,a,f)}}return n}}var c,h;i=i||"";c=l(i);f=f||(i.markup?i:{});f.tmplName=r;if(s){f._parentTmpl=s}if(!c&&i.markup&&(c=l(i.markup))){if(c.fn&&(c.debug!==i.debug||c.allowCode!==i.allowCode)){c=c.markup}}if(c!==n){if(r&&!s){k[r]=function(){return i.render.apply(i,arguments)}}if(c.fn||i.fn){if(c.fn){if(r&&r!==c.tmplName){i=Y(f,c)}else{i=c}}}else{i=W(c,f);K(c.replace(g,"\\$&"),i)}R(f);return i}}function W(e,t){var n,r=st.wrapMap||{},s=M({markup:e,tmpls:[],links:{},tags:{},bnds:[],_is:"template",render:V},t);if(!t.htmlTag){n=w.exec(e);s.htmlTag=n?n[1].toLowerCase():""}n=r[s.htmlTag];if(n&&n!==r.div){s.markup=i.trim(s.markup)}return s}function X(e,t){function r(s,o,u){var a,f,l,c;if(s&&""+s!==s&&!s.nodeType&&!s.markup){for(l in s){r(l,s[l],o)}return A}if(o===n){o=s;s=n}if(s&&""+s!==s){u=o;o=s;s=n}c=u?u[i]=u[i]||{}:r;f=t.compile;if(a=it.onBeforeStoreItem){f=a(c,s,o,f)||f}if(!s){o=f(n,o)}else if(o===null){delete c[s]}else{c[s]=f?o=f(s,o,u,e,t):o}if(f&&o){o._is=e}if(a=it.onStoreItem){a(c,s,o,f)}return o}var i=e+"s";A[i]=r;L[e]=t}function V(e,t,r,s,o,u){var a,f,l,c,h,p,d,v,m,g,y,b,w,E=this,S=!E.attr||E.attr==="html",x="";if(s===true){d=true;s=0}if(E.tag){v=E;E=E.tag;g=E._;b=E.tagName;w=v.tmpl;t=Y(t,E.ctx);m=v.content;if(v.props.link===false){t=t||{};t.link=false}r=r||v.view;e=e===n?r:e}else{w=E.jquery&&(E[0]||$('Unknown template: "'+E.selector+'"'))||E}if(w){if(!r&&e&&e._is==="view"){r=e}if(r){m=m||r.content;u=u||r._.onRender;if(e===r){e=r.data;o=true}t=Y(t,r.ctx)}if(!r||r.data===n){(t=t||{}).root=e}if(!w.fn){w=et[w]||et(w)}if(w){u=(t&&t.link)!==false&&S&&u;y=u;if(u===true){y=n;u=r._.onRender}t=w.helpers?Y(w.helpers,t):t;if(i.isArray(e)&&!o){c=d?r:s!==n&&r||q(t,"array",r,e,w,s,m,u);for(a=0,f=e.length;a":u+o}if(_){L="prm"+i;_="try{var "+L+"=["+a+"][0];}catch(e){"+L+'="";}\n';a=L}}else{if(S){w=W(x,D);w.tmplName=b+"/"+o;Q(S,w);y.push(w)}if(!C){E=o;N=M;M=""}T=e[i+1];T=T&&T[0]==="else"}f+=",args:["+a+"]}";if(k&&g||u&&o!==">"){A=new Function("data,view,j,u"," // "+b+" "+O+" "+o+"\n"+_+"return {"+f+";");A.paths=g;A._ctxs=o;if(r){return A}d=1}M+=k?"\n"+(g?"":_)+(r?"return ":"ret+=")+(d?(d=0,p=true,'c("'+u+'",view,'+(g?(m[O-1]=A,O):"{"+f)+");"):o===">"?(c=true,"h("+a+");"):(h=true,"(v="+a+")!="+(r?"=":"")+'u?v:"";')):(l=true,"{view:view,tmpl:"+(S?y.length:"0")+","+f+",");if(E&&!T){M="["+M.slice(0,-1)+"]";if(r||g){M=new Function("data,view,j,u"," // "+b+" "+O+" "+E+"\nreturn "+M+";");if(g){(m[O-1]=M).paths=g}M._ctxs=o;if(r){return M}}M=N+'\nret+=t("'+E+'",view,this,'+(O||M)+");";g=0;E=0}}}}M="// "+b+"\nvar j=j||"+(t?"jQuery.":"js")+"views"+(h?",v":"")+(l?",t=j._tag":"")+(p?",c=j._cnvt":"")+(c?",h=j.converters.html":"")+(r?";\n":',ret="";\n')+(st.tryCatch?"try{\n":"")+(D.debug?"debugger;":"")+M+(r?"\n":"\nreturn ret;\n")+(st.tryCatch?"\n}catch(e){return j._err(e);}":"");try{M=new Function("data,view,j,u",M)}catch(H){J("Compiled template code:\n\n"+M,H)}if(n){n.fn=M}return M}function G(e,t,n){function r(r,d,b,w,E,S,x,T,N,C,k,L,A,O,M,_,D,P,H,B){function F(e,n,r,u,a,f,l,c){if(r){if(t){if(i==="linkTo"){s=t._jsvto=t._jsvto||[];s.push(E)}if(!i||o){t.push(E.slice(n.length))}}if(r!=="."){var h=(u?'view.hlp("'+u+'")':a?"view":"data")+(c?(f?"."+f:u?"":a?"":"."+r)+(l||""):(c=u?"":a?f||"":r,""));h=h+(c?"."+c:"");return n+(h.slice(0,9)==="view.data"?h.slice(5):h)}}return e}var j;S=S||"";b=b||d||L;E=E||N;C=C||D||"";if(x){J(e)}else{if(t&&_&&!y&&!g){if(!i||o||s){j=v[m];if(B.length-1>H-j){j=B.slice(j,H+1);_=f+":"+j+l;_=u[_]=u[_]||K(a+_+c,n,true);if(!_.paths){G(j,_.paths=[],n)}(s||t).push({_jsvOb:_})}}}return y?(y=!A,y?r:'"'):g?(g=!O,g?r:'"'):(b?(m++,v[m]=H++,b):"")+(P?m?"":i?(i=o=s=false,"\b"):",":T?(m&&J(e),i=E,o=w,"\b"+E+":"):E?E.split("^").join(".").replace(p,F)+(C?(h[++m]=true,E.charAt(0)!=="."&&(v[m]=H),C):S):S?S:M?(h[m--]=false,M)+(C?(h[++m]=true,C):""):k?(h[m]||J(e),","):d?"":(y=A,g=O,'"'))}}var i,s,o,u=n.links,h={},v={0:-1},m=0,g=false,y=false;return(e+" ").replace(/\)\^/g,").").replace(d,r)}function Y(e,t){return e&&e!==t?t?M(M({},t),e):e:t&&M({},t)}function Z(e){return N[e]||(N[e]="&#"+e.charCodeAt(0)+";")}function ut(e){var t=this,r=t.tagCtx,s=!arguments.length,o="",u=s||0;if(!t.rendering.done){if(s){o=n}else if(e!==n){e=t.prep?t.prep(e):e;o+=r.render(e);u+=i.isArray(e)?e.length:1}if(t.rendering.done=u){t.selected=r.index}}return o}if(t&&t.views||e.jsviews){return}var r="v1.0.0-beta",i,s,o,u,a="{",f="{",l="}",c="}",h="^",p=/^(!*?)(?:null|true|false|\d[\d.]*|([\w$]+|\.|~([\w$]+)|#(view|([\w$]+))?)([\w$.^]*?)(?:[.[^]([\w$]+)\]?)?)$/g,d=/(\()(?=\s*\()|(?:([([])\s*)?(?:(\^?)(!*?[#~]?[\w$.^]+)?\s*((\+\+|--)|\+|-|&&|\|\||===|!==|==|!=|<=|>=|[<>%*:?\/]|(=))\s*|(!*?[#~]?[\w$.^]+)([([])?)|(,\s*)|(\(?)\\?(?:(')|("))|(?:\s*(([)\]])(?=\s*\.|\s*\^|\s*$)|[)\]])([([]?))|(\s+)/g,v=/[ \t]*(\r\n|\n|\r)/g,m=/\\(['"])/g,g=/['"\\]/g,y=/\x08(~)?([^\x08]+)\x08/g,b=/^if\s/,w=/<(\w+)[>\s]/,E=/[\x00`><"'&]/g,S=E,x=0,T=0,N={"&":"&","<":"<",">":">","\0":"�","'":"'",'"':""","`":"`"},C="data-jsv-tmpl",k={},L={template:{compile:z},tag:{compile:U},helper:{},converter:{}},A={jsviews:r,render:k,settings:{delimiters:_,debugMode:true,tryCatch:true},sub:{View:q,Error:O,tmplFn:K,parse:G,extend:M,error:$,syntaxError:J},_cnvt:j,_tag:I,_err:function(e){return st.debugMode?"Error: "+(e.message||e)+". ":""}};(O.prototype=new Error).constructor=O;P.depends=function(){return[this.get("item"),"index"]};H.depends=function(){return["index"]};for(s in L){X(s,L[s])}var et=A.templates,tt=A.converters,nt=A.helpers,rt=A.tags,it=A.sub,st=A.settings,ot="Error: #index in nested view: use #getIndex()";if(t){i=t;i.fn.render=V}else{i=e.jsviews={};i.isArray=Array&&Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"}}i.render=k;i.views=A;i.templates=et=A.templates;rt({"else":function(){},"if":{render:function(e){var t=this,n=t.rendering.done||!e&&(arguments.length||!t.tagCtx.index)?"":(t.rendering.done=true,t.selected=t.tagCtx.index,t.tagCtx.render());return n},onUpdate:function(e,t,n){var r,i,s;for(r=0;(i=this.tagCtxs[r])&&i.args.length;r++){i=i.args[0];s=!i!==!n[r].args[0];if(!!i||s){return s}}return false},flow:true},"for":{render:ut,onArrayChange:function(e,t){var n,r=this,i=t.change;if(this.tagCtxs[1]&&(i==="insert"&&e.target.length===t.items.length||i==="remove"&&!e.target.length||i==="refresh"&&!t.oldItems.length!==!e.target.length)){this.refresh()}else{for(n in r._.arrVws){n=r._.arrVws[n];if(n.data===e.target){n._.onArrayChange.apply(n,arguments)}}}e.done=true},flow:true},props:{prep:function(e){var t,n=[];for(t in e){n.push({key:t,prop:e[t]})}return n},render:ut,flow:true},include:{flow:true},"*":{render:function(e){return e},flow:true}});tt({html:function(e){return e!=n?String(e).replace(S,Z):""},attr:function(e){return e!=n?String(e).replace(E,Z):e===null?e:""},url:function(e){return e!=n?encodeURI(String(e)):e===null?e:""}});_()})(this,this.jQuery);jQuery.fn.extend({everyTime:function(e,t,n,r){return this.each(function(){jQuery.timer.add(this,e,t,n,r)})},oneTime:function(e,t,n){return this.each(function(){jQuery.timer.add(this,e,t,n,1)})},stopTime:function(e,t){return this.each(function(){jQuery.timer.remove(this,e,t)})}});jQuery.extend({timer:{global:[],guid:1,dataKey:"jQuery.timer",regex:/^([0-9]+(?:\.[0-9]*)?)\s*(.*s)?$/,powers:{ms:1,cs:10,ds:100,s:1e3,das:1e4,hs:1e5,ks:1e6},timeParse:function(e){if(e==undefined||e==null)return null;var t=this.regex.exec(jQuery.trim(e.toString()));return t[2]?parseFloat(t[1])*(this.powers[t[2]]||1):e},add:function(e,t,n,r,i){var s=0;if(jQuery.isFunction(n)){i||(i=r);r=n;n=t}t=jQuery.timer.timeParse(t);if(!(typeof t!="number"||isNaN(t)||t<0)){if(typeof i!="number"||isNaN(i)||i<0)i=0;i=i||0;var o=jQuery.data(e,this.dataKey)||jQuery.data(e,this.dataKey,{});o[n]||(o[n]={});r.timerID=r.timerID||this.guid++;var u=function(){if(++s>i&&i!==0||r.call(e,s)===false)jQuery.timer.remove(e,n,r)};u.timerID=r.timerID;o[n][r.timerID]||(o[n][r.timerID]=window.setInterval(u,t));this.global.push(e)}},remove:function(e,t,n){var r=jQuery.data(e,this.dataKey),i;if(r){if(t){if(r[t]){if(n){if(n.timerID){window.clearInterval(r[t][n.timerID]);delete r[t][n.timerID]}}else for(n in r[t]){window.clearInterval(r[t][n]);delete r[t][n]}for(i in r[t])break;if(!i){i=null;delete r[t]}}}else for(t in r)this.remove(e,t,n);for(i in r)break;i||jQuery.removeData(e,this.dataKey)}}}});jQuery(window).bind("unload",function(){jQuery.each(jQuery.timer.global,function(e,t){jQuery.timer.remove(t)})}) \ No newline at end of file +(function(e,t){function H(e){var t=e.length,n=w.type(e);if(w.isWindow(e)){return false}if(e.nodeType===1&&t){return true}return n==="array"||n!=="function"&&(t===0||typeof t==="number"&&t>0&&t-1 in e)}function j(e){var t=B[e]={};w.each(e.match(S)||[],function(e,n){t[n]=true});return t}function q(e,n,r,i){if(!w.acceptData(e)){return}var s,o,u=w.expando,a=e.nodeType,f=a?w.cache:e,l=a?e[u]:e[u]&&u;if((!l||!f[l]||!i&&!f[l].data)&&r===t&&typeof n==="string"){return}if(!l){if(a){l=e[u]=c.pop()||w.guid++}else{l=u}}if(!f[l]){f[l]=a?{}:{toJSON:w.noop}}if(typeof n==="object"||typeof n==="function"){if(i){f[l]=w.extend(f[l],n)}else{f[l].data=w.extend(f[l].data,n)}}o=f[l];if(!i){if(!o.data){o.data={}}o=o.data}if(r!==t){o[w.camelCase(n)]=r}if(typeof n==="string"){s=o[n];if(s==null){s=o[w.camelCase(n)]}}else{s=o}return s}function R(e,t,n){if(!w.acceptData(e)){return}var r,i,s=e.nodeType,o=s?w.cache:e,u=s?e[w.expando]:w.expando;if(!o[u]){return}if(t){r=n?o[u]:o[u].data;if(r){if(!w.isArray(t)){if(t in r){t=[t]}else{t=w.camelCase(t);if(t in r){t=[t]}else{t=t.split(" ")}}}else{t=t.concat(w.map(t,w.camelCase))}i=t.length;while(i--){delete r[t[i]]}if(n?!z(r):!w.isEmptyObject(r)){return}}}if(!n){delete o[u].data;if(!z(o[u])){return}}if(s){w.cleanData([e],true)}else if(w.support.deleteExpando||o!=o.window){delete o[u]}else{o[u]=null}}function U(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(I,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r==="string"){try{r=r==="true"?true:r==="false"?false:r==="null"?null:+r+""===r?+r:F.test(r)?w.parseJSON(r):r}catch(s){}w.data(e,n,r)}else{r=t}}return r}function z(e){var t;for(t in e){if(t==="data"&&w.isEmptyObject(e[t])){continue}if(t!=="toJSON"){return false}}return true}function it(){return true}function st(){return false}function ot(){try{return o.activeElement}catch(e){}}function ct(e,t){do{e=e[t]}while(e&&e.nodeType!==1);return e}function ht(e,t,n){if(w.isFunction(t)){return w.grep(e,function(e,r){return!!t.call(e,r,e)!==n})}if(t.nodeType){return w.grep(e,function(e){return e===t!==n})}if(typeof t==="string"){if(ut.test(t)){return w.filter(t,e,n)}t=w.filter(t,e)}return w.grep(e,function(e){return w.inArray(e,t)>=0!==n})}function pt(e){var t=dt.split("|"),n=e.createDocumentFragment();if(n.createElement){while(t.length){n.createElement(t.pop())}}return n}function Mt(e,t){return w.nodeName(e,"table")&&w.nodeName(t.nodeType===1?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function _t(e){e.type=(w.find.attr(e,"type")!==null)+"/"+e.type;return e}function Dt(e){var t=Ct.exec(e.type);if(t){e.type=t[1]}else{e.removeAttribute("type")}return e}function Pt(e,t){var n,r=0;for(;(n=e[r])!=null;r++){w._data(n,"globalEval",!t||w._data(t[r],"globalEval"))}}function Ht(e,t){if(t.nodeType!==1||!w.hasData(e)){return}var n,r,i,s=w._data(e),o=w._data(t,s),u=s.events;if(u){delete o.handle;o.events={};for(n in u){for(r=0,i=u[n].length;r").css("cssText","display:block !important")).appendTo(t.documentElement);t=(It[0].contentWindow||It[0].contentDocument).document;t.write("");t.close();n=fn(e,t);It.detach()}Qt[e]=n}return n}function fn(e,t){var n=w(t.createElement(e)).appendTo(t.body),r=w.css(n[0],"display");n.remove();return r}function vn(e,t,n,r){var i;if(w.isArray(t)){w.each(t,function(t,i){if(n||cn.test(e)){r(e,i)}else{vn(e+"["+(typeof i==="object"?t:"")+"]",i,n,r)}})}else if(!n&&w.type(t)==="object"){for(i in t){vn(e+"["+i+"]",t[i],n,r)}}else{r(e,t)}}function _n(e){return function(t,n){if(typeof t!=="string"){n=t;t="*"}var r,i=0,s=t.toLowerCase().match(S)||[];if(w.isFunction(n)){while(r=s[i++]){if(r[0]==="+"){r=r.slice(1)||"*";(e[r]=e[r]||[]).unshift(n)}else{(e[r]=e[r]||[]).push(n)}}}}}function Dn(e,t,n,r){function o(u){var a;i[u]=true;w.each(e[u]||[],function(e,u){var f=u(t,n,r);if(typeof f==="string"&&!s&&!i[f]){t.dataTypes.unshift(f);o(f);return false}else if(s){return!(a=f)}});return a}var i={},s=e===An;return o(t.dataTypes[0])||!i["*"]&&o("*")}function Pn(e,n){var r,i,s=w.ajaxSettings.flatOptions||{};for(i in n){if(n[i]!==t){(s[i]?e:r||(r={}))[i]=n[i]}}if(r){w.extend(true,e,r)}return e}function Hn(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes;while(f[0]==="*"){f.shift();if(s===t){s=e.mimeType||n.getResponseHeader("Content-Type")}}if(s){for(u in a){if(a[u]&&a[u].test(s)){f.unshift(u);break}}}if(f[0]in r){o=f[0]}else{for(u in r){if(!f[0]||e.converters[u+" "+f[0]]){o=u;break}if(!i){i=u}}o=o||i}if(o){if(o!==f[0]){f.unshift(o)}return r[o]}}function Bn(e,t,n,r){var i,s,o,u,a,f={},l=e.dataTypes.slice();if(l[1]){for(o in e.converters){f[o.toLowerCase()]=e.converters[o]}}s=l.shift();while(s){if(e.responseFields[s]){n[e.responseFields[s]]=t}if(!a&&r&&e.dataFilter){t=e.dataFilter(t,e.dataType)}a=s;s=l.shift();if(s){if(s==="*"){s=a}else if(a!=="*"&&a!==s){o=f[a+" "+s]||f["* "+s];if(!o){for(i in f){u=i.split(" ");if(u[1]===s){o=f[a+" "+u[0]]||f["* "+u[0]];if(o){if(o===true){o=f[i]}else if(f[i]!==true){s=u[0];l.unshift(u[1])}break}}}}if(o!==true){if(o&&e["throws"]){t=o(t)}else{try{t=o(t)}catch(c){return{state:"parsererror",error:o?c:"No conversion from "+a+" to "+s}}}}}}}return{state:"success",data:t}}function zn(){try{return new e.XMLHttpRequest}catch(t){}}function Wn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function Yn(){setTimeout(function(){Xn=t});return Xn=w.now()}function Zn(e,t,n){var r,i=(Gn[t]||[]).concat(Gn["*"]),s=0,o=i.length;for(;s)[^>]*|#([\w-]*))$/,N=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,C=/^[\],:{}\s]*$/,k=/(?:^|:|,)(?:\s*\[)+/g,L=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,O=/^-ms-/,M=/-([\da-z])/gi,_=function(e,t){return t.toUpperCase()},D=function(e){if(o.addEventListener||e.type==="load"||o.readyState==="complete"){P();w.ready()}},P=function(){if(o.addEventListener){o.removeEventListener("DOMContentLoaded",D,false);e.removeEventListener("load",D,false)}else{o.detachEvent("onreadystatechange",D);e.detachEvent("onload",D)}};w.fn=w.prototype={jquery:h,constructor:w,init:function(e,n,r){var i,s;if(!e){return this}if(typeof e==="string"){if(e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3){i=[null,e,null]}else{i=T.exec(e)}if(i&&(i[1]||!n)){if(i[1]){n=n instanceof w?n[0]:n;w.merge(this,w.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,true));if(N.test(i[1])&&w.isPlainObject(n)){for(i in n){if(w.isFunction(this[i])){this[i](n[i])}else{this.attr(i,n[i])}}}return this}else{s=o.getElementById(i[2]);if(s&&s.parentNode){if(s.id!==i[2]){return r.find(e)}this.length=1;this[0]=s}this.context=o;this.selector=e;return this}}else if(!n||n.jquery){return(n||r).find(e)}else{return this.constructor(n).find(e)}}else if(e.nodeType){this.context=this[0]=e;this.length=1;return this}else if(w.isFunction(e)){return r.ready(e)}if(e.selector!==t){this.selector=e.selector;this.context=e.context}return w.makeArray(e,this)},selector:"",length:0,toArray:function(){return v.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);t.prevObject=this;t.context=this.context;return t},each:function(e,t){return w.each(this,e,t)},ready:function(e){w.ready.promise().done(e);return this},slice:function(){return this.pushStack(v.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0){return}n.resolveWith(o,[w]);if(w.fn.trigger){w(o).trigger("ready").off("ready")}},isFunction:function(e){return w.type(e)==="function"},isArray:Array.isArray||function(e){return w.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){if(e==null){return String(e)}return typeof e==="object"||typeof e==="function"?l[g.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||w.type(e)!=="object"||e.nodeType||w.isWindow(e)){return false}try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf")){return false}}catch(r){return false}if(w.support.ownLast){for(n in e){return y.call(e,n)}}for(n in e){}return n===t||y.call(e,n)},isEmptyObject:function(e){var t;for(t in e){return false}return true},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){if(!e||typeof e!=="string"){return null}if(typeof t==="boolean"){n=t;t=false}t=t||o;var r=N.exec(e),i=!n&&[];if(r){return[t.createElement(r[1])]}r=w.buildFragment([e],t,i);if(i){w(i).remove()}return w.merge([],r.childNodes)},parseJSON:function(t){if(e.JSON&&e.JSON.parse){return e.JSON.parse(t)}if(t===null){return t}if(typeof t==="string"){t=w.trim(t);if(t){if(C.test(t.replace(L,"@").replace(A,"]").replace(k,""))){return(new Function("return "+t))()}}}w.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!=="string"){return null}try{if(e.DOMParser){i=new DOMParser;r=i.parseFromString(n,"text/xml")}else{r=new ActiveXObject("Microsoft.XMLDOM");r.async="false";r.loadXML(n)}}catch(s){r=t}if(!r||!r.documentElement||r.getElementsByTagName("parsererror").length){w.error("Invalid XML: "+n)}return r},noop:function(){},globalEval:function(t){if(t&&w.trim(t)){(e.execScript||function(t){e["eval"].call(e,t)})(t)}},camelCase:function(e){return e.replace(O,"ms-").replace(M,_)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,s=e.length,o=H(e);if(n){if(o){for(;is.cacheLength){delete t[e.shift()]}return t[n]=r}var e=[];return t}function at(e){e[b]=true;return e}function ft(e){var t=h.createElement("div");try{return!!e(t)}catch(n){return false}finally{if(t.parentNode){t.parentNode.removeChild(t)}t=null}}function lt(e,t){var n=e.split("|"),r=e.length;while(r--){s.attrHandle[n[r]]=t}}function ct(e,t){var n=t&&e,r=n&&e.nodeType===1&&t.nodeType===1&&(~t.sourceIndex||O)-(~e.sourceIndex||O);if(r){return r}if(n){while(n=n.nextSibling){if(n===t){return-1}}}return e?1:-1}function ht(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function pt(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function dt(e){return at(function(t){t=+t;return at(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--){if(n[i=s[o]]){n[i]=!(r[i]=n[i])}}})})}function vt(){}function mt(e,t){var n,r,i,o,u,a,f,l=N[e+" "];if(l){return t?0:l.slice(0)}u=e;a=[];f=s.preFilter;while(u){if(!n||(r=X.exec(u))){if(r){u=u.slice(r[0].length)||u}a.push(i=[])}n=false;if(r=V.exec(u)){n=r.shift();i.push({value:n,type:r[0].replace(W," ")});u=u.slice(n.length)}for(o in s.filter){if((r=G[o].exec(u))&&(!f[o]||(r=f[o](r)))){n=r.shift();i.push({value:n,type:o,matches:r});u=u.slice(n.length)}}if(!n){break}}return t?u.length:u?ot.error(e):N(e,a).slice(0)}function gt(e){var t=0,n=e.length,r="";for(;t1?function(t,n,r){var i=e.length;while(i--){if(!e[i](t,n,r)){return false}}return true}:e[0]}function wt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u-1){s[f]=!(o[f]=c)}}}}else{g=wt(g===o?g.splice(d,g.length):g);if(i){i(null,o,g,a)}else{H.apply(o,g)}}})}function St(e){var t,n,r,i=e.length,o=s.relative[e[0].type],u=o||s.relative[" "],a=o?1:0,l=yt(function(e){return e===t},u,true),c=yt(function(e){return j.call(t,e)>-1},u,true),h=[function(e,n,r){return!o&&(r||n!==f)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];for(;a1&&bt(h),a>1&>(e.slice(0,a-1).concat({value:e[a-2].type===" "?"*":""})).replace(W,"$1"),n,a0,o=e.length>0,u=function(u,a,l,c,p){var d,v,m,g=[],y=0,b="0",w=u&&[],E=p!=null,x=f,T=u||o&&s.find["TAG"]("*",p&&a.parentNode||a),N=S+=x==null?1:Math.random()||.1;if(E){f=a!==h&&a;i=n}for(;(d=T[b])!=null;b++){if(o&&d){v=0;while(m=e[v++]){if(m(d,a,l)){c.push(d);break}}if(E){S=N;i=++n}}if(r){if(d=!m&&d){y--}if(u){w.push(d)}}}y+=b;if(r&&b!==y){v=0;while(m=t[v++]){m(w,g,a,l)}if(u){if(y>0){while(b--){if(!(w[b]||g[b])){g[b]=D.call(c)}}}g=wt(g)}H.apply(c,g);if(E&&!u&&g.length>0&&y+t.length>1){ot.uniqueSort(c)}}if(E){S=N;f=x}return w};return r?at(u):u}function Tt(e,t,n){var r=0,i=t.length;for(;r2&&(f=u[0]).type==="ID"&&r.getById&&t.nodeType===9&&d&&s.relative[u[1].type]){t=(s.find["ID"](f.matches[0].replace(rt,it),t)||[])[0];if(!t){return n}e=e.slice(u.shift().value.length)}o=G["needsContext"].test(e)?0:u.length;while(o--){f=u[o];if(s.relative[l=f.type]){break}if(c=s.find[l]){if(i=c(f.matches[0].replace(rt,it),$.test(u[0].type)&&t.parentNode||t)){u.splice(o,1);e=i.length&>(u);if(!e){H.apply(n,i);return n}break}}}}}a(e,h)(i,t,!d,n,$.test(e));return n}var n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b="sizzle"+ -(new Date),E=e.document,S=0,x=0,T=ut(),N=ut(),C=ut(),k=false,L=function(e,t){if(e===t){k=true;return 0}return 0},A=typeof t,O=1<<31,M={}.hasOwnProperty,_=[],D=_.pop,P=_.push,H=_.push,B=_.slice,j=_.indexOf||function(e){var t=0,n=this.length;for(;t+~]|"+I+")"+I+"*"),$=new RegExp(I+"*[+~]"),J=new RegExp("="+I+"*([^\\]'\"]*)"+I+"*\\]","g"),K=new RegExp(z),Q=new RegExp("^"+R+"$"),G={ID:new RegExp("^#("+q+")"),CLASS:new RegExp("^\\.("+q+")"),TAG:new RegExp("^("+q.replace("w","w*")+")"),ATTR:new RegExp("^"+U),PSEUDO:new RegExp("^"+z),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+I+"*(even|odd|(([+-]|)(\\d*)n|)"+I+"*(?:([+-]|)"+I+"*(\\d+)|))"+I+"*\\)|)","i"),bool:new RegExp("^(?:"+F+")$","i"),needsContext:new RegExp("^"+I+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+I+"*((?:-\\d)?\\d*)"+I+"*\\)|)(?=[^-]|$)","i")},Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=new RegExp("\\\\([\\da-f]{1,6}"+I+"?|("+I+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,r&1023|56320)};try{H.apply(_=B.call(E.childNodes),E.childNodes);_[E.childNodes.length].nodeType}catch(st){H={apply:_.length?function(e,t){P.apply(e,B.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]){}e.length=n-1}}}u=ot.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":false};r=ot.support={};c=ot.setDocument=function(e){var t=e?e.ownerDocument||e:E,n=t.defaultView;if(t===h||t.nodeType!==9||!t.documentElement){return h}h=t;p=t.documentElement;d=!u(t);if(n&&n.attachEvent&&n!==n.top){n.attachEvent("onbeforeunload",function(){c()})}r.attributes=ft(function(e){e.className="i";return!e.getAttribute("className")});r.getElementsByTagName=ft(function(e){e.appendChild(t.createComment(""));return!e.getElementsByTagName("*").length});r.getElementsByClassName=ft(function(e){e.innerHTML="
";e.firstChild.className="i";return e.getElementsByClassName("i").length===2});r.getById=ft(function(e){p.appendChild(e).id=b;return!t.getElementsByName||!t.getElementsByName(b).length});if(r.getById){s.find["ID"]=function(e,t){if(typeof t.getElementById!==A&&d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}};s.filter["ID"]=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}}else{delete s.find["ID"];s.filter["ID"]=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==A&&e.getAttributeNode("id");return n&&n.value===t}}}s.find["TAG"]=r.getElementsByTagName?function(e,t){if(typeof t.getElementsByTagName!==A){return t.getElementsByTagName(e)}}:function(e,t){var n,r=[],i=0,s=t.getElementsByTagName(e);if(e==="*"){while(n=s[i++]){if(n.nodeType===1){r.push(n)}}return r}return s};s.find["CLASS"]=r.getElementsByClassName&&function(e,t){if(typeof t.getElementsByClassName!==A&&d){return t.getElementsByClassName(e)}};m=[];v=[];if(r.qsa=Y.test(t.querySelectorAll)){ft(function(e){e.innerHTML="";if(!e.querySelectorAll("[selected]").length){v.push("\\["+I+"*(?:value|"+F+")")}if(!e.querySelectorAll(":checked").length){v.push(":checked")}});ft(function(e){var n=t.createElement("input");n.setAttribute("type","hidden");e.appendChild(n).setAttribute("t","");if(e.querySelectorAll("[t^='']").length){v.push("[*^$]="+I+"*(?:''|\"\")")}if(!e.querySelectorAll(":enabled").length){v.push(":enabled",":disabled")}e.querySelectorAll("*,:x");v.push(",.*:")})}if(r.matchesSelector=Y.test(g=p.webkitMatchesSelector||p.mozMatchesSelector||p.oMatchesSelector||p.msMatchesSelector)){ft(function(e){r.disconnectedMatch=g.call(e,"div");g.call(e,"[s!='']:x");m.push("!=",z)})}v=v.length&&new RegExp(v.join("|"));m=m.length&&new RegExp(m.join("|"));y=Y.test(p.contains)||p.compareDocumentPosition?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&(n.contains?n.contains(r):e.compareDocumentPosition&&e.compareDocumentPosition(r)&16))}:function(e,t){if(t){while(t=t.parentNode){if(t===e){return true}}}return false};L=p.compareDocumentPosition?function(e,n){if(e===n){k=true;return 0}var i=n.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(n);if(i){if(i&1||!r.sortDetached&&n.compareDocumentPosition(e)===i){if(e===t||y(E,e)){return-1}if(n===t||y(E,n)){return 1}return l?j.call(l,e)-j.call(l,n):0}return i&4?-1:1}return e.compareDocumentPosition?-1:1}:function(e,n){var r,i=0,s=e.parentNode,o=n.parentNode,u=[e],a=[n];if(e===n){k=true;return 0}else if(!s||!o){return e===t?-1:n===t?1:s?-1:o?1:l?j.call(l,e)-j.call(l,n):0}else if(s===o){return ct(e,n)}r=e;while(r=r.parentNode){u.unshift(r)}r=n;while(r=r.parentNode){a.unshift(r)}while(u[i]===a[i]){i++}return i?ct(u[i],a[i]):u[i]===E?-1:a[i]===E?1:0};return t};ot.matches=function(e,t){return ot(e,null,null,t)};ot.matchesSelector=function(e,t){if((e.ownerDocument||e)!==h){c(e)}t=t.replace(J,"='$1']");if(r.matchesSelector&&d&&(!m||!m.test(t))&&(!v||!v.test(t))){try{var n=g.call(e,t);if(n||r.disconnectedMatch||e.document&&e.document.nodeType!==11){return n}}catch(i){}}return ot(t,h,null,[e]).length>0};ot.contains=function(e,t){if((e.ownerDocument||e)!==h){c(e)}return y(e,t)};ot.attr=function(e,n){if((e.ownerDocument||e)!==h){c(e)}var i=s.attrHandle[n.toLowerCase()],o=i&&M.call(s.attrHandle,n.toLowerCase())?i(e,n,!d):t;return o===t?r.attributes||!d?e.getAttribute(n):(o=e.getAttributeNode(n))&&o.specified?o.value:null:o};ot.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};ot.uniqueSort=function(e){var t,n=[],i=0,s=0;k=!r.detectDuplicates;l=!r.sortStable&&e.slice(0);e.sort(L);if(k){while(t=e[s++]){if(t===e[s]){i=n.push(s)}}while(i--){e.splice(n[i],1)}}return e};o=ot.getText=function(e){var t,n="",r=0,i=e.nodeType;if(!i){for(;t=e[r];r++){n+=o(t)}}else if(i===1||i===9||i===11){if(typeof e.textContent==="string"){return e.textContent}else{for(e=e.firstChild;e;e=e.nextSibling){n+=o(e)}}}else if(i===3||i===4){return e.nodeValue}return n};s=ot.selectors={cacheLength:50,createPseudo:at,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){e[1]=e[1].replace(rt,it);e[3]=(e[4]||e[5]||"").replace(rt,it);if(e[2]==="~="){e[3]=" "+e[3]+" "}return e.slice(0,4)},CHILD:function(e){e[1]=e[1].toLowerCase();if(e[1].slice(0,3)==="nth"){if(!e[3]){ot.error(e[0])}e[4]=+(e[4]?e[5]+(e[6]||1):2*(e[3]==="even"||e[3]==="odd"));e[5]=+(e[7]+e[8]||e[3]==="odd")}else if(e[3]){ot.error(e[0])}return e},PSEUDO:function(e){var n,r=!e[5]&&e[2];if(G["CHILD"].test(e[0])){return null}if(e[3]&&e[4]!==t){e[2]=e[4]}else if(r&&K.test(r)&&(n=mt(r,true))&&(n=r.indexOf(")",r.length-n)-r.length)){e[0]=e[0].slice(0,n);e[2]=r.slice(0,n)}return e.slice(0,3)}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return e==="*"?function(){return true}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=T[e+" "];return t||(t=new RegExp("(^|"+I+")"+e+"("+I+"|$)"))&&T(e,function(e){return t.test(typeof e.className==="string"&&e.className||typeof e.getAttribute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=ot.attr(r,e);if(i==null){return t==="!="}if(!t){return true}i+="";return t==="="?i===n:t==="!="?i!==n:t==="^="?n&&i.indexOf(n)===0:t==="*="?n&&i.indexOf(n)>-1:t==="$="?n&&i.slice(-n.length)===n:t==="~="?(" "+i+" ").indexOf(n)>-1:t==="|="?i===n||i.slice(0,n.length+1)===n+"-":false}},CHILD:function(e,t,n,r,i){var s=e.slice(0,3)!=="nth",o=e.slice(-4)!=="last",u=t==="of-type";return r===1&&i===0?function(e){return!!e.parentNode}:function(t,n,a){var f,l,c,h,p,d,v=s!==o?"nextSibling":"previousSibling",m=t.parentNode,g=u&&t.nodeName.toLowerCase(),y=!a&&!u;if(m){if(s){while(v){c=t;while(c=c[v]){if(u?c.nodeName.toLowerCase()===g:c.nodeType===1){return false}}d=v=e==="only"&&!d&&"nextSibling"}return true}d=[o?m.firstChild:m.lastChild];if(o&&y){l=m[b]||(m[b]={});f=l[e]||[];p=f[0]===S&&f[1];h=f[0]===S&&f[2];c=p&&m.childNodes[p];while(c=++p&&c&&c[v]||(h=p=0)||d.pop()){if(c.nodeType===1&&++h&&c===t){l[e]=[S,p,h];break}}}else if(y&&(f=(t[b]||(t[b]={}))[e])&&f[0]===S){h=f[1]}else{while(c=++p&&c&&c[v]||(h=p=0)||d.pop()){if((u?c.nodeName.toLowerCase()===g:c.nodeType===1)&&++h){if(y){(c[b]||(c[b]={}))[e]=[S,h]}if(c===t){break}}}}h-=i;return h===r||h%r===0&&h/r>=0}}},PSEUDO:function(e,t){var n,r=s.pseudos[e]||s.setFilters[e.toLowerCase()]||ot.error("unsupported pseudo: "+e);if(r[b]){return r(t)}if(r.length>1){n=[e,e,"",t];return s.setFilters.hasOwnProperty(e.toLowerCase())?at(function(e,n){var i,s=r(e,t),o=s.length;while(o--){i=j.call(e,s[o]);e[i]=!(n[i]=s[o])}}):function(e){return r(e,0,n)}}return r}},pseudos:{not:at(function(e){var t=[],n=[],r=a(e.replace(W,"$1"));return r[b]?at(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--){if(s=o[u]){e[u]=!(t[u]=s)}}}):function(e,i,s){t[0]=e;r(t,null,s,n);return!n.pop()}}),has:at(function(e){return function(t){return ot(e,t).length>0}}),contains:at(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:at(function(e){if(!Q.test(e||"")){ot.error("unsupported lang: "+e)}e=e.replace(rt,it).toLowerCase();return function(t){var n;do{if(n=d?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang")){n=n.toLowerCase();return n===e||n.indexOf(e+"-")===0}}while((t=t.parentNode)&&t.nodeType===1);return false}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===p},focus:function(e){return e===h.activeElement&&(!h.hasFocus||h.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===false},disabled:function(e){return e.disabled===true},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling){if(e.nodeName>"@"||e.nodeType===3||e.nodeType===4){return false}}return true},parent:function(e){return!s.pseudos["empty"](e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},text:function(e){var t;return e.nodeName.toLowerCase()==="input"&&e.type==="text"&&((t=e.getAttribute("type"))==null||t.toLowerCase()===e.type)},first:dt(function(){return[0]}),last:dt(function(e,t){return[t-1]}),eq:dt(function(e,t,n){return[n<0?n+t:n]}),even:dt(function(e,t){var n=0;for(;n=0;){e.push(r)}return e}),gt:dt(function(e,t,n){var r=n<0?n+t:n;for(;++r";e.firstChild.setAttribute("value","");return e.firstChild.getAttribute("value")===""})){lt("value",function(e,t,n){if(!n&&e.nodeName.toLowerCase()==="input"){return e.defaultValue}})}if(!ft(function(e){return e.getAttribute("disabled")==null})){lt(F,function(e,t,n){var r;if(!n){return(r=e.getAttributeNode(t))&&r.specified?r.value:e[t]===true?t.toLowerCase():null}})}w.find=ot;w.expr=ot.selectors;w.expr[":"]=w.expr.pseudos;w.unique=ot.uniqueSort;w.text=ot.getText;w.isXMLDoc=ot.isXML;w.contains=ot.contains})(e);var B={};w.Callbacks=function(e){e=typeof e==="string"?B[e]||j(e):w.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){r=e.memory&&t;i=true;o=u||0;u=0;s=a.length;n=true;for(;a&&o-1){a.splice(r,1);if(n){if(r<=s){s--}if(r<=o){o--}}}})}return this},has:function(e){return e?w.inArray(e,a)>-1:!!(a&&a.length)},empty:function(){a=[];s=0;return this},disable:function(){a=f=r=t;return this},disabled:function(){return!a},lock:function(){f=t;if(!r){c.disable()}return this},locked:function(){return!f},fireWith:function(e,t){if(a&&(!i||f)){t=t||[];t=[e,t.slice?t.slice():t];if(n){f.push(t)}else{l(t)}}return this},fire:function(){c.fireWith(this,arguments);return this},fired:function(){return!!i}};return c};w.extend({Deferred:function(e){var t=[["resolve","done",w.Callbacks("once memory"),"resolved"],["reject","fail",w.Callbacks("once memory"),"rejected"],["notify","progress",w.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){i.done(arguments).fail(arguments);return this},then:function(){var e=arguments;return w.Deferred(function(n){w.each(t,function(t,s){var o=s[0],u=w.isFunction(e[t])&&e[t];i[s[1]](function(){var e=u&&u.apply(this,arguments);if(e&&w.isFunction(e.promise)){e.promise().done(n.resolve).fail(n.reject).progress(n.notify)}else{n[o+"With"](this===r?n.promise():this,u?[e]:arguments)}})});e=null}).promise()},promise:function(e){return e!=null?w.extend(e,r):r}},i={};r.pipe=r.then;w.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add;if(u){o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock)}i[s[0]]=function(){i[s[0]+"With"](this===i?r:this,arguments);return this};i[s[0]+"With"]=o.fireWith});r.promise(i);if(e){e.call(i,i)}return i},when:function(e){var t=0,n=v.call(arguments),r=n.length,i=r!==1||e&&w.isFunction(e.promise)?r:0,s=i===1?e:w.Deferred(),o=function(e,t,n){return function(r){t[e]=this;n[e]=arguments.length>1?v.call(arguments):r;if(n===u){s.notifyWith(t,n)}else if(!--i){s.resolveWith(t,n)}}},u,a,f;if(r>1){u=new Array(r);a=new Array(r);f=new Array(r);for(;t
a";n=p.getElementsByTagName("*")||[];r=p.getElementsByTagName("a")[0];if(!r||!r.style||!n.length){return t}u=o.createElement("select");f=u.appendChild(o.createElement("option"));s=p.getElementsByTagName("input")[0];r.style.cssText="top:1px;float:left;opacity:.5";t.getSetAttribute=p.className!=="t";t.leadingWhitespace=p.firstChild.nodeType===3;t.tbody=!p.getElementsByTagName("tbody").length;t.htmlSerialize=!!p.getElementsByTagName("link").length;t.style=/top/.test(r.getAttribute("style"));t.hrefNormalized=r.getAttribute("href")==="/a";t.opacity=/^0.5/.test(r.style.opacity);t.cssFloat=!!r.style.cssFloat;t.checkOn=!!s.value;t.optSelected=f.selected;t.enctype=!!o.createElement("form").enctype;t.html5Clone=o.createElement("nav").cloneNode(true).outerHTML!=="<:nav>";t.inlineBlockNeedsLayout=false;t.shrinkWrapBlocks=false;t.pixelPosition=false;t.deleteExpando=true;t.noCloneEvent=true;t.reliableMarginRight=true;t.boxSizingReliable=true;s.checked=true;t.noCloneChecked=s.cloneNode(true).checked;u.disabled=true;t.optDisabled=!f.disabled;try{delete p.test}catch(d){t.deleteExpando=false}s=o.createElement("input");s.setAttribute("value","");t.input=s.getAttribute("value")==="";s.value="t";s.setAttribute("type","radio");t.radioValue=s.value==="t";s.setAttribute("checked","t");s.setAttribute("name","t");a=o.createDocumentFragment();a.appendChild(s);t.appendChecked=s.checked;t.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;if(p.attachEvent){p.attachEvent("onclick",function(){t.noCloneEvent=false});p.cloneNode(true).click()}for(h in{submit:true,change:true,focusin:true}){p.setAttribute(l="on"+h,"t");t[h+"Bubbles"]=l in e||p.attributes[l].expando===false}p.style.backgroundClip="content-box";p.cloneNode(true).style.backgroundClip="";t.clearCloneStyle=p.style.backgroundClip==="content-box";for(h in w(t)){break}t.ownLast=h!=="0";w(function(){var n,r,s,u="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",a=o.getElementsByTagName("body")[0];if(!a){return}n=o.createElement("div");n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px";a.appendChild(n).appendChild(p);p.innerHTML="
t
";s=p.getElementsByTagName("td");s[0].style.cssText="padding:0;margin:0;border:0;display:none";c=s[0].offsetHeight===0;s[0].style.display="";s[1].style.display="none";t.reliableHiddenOffsets=c&&s[0].offsetHeight===0;p.innerHTML="";p.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;";w.swap(a,a.style.zoom!=null?{zoom:1}:{},function(){t.boxSizing=p.offsetWidth===4});if(e.getComputedStyle){t.pixelPosition=(e.getComputedStyle(p,null)||{}).top!=="1%";t.boxSizingReliable=(e.getComputedStyle(p,null)||{width:"4px"}).width==="4px";r=p.appendChild(o.createElement("div"));r.style.cssText=p.style.cssText=u;r.style.marginRight=r.style.width="0";p.style.width="1px";t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)}if(typeof p.style.zoom!==i){p.innerHTML="";p.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1";t.inlineBlockNeedsLayout=p.offsetWidth===3;p.style.display="block";p.innerHTML="
";p.firstChild.style.width="5px";t.shrinkWrapBlocks=p.offsetWidth!==3;if(t.inlineBlockNeedsLayout){a.style.zoom=1}}a.removeChild(n);n=p=s=r=null});n=u=a=f=r=s=null;return t}({});var F=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;w.extend({cache:{},noData:{applet:true,embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){e=e.nodeType?w.cache[e[w.expando]]:e[w.expando];return!!e&&!z(e)},data:function(e,t,n){return q(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return q(e,t,n,true)},_removeData:function(e,t){return R(e,t,true)},acceptData:function(e){if(e.nodeType&&e.nodeType!==1&&e.nodeType!==9){return false}var t=e.nodeName&&w.noData[e.nodeName.toLowerCase()];return!t||t!==true&&e.getAttribute("classid")===t}});w.fn.extend({data:function(e,n){var r,i,s=null,o=0,u=this[0];if(e===t){if(this.length){s=w.data(u);if(u.nodeType===1&&!w._data(u,"parsedAttrs")){r=u.attributes;for(;o1?this.each(function(){w.data(this,e,n)}):u?U(u,e,w.data(u,e)):null},removeData:function(e){return this.each(function(){w.removeData(this,e)})}});w.extend({queue:function(e,t,n){var r;if(e){t=(t||"fx")+"queue";r=w._data(e,t);if(n){if(!r||w.isArray(n)){r=w._data(e,t,w.makeArray(n))}else{r.push(n)}}return r||[]}},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),s=w._queueHooks(e,t),o=function(){w.dequeue(e,t)};if(i==="inprogress"){i=n.shift();r--}if(i){if(t==="fx"){n.unshift("inprogress")}delete s.stop;i.call(e,o,s)}if(!r&&s){s.empty.fire()}},_queueHooks:function(e,t){var n=t+"queueHooks";return w._data(e,n)||w._data(e,n,{empty:w.Callbacks("once memory").add(function(){w._removeData(e,t+"queue");w._removeData(e,n)})})}});w.fn.extend({queue:function(e,n){var r=2;if(typeof e!=="string"){n=e;e="fx";r--}if(arguments.length1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})},prop:function(e,t){return w.access(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){e=w.propFix[e]||e;return this.each(function(){try{this[e]=t;delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o=0,u=this.length,a=typeof e==="string"&&e;if(w.isFunction(e)){return this.each(function(t){w(this).addClass(e.call(this,t,this.className))})}if(a){t=(e||"").match(S)||[];for(;o=0){r=r.replace(" "+i+" "," ")}}n.className=e?w.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e;if(typeof t==="boolean"&&n==="string"){return t?this.addClass(e):this.removeClass(e)}if(w.isFunction(e)){return this.each(function(n){w(this).toggleClass(e.call(this,n,this.className,t),t)})}return this.each(function(){if(n==="string"){var t,r=0,s=w(this),o=e.match(S)||[];while(t=o[r++]){if(s.hasClass(t)){s.removeClass(t)}else{s.addClass(t)}}}else if(n===i||n==="boolean"){if(this.className){w._data(this,"__className__",this.className)}this.className=this.className||e===false?"":w._data(this,"__className__")||""}})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n=0){return true}}return false},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s){r=w.valHooks[s.type]||w.valHooks[s.nodeName.toLowerCase()];if(r&&"get"in r&&(n=r.get(s,"value"))!==t){return n}n=s.value;return typeof n==="string"?n.replace($,""):n==null?"":n}return}i=w.isFunction(e);return this.each(function(n){var s;if(this.nodeType!==1){return}if(i){s=e.call(this,n,w(this).val())}else{s=e}if(s==null){s=""}else if(typeof s==="number"){s+=""}else if(w.isArray(s)){s=w.map(s,function(e){return e==null?"":e+""})}r=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()];if(!r||!("set"in r)||r.set(this,s,"value")===t){this.value=s}})}});w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return t!=null?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a=0){n=true}}if(!n){e.selectedIndex=-1}return s}}},attr:function(e,n,r){var s,o,u=e.nodeType;if(!e||u===3||u===8||u===2){return}if(typeof e.getAttribute===i){return w.prop(e,n,r)}if(u!==1||!w.isXMLDoc(e)){n=n.toLowerCase();s=w.attrHooks[n]||(w.expr.match.bool.test(n)?X:W)}if(r!==t){if(r===null){w.removeAttr(e,n)}else if(s&&"set"in s&&(o=s.set(e,r,n))!==t){return o}else{e.setAttribute(n,r+"");return r}}else if(s&&"get"in s&&(o=s.get(e,n))!==null){return o}else{o=w.find.attr(e,n);return o==null?t:o}},removeAttr:function(e,t){var n,r,i=0,s=t&&t.match(S);if(s&&e.nodeType===1){while(n=s[i++]){r=w.propFix[n]||n;if(w.expr.match.bool.test(n)){if(Y&&G||!Q.test(n)){e[r]=false}else{e[w.camelCase("default-"+n)]=e[r]=false}}else{w.attr(e,n,"")}e.removeAttribute(G?n:r)}}},attrHooks:{type:{set:function(e,t){if(!w.support.radioValue&&t==="radio"&&w.nodeName(e,"input")){var n=e.value;e.setAttribute("type",t);if(n){e.value=n}return t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2){return}o=u!==1||!w.isXMLDoc(e);if(o){n=w.propFix[n]||n;s=w.propHooks[n]}if(r!==t){return s&&"set"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r}else{return s&&"get"in s&&(i=s.get(e,n))!==null?i:e[n]}},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):J.test(e.nodeName)||K.test(e.nodeName)&&e.href?0:-1}}}});X={set:function(e,t,n){if(t===false){w.removeAttr(e,n)}else if(Y&&G||!Q.test(n)){e.setAttribute(!G&&w.propFix[n]||n,n)}else{e[w.camelCase("default-"+n)]=e[n]=true}return n}};w.each(w.expr.match.bool.source.match(/\w+/g),function(e,n){var r=w.expr.attrHandle[n]||w.find.attr;w.expr.attrHandle[n]=Y&&G||!Q.test(n)?function(e,n,i){var s=w.expr.attrHandle[n],o=i?t:(w.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;w.expr.attrHandle[n]=s;return o}:function(e,n,r){return r?t:e[w.camelCase("default-"+n)]?n.toLowerCase():null}});if(!Y||!G){w.attrHooks.value={set:function(e,t,n){if(w.nodeName(e,"input")){e.defaultValue=t}else{return W&&W.set(e,t,n)}}}}if(!G){W={set:function(e,n,r){var i=e.getAttributeNode(r);if(!i){e.setAttributeNode(i=e.ownerDocument.createAttribute(r))}i.value=n+="";return r==="value"||n===e.getAttribute(r)?n:t}};w.expr.attrHandle.id=w.expr.attrHandle.name=w.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.value!==""?i.value:null};w.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:W.set};w.attrHooks.contenteditable={set:function(e,t,n){W.set(e,t===""?false:t,n)}};w.each(["width","height"],function(e,t){w.attrHooks[t]={set:function(e,n){if(n===""){e.setAttribute(t,"auto");return n}}}})}if(!w.support.hrefNormalized){w.each(["href","src"],function(e,t){w.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})}if(!w.support.style){w.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}}if(!w.support.optSelected){w.propHooks.selected={get:function(e){var t=e.parentNode;if(t){t.selectedIndex;if(t.parentNode){t.parentNode.selectedIndex}}return null}}}w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});if(!w.support.enctype){w.propFix.enctype="encoding"}w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(w.isArray(t)){return e.checked=w.inArray(w(e).val(),t)>=0}}};if(!w.support.checkOn){w.valHooks[this].get=function(e){return e.getAttribute("value")===null?"on":e.value}}});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;w.event={global:{},add:function(e,n,r,s,o){var u,a,f,l,c,h,p,d,v,m,g,y=w._data(e);if(!y){return}if(r.handler){l=r;r=l.handler;o=l.selector}if(!r.guid){r.guid=w.guid++}if(!(a=y.events)){a=y.events={}}if(!(h=y.handle)){h=y.handle=function(e){return typeof w!==i&&(!e||w.event.triggered!==e.type)?w.event.dispatch.apply(h.elem,arguments):t};h.elem=e}n=(n||"").match(S)||[""];f=n.length;while(f--){u=rt.exec(n[f])||[];v=g=u[1];m=(u[2]||"").split(".").sort();if(!v){continue}c=w.event.special[v]||{};v=(o?c.delegateType:c.bindType)||v;c=w.event.special[v]||{};p=w.extend({type:v,origType:g,data:s,handler:r,guid:r.guid,selector:o,needsContext:o&&w.expr.match.needsContext.test(o),namespace:m.join(".")},l);if(!(d=a[v])){d=a[v]=[];d.delegateCount=0;if(!c.setup||c.setup.call(e,s,m,h)===false){if(e.addEventListener){e.addEventListener(v,h,false)}else if(e.attachEvent){e.attachEvent("on"+v,h)}}}if(c.add){c.add.call(e,p);if(!p.handler.guid){p.handler.guid=r.guid}}if(o){d.splice(d.delegateCount++,0,p)}else{d.push(p)}w.event.global[v]=true}e=null},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,v,m=w.hasData(e)&&w._data(e);if(!m||!(l=m.events)){return}t=(t||"").match(S)||[""];f=t.length;while(f--){u=rt.exec(t[f])||[];p=v=u[1];d=(u[2]||"").split(".").sort();if(!p){for(p in l){w.event.remove(e,p+t[f],n,r,true)}continue}c=w.event.special[p]||{};p=(r?c.delegateType:c.bindType)||p;h=l[p]||[];u=u[2]&&new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)");a=s=h.length;while(s--){o=h[s];if((i||v===o.origType)&&(!n||n.guid===o.guid)&&(!u||u.test(o.namespace))&&(!r||r===o.selector||r==="**"&&o.selector)){h.splice(s,1);if(o.selector){h.delegateCount--}if(c.remove){c.remove.call(e,o)}}}if(a&&!h.length){if(!c.teardown||c.teardown.call(e,d,m.handle)===false){w.removeEvent(e,p,m.handle)}delete l[p]}}if(w.isEmptyObject(l)){delete m.handle;w._removeData(e,"events")}},trigger:function(n,r,i,s){var u,a,f,l,c,h,p,d=[i||o],v=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];f=h=i=i||o;if(i.nodeType===3||i.nodeType===8){return}if(nt.test(v+w.event.triggered)){return}if(v.indexOf(".")>=0){m=v.split(".");v=m.shift();m.sort()}a=v.indexOf(":")<0&&"on"+v;n=n[w.expando]?n:new w.Event(v,typeof n==="object"&&n);n.isTrigger=s?2:3;n.namespace=m.join(".");n.namespace_re=n.namespace?new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;n.result=t;if(!n.target){n.target=i}r=r==null?[n]:w.makeArray(r,[n]);c=w.event.special[v]||{};if(!s&&c.trigger&&c.trigger.apply(i,r)===false){return}if(!s&&!c.noBubble&&!w.isWindow(i)){l=c.delegateType||v;if(!nt.test(l+v)){f=f.parentNode}for(;f;f=f.parentNode){d.push(f);h=f}if(h===(i.ownerDocument||o)){d.push(h.defaultView||h.parentWindow||e)}}p=0;while((f=d[p++])&&!n.isPropagationStopped()){n.type=p>1?l:c.bindType||v;u=(w._data(f,"events")||{})[n.type]&&w._data(f,"handle");if(u){u.apply(f,r)}u=a&&f[a];if(u&&w.acceptData(f)&&u.apply&&u.apply(f,r)===false){n.preventDefault()}}n.type=v;if(!s&&!n.isDefaultPrevented()){if((!c._default||c._default.apply(d.pop(),r)===false)&&w.acceptData(i)){if(a&&i[v]&&!w.isWindow(i)){h=i[a];if(h){i[a]=null}w.event.triggered=v;try{i[v]()}catch(g){}w.event.triggered=t;if(h){i[a]=h}}}}return n.result},dispatch:function(e){e=w.event.fix(e);var n,r,i,s,o,u=[],a=v.call(arguments),f=(w._data(this,"events")||{})[e.type]||[],l=w.event.special[e.type]||{};a[0]=e;e.delegateTarget=this;if(l.preDispatch&&l.preDispatch.call(this,e)===false){return}u=w.event.handlers.call(this,e,f);n=0;while((s=u[n++])&&!e.isPropagationStopped()){e.currentTarget=s.elem;o=0;while((i=s.handlers[o++])&&!e.isImmediatePropagationStopped()){if(!e.namespace_re||e.namespace_re.test(i.namespace)){e.handleObj=i;e.data=i.data;r=((w.event.special[i.origType]||{}).handle||i.handler).apply(s.elem,a);if(r!==t){if((e.result=r)===false){e.preventDefault();e.stopPropagation()}}}}}if(l.postDispatch){l.postDispatch.call(this,e)}return e.result},handlers:function(e,n){var r,i,s,o,u=[],a=n.delegateCount,f=e.target;if(a&&f.nodeType&&(!e.button||e.type!=="click")){for(;f!=this;f=f.parentNode||this){if(f.nodeType===1&&(f.disabled!==true||e.type!=="click")){s=[];for(o=0;o=0:w.find(r,this,null,[f]).length}if(s[r]){s.push(i)}}if(s.length){u.push({elem:f,handlers:s})}}}}if(a1?w.unique(n):n);n.selector=this.selector?this.selector+" "+e:e;return n},has:function(e){var t,n=w(e,this),r=n.length;return this.filter(function(){for(t=0;t-1:n.nodeType===1&&w.find.matchesSelector(n,e))){n=s.push(n);break}}}return this.pushStack(s.length>1?w.unique(s):s)},index:function(e){if(!e){return this[0]&&this[0].parentNode?this.first().prevAll().length:-1}if(typeof e==="string"){return w.inArray(this[0],w(e))}return w.inArray(e.jquery?e[0]:e,this)},add:function(e,t){var n=typeof e==="string"?w(e,t):w.makeArray(e&&e.nodeType?[e]:e),r=w.merge(this.get(),n);return this.pushStack(w.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}});w.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return w.dir(e,"parentNode")},parentsUntil:function(e,t,n){return w.dir(e,"parentNode",n)},next:function(e){return ct(e,"nextSibling")},prev:function(e){return ct(e,"previousSibling")},nextAll:function(e){return w.dir(e,"nextSibling")},prevAll:function(e){return w.dir(e,"previousSibling")},nextUntil:function(e,t,n){return w.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return w.dir(e,"previousSibling",n)},siblings:function(e){return w.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return w.sibling(e.firstChild)},contents:function(e){return w.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:w.merge([],e.childNodes)}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);if(e.slice(-5)!=="Until"){r=n}if(r&&typeof r==="string"){i=w.filter(r,i)}if(this.length>1){if(!lt[e]){i=w.unique(i)}if(at.test(e)){i=i.reverse()}}return this.pushStack(i)}});w.extend({filter:function(e,t,n){var r=t[0];if(n){e=":not("+e+")"}return t.length===1&&r.nodeType===1?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return e.nodeType===1}))},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!w(s).is(r))){if(s.nodeType===1){i.push(s)}s=s[n]}return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling){if(e.nodeType===1&&e!==t){n.push(e)}}return n}});var dt="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|"+"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",vt=/ jQuery\d+="(?:null|\d+)"/g,mt=new RegExp("<(?:"+dt+")[\\s/>]","i"),gt=/^\s+/,yt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,wt=/\s*$/g,Lt={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:w.support.htmlSerialize?[0,"",""]:[1,"X
","
"]},At=pt(o),Ot=At.appendChild(o.createElement("div"));Lt.optgroup=Lt.option;Lt.tbody=Lt.tfoot=Lt.colgroup=Lt.caption=Lt.thead;Lt.th=Lt.td;w.fn.extend({text:function(e){return w.access(this,function(e){return e===t?w.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var t=Mt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var t=Mt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){if(this.parentNode){this.parentNode.insertBefore(e,this)}})},after:function(){return this.domManip(arguments,function(e){if(this.parentNode){this.parentNode.insertBefore(e,this.nextSibling)}})},remove:function(e,t){var n,r=e?w.filter(e,this):this,i=0;for(;(n=r[i])!=null;i++){if(!t&&n.nodeType===1){w.cleanData(jt(n))}if(n.parentNode){if(t&&w.contains(n.ownerDocument,n)){Pt(jt(n,"script"))}n.parentNode.removeChild(n)}}return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){if(e.nodeType===1){w.cleanData(jt(e,false))}while(e.firstChild){e.removeChild(e.firstChild)}if(e.options&&w.nodeName(e,"select")){e.options.length=0}}return this},clone:function(e,t){e=e==null?false:e;t=t==null?e:t;return this.map(function(){return w.clone(this,e,t)})},html:function(e){return w.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t){return n.nodeType===1?n.innerHTML.replace(vt,""):t}if(typeof e==="string"&&!St.test(e)&&(w.support.htmlSerialize||!mt.test(e))&&(w.support.leadingWhitespace||!gt.test(e))&&!Lt[(bt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(yt,"<$1>");try{for(;r")){s=e.cloneNode(true)}else{Ot.innerHTML=e.outerHTML;Ot.removeChild(s=Ot.firstChild)}if((!w.support.noCloneEvent||!w.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!w.isXMLDoc(e)){r=jt(s);u=jt(e);for(o=0;(i=u[o])!=null;++o){if(r[o]){Bt(i,r[o])}}}if(t){if(n){u=u||jt(e);r=r||jt(s);for(o=0;(i=u[o])!=null;o++){Ht(i,r[o])}}else{Ht(e,s)}}r=jt(s,"script");if(r.length>0){Pt(r,!a&&jt(e,"script"))}r=u=i=null;return s},buildFragment:function(e,t,n,r){var i,s,o,u,a,f,l,c=e.length,h=pt(t),p=[],d=0;for(;d")+l[2];i=l[0];while(i--){u=u.lastChild}if(!w.support.leadingWhitespace&>.test(s)){p.push(t.createTextNode(gt.exec(s)[0]))}if(!w.support.tbody){s=a==="table"&&!wt.test(s)?u.firstChild:l[1]===""&&!wt.test(s)?u:0;i=s&&s.childNodes.length;while(i--){if(w.nodeName(f=s.childNodes[i],"tbody")&&!f.childNodes.length){s.removeChild(f)}}}w.merge(p,u.childNodes);u.textContent="";while(u.firstChild){u.removeChild(u.firstChild)}u=h.lastChild}}}if(u){h.removeChild(u)}if(!w.support.appendChecked){w.grep(jt(p,"input"),Ft)}d=0;while(s=p[d++]){if(r&&w.inArray(s,r)!==-1){continue}o=w.contains(s.ownerDocument,s);u=jt(h.appendChild(s),"script");if(o){Pt(u)}if(n){i=0;while(s=u[i++]){if(Nt.test(s.type||"")){n.push(s)}}}}u=null;return h},cleanData:function(e,t){var n,r,s,o,u=0,a=w.expando,f=w.cache,l=w.support.deleteExpando,h=w.event.special;for(;(n=e[u])!=null;u++){if(t||w.acceptData(n)){s=n[a];o=s&&f[s];if(o){if(o.events){for(r in o.events){if(h[r]){w.event.remove(n,r)}else{w.removeEvent(n,r,o.handle)}}}if(f[s]){delete f[s];if(l){delete n[a]}else if(typeof n.removeAttribute!==i){n.removeAttribute(a)}else{n[a]=null}c.push(s)}}}}},_evalUrl:function(e){return w.ajax({url:e,type:"GET",dataType:"script",async:false,global:false,"throws":true})}});w.fn.extend({wrapAll:function(e){if(w.isFunction(e)){return this.each(function(t){w(this).wrapAll(e.call(this,t))})}if(this[0]){var t=w(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){t.insertBefore(this[0])}t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1){e=e.firstChild}return e}).append(this)}return this},wrapInner:function(e){if(w.isFunction(e)){return this.each(function(t){w(this).wrapInner(e.call(this,t))})}return this.each(function(){var t=w(this),n=t.contents();if(n.length){n.wrapAll(e)}else{t.append(e)}})},wrap:function(e){var t=w.isFunction(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){if(!w.nodeName(this,"body")){w(this).replaceWith(this.childNodes)}}).end()}});var It,qt,Rt,Ut=/alpha\([^)]*\)/i,zt=/opacity\s*=\s*([^)]*)/,Wt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Vt=/^margin/,$t=new RegExp("^("+E+")(.*)$","i"),Jt=new RegExp("^("+E+")(?!px)[a-z%]+$","i"),Kt=new RegExp("^([+-])=("+E+")","i"),Qt={BODY:"block"},Gt={position:"absolute",visibility:"hidden",display:"block"},Yt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];w.fn.extend({css:function(e,n){return w.access(this,function(e,n,r){var i,s,o={},u=0;if(w.isArray(n)){s=qt(e);i=n.length;for(;u1)},show:function(){return rn(this,true)},hide:function(){return rn(this)},toggle:function(e){if(typeof e==="boolean"){return e?this.show():this.hide()}return this.each(function(){if(nn(this)){w(this).show()}else{w(this).hide()}})}});w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Rt(e,"opacity");return n===""?"1":n}}}},cssNumber:{columnCount:true,fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,order:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":w.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style){return}var s,o,u,a=w.camelCase(n),f=e.style;n=w.cssProps[a]||(w.cssProps[a]=tn(f,a));u=w.cssHooks[n]||w.cssHooks[a];if(r!==t){o=typeof r;if(o==="string"&&(s=Kt.exec(r))){r=(s[1]+1)*s[2]+parseFloat(w.css(e,n));o="number"}if(r==null||o==="number"&&isNaN(r)){return}if(o==="number"&&!w.cssNumber[a]){r+="px"}if(!w.support.clearCloneStyle&&r===""&&n.indexOf("background")===0){f[n]="inherit"}if(!u||!("set"in u)||(r=u.set(e,r,i))!==t){try{f[n]=r}catch(l){}}}else{if(u&&"get"in u&&(s=u.get(e,false,i))!==t){return s}return f[n]}},css:function(e,n,r,i){var s,o,u,a=w.camelCase(n);n=w.cssProps[a]||(w.cssProps[a]=tn(e.style,a));u=w.cssHooks[n]||w.cssHooks[a];if(u&&"get"in u){o=u.get(e,true,r)}if(o===t){o=Rt(e,n,i)}if(o==="normal"&&n in Yt){o=Yt[n]}if(r===""||r){s=parseFloat(o);return r===true||w.isNumeric(s)?s||0:o}return o}});if(e.getComputedStyle){qt=function(t){return e.getComputedStyle(t,null)};Rt=function(e,n,r){var i,s,o,u=r||qt(e),a=u?u.getPropertyValue(n)||u[n]:t,f=e.style;if(u){if(a===""&&!w.contains(e.ownerDocument,e)){a=w.style(e,n)}if(Jt.test(a)&&Vt.test(n)){i=f.width;s=f.minWidth;o=f.maxWidth;f.minWidth=f.maxWidth=f.width=a;a=u.width;f.width=i;f.minWidth=s;f.maxWidth=o}}return a}}else if(o.documentElement.currentStyle){qt=function(e){return e.currentStyle};Rt=function(e,n,r){var i,s,o,u=r||qt(e),a=u?u[n]:t,f=e.style;if(a==null&&f&&f[n]){a=f[n]}if(Jt.test(a)&&!Wt.test(n)){i=f.left;s=e.runtimeStyle;o=s&&s.left;if(o){s.left=e.currentStyle.left}f.left=n==="fontSize"?"1em":a;a=f.pixelLeft+"px";f.left=i;if(o){s.left=o}}return a===""?"auto":a}}w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n){return e.offsetWidth===0&&Xt.test(w.css(e,"display"))?w.swap(e,Gt,function(){return un(e,t,r)}):un(e,t,r)}},set:function(e,n,r){var i=r&&qt(e);return sn(e,n,r?on(e,t,r,w.support.boxSizing&&w.css(e,"boxSizing",false,i)==="border-box",i):0)}}});if(!w.support.opacity){w.cssHooks.opacity={get:function(e,t){return zt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=w.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if((t>=1||t==="")&&w.trim(s.replace(Ut,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(t===""||r&&!r.filter){return}}n.filter=Ut.test(s)?s.replace(Ut,i):s+" "+i}}}w(function(){if(!w.support.reliableMarginRight){w.cssHooks.marginRight={get:function(e,t){if(t){return w.swap(e,{display:"inline-block"},Rt,[e,"marginRight"])}}}}if(!w.support.pixelPosition&&w.fn.position){w.each(["top","left"],function(e,t){w.cssHooks[t]={get:function(e,n){if(n){n=Rt(e,t);return Jt.test(n)?w(e).position()[t]+"px":n}}}})}});if(w.expr&&w.expr.filters){w.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0||!w.support.reliableHiddenOffsets&&(e.style&&e.style.display||w.css(e,"display"))==="none"};w.expr.filters.visible=function(e){return!w.expr.filters.hidden(e)}}w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){var r=0,i={},s=typeof n==="string"?n.split(" "):[n];for(;r<4;r++){i[e+Zt[r]+t]=s[r]||s[r-2]||s[0]}return i}};if(!Vt.test(e)){w.cssHooks[e+t].set=sn}});var ln=/%20/g,cn=/\[\]$/,hn=/\r?\n/g,pn=/^(?:submit|button|image|reset|file)$/i,dn=/^(?:input|select|textarea|keygen)/i;w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&dn.test(this.nodeName)&&!pn.test(e)&&(this.checked||!xt.test(e))}).map(function(e,t){var n=w(this).val();return n==null?null:w.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(hn,"\r\n")}}):{name:t.name,value:n.replace(hn,"\r\n")}}).get()}});w.param=function(e,n){var r,i=[],s=function(e,t){t=w.isFunction(t)?t():t==null?"":t;i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t){n=w.ajaxSettings&&w.ajaxSettings.traditional}if(w.isArray(e)||e.jquery&&!w.isPlainObject(e)){w.each(e,function(){s(this.name,this.value)})}else{for(r in e){vn(r,e[r],n,s)}}return i.join("&").replace(ln,"+")};w.each(("blur focus focusin focusout load resize scroll unload click dblclick "+"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+"change select submit keydown keypress keyup error contextmenu").split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}});w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,gn,yn=w.now(),bn=/\?/,wn=/#.*$/,En=/([?&])_=[^&]*/,Sn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,xn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Tn=/^(?:GET|HEAD)$/,Nn=/^\/\//,Cn=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,kn=w.fn.load,Ln={},An={},On="*/".concat("*");try{gn=s.href}catch(Mn){gn=o.createElement("a");gn.href="";gn=gn.href}mn=Cn.exec(gn.toLowerCase())||[];w.fn.load=function(e,n,r){if(typeof e!=="string"&&kn){return kn.apply(this,arguments)}var i,s,o,u=this,a=e.indexOf(" ");if(a>=0){i=e.slice(a,e.length);e=e.slice(0,a)}if(w.isFunction(n)){r=n;n=t}else if(n&&typeof n==="object"){o="POST"}if(u.length>0){w.ajax({url:e,type:o,dataType:"html",data:n}).done(function(e){s=arguments;u.html(i?w("
").append(w.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){u.each(r,s||[e.responseText,t,e])})}return this};w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}});w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:gn,type:"GET",isLocal:xn.test(mn[1]),global:true,processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":On,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":true,"text json":w.parseJSON,"text xml":w.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(e,t){return t?Pn(Pn(e,w.ajaxSettings),t):Pn(w.ajaxSettings,e)},ajaxPrefilter:_n(Ln),ajaxTransport:_n(An),ajax:function(e,n){function N(e,n,r,i){var l,g,y,E,S,T=n;if(b===2){return}b=2;if(u){clearTimeout(u)}f=t;o=i||"";x.readyState=e>0?4:0;l=e>=200&&e<300||e===304;if(r){E=Hn(c,x,r)}E=Bn(c,E,x,l);if(l){if(c.ifModified){S=x.getResponseHeader("Last-Modified");if(S){w.lastModified[s]=S}S=x.getResponseHeader("etag");if(S){w.etag[s]=S}}if(e===204||c.type==="HEAD"){T="nocontent"}else if(e===304){T="notmodified"}else{T=E.state;g=E.data;y=E.error;l=!y}}else{y=T;if(e||!T){T="error";if(e<0){e=0}}}x.status=e;x.statusText=(n||T)+"";if(l){d.resolveWith(h,[g,T,x])}else{d.rejectWith(h,[x,T,y])}x.statusCode(m);m=t;if(a){p.trigger(l?"ajaxSuccess":"ajaxError",[x,c,l?g:y])}v.fireWith(h,[x,T]);if(a){p.trigger("ajaxComplete",[x,c]);if(!--w.active){w.event.trigger("ajaxStop")}}}if(typeof e==="object"){n=e;e=t}n=n||{};var r,i,s,o,u,a,f,l,c=w.ajaxSetup({},n),h=c.context||c,p=c.context&&(h.nodeType||h.jquery)?w(h):w.event,d=w.Deferred(),v=w.Callbacks("once memory"),m=c.statusCode||{},g={},y={},b=0,E="canceled",x={readyState:0,getResponseHeader:function(e){var t;if(b===2){if(!l){l={};while(t=Sn.exec(o)){l[t[1].toLowerCase()]=t[2]}}t=l[e.toLowerCase()]}return t==null?null:t},getAllResponseHeaders:function(){return b===2?o:null},setRequestHeader:function(e,t){var n=e.toLowerCase();if(!b){e=y[n]=y[n]||e;g[e]=t}return this},overrideMimeType:function(e){if(!b){c.mimeType=e}return this},statusCode:function(e){var t;if(e){if(b<2){for(t in e){m[t]=[m[t],e[t]]}}else{x.always(e[x.status])}}return this},abort:function(e){var t=e||E;if(f){f.abort(t)}N(0,t);return this}};d.promise(x).complete=v.add;x.success=x.done;x.error=x.fail;c.url=((e||c.url||gn)+"").replace(wn,"").replace(Nn,mn[1]+"//");c.type=n.method||n.type||c.method||c.type;c.dataTypes=w.trim(c.dataType||"*").toLowerCase().match(S)||[""];if(c.crossDomain==null){r=Cn.exec(c.url.toLowerCase());c.crossDomain=!!(r&&(r[1]!==mn[1]||r[2]!==mn[2]||(r[3]||(r[1]==="http:"?"80":"443"))!==(mn[3]||(mn[1]==="http:"?"80":"443"))))}if(c.data&&c.processData&&typeof c.data!=="string"){c.data=w.param(c.data,c.traditional)}Dn(Ln,c,n,x);if(b===2){return x}a=c.global;if(a&&w.active++===0){w.event.trigger("ajaxStart")}c.type=c.type.toUpperCase();c.hasContent=!Tn.test(c.type);s=c.url;if(!c.hasContent){if(c.data){s=c.url+=(bn.test(s)?"&":"?")+c.data;delete c.data}if(c.cache===false){c.url=En.test(s)?s.replace(En,"$1_="+yn++):s+(bn.test(s)?"&":"?")+"_="+yn++}}if(c.ifModified){if(w.lastModified[s]){x.setRequestHeader("If-Modified-Since",w.lastModified[s])}if(w.etag[s]){x.setRequestHeader("If-None-Match",w.etag[s])}}if(c.data&&c.hasContent&&c.contentType!==false||n.contentType){x.setRequestHeader("Content-Type",c.contentType)}x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+On+"; q=0.01":""):c.accepts["*"]);for(i in c.headers){x.setRequestHeader(i,c.headers[i])}if(c.beforeSend&&(c.beforeSend.call(h,x,c)===false||b===2)){return x.abort()}E="abort";for(i in{success:1,error:1,complete:1}){x[i](c[i])}f=Dn(An,c,n,x);if(!f){N(-1,"No Transport")}else{x.readyState=1;if(a){p.trigger("ajaxSend",[x,c])}if(c.async&&c.timeout>0){u=setTimeout(function(){x.abort("timeout")},c.timeout)}try{b=1;f.send(g,N)}catch(T){if(b<2){N(-1,T)}else{throw T}}}return x},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,n){return w.get(e,t,n,"script")}});w.each(["get","post"],function(e,n){w[n]=function(e,r,i,s){if(w.isFunction(r)){s=s||i;i=r;r=t}return w.ajax({url:e,type:n,dataType:s,data:r,success:i})}});w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){w.globalEval(e);return e}}});w.ajaxPrefilter("script",function(e){if(e.cache===t){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});w.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=o.head||w("head")[0]||o.documentElement;return{send:function(t,i){n=o.createElement("script");n.async=true;if(e.scriptCharset){n.charset=e.scriptCharset}n.src=e.url;n.onload=n.onreadystatechange=function(e,t){if(t||!n.readyState||/loaded|complete/.test(n.readyState)){n.onload=n.onreadystatechange=null;if(n.parentNode){n.parentNode.removeChild(n)}n=null;if(!t){i(200,"success")}}};r.insertBefore(n,r.firstChild)},abort:function(){if(n){n.onload(t,true)}}}}});var jn=[],Fn=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=jn.pop()||w.expando+"_"+yn++;this[e]=true;return e}});w.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.jsonp!==false&&(Fn.test(n.url)?"url":typeof n.data==="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Fn.test(n.data)&&"data");if(a||n.dataTypes[0]==="jsonp"){s=n.jsonpCallback=w.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback;if(a){n[a]=n[a].replace(Fn,"$1"+s)}else if(n.jsonp!==false){n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+s}n.converters["script json"]=function(){if(!u){w.error(s+" was not called")}return u[0]};n.dataTypes[0]="json";o=e[s];e[s]=function(){u=arguments};i.always(function(){e[s]=o;if(n[s]){n.jsonpCallback=r.jsonpCallback;jn.push(s)}if(u&&w.isFunction(o)){o(u[0])}u=o=t});return"script"}});var In,qn,Rn=0,Un=e.ActiveXObject&&function(){var e;for(e in In){In[e](t,true)}};w.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&zn()||Wn()}:zn;qn=w.ajaxSettings.xhr();w.support.cors=!!qn&&"withCredentials"in qn;qn=w.support.ajax=!!qn;if(qn){w.ajaxTransport(function(n){if(!n.crossDomain||w.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();if(n.username){a.open(n.type,n.url,n.async,n.username,n.password)}else{a.open(n.type,n.url,n.async)}if(n.xhrFields){for(u in n.xhrFields){a[u]=n.xhrFields[u]}}if(n.mimeType&&a.overrideMimeType){a.overrideMimeType(n.mimeType)}if(!n.crossDomain&&!i["X-Requested-With"]){i["X-Requested-With"]="XMLHttpRequest"}try{for(u in i){a.setRequestHeader(u,i[u])}}catch(f){}a.send(n.hasContent&&n.data||null);r=function(e,i){var u,f,l,c;try{if(r&&(i||a.readyState===4)){r=t;if(o){a.onreadystatechange=w.noop;if(Un){delete In[o]}}if(i){if(a.readyState!==4){a.abort()}}else{c={};u=a.status;f=a.getAllResponseHeaders();if(typeof a.responseText==="string"){c.text=a.responseText}try{l=a.statusText}catch(h){l=""}if(!u&&n.isLocal&&!n.crossDomain){u=c.text?200:404}else if(u===1223){u=204}}}}catch(p){if(!i){s(-1,p)}}if(c){s(u,l,c,f)}};if(!n.async){r()}else if(a.readyState===4){setTimeout(r)}else{o=++Rn;if(Un){if(!In){In={};w(e).unload(Un)}In[o]=r}a.onreadystatechange=r}},abort:function(){if(r){r(t,true)}}}}})}var Xn,Vn,$n=/^(?:toggle|show|hide)$/,Jn=new RegExp("^(?:([+-])=|)("+E+")([a-z%]*)$","i"),Kn=/queueHooks$/,Qn=[nr],Gn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Jn.exec(t),s=i&&i[3]||(w.cssNumber[e]?"":"px"),o=(w.cssNumber[e]||s!=="px"&&+r)&&Jn.exec(w.css(n.elem,e)),u=1,a=20;if(o&&o[3]!==s){s=s||o[3];i=i||[];o=+r||1;do{u=u||".5";o=o/u;w.style(n.elem,e,o+s)}while(u!==(u=n.cur()/r)&&u!==1&&--a)}if(i){o=n.start=+o||+r||0;n.unit=s;n.end=i[1]?o+(i[1]+1)*i[2]:+i[2]}return n}]};w.Animation=w.extend(er,{tweener:function(e,t){if(w.isFunction(e)){t=e;e=["*"]}else{e=e.split(" ")}var n,r=0,i=e.length;for(;r-1,f={},l={},c,h;if(a){l=i.position();c=l.top;h=l.left}else{c=parseFloat(o)||0;h=parseFloat(u)||0}if(w.isFunction(t)){t=t.call(e,n,s)}if(t.top!=null){f.top=t.top-s.top+c}if(t.left!=null){f.left=t.left-s.left+h}if("using"in t){t.using.call(e,f)}else{i.css(f)}}};w.fn.extend({position:function(){if(!this[0]){return}var e,t,n={top:0,left:0},r=this[0];if(w.css(r,"position")==="fixed"){t=r.getBoundingClientRect()}else{e=this.offsetParent();t=this.offset();if(!w.nodeName(e[0],"html")){n=e.offset()}n.top+=w.css(e[0],"borderTopWidth",true);n.left+=w.css(e[0],"borderLeftWidth",true)}return{top:t.top-n.top-w.css(r,"marginTop",true),left:t.left-n.left-w.css(r,"marginLeft",true)}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||u;while(e&&!w.nodeName(e,"html")&&w.css(e,"position")==="static"){e=e.offsetParent}return e||u})}});w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);w.fn[e]=function(i){return w.access(this,function(e,i,s){var o=sr(e);if(s===t){return o?n in o?o[n]:o.document.documentElement[i]:e[i]}if(o){o.scrollTo(!r?s:w(o).scrollLeft(),r?s:w(o).scrollTop())}else{e[i]=s}},e,i,arguments.length,null)}});w.each({Height:"height",Width:"width"},function(e,n){w.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){w.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!=="boolean"),u=r||(i===true||s===true?"margin":"border");return w.access(this,function(n,r,i){var s;if(w.isWindow(n)){return n.document.documentElement["client"+e]}if(n.nodeType===9){s=n.documentElement;return Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])}return i===t?w.css(n,r,u):w.style(n,r,i,u)},n,o?i:t,o,null)}})});w.fn.size=function(){return this.length};w.fn.andSelf=w.fn.addBack;if(typeof module==="object"&&module&&typeof module.exports==="object"){module.exports=w}else{e.jQuery=e.$=w;if(typeof define==="function"&&define.amd){define("jquery",[],function(){return w})}}})(window);(function(){"use strict";function encodeHTMLSource(){var e={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},t=/&(?!#?\w+;)|<|>|"|'|\//g;return function(){return this?this.replace(t,function(t){return e[t]||t}):this}}function resolveDefs(e,t,n){return(typeof t==="string"?t:t.toString()).replace(e.define||skip,function(t,r,i,s){if(r.indexOf("def.")===0){r=r.substring(4)}if(!(r in n)){if(i===":"){if(e.defineParams)s.replace(e.defineParams,function(e,t,i){n[r]={arg:t,text:i}});if(!(r in n))n[r]=s}else{(new Function("def","def['"+r+"']="+s))(n)}}return""}).replace(e.use||skip,function(t,r){if(e.useParams)r=r.replace(e.useParams,function(e,t,r,i){if(n[r]&&n[r].arg&&i){var s=(r+":"+i).replace(/'|\\/g,"_");n.__exp=n.__exp||{};n.__exp[s]=n[r].text.replace(new RegExp("(^|[^\\w$])"+n[r].arg+"([^\\w$])","g"),"$1"+i+"$2");return t+"def.__exp['"+s+"']"}});var i=(new Function("def","return "+r))(n);return i?resolveDefs(e,i,n):i})}function unescape(e){return e.replace(/\\('|\\)/g,"$1").replace(/[\r\t\n]/g," ")}var doT={version:"1.0.1-nanoui",templateSettings:{evaluate:/\{\{([\s\S]+?)\}\}/g,interpolate:/\{\{:([\s\S]+?)\}\}/g,encode:/\{\{>([\s\S]+?)\}\}/g,use:/\{\{#([\s\S]+?)\}\}/g,define:/\{\{##\s*([\w\.$]+)\s*(\:|=)([\s\S]+?)#\}\}/g,conditional:/\{\{\/?if\s*([\s\S]*?)\s*\}\}/g,conditionalElse:/\{\{else\s*([\s\S]*?)\s*\}\}/g,iterate:/\{\{\/?for\s*(?:\}\}|([\s\S]+?)\s*(?:\:\s*([\w$]+))?\s*(?:\:\s*([\w$]+))?\s*\}\})/g,props:/\{\{\/?props\s*(?:\}\}|([\s\S]+?)\s*(?:\:\s*([\w$]+))?\s*(?:\:\s*([\w$]+))?\s*\}\})/g,empty:/\{\{empty\}\}/g,varname:"data, config, helper",strip:true,append:true,selfcontained:false},template:undefined,compile:undefined},global;if(typeof module!=="undefined"&&module.exports){module.exports=doT}else if(typeof define==="function"&&define.amd){define(function(){return doT})}else{global=function(){return this||(0,eval)("this")}();global.doT=doT}String.prototype.encodeHTML=encodeHTMLSource();var startend={append:{start:"'+(",end:")+'",endencode:"||'').toString().encodeHTML()+'"},split:{start:"';out+=(",end:");out+='",endencode:"||'').toString().encodeHTML();out+='"}},skip=/$^/;doT.template=function(e,t,n){t=t||doT.templateSettings;var r=t.append?startend.append:startend.split,i,s=0,o=t.use||t.define?resolveDefs(t,e,n||{}):e;o=("var out='"+(t.strip?o.replace(/(^|\r|\n)\t* +| +\t*(\r|\n|$)/g," ").replace(/\r|\n|\t|\/\*[\s\S]*?\*\//g,""):o).replace(/'|\\/g,"\\$&").replace(t.interpolate||skip,function(e,t){return r.start+unescape(t)+r.end}).replace(t.encode||skip,function(e,t){i=true;return r.start+unescape(t)+r.endencode}).replace(t.conditional||skip,function(e,t){return t?"';if("+unescape(t)+"){out+='":"';}out+='"}).replace(t.conditionalElse||skip,function(e,t){return t?"';}else if("+unescape(t)+"){out+='":"';}else{out+='"}).replace(t.iterate||skip,function(e,t,n,r){if(!t)return"';} } out+='";s+=1;n=n||"value";r=r||"index";t=unescape(t);var i="arr"+s;return"';var "+i+"="+t+";if("+i+" && "+i+".length > 0){var "+n+","+r+"=-1,l"+s+"="+i+".length-1;while("+r+" 0){var "+n+";for( var "+r+" in "+i+"){ if (!"+i+".hasOwnProperty("+r+")) continue; "+n+"="+i+"["+r+"];out+='"}).replace(t.empty||skip,function(e){return"';}}else{if(true){out+='"}).replace(t.evaluate||skip,function(e,t){return"';"+unescape(t)+"out+='"})+"';return out;").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/(\s|;|\}|^|\{)out\+='';/g,"$1").replace(/\+''/g,"").replace(/(\s|;|\}|^|\{)out\+=''\+/g,"$1out+=");if(i&&t.selfcontained){o="String.prototype.encodeHTML=("+encodeHTMLSource.toString()+"());"+o}try{return new Function(t.varname,o)}catch(u){if(typeof console!=="undefined")console.log("Could not create a template function: "+o);throw u}};doT.compile=function(e,t){return doT.template(e,null,t)}})();jQuery.fn.extend({everyTime:function(e,t,n,r){return this.each(function(){jQuery.timer.add(this,e,t,n,r)})},oneTime:function(e,t,n){return this.each(function(){jQuery.timer.add(this,e,t,n,1)})},stopTime:function(e,t){return this.each(function(){jQuery.timer.remove(this,e,t)})}});jQuery.extend({timer:{global:[],guid:1,dataKey:"jQuery.timer",regex:/^([0-9]+(?:\.[0-9]*)?)\s*(.*s)?$/,powers:{ms:1,cs:10,ds:100,s:1e3,das:1e4,hs:1e5,ks:1e6},timeParse:function(e){if(e==undefined||e==null)return null;var t=this.regex.exec(jQuery.trim(e.toString()));return t[2]?parseFloat(t[1])*(this.powers[t[2]]||1):e},add:function(e,t,n,r,i){var s=0;if(jQuery.isFunction(n)){i||(i=r);r=n;n=t}t=jQuery.timer.timeParse(t);if(!(typeof t!="number"||isNaN(t)||t<0)){if(typeof i!="number"||isNaN(i)||i<0)i=0;i=i||0;var o=jQuery.data(e,this.dataKey)||jQuery.data(e,this.dataKey,{});o[n]||(o[n]={});r.timerID=r.timerID||this.guid++;var u=function(){if(++s>i&&i!==0||r.call(e,s)===false)jQuery.timer.remove(e,n,r)};u.timerID=r.timerID;o[n][r.timerID]||(o[n][r.timerID]=window.setInterval(u,t));this.global.push(e)}},remove:function(e,t,n){var r=jQuery.data(e,this.dataKey),i;if(r){if(t){if(r[t]){if(n){if(n.timerID){window.clearInterval(r[t][n.timerID]);delete r[t][n.timerID]}}else for(n in r[t]){window.clearInterval(r[t][n]);delete r[t][n]}for(i in r[t])break;if(!i){i=null;delete r[t]}}}else for(t in r)this.remove(e,t,n);for(i in r)break;i||jQuery.removeData(e,this.dataKey)}}}});jQuery(window).bind("unload",function(){jQuery.each(jQuery.timer.global,function(e,t){jQuery.timer.remove(t)})}) \ No newline at end of file diff --git a/nano/js/libraries/2-doT.js b/nano/js/libraries/2-doT.js new file mode 100644 index 00000000000..a0ec5520c02 --- /dev/null +++ b/nano/js/libraries/2-doT.js @@ -0,0 +1,157 @@ +(function () { + "use strict"; + + var doT = { + version: '1.0.1-nanoui', + templateSettings: { + evaluate: /\{\{([\s\S]+?)\}\}/g, + interpolate: /\{\{:([\s\S]+?)\}\}/g, + encode: /\{\{>([\s\S]+?)\}\}/g, + use: /\{\{#([\s\S]+?)\}\}/g, + define: /\{\{##\s*([\w\.$]+)\s*(\:|=)([\s\S]+?)#\}\}/g, + conditional: /\{\{\/?if\s*([\s\S]*?)\s*\}\}/g, + conditionalElse: /\{\{else\s*([\s\S]*?)\s*\}\}/g, + iterate: /\{\{\/?for\s*(?:\}\}|([\s\S]+?)\s*(?:\:\s*([\w$]+))?\s*(?:\:\s*([\w$]+))?\s*\}\})/g, + props: /\{\{\/?props\s*(?:\}\}|([\s\S]+?)\s*(?:\:\s*([\w$]+))?\s*(?:\:\s*([\w$]+))?\s*\}\})/g, + empty: /\{\{empty\}\}/g, + varname: 'data, config, helper', + strip: true, + append: true, + selfcontained: false + }, + template: undefined, //fn, compile template + compile: undefined //fn, for express + }, global; + + if (typeof module !== 'undefined' && module.exports) { + module.exports = doT; + } else if (typeof define === 'function' && define.amd) { + define(function () { + return doT; + }); + } else { + global = (function () { + return this || (0, eval)('this'); + }()); + global.doT = doT; + } + + function encodeHTMLSource() { + var encodeHTMLRules = { "&": "&", "<": "<", ">": ">", '"': '"', "'": ''', "/": '/' }, + matchHTML = /&(?!#?\w+;)|<|>|"|'|\//g; + return function () { + return this ? this.replace(matchHTML, function (m) { + return encodeHTMLRules[m] || m; + }) : this; + }; + } + + String.prototype.encodeHTML = encodeHTMLSource(); + + var startend = { + append: { start: "'+(", end: ")+'", endencode: "||'').toString().encodeHTML()+'" }, + split: { start: "';out+=(", end: ");out+='", endencode: "||'').toString().encodeHTML();out+='"} + }, skip = /$^/; + + function resolveDefs(c, block, def) { + return ((typeof block === 'string') ? block : block.toString()) + .replace(c.define || skip, function (m, code, assign, value) { + if (code.indexOf('def.') === 0) { + code = code.substring(4); + } + if (!(code in def)) { + if (assign === ':') { + if (c.defineParams) value.replace(c.defineParams, function (m, param, v) { + def[code] = {arg: param, text: v}; + }); + if (!(code in def)) def[code] = value; + } else { + new Function("def", "def['" + code + "']=" + value)(def); + } + } + return ''; + }) + .replace(c.use || skip, function (m, code) { + if (c.useParams) code = code.replace(c.useParams, function (m, s, d, param) { + if (def[d] && def[d].arg && param) { + var rw = (d + ":" + param).replace(/'|\\/g, '_'); + def.__exp = def.__exp || {}; + def.__exp[rw] = def[d].text.replace(new RegExp("(^|[^\\w$])" + def[d].arg + "([^\\w$])", "g"), "$1" + param + "$2"); + return s + "def.__exp['" + rw + "']"; + } + }); + var v = new Function("def", "return " + code)(def); + return v ? resolveDefs(c, v, def) : v; + }); + } + + function unescape(code) { + return code.replace(/\\('|\\)/g, "$1").replace(/[\r\t\n]/g, ' '); + } + + doT.template = function (tmpl, c, def) { + c = c || doT.templateSettings; + var cse = c.append ? startend.append : startend.split, needhtmlencode, sid = 0, + str = (c.use || c.define) ? resolveDefs(c, tmpl, def || {}) : tmpl; + + str = ("var out='" + (c.strip ? str.replace(/(^|\r|\n)\t* +| +\t*(\r|\n|$)/g, ' ') + .replace(/\r|\n|\t|\/\*[\s\S]*?\*\//g, '') : str) + .replace(/'|\\/g, '\\$&') + .replace(c.interpolate || skip, function (m, code) { + return cse.start + unescape(code) + cse.end; + }) + .replace(c.encode || skip, function (m, code) { + needhtmlencode = true; + return cse.start + unescape(code) + cse.endencode; + }) + .replace(c.conditional || skip, function (m, code) { + return (code ? "';if(" + unescape(code) + "){out+='" : "';}out+='"); + }) + .replace(c.conditionalElse || skip, function (m, code) { + return (code ? "';}else if(" + unescape(code) + "){out+='" : "';}else{out+='"); + }) + .replace(c.iterate || skip, function (m, iterate, vname, iname) { + if (!iterate) return "';} } out+='"; + sid += 1; + vname = vname || "value"; + iname = iname || "index"; + iterate = unescape(iterate); + var arrayName = "arr" + sid; + return "';var " + arrayName + "=" + iterate + ";if(" + arrayName + " && " + arrayName + ".length > 0){var " + vname + "," + iname + "=-1,l" + sid + "=" + arrayName + ".length-1;while(" + iname + " 0){var " + vname + ";for( var " + iname + " in " + objectName + "){ if (!" + objectName + ".hasOwnProperty(" + iname + ")) continue; " + vname + "=" + objectName + "[" + iname + "];out+='"; + }) + .replace(c.empty || skip, function (m) { + return "';}}else{if(true){out+='"; // The "if(true)" condition is required to account for the for tag closing with two brackets + }) + .replace(c.evaluate || skip, function (m, code) { + return "';" + unescape(code) + "out+='"; + }) + + "';return out;") + .replace(/\n/g, '\\n').replace(/\t/g, '\\t').replace(/\r/g, '\\r') + .replace(/(\s|;|\}|^|\{)out\+='';/g, '$1').replace(/\+''/g, '') + .replace(/(\s|;|\}|^|\{)out\+=''\+/g, '$1out+='); + + if (needhtmlencode && c.selfcontained) { + str = "String.prototype.encodeHTML=(" + encodeHTMLSource.toString() + "());" + str; + } + try { + return new Function(c.varname, str); + } catch (e) { + if (typeof console !== 'undefined') console.log("Could not create a template function: " + str); + throw e; + } + }; + + doT.compile = function (tmpl, def) { + return doT.template(tmpl, null, def); + }; +}()); \ No newline at end of file diff --git a/nano/js/libraries/2-jsrender.js b/nano/js/libraries/2-jsrender.js deleted file mode 100644 index a2dd81e364c..00000000000 --- a/nano/js/libraries/2-jsrender.js +++ /dev/null @@ -1,1520 +0,0 @@ -/*! JsRender v1.0.0-beta: http://github.com/BorisMoore/jsrender and http://jsviews.com/jsviews -informal pre V1.0 commit counter: 47 */ -/* - * Optimized version of jQuery Templates, for rendering to string. - * Does not require jQuery, or HTML DOM - * Integrates with JsViews (http://jsviews.com/jsviews) - * - * Copyright 2013, Boris Moore - * Released under the MIT License. - */ - -(function(global, jQuery, undefined) { - // global is the this object, which is window when running in the usual browser environment. - "use strict"; - - if (jQuery && jQuery.views || global.jsviews) { return; } // JsRender is already loaded - - //========================== Top-level vars ========================== - - var versionNumber = "v1.0.0-beta", - - $, jsvStoreName, rTag, rTmplString,// nodeJsModule, - -//TODO tmplFnsCache = {}, - delimOpenChar0 = "{", delimOpenChar1 = "{", delimCloseChar0 = "}", delimCloseChar1 = "}", linkChar = "^", - - rPath = /^(!*?)(?:null|true|false|\d[\d.]*|([\w$]+|\.|~([\w$]+)|#(view|([\w$]+))?)([\w$.^]*?)(?:[.[^]([\w$]+)\]?)?)$/g, - // none object helper view viewProperty pathTokens leafToken - - rParams = /(\()(?=\s*\()|(?:([([])\s*)?(?:(\^?)(!*?[#~]?[\w$.^]+)?\s*((\+\+|--)|\+|-|&&|\|\||===|!==|==|!=|<=|>=|[<>%*:?\/]|(=))\s*|(!*?[#~]?[\w$.^]+)([([])?)|(,\s*)|(\(?)\\?(?:(')|("))|(?:\s*(([)\]])(?=\s*\.|\s*\^|\s*$)|[)\]])([([]?))|(\s+)/g, - // lftPrn0 lftPrn bound path operator err eq path2 prn comma lftPrn2 apos quot rtPrn rtPrnDot prn2 space - // (left paren? followed by (path? followed by operator) or (path followed by left paren?)) or comma or apos or quot or right paren or space - - rNewLine = /[ \t]*(\r\n|\n|\r)/g, - rUnescapeQuotes = /\\(['"])/g, - rEscapeQuotes = /['"\\]/g, // Escape quotes and \ character - rBuildHash = /\x08(~)?([^\x08]+)\x08/g, - rTestElseIf = /^if\s/, - rFirstElem = /<(\w+)[>\s]/, - rAttrEncode = /[\x00`><"'&]/g, // Includes > encoding since rConvertMarkers in JsViews does not skip > characters in attribute strings - rHtmlEncode = rAttrEncode, - autoTmplName = 0, - viewId = 0, - charEntities = { - "&": "&", - "<": "<", - ">": ">", - "\x00": "�", - "'": "'", - '"': """, - "`": "`" - }, - tmplAttr = "data-jsv-tmpl", - $render = {}, - jsvStores = { - template: { - compile: compileTmpl - }, - tag: { - compile: compileTag - }, - helper: {}, - converter: {} - }, - - // jsviews object ($.views if jQuery is loaded) - $views = { - jsviews: versionNumber, - render: $render, - settings: { - delimiters: $viewsDelimiters, - debugMode: true, - tryCatch: true - }, - sub: { - // subscription, e.g. JsViews integration - View: View, - Error: JsViewsError, - tmplFn: tmplFn, - parse: parseParams, - extend: $extend, - error: error, - syntaxError: syntaxError - }, - _cnvt: convertVal, - _tag: renderTag, - - _err: function(e) { - // Place a breakpoint here to intercept template rendering errors - return $viewsSettings.debugMode ? ("Error: " + (e.message || e)) + ". " : ''; - } - }; - - function JsViewsError(message, object) { - // Error exception type for JsViews/JsRender - // Override of $.views.sub.Error is possible - if (object && object.onError) { - if (object.onError(message) === false) { - return; - } - } - this.name = "JsRender Error"; - this.message = message || "JsRender error"; - } - - function $extend(target, source) { - var name; - target = target || {}; - for (name in source) { - target[name] = source[name]; - } - return target; - } - - (JsViewsError.prototype = new Error()).constructor = JsViewsError; - - //========================== Top-level functions ========================== - - //=================== - // jsviews.delimiters - //=================== - function $viewsDelimiters(openChars, closeChars, link) { - // Set the tag opening and closing delimiters and 'link' character. Default is "{{", "}}" and "^" - // openChars, closeChars: opening and closing strings, each with two characters - - if (!$viewsSub.rTag || openChars) { - delimOpenChar0 = openChars ? openChars.charAt(0) : delimOpenChar0; // Escape the characters - since they could be regex special characters - delimOpenChar1 = openChars ? openChars.charAt(1) : delimOpenChar1; - delimCloseChar0 = closeChars ? closeChars.charAt(0) : delimCloseChar0; - delimCloseChar1 = closeChars ? closeChars.charAt(1) : delimCloseChar1; - linkChar = link || linkChar; - openChars = "\\" + delimOpenChar0 + "(\\" + linkChar + ")?\\" + delimOpenChar1; // Default is "{^{" - closeChars = "\\" + delimCloseChar0 + "\\" + delimCloseChar1; // Default is "}}" - // Build regex with new delimiters - // tag (followed by / space or }) or cvtr+colon or html or code - rTag = "(?:(?:(\\w+(?=[\\/\\s\\" + delimCloseChar0 + "]))|(?:(\\w+)?(:)|(>)|!--((?:[^-]|-(?!-))*)--|(\\*)))" - + "\\s*((?:[^\\" + delimCloseChar0 + "]|\\" + delimCloseChar0 + "(?!\\" + delimCloseChar1 + "))*?)"; - - // make rTag available to JsViews (or other components) for parsing binding expressions - $viewsSub.rTag = rTag + ")"; - - rTag = new RegExp(openChars + rTag + "(\\/)?|(?:\\/(\\w+)))" + closeChars, "g"); - - // Default: bind tag converter colon html comment code params slash closeBlock - // /{(\^)?{(?:(?:(\w+(?=[\/\s}]))|(?:(\w+)?(:)|(>)|!--((?:[^-]|-(?!-))*)--|(\*)))\s*((?:[^}]|}(?!}))*?)(\/)?|(?:\/(\w+)))}}/g - - rTmplString = new RegExp("<.*>|([^\\\\]|^)[{}]|" + openChars + ".*" + closeChars); - // rTmplString looks for html tags or { or } char not preceded by \\, or JsRender tags {{xxx}}. Each of these strings are considered - // NOT to be jQuery selectors - } - return [delimOpenChar0, delimOpenChar1, delimCloseChar0, delimCloseChar1, linkChar]; - } - - //========= - // View.get - //========= - - function getView(inner, type) { //view.get(inner, type) - if (!type) { - // view.get(type) - type = inner; - inner = undefined; - } - - var views, i, l, found, - view = this, - root = !type || type === "root"; - // If type is undefined, returns root view (view under top view). - - if (inner) { - // Go through views - this one, and all nested ones, depth-first - and return first one with given type. - found = view.type === type ? view : undefined; - if (!found) { - views = view.views; - if (view._.useKey) { - for (i in views) { - if (found = views[i].get(inner, type)) { - break; - } - } - } else for (i = 0, l = views.length; !found && i < l; i++) { - found = views[i].get(inner, type); - } - } - } else if (root) { - // Find root view. (view whose parent is top view) - while (view.parent.parent) { - found = view = view.parent; - } - } else while (view && !found) { - // Go through views - this one, and all parent ones - and return first one with given type. - found = view.type === type ? view : undefined; - view = view.parent; - } - return found; - } - - function getNestedIndex() { - var view = this.get("item"); - return view ? view.index : undefined; - } - - getNestedIndex.depends = function() { - return [this.get("item"), "index"]; - }; - - function getIndex() { - return this.index; - } - - getIndex.depends = function() { - return ["index"]; - }; - - //========== - // View.hlp - //========== - - function getHelper(helper) { - // Helper method called as view.hlp(key) from compiled template, for helper functions or template parameters ~foo - var wrapped, - view = this, - ctx = view.linkCtx, - res = (view.ctx || {})[helper]; - - if (res === undefined && ctx && ctx.ctx) { - res = ctx.ctx[helper]; - } - if (res === undefined) { - res = $helpers[helper]; - } - - if (res) { - if (typeof res === "function") { - wrapped = function() { - // If it is of type function, we will wrap it, so if called with no this pointer it will be called with the view as 'this' context. - // If the helper ~foo() was in a data-link expression, the view will have a 'temporary' linkCtx property too. - // Note that helper functions on deeper paths will have specific this pointers, from the preceding path. - // For example, ~util.foo() will have the ~util object as 'this' pointer - return res.apply(this || view, arguments); - }; - $extend(wrapped, res); - } - } - return wrapped || res; - } - - //============== - // jsviews._cnvt - //============== - - function convertVal(converter, view, tagCtx) { - // self is template object or linkCtx object - var tmplConverter, tag, value, - boundTagCtx = +tagCtx === tagCtx && tagCtx, // if tagCtx is an integer, then it is the key for the boundTagCtx (compiled function to return the tagCtx) - linkCtx = view.linkCtx; // For data-link="{cvt:...}"... - - if (boundTagCtx) { - // This is a bound tag: {^{xx:yyy}}. Call compiled function which returns the tagCtxs for current data - tagCtx = (boundTagCtx = view.tmpl.bnds[boundTagCtx-1])(view.data, view, $views); - } - - value = tagCtx.args[0]; - - if (converter || boundTagCtx) { - tag = linkCtx && linkCtx.tag || { - _: { - inline: !linkCtx, - bnd: boundTagCtx - }, - tagName: converter + ":", - flow: true, - _is: "tag" - }; - - if (linkCtx) { - linkCtx.tag = tag; - tag.linkCtx = tag.linkCtx || linkCtx; - tagCtx.ctx = extendCtx(tagCtx.ctx, linkCtx.view.ctx); - } - tag.tagCtx = tagCtx; - tagCtx.view = view; - - tag.ctx = tagCtx.ctx || {}; - delete tagCtx.ctx; - // Provide this tag on view, for addBindingMarkers on bound tags to add the tag to view._.bnds, associated with the tag id, - view._.tag = tag; - - converter = converter !== "true" && converter; // If there is a convertBack but no convert, converter will be "true" - - if (converter && ((tmplConverter = view.getRsc("converters", converter)) || error("Unknown converter: {{"+ converter + ":"))) { - // A call to {{cnvt: ... }} or {^{cnvt: ... }} or data-link="{cnvt: ... }" - tag.depends = tmplConverter.depends; - value = tmplConverter.apply(tag, tagCtx.args); - } - // Call onRender (used by JsViews if present, to add binding annotations around rendered content) - value = boundTagCtx && view._.onRender - ? view._.onRender(value, view, boundTagCtx) - : value; - view._.tag = undefined; - } - return value; - } - - //============= - // jsviews._tag - //============= - - function getResource(resourceType, itemName) { - var res, store, - view = this; - while ((res === undefined) && view) { - store = view.tmpl[resourceType]; - res = store && store[itemName]; - view = view.parent; - } - return res || $views[resourceType][itemName]; - } - - function renderTag(tagName, parentView, tmpl, tagCtxs, isRefresh) { - // Called from within compiled template function, to render a template tag - // Returns the rendered tag - - var render, tag, tags, attr, parentTag, i, l, itemRet, tagCtx, tagCtxCtx, content, boundTagFn, tagDef, callInit, - ret = "", - boundTagKey = +tagCtxs === tagCtxs && tagCtxs, // if tagCtxs is an integer, then it is the boundTagKey - linkCtx = parentView.linkCtx || 0, - ctx = parentView.ctx, - parentTmpl = tmpl || parentView.tmpl, - parentView_ = parentView._; - - if (tagName._is === "tag") { - tag = tagName; - tagName = tag.tagName; - } - - // Provide tagCtx, linkCtx and ctx access from tag - if (boundTagKey) { - // if tagCtxs is an integer, we are data binding - // Call compiled function which returns the tagCtxs for current data - tagCtxs = (boundTagFn = parentTmpl.bnds[boundTagKey-1])(parentView.data, parentView, $views); - } - - l = tagCtxs.length; - tag = tag || linkCtx.tag; - for (i = 0; i < l; i++) { - tagCtx = tagCtxs[i]; - - // Set the tmpl property to the content of the block tag, unless set as an override property on the tag - content = tagCtx.tmpl; - content = tagCtx.content = content && parentTmpl.tmpls[content - 1]; - tmpl = tagCtx.props.tmpl; - if (!i && (!tmpl || !tag)) { - tagDef = parentView.getRsc("tags", tagName) || error("Unknown tag: {{"+ tagName + "}}"); - } - tmpl = tmpl || (tag ? tag : tagDef).template || content; - tmpl = "" + tmpl === tmpl // if a string - ? parentView.getRsc("templates", tmpl) || $templates(tmpl) - : tmpl; - - $extend(tagCtx, { - tmpl: tmpl, - render: renderContent, - index: i, - view: parentView, - ctx: extendCtx(tagCtx.ctx, ctx) // Extend parentView.ctx - }); // Extend parentView.ctx - - if (!tag) { - // This will only be hit for initial tagCtx (not for {{else}}) - if the tag instance does not exist yet - // Instantiate tag if it does not yet exist - if (tagDef._ctr) { - // If the tag has not already been instantiated, we will create a new instance. - // ~tag will access the tag, even within the rendering of the template content of this tag. - // From child/descendant tags, can access using ~tag.parent, or ~parentTags.tagName -// TODO provide error handling owned by the tag - using tag.onError -// try { - tag = new tagDef._ctr(); - callInit = !!tag.init; -// } -// catch(e) { -// tagDef.onError(e); -// } - // Set attr on linkCtx to ensure outputting to the correct target attribute. - tag.attr = tag.attr || tagDef.attr || undefined; - // Setting either linkCtx.attr or this.attr in the init() allows per-instance choice of target attrib. - } else { - // This is a simple tag declared as a function, or with init set to false. We won't instantiate a specific tag constructor - just a standard instance object. - tag = { - // tag instance object if no init constructor - render: tagDef.render - }; - } - tag._ = { - inline: !linkCtx - }; - if (linkCtx) { - // Set attr on linkCtx to ensure outputting to the correct target attribute. - linkCtx.attr = tag.attr = linkCtx.attr || tag.attr; - linkCtx.tag = tag; - tag.linkCtx = linkCtx; - } - if (tag._.bnd = boundTagFn || linkCtx.fn) { - // Bound if {^{tag...}} or data-link="{tag...}" - tag._.arrVws = {}; - } else if (tag.dataBoundOnly) { - error("{^{" + tagName + "}} tag must be data-bound"); - } - tag.tagName = tagName; - tag.parent = parentTag = ctx && ctx.tag; - tag._is = "tag"; - tag._def = tagDef; - //TODO better perf for childTags() - keep child tag.tags array, (and remove child, when disposed) - // tag.tags = []; - // Provide this tag on view, for addBindingMarkers on bound tags to add the tag to view._.bnds, associated with the tag id, - } - parentView_.tag = tag; - tagCtx.tag = tag; - tag.tagCtxs = tagCtxs; - if (!tag.flow) { - tagCtxCtx = tagCtx.ctx = tagCtx.ctx || {}; - - // tags hash: tag.ctx.tags, merged with parentView.ctx.tags, - tags = tag.parents = tagCtxCtx.parentTags = ctx && extendCtx(tagCtxCtx.parentTags, ctx.parentTags) || {}; - if (parentTag) { - tags[parentTag.tagName] = parentTag; - //TODO better perf for childTags: parentTag.tags.push(tag); - } - tagCtxCtx.tag = tag; - } - } - tag.rendering = {}; // Provide object for state during render calls to tag and elses. (Used by {{if}} and {{for}}...) - for (i = 0; i < l; i++) { - tagCtx = tag.tagCtx = tagCtxs[i]; - tag.ctx = tagCtx.ctx; - - if (!i && callInit) { - tag.init(tagCtx, linkCtx, tag.ctx); - callInit = undefined; - } - - itemRet = undefined; - if (render = tag.render) { - itemRet = render.apply(tag, tagCtx.args); - } - itemRet = itemRet !== undefined - ? itemRet // Return result of render function unless it is undefined, in which case return rendered template - : tagCtx.tmpl && tagCtx.render() || (isRefresh ? undefined : ""); - // No return value from render, and no template/content tagCtx.render(), so return undefined - ret = ret ? ret + (itemRet || "") : itemRet; // If no rendered content, this will be undefined - } - - delete tag.rendering; - - tag.tagCtx = tag.tagCtxs[0]; - tag.ctx= tag.tagCtx.ctx; - - if (tag._.inline && (attr = tag.attr) && attr !== "html") { - // inline tag with attr set to "text" will insert HTML-encoded content - as if it was element-based innerText - ret = attr === "text" - ? $converters.html(ret) - : ""; - } - return boundTagKey && parentView._.onRender - // Call onRender (used by JsViews if present, to add binding annotations around rendered content) - ? parentView._.onRender(ret, parentView, boundTagKey) - : ret; - } - - //================= - // View constructor - //================= - - function View(context, type, parentView, data, template, key, contentTmpl, onRender) { - // Constructor for view object in view hierarchy. (Augmented by JsViews if JsViews is loaded) - var views, parentView_, tag, - isArray = type === "array", - self_ = { - key: 0, - useKey: isArray ? 0 : 1, - id: "" + viewId++, - onRender: onRender, - bnds: {} - }, - self = { - data: data, - tmpl: template, - content: contentTmpl, - views: isArray ? [] : {}, - parent: parentView, - type: type, - // If the data is an array, this is an 'array view' with a views array for each child 'item view' - // If the data is not an array, this is an 'item view' with a views 'map' object for any child nested views - // ._.useKey is non zero if is not an 'array view' (owning a data array). Uuse this as next key for adding to child views map - get: getView, - getIndex: getIndex, - getRsc: getResource, - hlp: getHelper, - _: self_, - _is: "view" - }; - if (parentView) { - views = parentView.views; - parentView_ = parentView._; - if (parentView_.useKey) { - // Parent is an 'item view'. Add this view to its views object - // self._key = is the key in the parent view map - views[self_.key = "_" + parentView_.useKey++] = self; - self.index = $viewsSettings.debugMode ? noIndex : ""; - self.getIndex = getNestedIndex; - tag = parentView_.tag; - self_.bnd = isArray && (!tag || !!tag._.bnd && tag); // For array views that are data bound for collection change events, set the - // view._.bnd property to true for top-level link() or data-link="{for}", or to the tag instance for a data-bound tag, e.g. {^{for ...}} - } else { - // Parent is an 'array view'. Add this view to its views array - views.splice( - // self._.key = self.index - the index in the parent view array - self_.key = self.index = key, - 0, self); - } - // If no context was passed in, use parent context - // If context was passed in, it should have been merged already with parent context - self.ctx = context || parentView.ctx; - } else { - self.ctx = context; - } - return self; - } - - //============= - // Registration - //============= - - function compileChildResources(parentTmpl) { - var storeName, resources, resourceName, settings, compile; - for (storeName in jsvStores) { - settings = jsvStores[storeName]; - if ((compile = settings.compile) && (resources = parentTmpl[storeName + "s"])) { - for (resourceName in resources) { - // compile child resource declarations (templates, tags, converters or helpers) - resources[resourceName] = compile(resourceName, resources[resourceName], parentTmpl, storeName, settings); - } - } - } - } - - function compileTag(name, tagDef, parentTmpl) { - var init, tmpl; - if (typeof tagDef === "function") { - // Simple tag declared as function. No presenter instantation. - tagDef = { - depends: tagDef.depends, - render: tagDef - }; - } else { - // Tag declared as object, used as the prototype for tag instantiation (control/presenter) - if (tmpl = tagDef.template) { - tagDef.template = "" + tmpl === tmpl ? ($templates[tmpl] || $templates(tmpl)) : tmpl; - } - if (tagDef.init !== false) { - // Set int: false on tagDef if you want to provide just a render method, or render and template, but no constuctor or prototype. - // so equivalent to setting tag to render function, except you can also provide a template. - init = tagDef._ctr = function(tagCtx) {}; - (init.prototype = tagDef).constructor = init; - } - } - if (parentTmpl) { - tagDef._parentTmpl = parentTmpl; - } -//TODO tagDef.onError = function(e) { -// var error; -// if (error = this.prototype.onError) { -// error.call(this, e); -// } else { -// throw e; -// } -// } - return tagDef; - } - - function compileTmpl(name, tmpl, parentTmpl, storeName, storeSettings, options) { - // tmpl is either a template object, a selector for a template script block, the name of a compiled template, or a template object - - //==== nested functions ==== - function tmplOrMarkupFromStr(value) { - // If value is of type string - treat as selector, or name of compiled template - // Return the template object, if already compiled, or the markup string - - if (("" + value === value) || value.nodeType > 0) { - try { - elem = value.nodeType > 0 - ? value - : !rTmplString.test(value) - // If value is a string and does not contain HTML or tag content, then test as selector - && jQuery && jQuery(global.document).find(value)[0]; - // If selector is valid and returns at least one element, get first element - // If invalid, jQuery will throw. We will stay with the original string. - } catch (e) {} - - if (elem) { - // Generally this is a script element. - // However we allow it to be any element, so you can for example take the content of a div, - // use it as a template, and replace it by the same content rendered against data. - // e.g. for linking the content of a div to a container, and using the initial content as template: - // $.link("#content", model, {tmpl: "#content"}); - - value = elem.getAttribute(tmplAttr); - name = name || value; - value = $templates[value]; - if (!value) { - // Not already compiled and cached, so compile and cache the name - // Create a name for compiled template if none provided - name = name || "_" + autoTmplName++; - elem.setAttribute(tmplAttr, name); - // Use tmpl as options - value = $templates[name] = compileTmpl(name, elem.innerHTML, parentTmpl, storeName, storeSettings, options); - } - } - return value; - } - // If value is not a string, return undefined - } - - var tmplOrMarkup, elem; - - //==== Compile the template ==== - tmpl = tmpl || ""; - tmplOrMarkup = tmplOrMarkupFromStr(tmpl); - - // If options, then this was already compiled from a (script) element template declaration. - // If not, then if tmpl is a template object, use it for options - options = options || (tmpl.markup ? tmpl : {}); - options.tmplName = name; - if (parentTmpl) { - options._parentTmpl = parentTmpl; - } - // If tmpl is not a markup string or a selector string, then it must be a template object - // In that case, get it from the markup property of the object - if (!tmplOrMarkup && tmpl.markup && (tmplOrMarkup = tmplOrMarkupFromStr(tmpl.markup))) { - if (tmplOrMarkup.fn && (tmplOrMarkup.debug !== tmpl.debug || tmplOrMarkup.allowCode !== tmpl.allowCode)) { - // if the string references a compiled template object, but the debug or allowCode props are different, need to recompile - tmplOrMarkup = tmplOrMarkup.markup; - } - } - if (tmplOrMarkup !== undefined) { - if (name && !parentTmpl) { - $render[name] = function() { - return tmpl.render.apply(tmpl, arguments); - }; - } - if (tmplOrMarkup.fn || tmpl.fn) { - // tmpl is already compiled, so use it, or if different name is provided, clone it - if (tmplOrMarkup.fn) { - if (name && name !== tmplOrMarkup.tmplName) { - tmpl = extendCtx(options, tmplOrMarkup); - } else { - tmpl = tmplOrMarkup; - } - } - } else { - // tmplOrMarkup is a markup string, not a compiled template - // Create template object - tmpl = TmplObject(tmplOrMarkup, options); - // Compile to AST and then to compiled function - tmplFn(tmplOrMarkup.replace(rEscapeQuotes, "\\$&"), tmpl); - } - compileChildResources(options); - return tmpl; - } - } - //==== /end of function compile ==== - - function TmplObject(markup, options) { - // Template object constructor - var htmlTag, - wrapMap = $viewsSettings.wrapMap || {}, - tmpl = $extend( - { - markup: markup, - tmpls: [], - links: {}, // Compiled functions for link expressions - tags: {}, // Compiled functions for bound tag expressions - bnds: [], - _is: "template", - render: renderContent - }, - options - ); - - if (!options.htmlTag) { - // Set tmpl.tag to the top-level HTML tag used in the template, if any... - htmlTag = rFirstElem.exec(markup); - tmpl.htmlTag = htmlTag ? htmlTag[1].toLowerCase() : ""; - } - htmlTag = wrapMap[tmpl.htmlTag]; - if (htmlTag && htmlTag !== wrapMap.div) { - // When using JsViews, we trim templates which are inserted into HTML contexts where text nodes are not rendered (i.e. not 'Phrasing Content'). - // Currently not trimmed for
  • tag. (Not worth adding perf cost) - tmpl.markup = $.trim(tmpl.markup); - } - - return tmpl; - } - - function registerStore(storeName, storeSettings) { - - function theStore(name, item, parentTmpl) { - // The store is also the function used to add items to the store. e.g. $.templates, or $.views.tags - - // For store of name 'thing', Call as: - // $.views.things(items[, parentTmpl]), - // or $.views.things(name, item[, parentTmpl]) - - var onStore, compile, itemName, thisStore; - - if (name && "" + name !== name && !name.nodeType && !name.markup) { - // Call to $.views.things(items[, parentTmpl]), - - // Adding items to the store - // If name is a map, then item is parentTmpl. Iterate over map and call store for key. - for (itemName in name) { - theStore(itemName, name[itemName], item); - } - return $views; - } - // Adding a single unnamed item to the store - if (item === undefined) { - item = name; - name = undefined; - } - if (name && "" + name !== name) { // name must be a string - parentTmpl = item; - item = name; - name = undefined; - } - thisStore = parentTmpl ? parentTmpl[storeNames] = parentTmpl[storeNames] || {} : theStore; - compile = storeSettings.compile; - if (onStore = $viewsSub.onBeforeStoreItem) { - // e.g. provide an external compiler or preprocess the item. - compile = onStore(thisStore, name, item, compile) || compile; - } - if (!name) { - item = compile(undefined, item); - } else if (item === null) { - // If item is null, delete this entry - delete thisStore[name]; - } else { - thisStore[name] = compile ? (item = compile(name, item, parentTmpl, storeName, storeSettings)) : item; - } - if (compile && item) { - item._is = storeName; // Only do this for compiled objects (tags, templates...) - } - if (onStore = $viewsSub.onStoreItem) { - // e.g. JsViews integration - onStore(thisStore, name, item, compile); - } - return item; - } - - var storeNames = storeName + "s"; - - $views[storeNames] = theStore; - jsvStores[storeName] = storeSettings; - } - - //============== - // renderContent - //============== - - function renderContent(data, context, parentView, key, isLayout, onRender) { - // Render template against data as a tree of subviews (nested rendered template instances), or as a string (top-level template). - // If the data is the parent view, treat as layout template, re-render with the same data context. - var i, l, dataItem, newView, childView, itemResult, swapContent, tagCtx, contentTmpl, tag_, outerOnRender, tmplName, tmpl, - self = this, - allowDataLink = !self.attr || self.attr === "html", - result = ""; - - if (key === true) { - swapContent = true; - key = 0; - } - if (self.tag) { - // This is a call from renderTag or tagCtx.render() - tagCtx = self; - self = self.tag; - tag_ = self._; - tmplName = self.tagName; - tmpl = tagCtx.tmpl; - context = extendCtx(context, self.ctx); - contentTmpl = tagCtx.content; // The wrapped content - to be added to views, below - if (tagCtx.props.link === false) { - // link=false setting on block tag - // We will override inherited value of link by the explicit setting link=false taken from props - // The child views of an unlinked view are also unlinked. So setting child back to true will not have any effect. - context = context || {}; - context.link = false; - } - parentView = parentView || tagCtx.view; - data = data === undefined ? parentView : data; - } else { - tmpl = self.jquery && (self[0] || error('Unknown template: "' + self.selector + '"')) // This is a call from $(selector).render - || self; - } - if (tmpl) { - if (!parentView && data && data._is === "view") { - parentView = data; // When passing in a view to render or link (and not passing in a parent view) use the passed in view as parentView - } - if (parentView) { - contentTmpl = contentTmpl || parentView.content; // The wrapped content - to be added as #content property on views, below - onRender = onRender || parentView._.onRender; - if (data === parentView) { - // Inherit the data from the parent view. - // This may be the contents of an {{if}} block - // Set isLayout = true so we don't iterate the if block if the data is an array. - data = parentView.data; - isLayout = true; - } - context = extendCtx(context, parentView.ctx); - } - if (!parentView || parentView.data === undefined) { - (context = context || {}).root = data; // Provide ~root as shortcut to top-level data. - } - - // Set additional context on views created here, (as modified context inherited from the parent, and to be inherited by child views) - // Note: If no jQuery, $extend does not support chained copies - so limit extend() to two parameters - - if (!tmpl.fn) { - tmpl = $templates[tmpl] || $templates(tmpl); - } - - if (tmpl) { - onRender = (context && context.link) !== false && allowDataLink && onRender; - // If link===false, do not call onRender, so no data-linking marker nodes - outerOnRender = onRender; - if (onRender === true) { - // Used by view.refresh(). Don't create a new wrapper view. - outerOnRender = undefined; - onRender = parentView._.onRender; - } - context = tmpl.helpers - ? extendCtx(tmpl.helpers, context) - : context; - if ($.isArray(data) && !isLayout) { - // Create a view for the array, whose child views correspond to each data item. (Note: if key and parentView are passed in - // along with parent view, treat as insert -e.g. from view.addViews - so parentView is already the view item for array) - newView = swapContent - ? parentView : - (key !== undefined && parentView) || View(context, "array", parentView, data, tmpl, key, contentTmpl, onRender); - for (i = 0, l = data.length; i < l; i++) { - // Create a view for each data item. - dataItem = data[i]; - childView = View(context, "item", newView, dataItem, tmpl, (key || 0) + i, contentTmpl, onRender); - itemResult = tmpl.fn(dataItem, childView, $views); - result += newView._.onRender ? newView._.onRender(itemResult, childView) : itemResult; - } - } else { - // Create a view for singleton data object. The type of the view will be the tag name, e.g. "if" or "myTag" except for - // "item", "array" and "data" views. A "data" view is from programatic render(object) against a 'singleton'. - newView = swapContent ? parentView : View(context, tmplName||"data", parentView, data, tmpl, key, contentTmpl, onRender); - if (tag_ && !self.flow) { - newView.tag = self; - } - result += tmpl.fn(data, newView, $views); - } - return outerOnRender ? outerOnRender(result, newView) : result; - } - } - return ""; - } - - //=========================== - // Build and compile template - //=========================== - - // Generate a reusable function that will serve to render a template against data - // (Compile AST then build template function) - - function error(message) { - throw new $viewsSub.Error(message); - } - - function syntaxError(message) { - error("Syntax error\n" + message); - } - - function tmplFn(markup, tmpl, isLinkExpr, convertBack) { - // Compile markup to AST (abtract syntax tree) then build the template function code from the AST nodes - // Used for compiling templates, and also by JsViews to build functions for data link expressions - - //==== nested functions ==== - function pushprecedingContent(shift) { - shift -= loc; - if (shift) { - content.push(markup.substr(loc, shift).replace(rNewLine, "\\n")); - } - } - - function blockTagCheck(tagName) { - tagName && syntaxError('Unmatched or missing tag: "{{/' + tagName + '}}" in template:\n' + markup); - } - - function parseTag(all, bind, tagName, converter, colon, html, comment, codeTag, params, slash, closeBlock, index) { - - // bind tag converter colon html comment code params slash closeBlock - // /{(\^)?{(?:(?:(\w+(?=[\/\s}]))|(?:(\w+)?(:)|(>)|!--((?:[^-]|-(?!-))*)--|(\*)))\s*((?:[^}]|}(?!}))*?)(\/)?|(?:\/(\w+)))}}/g - // Build abstract syntax tree (AST): [tagName, converter, params, content, hash, bindings, contentMarkup] - if (html) { - colon = ":"; - converter = "html"; - } - slash = slash || isLinkExpr; - var noError, current0, - pathBindings = bind && [], - code = "", - hash = "", - passedCtx = "", - // Block tag if not self-closing and not {{:}} or {{>}} (special case) and not a data-link expression - block = !slash && !colon && !comment; - - //==== nested helper function ==== - tagName = tagName || colon; - pushprecedingContent(index); - loc = index + all.length; // location marker - parsed up to here - if (codeTag) { - if (allowCode) { - content.push(["*", "\n" + params.replace(rUnescapeQuotes, "$1") + "\n"]); - } - } else if (tagName) { - if (tagName === "else") { - if (rTestElseIf.test(params)) { - syntaxError('for "{{else if expr}}" use "{{else expr}}"'); - } - pathBindings = current[6]; - current[7] = markup.substring(current[7], index); // contentMarkup for block tag - current = stack.pop(); - content = current[3]; - block = true; - } - if (params) { - // remove newlines from the params string, to avoid compiled code errors for unterminated strings - params = params.replace(rNewLine, " "); - code = parseParams(params, pathBindings, tmpl) - .replace(rBuildHash, function(all, isCtx, keyValue) { - if (isCtx) { - passedCtx += keyValue + ","; - } else { - hash += keyValue + ","; - } - return ""; - }); - } - hash = hash.slice(0, -1); - code = code.slice(0, -1); - noError = hash && (hash.indexOf("noerror:true") + 1) && hash || ""; - - newNode = [ - tagName, - converter || !!convertBack || "", - code, - block && [], - 'params:"' + params + '",props:{' + hash + "}" - + (passedCtx ? ",ctx:{" + passedCtx.slice(0, -1) + "}" : ""), - noError, - pathBindings || 0 - ]; - content.push(newNode); - if (block) { - stack.push(current); - current = newNode; - current[7] = loc; // Store current location of open tag, to be able to add contentMarkup when we reach closing tag - } - } else if (closeBlock) { - current0 = current[0]; - blockTagCheck(closeBlock !== current0 && current0 !== "else" && closeBlock); - current[7] = markup.substring(current[7], index); // contentMarkup for block tag - current = stack.pop(); - } - blockTagCheck(!current && closeBlock); - content = current[3]; - } - //==== /end of nested functions ==== - - var newNode, - allowCode = tmpl && tmpl.allowCode, - astTop = [], - loc = 0, - stack = [], - content = astTop, - current = [, , , astTop]; - -//TODO result = tmplFnsCache[markup]; // Only cache if template is not named and markup length < ..., -//and there are no bindings or subtemplates?? Consider standard optimization for data-link="a.b.c" -// if (result) { -// tmpl.fn = result; -// } else { - -// result = markup; - - blockTagCheck(stack[0] && stack[0][3].pop()[0]); - // Build the AST (abstract syntax tree) under astTop - markup.replace(rTag, parseTag); - - pushprecedingContent(markup.length); - - if (loc = astTop[astTop.length - 1]) { - blockTagCheck("" + loc !== loc && (+loc[7] === loc[7]) && loc[0]); - } -// result = tmplFnsCache[markup] = buildCode(astTop, tmpl); -// } - return buildCode(astTop, isLinkExpr ? markup : tmpl, isLinkExpr); - } - - function buildCode(ast, tmpl, isLinkExpr) { - // Build the template function code from the AST nodes, and set as property on the passed-in template object - // Used for compiling templates, and also by JsViews to build functions for data link expressions - var i, node, tagName, converter, params, hash, hasTag, hasEncoder, getsVal, hasCnvt, useCnvt, tmplBindings, pathBindings, - nestedTmpls, tmplName, nestedTmpl, tagAndElses, content, markup, nextIsElse, oldCode, isElse, isGetVal, prm, tagCtxFn, - tmplBindingKey = 0, - code = "", - noError = "", - tmplOptions = {}, - l = ast.length; - - if ("" + tmpl === tmpl) { - tmplName = isLinkExpr ? 'data-link="' + tmpl.replace(rNewLine, " ").slice(1, -1) + '"' : tmpl; - tmpl = 0; - } else { - tmplName = tmpl.tmplName || "unnamed"; - if (tmpl.allowCode) { - tmplOptions.allowCode = true; - } - if (tmpl.debug) { - tmplOptions.debug = true; - } - tmplBindings = tmpl.bnds; - nestedTmpls = tmpl.tmpls; - } - for (i = 0; i < l; i++) { - // AST nodes: [tagName, converter, params, content, hash, noError, pathBindings, contentMarkup, link] - node = ast[i]; - - // Add newline for each callout to t() c() etc. and each markup string - if ("" + node === node) { - // a markup string to be inserted - code += '\nret+="' + node + '";'; - } else { - // a compiled tag expression to be inserted - tagName = node[0]; - if (tagName === "*") { - // Code tag: {{* }} - code += "" + node[1]; - } else { - converter = node[1]; - params = node[2]; - content = node[3]; - hash = node[4]; - noError = node[5]; - markup = node[7]; - - if (!(isElse = tagName === "else")) { - tmplBindingKey = 0; - if (tmplBindings && (pathBindings = node[6])) { // Array of paths, or false if not data-bound - tmplBindingKey = tmplBindings.push(pathBindings); - } - } - if (isGetVal = tagName === ":") { - if (converter) { - tagName = converter === "html" ? ">" : converter + tagName; - } - if (noError) { - // If the tag includes noerror=true, we will do a try catch around expressions for named or unnamed parameters - // passed to the tag, and return the empty string for each expression if it throws during evaluation - //TODO This does not work for general case - supporting noError on multiple expressions, e.g. tag args and properties. - //Consider replacing with try and return the value of the expression a.b.c(p,q) + a.d, or, if it throws, return xxx||'' (rather than always the empty string) - prm = "prm" + i; - noError = "try{var " + prm + "=[" + params + "][0];}catch(e){" + prm + '="";}\n'; - params = prm; - } - } else { - if (content) { - // Create template object for nested template - nestedTmpl = TmplObject(markup, tmplOptions); - nestedTmpl.tmplName = tmplName + "/" + tagName; - // Compile to AST and then to compiled function - buildCode(content, nestedTmpl); - nestedTmpls.push(nestedTmpl); - } - - if (!isElse) { - // This is not an else tag. - tagAndElses = tagName; - // Switch to a new code string for this bound tag (and its elses, if it has any) - for returning the tagCtxs array - oldCode = code; - code = ""; - } - nextIsElse = ast[i + 1]; - nextIsElse = nextIsElse && nextIsElse[0] === "else"; - } - - hash += ",args:[" + params + "]}"; - - if (isGetVal && pathBindings || converter && tagName !== ">") { - // For convertVal we need a compiled function to return the new tagCtx(s) - tagCtxFn = new Function("data,view,j,u", " // " - + tmplName + " " + tmplBindingKey + " " + tagName + "\n" + noError + "return {" + hash + ";"); - tagCtxFn.paths = pathBindings; - tagCtxFn._ctxs = tagName; - if (isLinkExpr) { - return tagCtxFn; - } - useCnvt = 1; - } - - code += (isGetVal - ? "\n" + (pathBindings ? "" : noError) + (isLinkExpr ? "return " : "ret+=") + (useCnvt // Call _cnvt if there is a converter: {{cnvt: ... }} or {^{cnvt: ... }} - ? (useCnvt = 0, hasCnvt = true, 'c("' + converter + '",view,' + (pathBindings - ? ((tmplBindings[tmplBindingKey - 1] = tagCtxFn), tmplBindingKey) // Store the compiled tagCtxFn in tmpl.bnds, and pass the key to convertVal() - : "{" + hash) + ");") - : tagName === ">" - ? (hasEncoder = true, "h(" + params + ");") - : (getsVal = true, "(v=" + params + ")!=" + (isLinkExpr ? "=" : "") + 'u?v:"";') // Strict equality just for data-link="title{:expr}" so expr=null will remove title attribute - ) - : (hasTag = true, "{view:view,tmpl:" // Add this tagCtx to the compiled code for the tagCtxs to be passed to renderTag() - + (content ? nestedTmpls.length: "0") + "," // For block tags, pass in the key (nestedTmpls.length) to the nested content template - + hash + ",")); - - if (tagAndElses && !nextIsElse) { - code = "[" + code.slice(0, -1) + "]"; // This is a data-link expression or the last {{else}} of an inline bound tag. We complete the code for returning the tagCtxs array - if (isLinkExpr || pathBindings) { - // This is a bound tag (data-link expression or inline bound tag {^{tag ...}}) so we store a compiled tagCtxs function in tmp.bnds - code = new Function("data,view,j,u", " // " + tmplName + " " + tmplBindingKey + " " + tagAndElses + "\nreturn " + code + ";"); - if (pathBindings) { - (tmplBindings[tmplBindingKey - 1] = code).paths = pathBindings; - } - code._ctxs = tagName; - if (isLinkExpr) { - return code; // For a data-link expression we return the compiled tagCtxs function - } - } - - // This is the last {{else}} for an inline tag. - // For a bound tag, pass the tagCtxs fn lookup key to renderTag. - // For an unbound tag, include the code directly for evaluating tagCtxs array - code = oldCode + '\nret+=t("' + tagAndElses + '",view,this,' + (tmplBindingKey || code) + ");"; - pathBindings = 0; - tagAndElses = 0; - } - } - } - } - // Include only the var references that are needed in the code - code = "// " + tmplName - + "\nvar j=j||" + (jQuery ? "jQuery." : "js") + "views" - + (getsVal ? ",v" : "") // gets value - + (hasTag ? ",t=j._tag" : "") // has tag - + (hasCnvt ? ",c=j._cnvt" : "") // converter - + (hasEncoder ? ",h=j.converters.html" : "") // html converter - + (isLinkExpr ? ";\n" : ',ret="";\n') - + ($viewsSettings.tryCatch ? "try{\n" : "") - + (tmplOptions.debug ? "debugger;" : "") - + code + (isLinkExpr ? "\n" : "\nreturn ret;\n") - + ($viewsSettings.tryCatch ? "\n}catch(e){return j._err(e);}" : ""); - try { - code = new Function("data,view,j,u", code); - } catch (e) { - syntaxError("Compiled template code:\n\n" + code, e); - } - if (tmpl) { - tmpl.fn = code; - } - return code; - } - - function parseParams(params, bindings, tmpl) { - - //function pushBindings() { // Consider structured path bindings - // if (bindings) { - // named ? bindings[named] = bindings.pop(): bindings.push(list = []); - // } - //} - - function parseTokens(all, lftPrn0, lftPrn, bound, path, operator, err, eq, path2, prn, comma, lftPrn2, apos, quot, rtPrn, rtPrnDot, prn2, space, index, full) { - //rParams = /(\()(?=\s*\()|(?:([([])\s*)?(?:(\^?)(!*?[#~]?[\w$.^]+)?\s*((\+\+|--)|\+|-|&&|\|\||===|!==|==|!=|<=|>=|[<>%*:?\/]|(=))\s*|(!*?[#~]?[\w$.^]+)([([])?)|(,\s*)|(\(?)\\?(?:(')|("))|(?:\s*(([)\]])(?=\s*\.|\s*\^)|[)\]])([([]?))|(\s+)/g, - // lftPrn0 lftPrn bound path operator err eq path2 prn comma lftPrn2 apos quot rtPrn rtPrnDot prn2 space - // (left paren? followed by (path? followed by operator) or (path followed by paren?)) or comma or apos or quot or right paren or space - var expr; - operator = operator || ""; - lftPrn = lftPrn || lftPrn0 || lftPrn2; - path = path || path2; - prn = prn || prn2 || ""; - - function parsePath(allPath, not, object, helper, view, viewProperty, pathTokens, leafToken) { - // rPath = /^(?:null|true|false|\d[\d.]*|(!*?)([\w$]+|\.|~([\w$]+)|#(view|([\w$]+))?)([\w$.^]*?)(?:[.[^]([\w$]+)\]?)?)$/g, - // none object helper view viewProperty pathTokens leafToken - if (object) { - if (bindings) { - if (named === "linkTo") { - bindto = bindings._jsvto = bindings._jsvto || []; - bindto.push(path); - } - if (!named || boundName) { - bindings.push(path.slice(not.length)); // Add path binding for paths on props and args, -// list.push(path); - } - } - if (object !== ".") { - var ret = (helper - ? 'view.hlp("' + helper + '")' - : view - ? "view" - : "data") - + (leafToken - ? (viewProperty - ? "." + viewProperty - : helper - ? "" - : (view ? "" : "." + object) - ) + (pathTokens || "") - : (leafToken = helper ? "" : view ? viewProperty || "" : object, "")); - - ret = ret + (leafToken ? "." + leafToken : ""); - - return not + (ret.slice(0, 9) === "view.data" - ? ret.slice(5) // convert #view.data... to data... - : ret); - } - } - return allPath; - } - - if (err) { - syntaxError(params); - } else { - if (bindings && rtPrnDot && !aposed && !quoted) { - // This is a binding to a path in which an object is returned by a helper/data function/expression, e.g. foo()^x.y or (a?b:c)^x.y - // We create a compiled function to get the object instance (which will be called when the dependent data of the subexpression changes, to return the new object, and trigger re-binding of the subsequent path) - if (!named || boundName || bindto) { - expr = pathStart[parenDepth]; - if (full.length - 1 > index - expr) { // We need to compile a subexpression - expr = full.slice(expr, index + 1); - rtPrnDot = delimOpenChar1 + ":" + expr + delimCloseChar0; // The parameter or function subexpression - //TODO Optimize along the lines of: - //var paths = []; - //rtPrnDot = tmplLinks[rtPrnDot] = tmplLinks[rtPrnDot] || tmplFn(delimOpenChar0 + rtPrnDot + delimCloseChar1, tmpl, true, paths); // Compile the expression (or use cached copy already in tmpl.links) - //rtPrnDot.paths = rtPrnDot.paths || paths; - - rtPrnDot = tmplLinks[rtPrnDot] = tmplLinks[rtPrnDot] || tmplFn(delimOpenChar0 + rtPrnDot + delimCloseChar1, tmpl, true); // Compile the expression (or use cached copy already in tmpl.links) - if (!rtPrnDot.paths) { - parseParams(expr, rtPrnDot.paths = [], tmpl); - } - (bindto || bindings).push({_jsvOb: rtPrnDot}); // Insert special object for in path bindings, to be used for binding the compiled sub expression () - //list.push({_jsvOb: rtPrnDot}); - } - } - } - return (aposed - // within single-quoted string - ? (aposed = !apos, (aposed ? all : '"')) - : quoted - // within double-quoted string - ? (quoted = !quot, (quoted ? all : '"')) - : - ( - (lftPrn - ? (parenDepth++, pathStart[parenDepth] = index++, lftPrn) - : "") - + (space - ? (parenDepth - ? "" - //: (pushBindings(), named - // : ",") - : named - ? (named = boundName = bindto = false, "\b") - : "," - ) - : eq - // named param - // Insert backspace \b (\x08) as separator for named params, used subsequently by rBuildHash - ? (parenDepth && syntaxError(params), named = path, boundName = bound, /*pushBindings(),*/ '\b' + path + ':') - : path - // path - ? (path.split("^").join(".").replace(rPath, parsePath) - + (prn - ? (fnCall[++parenDepth] = true, path.charAt(0) !== "." && (pathStart[parenDepth] = index), prn) - : operator) - ) - : operator - ? operator - : rtPrn - // function - ? ((fnCall[parenDepth--] = false, rtPrn) - + (prn - ? (fnCall[++parenDepth] = true, prn) - : "") - ) - : comma - ? (fnCall[parenDepth] || syntaxError(params), ",") // We don't allow top-level literal arrays or objects - : lftPrn0 - ? "" - : (aposed = apos, quoted = quot, '"') - )) - ); - } - } - - var named, bindto, boundName, // list, - tmplLinks = tmpl.links, - fnCall = {}, - pathStart = {0:-1}, - parenDepth = 0, - quoted = false, // boolean for string content in double quotes - aposed = false; // or in single quotes - - //pushBindings(); - - return (params + " ") - .replace(/\)\^/g, ").") // Treat "...foo()^bar..." as equivalent to "...foo().bar..." - //since preceding computed observables in the path will always be updated if their dependencies change - .replace(rParams, parseTokens); - } - - //========== - // Utilities - //========== - - // Merge objects, in particular contexts which inherit from parent contexts - function extendCtx(context, parentContext) { - // Return copy of parentContext, unless context is defined and is different, in which case return a new merged context - // If neither context nor parentContext are defined, return undefined - return context && context !== parentContext - ? (parentContext - ? $extend($extend({}, parentContext), context) - : context) - : parentContext && $extend({}, parentContext); - } - - // Get character entity for HTML and Attribute encoding - function getCharEntity(ch) { - return charEntities[ch] || (charEntities[ch] = "&#" + ch.charCodeAt(0) + ";"); - } - - //========================== Initialize ========================== - - for (jsvStoreName in jsvStores) { - registerStore(jsvStoreName, jsvStores[jsvStoreName]); - } - - var $templates = $views.templates, - $converters = $views.converters, - $helpers = $views.helpers, - $tags = $views.tags, - $viewsSub = $views.sub, - $viewsSettings = $views.settings, - noIndex = "Error: #index in nested view: use #getIndex()"; // Error string if debugMode, else empty - - if (jQuery) { - //////////////////////////////////////////////////////////////////////////////////////////////// - // jQuery is loaded, so make $ the jQuery object - $ = jQuery; - $.fn.render = renderContent; - - } else { - //////////////////////////////////////////////////////////////////////////////////////////////// - // jQuery is not loaded. - - $ = global.jsviews = {}; - - $.isArray = Array && Array.isArray || function(obj) { - return Object.prototype.toString.call(obj) === "[object Array]"; - }; - - // //========================== Future Node.js support ========================== - // if ((nodeJsModule = global.module) && nodeJsModule.exports) { - // nodeJsModule.exports = $; - // } - } - - $.render = $render; - $.views = $views; - $.templates = $templates = $views.templates; - - //========================== Register tags ========================== - - $tags({ - "else": function() {}, // Does nothing but ensures {{else}} tags are recognized as valid - "if": { - render: function(val) { - // This function is called once for {{if}} and once for each {{else}}. - // We will use the tag.rendering object for carrying rendering state across the calls. - // If not done (a previous block has not been rendered), look at expression for this block and render the block if expression is truthy - // Otherwise return "" - var self = this, - ret = (self.rendering.done || !val && (arguments.length || !self.tagCtx.index)) - ? "" - : (self.rendering.done = true, self.selected = self.tagCtx.index, - // Test is satisfied, so render content on current context. We call tagCtx.render() rather than return undefined - // (which would also render the tmpl/content on the current context but would iterate if it is an array) - self.tagCtx.render()); - return ret; - }, - onUpdate: function(ev, eventArgs, tagCtxs) { - var tci, prevArg, different; - for (tci = 0; (prevArg = this.tagCtxs[tci]) && prevArg.args.length; tci++) { - prevArg = prevArg.args[0]; - different = !prevArg !== !tagCtxs[tci].args[0]; - if (!!prevArg || different) { - return different; - // If newArg and prevArg are both truthy, return false to cancel update. (Even if values on later elses are different, we still don't want to update, since rendered output would be unchanged) - // If newArg and prevArg are different, return true, to update - // If newArg and prevArg are both falsey, move to the next {{else ...}} - } - } - // Boolean value of all args are unchanged (falsey), so return false to cancel update - return false; - }, - flow: true - }, - "for": { - render: renderForBlock, - //onUpdate: function(ev, eventArgs, tagCtxs) { - //Consider adding filtering for perf optimization. However the below prevents update on some scenarios which _should_ update - namely when there is another array on which for also depends. - //var i, l, tci, prevArg; - //for (tci = 0; (prevArg = this.tagCtxs[tci]) && prevArg.args.length; tci++) { - // if (prevArg.args[0] !== tagCtxs[tci].args[0]) { - // return true; - // } - //} - //return false; - //}, - onArrayChange: function(ev, eventArgs) { - var arrayView, - self = this, - change = eventArgs.change; - if (this.tagCtxs[1] && ( // There is an {{else}} - change === "insert" && ev.target.length === eventArgs.items.length // inserting, and new length is same as inserted length, so going from 0 to n - || change === "remove" && !ev.target.length // removing , and new length 0, so going from n to 0 - || change === "refresh" && !eventArgs.oldItems.length !== !ev.target.length // refreshing, and length is going from 0 to n or from n to 0 - )) { - this.refresh(); - } else { - for (arrayView in self._.arrVws) { - arrayView = self._.arrVws[arrayView]; - if (arrayView.data === ev.target) { - arrayView._.onArrayChange.apply(arrayView, arguments); - } - } - } - ev.done = true; - }, - flow: true - }, - props: { - prep: function(object) { - var key, - arr = []; - for (key in object) { - arr.push({key: key, prop: object[key]}); - } - return arr; - }, - render: renderForBlock, - flow: true - }, - include: { - flow: true - }, - "*": { - // {{* code... }} - Ignored if template.allowCode is false. Otherwise include code in compiled template - render: function(value) { - return value; // Include the code. - }, - flow: true - } - }); - - function renderForBlock(val) { - // This function is called once for {{for}} and once for each {{else}}. - // We will use the tag.rendering object for carrying rendering state across the calls. - var self = this, - tagCtx = self.tagCtx, - noArg = !arguments.length, - result = "", - done = noArg || 0; - - if (!self.rendering.done) { - if (noArg) { - result = undefined; - } else if (val !== undefined) { - val = self.prep ? self.prep(val) : val; - result += tagCtx.render(val); - done += $.isArray(val) ? val.length : 1; - } - if (self.rendering.done = done) { - self.selected = tagCtx.index; - } - // If nothing was rendered we will look at the next {{else}}. Otherwise, we are done. - } - return result; - } - //========================== Register converters ========================== - - $converters({ - html: function(text) { - // HTML encode: Replace < > & and ' and " by corresponding entities. - return text != undefined ? String(text).replace(rHtmlEncode, getCharEntity) : ""; // null and undefined return "" - }, - attr: function(text) { - // Attribute encode: Replace < > & ' and " by corresponding entities. - return text != undefined ? String(text).replace(rAttrEncode, getCharEntity) : text === null ? text : ""; // null returns null, e.g. to remove attribute. undefined returns "" - }, - url: function(text) { - // URL encoding helper. - return text != undefined ? encodeURI(String(text)) : text === null ? text : ""; // null returns null, e.g. to remove attribute. undefined returns "" - } - }); - - //========================== Define default delimiters ========================== - $viewsDelimiters(); - -})(this, this.jQuery); diff --git a/nano/js/nano_base_callbacks.js b/nano/js/nano_base_callbacks.js new file mode 100644 index 00000000000..3770dae7ec8 --- /dev/null +++ b/nano/js/nano_base_callbacks.js @@ -0,0 +1,85 @@ +// NanoBaseCallbacks is where the base callbacks (common to all templates) are stored +NanoBaseCallbacks = function () +{ + // _canClick is used to disable clicks for a short period after each click (to avoid mis-clicks) + var _canClick = true; + + var _baseBeforeUpdateCallbacks = {} + + var _baseAfterUpdateCallbacks = { + // this callback is triggered after new data is processed + // it updates the status/visibility icon and adds click event handling to buttons/links + status: function (updateData) { + var uiStatusClass; + if (updateData['config']['status'] == 2) + { + uiStatusClass = 'icon24 uiStatusGood'; + $('.linkActive').removeClass('inactive'); + } + else if (updateData['config']['status'] == 1) + { + uiStatusClass = 'icon24 uiStatusAverage'; + $('.linkActive').addClass('inactive'); + } + else + { + uiStatusClass = 'icon24 uiStatusBad' + $('.linkActive').addClass('inactive'); + } + $('#uiStatusIcon').attr('class', uiStatusClass); + + $('.linkActive').stopTime('linkPending'); + $('.linkActive').removeClass('linkPending'); + + $('.linkActive').off('click'); + $('.linkActive').on('click', function (event) { + event.preventDefault(); + var href = $(this).data('href'); + if (href != null && _canClick) + { + _canClick = false; + $('body').oneTime(300, 'enableClick', function () { + _canClick = true; + }); + if (updateData['config']['status'] == 2) + { + $(this).oneTime(300, 'linkPending', function () { + $(this).addClass('linkPending'); + }); + } + window.location.href = href; + } + }); + } + }; + + return { + addCallbacks: function () { + NanoStateManager.addBeforeUpdateCallbacks(_baseBeforeUpdateCallbacks); + NanoStateManager.addAfterUpdateCallbacks(_baseAfterUpdateCallbacks); + }, + removeCallbacks: function () { + for (var callbackKey in _baseBeforeUpdateCallbacks) + { + if (_baseBeforeUpdateCallbacks.hasOwnProperty(callbackKey)) + { + NanoStateManager.removeBeforeUpdateCallback(callbackKey); + } + } + for (var callbackKey in _baseAfterUpdateCallbacks) + { + if (_baseAfterUpdateCallbacks.hasOwnProperty(callbackKey)) + { + NanoStateManager.removeAfterUpdateCallback(callbackKey); + } + } + } + }; +} (); + + + + + + + diff --git a/nano/js/nano_base_helpers.js b/nano/js/nano_base_helpers.js index ed3ce322f11..98275b247d7 100644 --- a/nano/js/nano_base_helpers.js +++ b/nano/js/nano_base_helpers.js @@ -1,21 +1,8 @@ // NanoBaseHelpers is where the base template helpers (common to all templates) are stored NanoBaseHelpers = function () { - var _urlParameters = {}; // This is populated with the base url parameters (used by all links), which is probaby just the "src" parameter - - var init = function () - { - var body = $('body'); // We store data in the body tag, it's as good a place as any - - _urlParameters = body.data('urlParameters'); - - initHelpers(); - }; - - var initHelpers = function () - { - $.views.helpers({ - + var _baseHelpers = { + // change ui styling to "syndicate mode" syndicateMode: function() { $('body').css("background-color","#8f1414"); $('body').css("background-image","url('uiBackground-Syndicate.png')"); @@ -26,9 +13,8 @@ NanoBaseHelpers = function () $('#uiTitleFluff').css("background-position","50% 50%"); $('#uiTitleFluff').css("background-repeat", "no-repeat"); - return ''; + return ''; }, - // Generate a Byond link link: function( text, icon, parameters, status, elementClass, elementId) { @@ -56,7 +42,7 @@ NanoBaseHelpers = function () return ''; } - return ''; + return ''; }, // Round a number to the nearest integer round: function(number) { @@ -91,12 +77,12 @@ NanoBaseHelpers = function () } return ''; }, - formatNumber: function(x) { - // From http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript - var parts = x.toString().split("."); - parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ","); - return parts.join("."); - }, + formatNumber: function(x) { + // From http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript + var parts = x.toString().split("."); + parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ","); + return parts.join("."); + }, // Display a bar. Used to show health, capacity, etc. displayBar: function(value, rangeMin, rangeMax, styleClass, showText) { @@ -172,7 +158,7 @@ NanoBaseHelpers = function () status = 'selected'; } - html += '' + html += '' index++; if (index % blockSize == 0 && index < characters.length) @@ -191,52 +177,26 @@ NanoBaseHelpers = function () return html; } - }); - }; - - // generate a Byond href, combines _urlParameters with parameters - var generateHref = function (parameters) - { - var queryString = '?'; - - for (var key in _urlParameters) - { - if (_urlParameters.hasOwnProperty(key)) - { - if (queryString !== '?') - { - queryString += ';'; - } - queryString += key + '=' + _urlParameters[key]; - } - } - - for (var key in parameters) - { - if (parameters.hasOwnProperty(key)) - { - if (queryString !== '?') - { - queryString += ';'; - } - queryString += key + '=' + parameters[key]; - } - } - return queryString; - }; - + }; + return { - init: function () + addHelpers: function () { - init(); + NanoTemplate.addHelpers(_baseHelpers); + }, + removeHelpers: function () + { + for (var helperKey in _baseHelpers) + { + if (_baseHelpers.hasOwnProperty(helperKey)) + { + NanoTemplate.removeHelper(helperKey); + } + } } }; } (); - -$(document).ready(function() -{ - NanoBaseHelpers.init(); -}); + diff --git a/nano/js/nano_state.js b/nano/js/nano_state.js new file mode 100644 index 00000000000..bca2abd6ac9 --- /dev/null +++ b/nano/js/nano_state.js @@ -0,0 +1,70 @@ +// This is the base state class, it is not to be used directly + +function NanoStateClass() { + /*if (typeof this.key != 'string' || !this.key.length) + { + alert('ERROR: Tried to create a state with an invalid state key: ' + this.key); + return; + } + + this.key = this.key.toLowerCase(); + + NanoStateManager.addState(this);*/ +} + +NanoStateClass.prototype.key = null; + +NanoStateClass.prototype.isCurrent = function () { + return NanoStateManager.getCurrentState() == this; +}; + +NanoStateClass.prototype.onAdd = function (previousState) { + // Do not add code here, add it to the 'default' state (nano_state_defaut.js) or create a new state and override this function + + NanoBaseCallbacks.addCallbacks(); + NanoBaseHelpers.addHelpers(); +}; + +NanoStateClass.prototype.onRemove = function (nextState) { + // Do not add code here, add it to the 'default' state (nano_state_defaut.js) or create a new state and override this function + + NanoBaseCallbacks.removeCallbacks(); + NanoBaseHelpers.removeHelpers(); +}; + +NanoStateClass.prototype.onBeforeUpdate = function (data) { + // Do not add code here, add it to the 'default' state (nano_state_defaut.js) or create a new state and override this function + + data = NanoStateManager.executeBeforeUpdateCallbacks(data); + + return data; // Return data to continue, return false to prevent onUpdate and onAfterUpdate +}; + +NanoStateClass.prototype.onUpdate = function (data) { + // Do not add code here, add it to the 'default' state (nano_state_defaut.js) or create a new state and override this function + + try + { + $("#uiLayout").html(NanoTemplate.parse('layout', data)); // render the 'mail' template to the #mainTemplate div + $("#uiContent").html(NanoTemplate.parse('main', data)); // render the 'mail' template to the #mainTemplate div + } + catch(error) + { + alert('ERROR: An error occurred while rendering the UI: ' + error.message); + return; + } +}; + +NanoStateClass.prototype.onAfterUpdate = function (data) { + // Do not add code here, add it to the 'default' state (nano_state_defaut.js) or create a new state and override this function + + NanoStateManager.executeAfterUpdateCallbacks(data); +}; + +NanoStateClass.prototype.alertText = function (text) { + // Do not add code here, add it to the 'default' state (nano_state_defaut.js) or create a new state and override this function + + alert(text); +}; + + diff --git a/nano/js/nano_state_default.js b/nano/js/nano_state_default.js new file mode 100644 index 00000000000..65493b8c87e --- /dev/null +++ b/nano/js/nano_state_default.js @@ -0,0 +1,14 @@ + +NanoStateDefaultClass.inheritsFrom(NanoStateClass); +var NanoStateDefault = new NanoStateDefaultClass(); + +function NanoStateDefaultClass() { + + this.key = 'default'; + + //this.parent.constructor.call(this); + + this.key = this.key.toLowerCase(); + + NanoStateManager.addState(this); +} \ No newline at end of file diff --git a/nano/js/nano_state_manager.js b/nano/js/nano_state_manager.js new file mode 100644 index 00000000000..69699765a48 --- /dev/null +++ b/nano/js/nano_state_manager.js @@ -0,0 +1,224 @@ +// NanoStateManager handles data from the server and uses it to render templates +NanoStateManager = function () +{ + // _isInitialised is set to true when all of this ui's templates have been processed/rendered + var _isInitialised = false; + + // the array of template names to use for this ui + var _templates = null; + // the data for this ui + var _data = null; + // new data which arrives before _isInitialised is true is stored here for processing later + var _earlyUpdateData = null; + + // this is an array of callbacks which are called when new data arrives, before it is processed + var _beforeUpdateCallbacks = {}; + // this is an array of callbacks which are called when new data arrives, before it is processed + var _afterUpdateCallbacks = {}; + + // this is an array of state objects, these can be used to provide custom javascript logic + var _states = {}; + + var _currentState = null; + + // the init function is called when the ui has loaded + // this function sets up the templates and base functionality + var init = function () + { + // We store initialData and templateData in the body tag, it's as good a place as any + _data = $('body').data('initialData'); + + if (_data == null || !_data.hasOwnProperty('config') || !_data.hasOwnProperty('data')) + { + alert('Error: Initial data did not load correctly.'); + } + + var stateKey = 'default'; + if (_data['config'].hasOwnProperty('stateKey') && _data['config']['stateKey']) + { + stateKey = _data['config']['stateKey'].toLowerCase(); + } + + NanoStateManager.setCurrentState(stateKey); + + $(document).on('templatesLoaded', function () { + doUpdate(_data); + + _isInitialised = true; + }); + }; + + // Receive update data from the server + var receiveUpdateData = function (jsonString) + { + var updateData; + try + { + // parse the JSON string from the server into a JSON object + updateData = jQuery.parseJSON(jsonString); + } + catch (error) + { + alert(error.Message); + return; + } + + if (!updateData.hasOwnProperty('data')) + { + if (_data && _data.hasOwnProperty('data')) + { + updateData['data'] = _data['data']; + } + else + { + updateData['data'] = {}; + } + } + + if (_isInitialised) // all templates have been registered, so render them + { + doUpdate(updateData); + } + else + { + _data = updateData; // all templates have not been registered. We set _data directly here which will be applied after the template is loaded with the initial data + } + }; + + // This function does the update by calling the methods on the current state + var doUpdate = function (data) + { + if (_currentState == null) + { + return; + } + + data = _currentState.onBeforeUpdate(data); + + if (data === false) + { + alert('data is false, return'); + return; // A beforeUpdateCallback returned a false value, this prevents the render from occuring + } + + _data = data; + + _currentState.onUpdate(_data); + + _currentState.onAfterUpdate(_data); + }; + + // Execute all callbacks in the callbacks array/object provided, updateData is passed to them for processing and potential modification + var executeCallbacks = function (callbacks, data) + { + for (var key in callbacks) + { + if (callbacks.hasOwnProperty(key) && jQuery.isFunction(callbacks[key])) + { + data = callbacks[key].call(this, data); + } + } + + return data; + }; + + return { + init: function () + { + init(); + }, + receiveUpdateData: function (jsonString) + { + receiveUpdateData(jsonString); + }, + addBeforeUpdateCallback: function (key, callbackFunction) + { + _beforeUpdateCallbacks[key] = callbackFunction; + }, + addBeforeUpdateCallbacks: function (callbacks) { + for (var callbackKey in callbacks) { + if (!callbacks.hasOwnProperty(callbackKey)) + { + continue; + } + NanoStateManager.addBeforeUpdateCallback(callbackKey, callbacks[callbackKey]); + } + }, + removeBeforeUpdateCallback: function (key) + { + if (_beforeUpdateCallbacks.hasOwnProperty(key)) + { + delete _beforeUpdateCallbacks[key]; + } + }, + executeBeforeUpdateCallbacks: function (data) { + return executeCallbacks(_beforeUpdateCallbacks, data); + }, + addAfterUpdateCallback: function (key, callbackFunction) + { + _afterUpdateCallbacks[key] = callbackFunction; + }, + addAfterUpdateCallbacks: function (callbacks) { + for (var callbackKey in callbacks) { + if (!callbacks.hasOwnProperty(callbackKey)) + { + continue; + } + NanoStateManager.addAfterUpdateCallback(callbackKey, callbacks[callbackKey]); + } + }, + removeAfterUpdateCallback: function (key) + { + if (_afterUpdateCallbacks.hasOwnProperty(key)) + { + delete _afterUpdateCallbacks[key]; + } + }, + executeAfterUpdateCallbacks: function (data) { + return executeCallbacks(_afterUpdateCallbacks, data); + }, + addState: function (state) + { + if (!(state instanceof NanoStateClass)) + { + alert('ERROR: Attempted to add a state which is not instanceof NanoStateClass'); + return; + } + if (!state.key) + { + alert('ERROR: Attempted to add a state with an invalid stateKey'); + return; + } + _states[state.key] = state; + }, + setCurrentState: function (stateKey) + { + if (typeof stateKey == 'undefined' || !stateKey) { + alert('ERROR: No state key was passed!'); + return false; + } + if (!_states.hasOwnProperty(stateKey)) + { + alert('ERROR: Attempted to set a current state which does not exist: ' + stateKey); + return false; + } + + var previousState = _currentState; + + _currentState = _states[stateKey]; + + if (previousState != null) { + previousState.onRemove(_currentState); + } + + _currentState.onAdd(previousState); + + return true; + }, + getCurrentState: function () + { + return _currentState; + } + }; +} (); + \ No newline at end of file diff --git a/nano/js/nano_template.js b/nano/js/nano_template.js new file mode 100644 index 00000000000..bdb1eeeb5f1 --- /dev/null +++ b/nano/js/nano_template.js @@ -0,0 +1,132 @@ + +var NanoTemplate = function () { + + var _templateData = {}; + + var _templates = {}; + var _compiledTemplates = {}; + + var _helpers = {}; + + var init = function () { + // We store templateData in the body tag, it's as good a place as any + _templateData = $('body').data('templateData'); + + if (_templateData == null) + { + alert('Error: Template data did not load correctly.'); + } + + loadNextTemplate(); + }; + + var loadNextTemplate = function () { + // we count the number of templates for this ui so that we know when they've all been rendered + var templateCount = Object.size(_templateData); + + if (!templateCount) + { + $(document).trigger('templatesLoaded'); + return; + } + + // load markup for each template and register it + for (var key in _templateData) + { + if (!_templateData.hasOwnProperty(key)) + { + continue; + } + + $.when($.ajax({ + url: _templateData[key], + cache: false, + dataType: 'text' + })) + .done(function(templateMarkup) { + + templateMarkup += '
    '; + + try + { + NanoTemplate.addTemplate(key, templateMarkup); + } + catch(error) + { + alert('ERROR: An error occurred while loading the UI: ' + error.message); + return; + } + + delete _templateData[key]; + + loadNextTemplate(); + }) + .fail(function () { + alert('ERROR: Loading template ' + key + '(' + _templateData[key] + ') failed!'); + }); + + return; + } + } + + var compileTemplates = function () { + + for (var key in _templates) { + try { + _compiledTemplates[key] = doT.template(_templates[key], null, _templates) + } + catch (error) { + alert(error.message); + } + } + }; + + return { + init: function () { + init(); + }, + addTemplate: function (key, templateString) { + _templates[key] = templateString; + }, + parse: function (templateKey, data) { + if (!_compiledTemplates.hasOwnProperty(templateKey) || !_compiledTemplates[templateKey]) { + if (!_templates.hasOwnProperty(templateKey)) { + alert('ERROR: Template "' + templateKey + '" does not exist in _compiledTemplates!'); + return '

    Template error (does not exist)

    '; + } + compileTemplates(); + } + if (typeof _compiledTemplates[templateKey] != 'function') { + alert(_compiledTemplates[templateKey]); + alert('ERROR: Template "' + templateKey + '" failed to compile!'); + return '

    Template error (failed to compile)

    '; + } + return _compiledTemplates[templateKey].call(this, data['data'], data['config'], _helpers); + }, + addHelper: function (helperName, helperFunction) { + if (!jQuery.isFunction(helperFunction)) { + alert('NanoTemplate.addHelper failed to add ' + helperName + ' as it is not a function.'); + return; + } + + _helpers[helperName] = helperFunction; + }, + addHelpers: function (helpers) { + for (var helperName in helpers) { + if (!helpers.hasOwnProperty(helperName)) + { + continue; + } + NanoTemplate.addHelper(helperName, helpers[helperName]); + } + }, + removeHelper: function (helperName) { + if (helpers.hasOwnProperty(helperName)) + { + delete _helpers[helperName]; + } + } + } +}(); + + diff --git a/nano/js/nano_update.js b/nano/js/nano_update.js deleted file mode 100644 index cb2eee021d7..00000000000 --- a/nano/js/nano_update.js +++ /dev/null @@ -1,236 +0,0 @@ -// NanoUpdate handles data from the server and uses it to render templates -NanoUpdate = function () -{ - // _isInitialised is set to true when all of this ui's templates have been processed/rendered - var _isInitialised = false; - - // the array of template names to use for this ui - var _templates = null; - // the data for this ui - var _data = null; - // new data which arrives before _isInitialised is true is stored here for processing later - var _earlyUpdateData = null; - - // this is an array of callbacks which are called when new data arrives, before it is processed - var _beforeUpdateCallbacks = []; - // this is an array of callbacks which are called when new data arrives, before it is processed - var _afterUpdateCallbacks = []; - - // _canClick is used to disable clicks for a short period after each click (to avoid mis-clicks) - var _canClick = true; - - // the init function is called when the ui has loaded - // this function sets up the templates and base functionality - var init = function () - { - $('#uiNoJavaScript').html('Loading...'); - - // this callback is triggered after new data is processed - // it updates the status/visibility icon and adds click event handling to buttons/links - NanoUpdate.addAfterUpdateCallback(function (updateData) { - var uiStatusClass; - if (updateData['ui']['status'] == 2) - { - uiStatusClass = 'icon24 uiStatusGood'; - $('.linkActive').removeClass('inactive'); - } - else if (updateData['ui']['status'] == 1) - { - uiStatusClass = 'icon24 uiStatusAverage'; - $('.linkActive').addClass('inactive'); - } - else - { - uiStatusClass = 'icon24 uiStatusBad' - $('.linkActive').addClass('inactive'); - } - $('#uiStatusIcon').attr('class', uiStatusClass); - - $('.linkActive').stopTime('linkPending'); - $('.linkActive').removeClass('linkPending'); - - $('.linkActive').off('click'); - $('.linkActive').on('click', function (event) { - event.preventDefault(); - var href = $(this).data('href'); - if (href != null && _canClick) - { - _canClick = false; - $('body').oneTime(300, 'enableClick', function () { - _canClick = true; - }); - if (updateData['ui']['status'] == 2) - { - $(this).oneTime(300, 'linkPending', function () { - $(this).addClass('linkPending'); - }); - } - window.location.href = href; - } - }); - }); - - // We store initialData and templateData in the body tag, it's as good a place as any - var body = $('body'); - var templateData = body.data('templateData'); - var initialData = body.data('initialData'); - - if (templateData == null || !initialData == null) - { - alert('Error: Initial data did not load correctly.'); - } - - // we count the number of templates for this ui so that we know when they've all been rendered - var templateCount = 0; - for (var key in templateData) - { - if (templateData.hasOwnProperty(key)) - { - templateCount++; - } - } - - if (!templateCount) - { - alert('ERROR: No templates listed!'); - } - - // load markup for each template and register it - for (var key in templateData) - { - if (templateData.hasOwnProperty(key)) - { - $.when($.get(templateData[key])) - .done(function(templateMarkup) { - if (_templates == null) - { - _templates = {}; - } - - templateMarkup = templateMarkup.replace(/ +\) *\}\}/g, ')}}'); - - templateMarkup += '
    ' - - try - { - _templates[key] = $.templates(key, templateMarkup); - - templateCount--; - - if (templateCount <= 0) - { - if (_earlyUpdateData !== null) // Newer data has already arrived, so update - { - renderTemplates(_earlyUpdateData); - } - else - { - renderTemplates(initialData); - } - _isInitialised = true; - $('#uiNoJavaScript').hide(); - } - - executeCallbacks(_afterUpdateCallbacks, _data); - } - catch(error) - { - alert('ERROR: An error occurred while loading the UI: ' + error.message); - return; - } - }); - } - } - }; - - // Receive update data from the server - var receiveUpdateData = function (jsonString) - { - var updateData; - try - { - // parse the JSON string from the server into a JSON object - updateData = jQuery.parseJSON(jsonString); - } - catch (error) - { - alert(error.Message); - return; - } - - - if (_isInitialised) // all templates have been registered, so render them - { - executeCallbacks(_beforeUpdateCallbacks, updateData); - - renderTemplates(updateData); - - executeCallbacks(_afterUpdateCallbacks, updateData); - } - else - { - _earlyUpdateData = updateData; // all templates have not been registered. We set _earlyUpdateData which will be applied after the template is loaded with the initial data - } - }; - - // This function renders the template with the latest data - // It has to be done recursively as each piece of data is observed individually and needs to be updated individually - var renderTemplates = function (data) - { - if (!_templates.hasOwnProperty("main")) - { - alert('Error: Main template not found.'); - } - - _data = data; - - try - { - $("#mainTemplate").html(_templates["main"].render(_data)); - } - catch(error) - { - alert('ERROR: An error occurred while rendering the UI: ' + error.message); - return; - } - }; - - // Execute all callbacks in the callbacks array/object provided, updateData is passed to them for processing - var executeCallbacks = function (callbacks, updateData) - { - for (var index in callbacks) - { - callbacks[index].call(this, updateData); - } - - return updateData; - }; - - return { - init: function () - { - init(); - }, - isInitialised: function () - { - return _isInitialised; - }, - receiveUpdateData: function (jsonString) - { - receiveUpdateData(jsonString); - }, - addBeforeUpdateCallback: function (callbackFunction) - { - _beforeUpdateCallbacks.push(callbackFunction); - }, - addAfterUpdateCallback: function (callbackFunction) - { - _afterUpdateCallbacks.push(callbackFunction); - } - }; -} (); - -$(document).ready(function() -{ - NanoUpdate.init(); -}); \ No newline at end of file diff --git a/nano/js/nano_config.js b/nano/js/nano_utility.js similarity index 57% rename from nano/js/nano_config.js rename to nano/js/nano_utility.js index 8352b197ccf..40cd827d132 100644 --- a/nano/js/nano_config.js +++ b/nano/js/nano_utility.js @@ -1,20 +1,61 @@ -// NanoConfig is the place to store utility functions -var NanoConfig = function () +// NanoUtility is the place to store utility functions +var NanoUtility = function () { - return { + var _urlParameters = {}; // This is populated with the base url parameters (used by all links), which is probaby just the "src" parameter + + return { init: function () { - if (typeof jQuery == 'undefined') { - alert('ERROR: jQuery failed to load!'); - } - if (typeof $.views == 'undefined') { - alert('ERROR: JSRender failed to load!'); - } - } - } -} (); + var body = $('body'); // We store data in the body tag, it's as good a place as any -NanoConfig.init(); + _urlParameters = body.data('urlParameters'); + }, + // generate a Byond href, combines _urlParameters with parameters + generateHref: function (parameters) + { + var queryString = '?'; + + for (var key in _urlParameters) + { + if (_urlParameters.hasOwnProperty(key)) + { + if (queryString !== '?') + { + queryString += ';'; + } + queryString += key + '=' + _urlParameters[key]; + } + } + + for (var key in parameters) + { + if (parameters.hasOwnProperty(key)) + { + if (queryString !== '?') + { + queryString += ';'; + } + queryString += key + '=' + parameters[key]; + } + } + return queryString; + } + } +} (); + +if (typeof jQuery == 'undefined') { + alert('ERROR: Javascript library failed to load!'); +} +if (typeof doT == 'undefined') { + alert('ERROR: Template engine failed to load!'); +} + +// All scripts are initialised here, this allows control of init order +$(document).ready(function () { + NanoUtility.init(); + NanoStateManager.init(); + NanoTemplate.init(); +}); if (!Array.prototype.indexOf) { @@ -97,4 +138,11 @@ String.prototype.toTitleCase = function () { $.ajaxSetup({ cache: false -}); \ No newline at end of file +}); + +Function.prototype.inheritsFrom = function (parentClassOrObject) { + this.prototype = new parentClassOrObject; + this.prototype.constructor = this; + this.prototype.parent = parentClassOrObject.prototype; + return this; +}; \ No newline at end of file diff --git a/nano/templates/accounts_terminal.tmpl b/nano/templates/accounts_terminal.tmpl index 9903878ee6b..ca7fe82752e 100644 --- a/nano/templates/accounts_terminal.tmpl +++ b/nano/templates/accounts_terminal.tmpl @@ -3,7 +3,7 @@ Machine:
  • - {{:machine_id}} + {{:data.machine_id}}
    @@ -11,25 +11,25 @@ ID:
    - {{:~link(id_card, 'eject', {'choice' : "insert_card"}, null, id_inserted ? 'fixedLeftWidest' : 'fixedLeft')}} + {{:helper.link(data.id_card, 'eject', {'choice' : "insert_card"}, null, data.id_inserted ? 'fixedLeftWidest' : 'fixedLeft')}}
    -{{if access_level > 0}} +{{if data.access_level > 0}}

    Menu

    - {{:~link('Home', 'home', {'choice' : 'view_accounts_list'}, !creating_new_account && !detailed_account_view ? 'disabled' : null, 'fixedLeft')}} - {{:~link('New Account', 'gear', {'choice' : 'create_account'}, creating_new_account ? 'disabled' : null, 'fixedLeft')}} - {{:~link('Print', 'print', {'choice' : 'print'}, creating_new_account ? 'disabled' : null, 'fixedLeft')}} + {{:helper.link('Home', 'home', {'choice' : 'view_accounts_list'}, !data.creating_new_account && !data.detailed_account_view ? 'disabled' : null, 'fixedLeft')}} + {{:helper.link('New Account', 'gear', {'choice' : 'create_account'}, data.creating_new_account ? 'disabled' : null, 'fixedLeft')}} + {{:helper.link('Print', 'print', {'choice' : 'print'}, data.creating_new_account ? 'disabled' : null, 'fixedLeft')}} - {{if creating_new_account}} + {{if data.creating_new_account}}

    Create Account

    -
    - + +
    @@ -52,7 +52,7 @@
    {{else}} - {{if detailed_account_view}} + {{if data.detailed_account_view}}

    Account Details

    @@ -62,7 +62,7 @@ Account Number:
    - #{{:account_number}} + #{{:data.account_number}}
    @@ -71,7 +71,7 @@ Holder:
    - {{:owner_name}} + {{:data.owner_name}}
    @@ -80,7 +80,7 @@ Balance:
    - ${{:~formatNumber(money)}} + ${{:helper.formatNumber(money)}}
    @@ -89,17 +89,17 @@ Status:
    - - {{: suspended ? "Suspended" : "Active"}} + + {{:data.suspended ? "Suspended" : "Active"}}
    - {{:~link(suspended ? "Unsuspend" : "Suspend", 'gear', {'choice' : 'toggle_suspension'})}} + {{:helper.link(data.suspended ? "Unsuspend" : "Suspend", 'gear', {'choice' : 'toggle_suspension'})}}
    - {{if transactions}} + {{if data.transactions}}
    @@ -111,13 +111,13 @@ - {{for transactions}} + {{for data.transactions}} - - - - - + + + + + {{/for}} @@ -126,7 +126,6 @@ This account has no financial transactions on record for today. {{/if}} -

    CentCom Administrator

    @@ -134,15 +133,15 @@
    Payroll:
    - {{:~link('Revoke', 'transferthick-e-w', {'choice' : 'revoke_payroll'}, account_number == station_account_number ? 'disabled' : null, 'linkDanger')}} + {{:helper.link('Revoke', 'transferthick-e-w', {'choice' : 'revoke_payroll'}, data.account_number == data.station_account_number ? 'disabled' : null, 'linkDanger')}} - {{if access_level >= 2}} + {{if data.access_level >= 2}}
    Silent Fund Adjustment:
    - {{:~link('Add', 'plus', {'choice' : 'add_funds'})}} - {{:~link('Remove', 'minus', {'choice' : 'remove_funds'})}} + {{:helper.link('Add', 'plus', {'choice' : 'add_funds'})}} + {{:helper.link('Remove', 'minus', {'choice' : 'remove_funds'})}}
    {{/if}} {{else}} @@ -150,13 +149,13 @@

    NanoTrasen Accounts

    - {{if accounts}} + {{if data.accounts}}
    {{:date}} {{:time}}{{:target_name}}{{:purpose}}{{:amount}}{{:source_terminal}}{{:value.date}} {{:value.time}}{{:value.target_name}}{{:value.purpose}}{{:value.amount}}{{:value.source_terminal}}
    - {{for accounts}} - - - - + {{for data.accounts}} + + + + {{/for}}
    {{:~link('#' + account_number, '', {'choice' : 'view_account_detail', 'account_index' : account_index})}}{{:owner_name}}{{:suspended}}
    {{:helper.link('#' + value.account_number, '', {'choice' : 'view_account_detail', 'account_index' : value.account_index})}}{{:value.owner_name}}{{:value.suspended}}
    diff --git a/nano/templates/advanced_airlock_console.tmpl b/nano/templates/advanced_airlock_console.tmpl index 7f886657f62..90ef1927319 100644 --- a/nano/templates/advanced_airlock_console.tmpl +++ b/nano/templates/advanced_airlock_console.tmpl @@ -4,9 +4,9 @@ External Pressure:
    - {{:~displayBar(external_pressure, 0, 200, external_pressure < 80 || external_pressure > 120 ? 'bad' : external_pressure < 95 || external_pressure > 110 ? 'average' : 'good')}} + {{:helper.displayBar(data.external_pressure, 0, 200, (data.external_pressure < 80 || data.external_pressure > 120) ? 'bad' : (data.external_pressure < 95 || data.external_pressure > 110) ? 'average' : 'good')}}
    - {{:external_pressure}} kPa + {{:data.external_pressure}} kPa
    @@ -15,9 +15,9 @@ Chamber Pressure:
    - {{:~displayBar(chamber_pressure, 0, 200, chamber_pressure < 80 || chamber_pressure > 120 ? 'bad' : chamber_pressure < 95 || chamber_pressure > 110 ? 'average' : 'good')}} + {{:helper.displayBar(data.chamber_pressure, 0, 200, (data.chamber_pressure < 80 || data.chamber_pressure > 120) ? 'bad' : (data.chamber_pressure < 95 || data.chamber_pressure > 110) ? 'average' : 'good')}}
    - {{:chamber_pressure}} kPa + {{:data.chamber_pressure}} kPa
    @@ -26,9 +26,9 @@ Internal Pressure:
    - {{:~displayBar(internal_pressure, 0, 200, internal_pressure < 80 || internal_pressure > 120 ? 'bad' : internal_pressure < 95 || internal_pressure > 110 ? 'average' : 'good')}} + {{:helper.displayBar(data.internal_pressure, 0, 200, (data.internal_pressure < 80 || data.internal_pressure > 120) ? 'bad' : (data.internal_pressure < 95 || data.internal_pressure > 110) ? 'average' : 'good')}}
    - {{:internal_pressure}} kPa + {{:data.internal_pressure}} kPa
    @@ -36,25 +36,25 @@
    - {{:~link('Cycle to Exterior', 'arrowthickstop-1-w', {'command' : 'cycle_ext'}, processing ? 'disabled' : null)}} - {{:~link('Cycle to Interior', 'arrowthickstop-1-e', {'command' : 'cycle_int'}, processing ? 'disabled' : null)}} + {{:helper.link('Cycle to Exterior', 'arrowthickstop-1-w', {'command' : 'cycle_ext'}, data.processing ? 'disabled' : null)}} + {{:helper.link('Cycle to Interior', 'arrowthickstop-1-e', {'command' : 'cycle_int'}, data.processing ? 'disabled' : null)}}
    - {{:~link('Force exterior door', 'alert', {'command' : 'force_ext'}, null, processing ? 'yellowBackground' : null)}} - {{:~link('Force interior door', 'alert', {'command' : 'force_int'}, null, processing ? 'yellowBackground' : null)}} + {{:helper.link('Force exterior door', 'alert', {'command' : 'force_ext'}, null, data.processing ? 'yellowBackground' : null)}} + {{:helper.link('Force interior door', 'alert', {'command' : 'force_int'}, null, data.processing ? 'yellowBackground' : null)}}
    - {{:~link('Purge', 'refresh', {'command' : 'purge'}, processing ? 'disabled' : null, purge ? 'linkOn' : null)}} + {{:helper.link('Purge', 'refresh', {'command' : 'purge'}, data.processing ? 'disabled' : null, data.purge ? 'linkOn' : null)}}
    - {{:~link('Secure', secure ? 'locked' : 'unlocked', {'command' : 'secure'}, processing ? 'disabled' : null, secure ? 'linkOn' : null)}} + {{:helper.link('Secure', data.secure ? 'locked' : 'unlocked', {'command' : 'secure'}, data.processing ? 'disabled' : null, data.secure ? 'linkOn' : null)}}
    - {{:~link('Abort', 'cancel', {'command' : 'abort'}, processing ? null : 'disabled', processing ? 'redBackground' : null)}} + {{:helper.link('Abort', 'cancel', {'command' : 'abort'}, data.processing ? null : 'disabled', data.processing ? 'redBackground' : null)}}
    \ No newline at end of file diff --git a/nano/templates/apc.tmpl b/nano/templates/apc.tmpl index 82dc2175a1a..1db3cb3dda4 100644 --- a/nano/templates/apc.tmpl +++ b/nano/templates/apc.tmpl @@ -1,17 +1,17 @@
    - {{if siliconUser}} + {{if data.siliconUser}}
    Interface Lock:
    - {{:~link('Engaged', 'locked', {'toggleaccess' : 1}, locked ? 'selected' : null)}}{{:~link('Disengaged', 'unlocked', {'toggleaccess' : 1}, malfStatus >= 2 ? 'linkOff' : (locked ? null : 'selected'))}} + {{:helper.link('Engaged', 'locked', {'toggleaccess' : 1}, data.locked ? 'selected' : null)}}{{:helper.link('Disengaged', 'unlocked', {'toggleaccess' : 1}, data.malfStatus >= 2 ? 'linkOff' : (data.locked ? null : 'selected'))}}
    {{else}} - {{if locked}} - Swipe an ID card to unlock this interface. + {{if data.locked}} + Swipe an ID card to unlock this interface {{else}} - Swipe an ID card to lock this interface. + Swipe an ID card to lock this interface {{/if}} {{/if}}
    @@ -25,14 +25,14 @@ Main Breaker:
    - {{if locked && !siliconUser}} - {{if isOperating}} + {{if data.locked && !data.siliconUser}} + {{if data.isOperating}} On {{else}} Off {{/if}} {{else}} - {{:~link('On', 'power', {'breaker' : 1}, isOperating ? 'selected' : null)}}{{:~link('Off', 'close', {'breaker' : 1}, isOperating ? null : 'selected')}} + {{:helper.link('On', 'power', {'breaker' : 1}, data.isOperating ? 'selected' : null)}}{{:helper.link('Off', 'close', {'breaker' : 1}, data.isOperating ? null : 'selected')}} {{/if}}
    @@ -42,9 +42,9 @@ External Power:
    - {{if externalPower == 2}} + {{if data.externalPower == 2}} Good - {{else externalPower == 1}} + {{else data.externalPower == 1}} Low {{else}} None @@ -56,38 +56,38 @@
    Power Cell:
    - {{if powerCellStatus == null}} + {{if data.powerCellStatus == null}}
    Power cell removed.
    {{else}} - {{:~displayBar(powerCellStatus, 0, 100, powerCellStatus >= 50 ? 'good' : powerCellStatus >= 25 ? 'average' : 'bad')}} + {{:helper.displayBar(data.powerCellStatus, 0, 100, (data.powerCellStatus >= 50) ? 'good' : (data.powerCellStatus >= 25) ? 'average' : 'bad')}}
    - {{:~round(powerCellStatus*10)/10}}% + {{:helper.round(data.powerCellStatus*10)/10}}%
    {{/if}}
    - {{if powerCellStatus != null}} + {{if data.powerCellStatus != null}}
    Charge Mode:
    - {{if locked && !siliconUser}} - {{if chargeMode}} + {{if data.locked && !data.siliconUser}} + {{if data.chargeMode}} Auto {{else}} Off {{/if}} {{else}} - {{:~link('Auto', 'refresh', {'cmode' : 1}, chargeMode ? 'selected' : null)}}{{:~link('Off', 'close', {'cmode' : 1}, chargeMode ? null : 'selected')}} + {{:helper.link('Auto', 'refresh', {'cmode' : 1}, data.chargeMode ? 'selected' : null)}}{{:helper.link('Off', 'close', {'cmode' : 1}, data.chargeMode ? null : 'selected')}} {{/if}}   - {{if chargingStatus > 1}} + {{if data.chargingStatus > 1}} [Fully Charged] - {{else chargingStatus == 1}} + {{else data.chargingStatus == 1}} [Charging] {{else}} [Not Charging] @@ -99,32 +99,34 @@

    Power Channels

    - {{for powerChannels}} + {{for data.powerChannels}}
    - {{:title}}: + {{:value.title}}:
    - {{:powerLoad}} W + {{:value.powerLoad}} W
       - {{if status <= 1}} + {{if value.status <= 1}} Off - {{else status >= 2}} + {{else value.status >= 2}} On {{/if}} - {{if status == 1 || status == 3}} - [Auto] - {{else}} - [Manual] - {{/if}} + {{if data.locked}} + {{if value.status == 1 || value.status == 3}} +   Auto + {{else}} +   Manual + {{/if}} + {{/if}}
    - {{if !~root.locked || ~root.siliconUser}} + {{if !data.locked || data.siliconUser}}
    - {{:~link('Auto', 'refresh', topicParams.auto, (status == 1 || status == 3) ? 'selected' : null)}} - {{:~link('On', 'power', topicParams.on, (status == 2) ? 'selected' : null)}} - {{:~link('Off', 'close', topicParams.off, (status == 0) ? 'selected' : null)}} + {{:helper.link('Auto', 'refresh', value.topicParams.auto, (value.status == 1 || value.status == 3) ? 'selected' : null)}} + {{:helper.link('On', 'power', value.topicParams.on, (value.status == 2) ? 'selected' : null)}} + {{:helper.link('Off', 'close', value.topicParams.off, (value.status == 0) ? 'selected' : null)}}
    {{/if}}
    @@ -135,7 +137,7 @@ Total Load:
    - {{:totalLoad}} W + {{:data.totalLoad}} W
    @@ -146,26 +148,26 @@ Cover Lock:
    - {{if locked && !siliconUser}} - {{if coverLocked}} + {{if data.locked && !data.siliconUser}} + {{if data.coverLocked}} Engaged {{else}} Disengaged {{/if}} {{else}} - {{:~link('Engaged', 'locked', {'lock' : 1}, coverLocked ? 'selected' : null)}}{{:~link('Disengaged', 'unlocked', {'lock' : 1}, coverLocked ? null : 'selected')}} + {{:helper.link('Engaged', 'locked', {'lock' : 1}, data.coverLocked ? 'selected' : null)}}{{:helper.link('Disengaged', 'unlocked', {'lock' : 1}, data.coverLocked ? null : 'selected')}} {{/if}}
    - {{if siliconUser}} + {{if data.siliconUser}}

    System Overrides

    - {{:~link('Overload Lighting Circuit', 'lightbulb', {'overload' : 1})}} - {{if malfStatus == 1}} - {{:~link('Override Programming', 'script', {'malfhack' : 1})}} - {{else malfStatus > 1}} + {{:helper.link('Overload Lighting Circuit', 'lightbulb', {'overload' : 1})}} + {{if data.malfStatus == 1}} + {{:helper.link('Override Programming', 'script', {'malfhack' : 1})}} + {{else data.malfStatus > 1}}
    APC Hacked
    {{/if}}
    diff --git a/nano/templates/canister.tmpl b/nano/templates/canister.tmpl index 3bd69a4a9bb..e4033eb0164 100644 --- a/nano/templates/canister.tmpl +++ b/nano/templates/canister.tmpl @@ -3,8 +3,8 @@
    Tank Label:
    -
    -
    {{:name}}
    {{:~link('Relabel', 'pencil', {'relabel' : 1}, (canLabel) ? null : 'disabled')}} +
    +
    {{:data.name}}
    {{:helper.link('Relabel', 'pencil', {'relabel' : 1}, data.canLabel ? null : 'disabled')}}
    @@ -12,8 +12,8 @@
    Tank Pressure:
    -
    - {{:tankPressure}} kPa +
    + {{:data.tankPressure}} kPa
    @@ -21,19 +21,19 @@
    Port Status:
    -
    - {{:portConnected ? 'Connected' : 'Disconnected'}} +
    + {{:data.portConnected ? 'Connected' : 'Disconnected'}}

    Holding Tank Status

    -{{if hasHoldingTank}} +{{if data.hasHoldingTank}}
    Tank Label:
    -
    -
    {{:holdingTank.name}}
    {{:~link('Eject', 'eject', {'remove_tank' : 1})}} +
    +
    {{:data.holdingTank.name}}
    {{:helper.link('Eject', 'eject', {'remove_tank' : 1})}}
    @@ -41,11 +41,11 @@
    Tank Pressure:
    -
    - {{:holdingTank.tankPressure}} kPa +
    + {{:data.holdingTank.tankPressure}} kPa
    -{{else}} +{{else}}
    No holding tank inserted.
     
    {{/if}} @@ -57,17 +57,17 @@ Release Pressure:
    - {{:~displayBar(releasePressure, minReleasePressure, maxReleasePressure)}} + {{:helper.displayBar(data.releasePressure, data.minReleasePressure, data.maxReleasePressure)}}
    - {{:~link('-', null, {'pressure_adj' : -1000}, (releasePressure > minReleasePressure) ? null : 'disabled')}} - {{:~link('-', null, {'pressure_adj' : -100}, (releasePressure > minReleasePressure) ? null : 'disabled')}} - {{:~link('-', null, {'pressure_adj' : -10}, (releasePressure > minReleasePressure) ? null : 'disabled')}} - {{:~link('-', null, {'pressure_adj' : -1}, (releasePressure > minReleasePressure) ? null : 'disabled')}} -
     {{:releasePressure}} kPa 
    - {{:~link('+', null, {'pressure_adj' : 1}, (releasePressure < maxReleasePressure) ? null : 'disabled')}} - {{:~link('+', null, {'pressure_adj' : 10}, (releasePressure < maxReleasePressure) ? null : 'disabled')}} - {{:~link('+', null, {'pressure_adj' : 100}, (releasePressure < maxReleasePressure) ? null : 'disabled')}} - {{:~link('+', null, {'pressure_adj' : 1000}, (releasePressure < maxReleasePressure) ? null : 'disabled')}} + {{:helper.link('-', null, {'pressure_adj' : -1000}, (data.releasePressure > data.minReleasePressure) ? null : 'disabled')}} + {{:helper.link('-', null, {'pressure_adj' : -100}, (data.releasePressure > data.minReleasePressure) ? null : 'disabled')}} + {{:helper.link('-', null, {'pressure_adj' : -10}, (data.releasePressure > data.minReleasePressure) ? null : 'disabled')}} + {{:helper.link('-', null, {'pressure_adj' : -1}, (data.releasePressure > data.minReleasePressure) ? null : 'disabled')}} +
     {{:data.releasePressure}} kPa 
    + {{:helper.link('+', null, {'pressure_adj' : 1}, (data.releasePressure < data.maxReleasePressure) ? null : 'disabled')}} + {{:helper.link('+', null, {'pressure_adj' : 10}, (data.releasePressure < data.maxReleasePressure) ? null : 'disabled')}} + {{:helper.link('+', null, {'pressure_adj' : 100}, (data.releasePressure < data.maxReleasePressure) ? null : 'disabled')}} + {{:helper.link('+', null, {'pressure_adj' : 1000}, (data.releasePressure < data.maxReleasePressure) ? null : 'disabled')}}
    @@ -77,7 +77,7 @@ Release Valve:
    - {{:~link('Open', 'unlocked', {'toggle' : 1}, valveOpen ? 'selected' : null)}}{{:~link('Close', 'locked', {'toggle' : 1}, valveOpen ? null : 'selected')}} + {{:helper.link('Open', 'unlocked', {'toggle' : 1}, data.valveOpen ? 'selected' : null)}}{{:helper.link('Close', 'locked', {'toggle' : 1}, data.valveOpen ? null : 'selected')}}
    diff --git a/nano/templates/chem_dispenser.tmpl b/nano/templates/chem_dispenser.tmpl index c2b5e62ce15..1dd960f9c8a 100644 --- a/nano/templates/chem_dispenser.tmpl +++ b/nano/templates/chem_dispenser.tmpl @@ -7,7 +7,7 @@ Used In File(s): \code\modules\reagents\Chemistry-Machinery.dm Energy:
    - {{:~displayBar(energy, 0, maxEnergy, 'good', energy + ' Units')}} + {{:helper.displayBar(data.energy, 0, data.maxEnergy, 'good', data.energy + ' Units')}}
    @@ -16,17 +16,17 @@ Used In File(s): \code\modules\reagents\Chemistry-Machinery.dm Dispense:
    - {{:~link('5', 'gear', {'amount' : 5}, (amount == 5) ? 'selected' : null)}} - {{:~link('10', 'gear', {'amount' : 10}, (amount == 10) ? 'selected' : null)}} - {{:~link('20', 'gear', {'amount' : 20}, (amount == 20) ? 'selected' : null)}} - {{:~link('30', 'gear', {'amount' : 30}, (amount == 30) ? 'selected' : null)}} - {{:~link('50', 'gear', {'amount' : 50}, (amount == 50) ? 'selected' : null)}} + {{:helper.link('5', 'gear', {'amount' : 5}, (data.amount == 5) ? 'selected' : null)}} + {{:helper.link('10', 'gear', {'amount' : 10}, (data.amount == 10) ? 'selected' : null)}} + {{:helper.link('20', 'gear', {'amount' : 20}, (data.amount == 20) ? 'selected' : null)}} + {{:helper.link('30', 'gear', {'amount' : 30}, (data.amount == 30) ? 'selected' : null)}} + {{:helper.link('50', 'gear', {'amount' : 50}, (data.amount == 50) ? 'selected' : null)}}
     
    - {{if glass}} + {{if data.glass}} Drink Dispenser {{else}} Chemical Dispenser @@ -35,8 +35,8 @@ Used In File(s): \code\modules\reagents\Chemistry-Machinery.dm
    - {{for chemicals}} - {{:~link(title, 'circle-arrow-s', commands, null, ~root.glass ? 'fixedLeftWide' : 'fixedLeft')}} + {{for data.chemicals}} + {{:helper.link(value.title, 'circle-arrow-s', value.commands, null, data.glass ? 'fixedLeftWide' : 'fixedLeft')}} {{/for}}
    @@ -44,39 +44,43 @@ Used In File(s): \code\modules\reagents\Chemistry-Machinery.dm
     
    - {{if glass}} + {{if data.glass}} Glass {{else}} Beaker {{/if}} Contents
    - {{:~link(glass ? 'Eject Glass' : 'Eject Beaker', 'eject', {'ejectBeaker' : 1}, isBeakerLoaded ? null : 'disabled', 'floatRight')}} + {{:helper.link(data.glass ? 'Eject Glass' : 'Eject Beaker', 'eject', {'ejectBeaker' : 1}, data.isBeakerLoaded ? null : 'disabled', 'floatRight')}}
    -
    +
    - {{if isBeakerLoaded}} - Volume: {{:beakerCurrentVolume}} / {{:beakerMaxVolume}}
    - {{for beakerContents}} - {{:volume}} units of {{:name}}
    - {{else}} + {{if data.isBeakerLoaded}} + Volume: {{:data.beakerCurrentVolume}} / {{:data.beakerMaxVolume}}
    + {{for data.beakerContents}} + {{:value.volume}} units of {{:value.name}}
    + {{empty}} - {{if glass}} - Glass - {{else}} - Beaker - {{/if}} - is empty + {{if data.glass}} + Glass + {{else}} + Beaker + {{/if}} + is empty + {{/for}} {{else}} - No - {{if glass}} - Glass - {{else}} - Beaker - {{/if}} loaded + + No + {{if data.glass}} + Glass + {{else}} + Beaker + {{/if}} + loaded + {{/if}}
    diff --git a/nano/templates/crew_monitor.tmpl b/nano/templates/crew_monitor.tmpl index efa885f20f5..f789f6052c1 100644 --- a/nano/templates/crew_monitor.tmpl +++ b/nano/templates/crew_monitor.tmpl @@ -2,13 +2,13 @@ Crew Monitoring Computer interface --> - {{for crewmembers}} - {{if sensor_type == 1}} - - {{else sensor_type == 2}} - - {{else sensor_type == 3}} - + {{for data.crewmembers}} + {{if value.sensor_type == 1}} + + {{else value.sensor_type == 2}} + + {{else value.sensor_type == 3}} + {{/if}} {{/for}}
    {{:name}}{{:dead ? "Deceased" : "Living"}}Not Available
    {{:name}}{{:dead ? "Deceased" : "Living"}} ({{:oxy}}/{{:tox}}/{{:fire}}/{{:brute}})Not Available
    {{:name}}{{:dead ? "Deceased" : "Living"}} ({{:oxy}}/{{:tox}}/{{:fire}}/{{:brute}}){{:area}}({{:x}}, {{:y}})
    {{:value.name}}{{:value.dead ? "Deceased" : "Living"}}Not Available
    {{:value.name}}{{:value.dead ? "Deceased" : "Living"}} ({{:value.oxy}}/{{:value.tox}}/{{:value.fire}}/{{:value.brute}})Not Available
    {{:value.name}}{{:value.dead ? "Deceased" : "Living"}} ({{:value.oxy}}/{{:value.tox}}/{{:value.fire}}/{{:value.brute}}){{:value.area}}({{:value.x}}, {{:value.y}})
    \ No newline at end of file diff --git a/nano/templates/cryo.tmpl b/nano/templates/cryo.tmpl index c8c5610aa61..e8302b07df9 100644 --- a/nano/templates/cryo.tmpl +++ b/nano/templates/cryo.tmpl @@ -5,60 +5,62 @@ Used In File(s): \code\game\machinery\cryo.dm

    Cryo Cell Status

    - {{if !hasOccupant}} + {{if !data.hasOccupant}}
    Cell Unoccupied
    {{else}}
    - {{:occupant.name}} =>  - {{if occupant.stat == 0}} + {{:data.occupant.name}} =>  + {{if data.occupant.stat == 0}} Conscious - {{else occupant.stat == 1}} + {{else data.occupant.stat == 1}} Unconscious {{else}} DEAD {{/if}}
    - {{if occupant.stat < 2}} + {{if data.occupant.stat < 2}}
    Health:
    - {{if occupant.health >= 0}} - {{:~displayBar(occupant.health, 0, occupant.maxHealth, 'good')}} + {{if data.occupant.health >= 0}} + {{:helper.displayBar(data.occupant.health, 0, data.occupant.maxHealth, 'good')}} {{else}} - {{:~displayBar(occupant.health, 0, occupant.minHealth, 'average alignRight')}} + {{:helper.displayBar(data.occupant.health, 0, data.occupant.minHealth, 'average alignRight')}} {{/if}} -
    {{:~round(occupant.health)}}
    +
    {{:helper.round(data.occupant.health)}}
    => Brute Damage:
    - {{:~displayBar(occupant.bruteLoss, 0, occupant.maxHealth, 'bad')}} -
    {{:~round(occupant.bruteLoss)}}
    + {{:helper.displayBar(data.occupant.bruteLoss, 0, data.occupant.maxHealth, 'bad')}} +
    {{:helper.round(data.occupant.bruteLoss)}}
    => Resp. Damage:
    - {{:~displayBar(occupant.oxyLoss, 0, occupant.maxHealth, 'bad')}} -
    {{:~round(occupant.oxyLoss)}}
    + {{:helper.displayBar(data.occupant.oxyLoss, 0, data.occupant.maxHealth, 'bad')}} +
    {{:helper.round(data.occupant.oxyLoss)}}
    => Toxin Damage:
    - {{:~displayBar(occupant.toxLoss, 0, occupant.maxHealth, 'bad')}} -
    {{:~round(occupant.toxLoss)}}
    + {{:helper.displayBar(data.occupant.toxLoss, 0, data.occupant.maxHealth, 'bad')}} +
    {{:helper.round(data.occupant.toxLoss)}}
    => Burn Severity:
    - {{:~displayBar(occupant.fireLoss, 0, occupant.maxHealth, 'bad')}} -
    {{:~round(occupant.fireLoss)}}
    + {{:helper.displayBar(data.occupant.fireLoss, 0, data.occupant.maxHealth, 'bad')}} +
    {{:helper.round(data.occupant.fireLoss)}}
    {{/if}} {{/if}}
    -
    Cell Temperature:
    - {{:~string('{1} K', cellTemperatureStatus, cellTemperature)}} -
    +
    +
    Cell Temperature:
    + {{:data.cellTemperature}} K +
    +

    Cryo Cell Operation

    @@ -67,10 +69,10 @@ Used In File(s): \code\game\machinery\cryo.dm Cryo Cell Status:
    - {{:~link('On', 'power', {'switchOn' : 1}, isOperating ? 'selected' : null)}}{{:~link('Off', 'close', {'switchOff' : 1}, isOperating ? null : 'selected')}} + {{:helper.link('On', 'power', {'switchOn' : 1}, data.isOperating ? 'selected' : null)}}{{:helper.link('Off', 'close', {'switchOff' : 1}, data.isOperating ? null : 'selected')}}
    - {{:~link('Eject Occupant', 'arrowreturnthick-1-s', {'ejectOccupant' : 1}, hasOccupant ? null : 'disabled')}} + {{:helper.link('Eject Occupant', 'arrowreturnthick-1-s', {'ejectOccupant' : 1}, data.hasOccupant ? null : 'disabled')}}
     
    @@ -79,10 +81,10 @@ Used In File(s): \code\game\machinery\cryo.dm Beaker:
    - {{if isBeakerLoaded}} - {{:beakerLabel ? beakerLabel : 'No label'}}
    - {{if beakerVolume}} - {{:beakerVolume}} units remaining
    + {{if data.isBeakerLoaded}} + {{:data.beakerLabel ? data.beakerLabel : 'No label'}}
    + {{if data.beakerVolume}} + {{:data.beakerVolume}} units remaining
    {{else}} Beaker is empty {{/if}} @@ -91,6 +93,6 @@ Used In File(s): \code\game\machinery\cryo.dm {{/if}}
    - {{:~link('Eject Beaker', 'eject', {'ejectBeaker' : 1}, isBeakerLoaded ? null : 'disabled')}} + {{:helper.link('Eject Beaker', 'eject', {'ejectBeaker' : 1}, data.isBeakerLoaded ? null : 'disabled')}}
    \ No newline at end of file diff --git a/nano/templates/disease_splicer.tmpl b/nano/templates/disease_splicer.tmpl index a7d76fb4f69..0277fbe3424 100644 --- a/nano/templates/disease_splicer.tmpl +++ b/nano/templates/disease_splicer.tmpl @@ -1,13 +1,13 @@
    - {{:~link('Close', 'gear', {'close' : 1}, null, 'fixedLeft')}} + {{:helper.link('Close', 'gear', {'close' : 1}, null, 'fixedLeft')}}
    -{{if busy}} +{{if data.busy}}
    The Splicer is currently busy.
    -
    {{:busy}}
    +
    {{:data.busy}}

    Thank you for your patience! @@ -17,7 +17,7 @@

    Virus Dish

    - {{:~link('Eject Dish', 'eject', { 'eject' : 1 }, dish_inserted ? null : 'disabled')}} + {{:helper.link('Eject Dish', 'eject', { 'eject' : 1 }, data.dish_inserted ? null : 'disabled')}}
    @@ -25,26 +25,26 @@ Growth Density:
    - {{:~displayBar(growth, 0, 100, growth >= 50 ? 'good' : growth >= 25 ? 'average' : 'bad', growth + '%' )}} + {{:helper.displayBar(data.growth, 0, 100, (data.growth >= 50) ? 'good' : data.growth >= 25 ? 'average' : 'bad', data.growth + '%' )}}
    - {{if !info}} + {{if !data.info}}
    Symptoms:
    {{/if}}
    - {{if info}} - {{:info}} + {{if data.info}} + {{:data.info}} {{else}} - {{for effects}} + {{for data.effects}}
    - ({{:stage}}) {{:name}} - {{if badness > 1}} + ({{:data.stage}}) {{:data.name}} + {{if data.badness > 1}} Dangerous {{/if}}
    @@ -53,18 +53,18 @@ {{/if}}
    - {{if affected_species && !info}} + {{if data.affected_species && !data.info}}
    Affected Species:
    - {{:affected_species}} + {{:data.affected_species}}
    {{/if}}
    - {{if effects}} + {{if data.effects}}
    CAUTION: Reverse engineering will destroy the viral sample.
    @@ -73,12 +73,12 @@ Reverse Engineering:
    - {{for effects}} - {{:~link(stage, 'transferthick-e-w', { 'grab' : reference })}} + {{for data.effects}} + {{:helper.link(data.stage, 'transferthick-e-w', { 'grab' : data.reference })}} {{/for}}
    - {{:~link('Species', 'transferthick-e-w', { 'affected_species' : 1 })}} + {{:helper.link('Species', 'transferthick-e-w', { 'affected_species' : 1 })}}
    {{/if}} @@ -92,17 +92,17 @@ Memory Buffer:
    - {{if buffer}} - {{:buffer.name}} ({{:buffer.stage}}) + {{if data.buffer}} + {{:data.buffer.name}} ({{:data.buffer.stage}}) {{else}} - {{if species_buffer}} - {{:species_buffer}} + {{if data.species_buffer}} + {{:data.species_buffer}} {{else}} Empty {{/if}} {{/if}}
    - {{:~link('Save To Disk', 'disk', { 'disk' : 1 }, (buffer || species_buffer) ? null : 'disabled')}} - {{:~link('Splice Onto Dish', 'pencil', { 'splice' : 1 }, (buffer || species_buffer) && !info ? null : 'disabled')}} + {{:helper.link('Save To Disk', 'disk', { 'disk' : 1 }, (data.buffer || data.species_buffer) ? null : 'disabled')}} + {{:helper.link('Splice Onto Dish', 'pencil', { 'splice' : 1 }, ((data.buffer || data.species_buffer) && !data.info) ? null : 'disabled')}} {{/if}} diff --git a/nano/templates/dish_incubator.tmpl b/nano/templates/dish_incubator.tmpl index 6ebff27698a..ae887e6986e 100644 --- a/nano/templates/dish_incubator.tmpl +++ b/nano/templates/dish_incubator.tmpl @@ -1,6 +1,6 @@
    - {{:~link('Close', 'gear', {'close' : '1'}, null, 'fixedLeft')}} + {{:helper.link('Close', 'gear', {'close' : '1'}, null, 'fixedLeft')}}
    @@ -12,12 +12,12 @@ Power:
    - {{:~link('On', 'power', { 'power' : 1 }, !dish_inserted ? 'disabled' : on ? 'selected' : null)}}{{:~link('Off', 'close', { 'power' : 1 }, on ? null : 'selected')}} + {{:helper.link('On', 'power', { 'power' : 1 }, !data.dish_inserted ? 'disabled' : data.on ? 'selected' : null)}}{{:helper.link('Off', 'close', { 'power' : 1 }, data.on ? null : 'selected')}}
    - {{:~link('Add Radiation', 'radiation', {'rad' : 1})}} - {{:~link('Flush System', 'trash', {'flush' : 1}, system_in_use ? null : 'disabled')}} + {{:helper.link('Add Radiation', 'radiation', {'rad' : 1})}} + {{:helper.link('Flush System', 'trash', {'flush' : 1}, data.system_in_use ? null : 'disabled')}}
    @@ -26,7 +26,7 @@ Virus Food:
    - {{:~displayBar(food_supply, 0, 100, 'good', food_supply)}} + {{:helper.displayBar(data.food_supply, 0, 100, 'good', data.food_supply)}}
    @@ -34,9 +34,9 @@ Radiation Level:
    - {{:~displayBar(radiation, 0, 100, radiation >= 50 ? 'bad' : growth >= 25 ? 'average' : 'good')}} + {{:helper.displayBar(data.radiation, 0, 100, (data.radiation >= 50) ? 'bad' : (data.growth >= 25) ? 'average' : 'good')}}
    - {{:~formatNumber(radiation * 10000)}} µSv + {{:helper.formatNumber(data.radiation * 10000)}} µSv
    @@ -44,7 +44,7 @@ Toxicity:
    - {{:~displayBar(toxins, 0, 100, toxins >= 50 ? 'bad' : toxins >= 25 ? 'average' : 'good', toxins + '%')}} + {{:helper.displayBar(data.toxins, 0, 100, (data.toxins >= 50) ? 'bad' : (data.toxins >= 25) ? 'average' : 'good', data.toxins + '%')}}
    @@ -53,17 +53,17 @@

    Chemicals

    - {{:~link('Eject Chemicals', 'eject', { 'ejectchem' : 1 }, chemicals_inserted ? null : 'disabled')}} - {{:~link('Breed Virus', 'circle-arrow-s', { 'virus' : 1 }, can_breed_virus ? null : 'disabled')}} + {{:helper.link('Eject Chemicals', 'eject', { 'ejectchem' : 1 }, data.chemicals_inserted ? null : 'disabled')}} + {{:helper.link('Breed Virus', 'circle-arrow-s', { 'virus' : 1 }, data.can_breed_virus ? null : 'disabled')}}
    -{{if chemicals_inserted}} +{{if data.chemicals_inserted}}
    Volume:
    - {{:~displayBar(chemical_volume, 0, max_chemical_volume, 'good', chemical_volume + ' / ' + max_chemical_volume)}} + {{:helper.displayBar(data.chemical_volume, 0, data.max_chemical_volume, 'good', data.chemical_volume + ' / ' + data.max_chemical_volume)}}
    @@ -71,10 +71,10 @@ Breeding Environment:
    - - {{:!dish_inserted ? 'N/A' : can_breed_virus ? 'Suitable' : 'No hemolytic samples detected'}} + + {{:!data.dish_inserted ? 'N/A' : data.can_breed_virus ? 'Suitable' : 'No hemolytic samples detected'}} - {{if blood_already_infected}} + {{if data.blood_already_infected}}
    CAUTION: Viral infection detected in blood sample. {{/if}} @@ -90,17 +90,17 @@

    Virus Dish

    - {{:~link('Eject Dish', 'eject', {'ejectdish' : 1}, dish_inserted ? null : 'disabled')}} + {{:helper.link('Eject Dish', 'eject', {'ejectdish' : 1}, data.dish_inserted ? null : 'disabled')}}
    -{{if dish_inserted}} - {{if virus}} +{{if data.dish_inserted}} + {{if data.virus}}
    Growth Density:
    - {{:~displayBar(growth, 0, 100, growth >= 50 ? 'good' : growth >= 25 ? 'average' : 'bad', growth + '%' )}} + {{:helper.displayBar(data.growth, 0, 100, (data.growth >= 50) ? 'good' : (data.growth >= 25) ? 'average' : 'bad', data.growth + '%' )}}
    @@ -108,7 +108,7 @@ Infection Rate:
    - {{:analysed ? infection_rate : "Unknown"}} + {{:data.analysed ? data.infection_rate : "Unknown"}}
    {{else}} diff --git a/nano/templates/dna_modifier.tmpl b/nano/templates/dna_modifier.tmpl index b064de84b85..9a2804ba987 100644 --- a/nano/templates/dna_modifier.tmpl +++ b/nano/templates/dna_modifier.tmpl @@ -5,54 +5,54 @@ Used In File(s): D:\Development\SS13-BS12\code\game\dna\dna_modifier.dm

    Status

    - {{if !hasOccupant}} + {{if !data.hasOccupant}}
    Cell Unoccupied
    {{else}}
    - {{:occupant.name}} =>  - {{if occupant.stat == 0}} + {{:data.occupant.name}} =>  + {{if data.occupant.stat == 0}} Conscious - {{else occupant.stat == 1}} + {{else data.occupant.stat == 1}} Unconscious {{else}} DEAD {{/if}}
    - {{if !occupant.isViableSubject || !occupant.uniqueIdentity || !occupant.structuralEnzymes}} + {{if !data.occupant.isViableSubject || !data.occupant.uniqueIdentity || !data.occupant.structuralEnzymes}}
    The occupant's DNA structure is ruined beyond recognition, please insert a subject with an intact DNA structure.
    - {{else occupant.stat < 2}} + {{else data.occupant.stat < 2}}
    Health:
    - {{if occupant.health >= 0}} - {{:~displayBar(occupant.health, 0, occupant.maxHealth, 'good')}} + {{if data.occupant.health >= 0}} + {{:helper.displayBar(data.occupant.health, 0, data.occupant.maxHealth, 'good')}} {{else}} - {{:~displayBar(occupant.health, 0, occupant.minHealth, 'average alignRight')}} + {{:helper.displayBar(data.occupant.health, 0, data.occupant.minHealth, 'average alignRight')}} {{/if}} -
    {{:~round(occupant.health)}}
    +
    {{:helper.round(data.occupant.health)}}
    Radiation:
    - {{:~displayBar(occupant.radiationLevel, 0, 100, 'average')}} -
    {{:~round(occupant.radiationLevel)}}
    + {{:helper.displayBar(data.occupant.radiationLevel, 0, 100, 'average')}} +
    {{:helper.round(data.occupant.radiationLevel)}}
    Unique Enzymes:
    -
    {{:occupant.uniqueEnzymes ? occupant.uniqueEnzymes : 'Unknown'}}
    +
    {{:data.occupant.uniqueEnzymes ? data.occupant.uniqueEnzymes : 'Unknown'}}
    {{/if}} {{/if}} @@ -61,65 +61,65 @@ Used In File(s): D:\Development\SS13-BS12\code\game\dna\dna_modifier.dm

    Operations

    - {{:~link('Modify U.I.', 'link', {'selectMenuKey' : 'ui'}, selectedMenuKey == 'ui' ? 'selected' : null)}} - {{:~link('Modify S.E.', 'link', {'selectMenuKey' : 'se'}, selectedMenuKey == 'se' ? 'selected' : null)}} - {{:~link('Transfer Buffers', 'disk', {'selectMenuKey' : 'buffer'}, selectedMenuKey == 'buffer' ? 'selected' : null)}} - {{:~link('Rejuvenators', 'plusthick', {'selectMenuKey' : 'rejuvenators'}, selectedMenuKey == 'rejuvenators' ? 'selected' : null)}} + {{:helper.link('Modify U.I.', 'link', {'selectMenuKey' : 'ui'}, data.selectedMenuKey == 'ui' ? 'selected' : null)}} + {{:helper.link('Modify S.E.', 'link', {'selectMenuKey' : 'se'}, data.selectedMenuKey == 'se' ? 'selected' : null)}} + {{:helper.link('Transfer Buffers', 'disk', {'selectMenuKey' : 'buffer'}, data.selectedMenuKey == 'buffer' ? 'selected' : null)}} + {{:helper.link('Rejuvenators', 'plusthick', {'selectMenuKey' : 'rejuvenators'}, data.selectedMenuKey == 'rejuvenators' ? 'selected' : null)}}
     
    -{{if !selectedMenuKey || selectedMenuKey == 'ui'}} +{{if !data.selectedMenuKey || data.selectedMenuKey == 'ui'}}

    Modify Unique Identifier

    - {{:~displayDNABlocks(occupant.uniqueIdentity, selectedUIBlock, selectedUISubBlock, dnaBlockSize, 'UI')}} + {{:helper.displayDNABlocks(data.occupant.uniqueIdentity, data.selectedUIBlock, data.selectedUISubBlock, data.dnaBlockSize, 'UI')}}
    Target:
    - {{:~link('-', null, {'changeUITarget' : 0}, selectedUITarget > 0 ? null : 'disabled')}} -
     {{:selectedUITargetHex}} 
    - {{:~link('+', null, {'changeUITarget' : 1}, selectedUITarget < 15 ? null : 'disabled')}} + {{:helper.link('-', null, {'changeUITarget' : 0}, (data.selectedUITarget > 0) ? null : 'disabled')}} +
     {{:data.selectedUITargetHex}} 
    + {{:helper.link('+', null, {'changeUITarget' : 1}, (data.selectedUITarget < 15) ? null : 'disabled')}}
    - {{:~link('Irradiate Block', 'radiation', {'pulseUIRadiation' : 1}, !occupant.isViableSubject ? 'disabled' : null)}} + {{:helper.link('Irradiate Block', 'radiation', {'pulseUIRadiation' : 1}, !data.occupant.isViableSubject ? 'disabled' : null)}}
    -{{else selectedMenuKey == 'se'}} +{{else data.selectedMenuKey == 'se'}}

    Modify Structural Enzymes

    - {{:~displayDNABlocks(occupant.structuralEnzymes, selectedSEBlock, selectedSESubBlock, dnaBlockSize, 'SE')}} + {{:helper.displayDNABlocks(data.occupant.structuralEnzymes, data.selectedSEBlock, data.selectedSESubBlock, data.dnaBlockSize, 'SE')}}
    - {{:~link('Irradiate Block', 'radiation', {'pulseSERadiation' : 1}, !occupant.isViableSubject ? 'disabled' : null)}} + {{:helper.link('Irradiate Block', 'radiation', {'pulseSERadiation' : 1}, !data.occupant.isViableSubject ? 'disabled' : null)}}
    -{{else selectedMenuKey == 'buffer'}} +{{else data.selectedMenuKey == 'buffer'}}

    Transfer Buffers

    - {{for buffers}} -

    Buffer {{:#index + 1}}

    + {{for data.buffers}} +

    Buffer {{:(index + 1)}}

    Load Data:
    - {{:~link('Subject U.I.', 'link', {'bufferOption' : 'saveUI', 'bufferId' : (#index + 1)}, !~root.hasOccupant ? 'disabled' : null)}} - {{:~link('Subject U.I. + U.E.', 'link', {'bufferOption' : 'saveUIAndUE', 'bufferId' : (#index + 1)}, !~root.hasOccupant ? 'disabled' : null)}} - {{:~link('Subject S.E.', 'link', {'bufferOption' : 'saveSE', 'bufferId' : (#index + 1)}, !~root.hasOccupant ? 'disabled' : null)}} - {{:~link('From Disk', 'disk', {'bufferOption' : 'loadDisk', 'bufferId' : (#index + 1)}, !~root.hasDisk || !~root.disk.data ? 'disabled' : null)}} + {{:helper.link('Subject U.I.', 'link', {'bufferOption' : 'saveUI', 'bufferId' : (index + 1)}, !data.hasOccupant ? 'disabled' : null)}} + {{:helper.link('Subject U.I. + U.E.', 'link', {'bufferOption' : 'saveUIAndUE', 'bufferId' : (index + 1)}, !data.hasOccupant ? 'disabled' : null)}} + {{:helper.link('Subject S.E.', 'link', {'bufferOption' : 'saveSE', 'bufferId' : (index + 1)}, !data.hasOccupant ? 'disabled' : null)}} + {{:helper.link('From Disk', 'disk', {'bufferOption' : 'loadDisk', 'bufferId' : (index + 1)}, (!data.hasDisk || !data.disk.data) ? 'disabled' : null)}}
    - {{if data}} + {{if value.data}}
    Label:
    - {{:~link(label, 'document-b', {'bufferOption' : 'changeLabel', 'bufferId' : (#parent.index + 1)})}} + {{:helper.link(value.label, 'document-b', {'bufferOption' : 'changeLabel', 'bufferId' : (index + 1)})}}
    @@ -127,7 +127,7 @@ Used In File(s): D:\Development\SS13-BS12\code\game\dna\dna_modifier.dm Subject:
    - {{:owner ? owner : 'Unknown'}} + {{:value.owner ? value.owner : 'Unknown'}}
    @@ -135,8 +135,8 @@ Used In File(s): D:\Development\SS13-BS12\code\game\dna\dna_modifier.dm Stored Data:
    - {{:data == 'ui' ? 'Unique Identifiers' : 'Structural Enzymes'}} - {{:ue ? ' + Unique Enzymes' : ''}} + {{:value.data == 'ui' ? 'Unique Identifiers' : 'Structural Enzymes'}} + {{:value.ue ? ' + Unique Enzymes' : ''}}
    {{else}} @@ -151,11 +151,11 @@ Used In File(s): D:\Development\SS13-BS12\code\game\dna\dna_modifier.dm Options:
    - {{:~link('Clear', 'trash', {'bufferOption' : 'clear', 'bufferId' : (#index + 1)}, !data ? 'disabled' : null)}} - {{:~link('Injector', ~root.isInjectorReady ? 'pencil' : 'clock', {'bufferOption' : 'createInjector', 'bufferId' : (#index + 1)}, !~root.isInjectorReady || !data ? 'disabled' : null)}} - {{:~link('Block Injector', ~root.isInjectorReady ? 'pencil' : 'clock', {'bufferOption' : 'createInjector', 'bufferId' : (#index + 1), 'createBlockInjector' : 1}, !~root.isInjectorReady || !data ? 'disabled' : null)}} - {{:~link('Transfer', 'radiation', {'bufferOption' : 'transfer', 'bufferId' : (#index + 1)}, !~root.hasOccupant || !data ? 'disabled' : null)}} - {{:~link('Save To Disk', 'disk', {'bufferOption' : 'saveDisk', 'bufferId' : (#index + 1)}, !data || !~root.hasDisk ? 'disabled' : null)}} + {{:helper.link('Clear', 'trash', {'bufferOption' : 'clear', 'bufferId' : (index + 1)}, !value.data ? 'disabled' : null)}} + {{:helper.link('Injector', data.isInjectorReady ? 'pencil' : 'clock', {'bufferOption' : 'createInjector', 'bufferId' : (index + 1)}, (!data.isInjectorReady || !value.data) ? 'disabled' : null)}} + {{:helper.link('Block Injector', data.isInjectorReady ? 'pencil' : 'clock', {'bufferOption' : 'createInjector', 'bufferId' : (index + 1), 'createBlockInjector' : 1}, (!data.isInjectorReady || !value.data) ? 'disabled' : null)}} + {{:helper.link('Transfer', 'radiation', {'bufferOption' : 'transfer', 'bufferId' : (index + 1)}, (!data.hasOccupant || !value.data) ? 'disabled' : null)}} + {{:helper.link('Save To Disk', 'disk', {'bufferOption' : 'saveDisk', 'bufferId' : (index + 1)}, (!value.data || !data.hasDisk) ? 'disabled' : null)}}
    @@ -163,14 +163,14 @@ Used In File(s): D:\Development\SS13-BS12\code\game\dna\dna_modifier.dm

    Data Disk

    - {{if hasDisk}} - {{if disk.data}} + {{if data.hasDisk}} + {{if data.disk.data}}
    Label:
    - {{:disk.label ? disk.label : 'No Label'}} + {{:data.disk.label ? data.disk.label : 'No Label'}}
    @@ -178,7 +178,7 @@ Used In File(s): D:\Development\SS13-BS12\code\game\dna\dna_modifier.dm Subject:
    - {{:disk.owner ? disk.owner : 'Unknown'}} + {{:data.disk.owner ? data.disk.owner : 'Unknown'}}
    @@ -186,8 +186,8 @@ Used In File(s): D:\Development\SS13-BS12\code\game\dna\dna_modifier.dm Stored Data:
    - {{:disk.data == 'ui' ? 'Unique Identifiers' : 'Structural Enzymes'}} - {{:disk.ue ? ' + Unique Enzymes' : ''}} + {{:data.disk.data == 'ui' ? 'Unique Identifiers' : 'Structural Enzymes'}} + {{:data.disk.ue ? ' + Unique Enzymes' : ''}}
    {{else}} @@ -206,26 +206,26 @@ Used In File(s): D:\Development\SS13-BS12\code\game\dna\dna_modifier.dm {{/if}}
    - Options: + Options:
    - {{:~link('Wipe Disk', 'trash', {'bufferOption' : 'wipeDisk'}, !hasDisk || !disk.data ? 'disabled' : null)}} - {{:~link('Eject Disk', 'eject', {'bufferOption' : 'ejectDisk'}, !hasDisk ? 'disabled' : null)}} + {{:helper.link('Wipe Disk', 'trash', {'bufferOption' : 'wipeDisk'}, (!data.hasDisk || !data.disk.data) ? 'disabled' : null)}} + {{:helper.link('Eject Disk', 'eject', {'bufferOption' : 'ejectDisk'}, !data.hasDisk ? 'disabled' : null)}}
    -{{else selectedMenuKey == 'rejuvenators'}} +{{else data.selectedMenuKey == 'rejuvenators'}}

    Rejuvenators

    Inject:
    - {{:~link('5', 'pencil', {'injectRejuvenators' : 5}, !hasOccupant || !beakerVolume ? 'disabled' : null)}} - {{:~link('10', 'pencil', {'injectRejuvenators' : 10}, !hasOccupant || !beakerVolume ? 'disabled' : null)}} - {{:~link('20', 'pencil', {'injectRejuvenators' : 20}, !hasOccupant || !beakerVolume ? 'disabled' : null)}} - {{:~link('30', 'pencil', {'injectRejuvenators' : 30}, !hasOccupant || !beakerVolume ? 'disabled' : null)}} - {{:~link('50', 'pencil', {'injectRejuvenators' : 50}, !hasOccupant || !beakerVolume ? 'disabled' : null)}} + {{:helper.link('5', 'pencil', {'injectRejuvenators' : 5}, (!data.hasOccupant || !data.beakerVolume) ? 'disabled' : null)}} + {{:helper.link('10', 'pencil', {'injectRejuvenators' : 10}, (!data.hasOccupant || !data.beakerVolume) ? 'disabled' : null)}} + {{:helper.link('20', 'pencil', {'injectRejuvenators' : 20}, (!data.hasOccupant || !data.beakerVolume) ? 'disabled' : null)}} + {{:helper.link('30', 'pencil', {'injectRejuvenators' : 30}, (!data.hasOccupant || !data.beakerVolume) ? 'disabled' : null)}} + {{:helper.link('50', 'pencil', {'injectRejuvenators' : 50}, (!data.hasOccupant || !data.beakerVolume) ? 'disabled' : null)}}
     
    @@ -234,10 +234,10 @@ Used In File(s): D:\Development\SS13-BS12\code\game\dna\dna_modifier.dm Beaker:
    - {{if isBeakerLoaded}} - {{:beakerLabel ? beakerLabel : 'No label'}}
    - {{if beakerVolume}} - {{:beakerVolume}} units remaining
    + {{if data.isBeakerLoaded}} + {{:data.beakerLabel ? data.beakerLabel : 'No label'}}
    + {{if data.beakerVolume}} + {{:data.beakerVolume}} units remaining
    {{else}} Beaker is empty {{/if}} @@ -246,23 +246,23 @@ Used In File(s): D:\Development\SS13-BS12\code\game\dna\dna_modifier.dm {{/if}}
    - {{:~link('Eject Beaker', 'eject', {'ejectBeaker' : 1}, isBeakerLoaded ? null : 'disabled')}} + {{:helper.link('Eject Beaker', 'eject', {'ejectBeaker' : 1}, data.isBeakerLoaded ? null : 'disabled')}}
    {{/if}}
     
    -{{if !selectedMenuKey || selectedMenuKey == 'ui' || selectedMenuKey == 'se'}} +{{if !data.selectedMenuKey || data.selectedMenuKey == 'ui' || data.selectedMenuKey == 'se'}}

    Radiation Emitter Settings

    Intensity:
    - {{:~link('-', null, {'radiationIntensity' : 0}, radiationIntensity > 1 ? null : 'disabled')}} -
     {{:radiationIntensity}} 
    - {{:~link('+', null, {'radiationIntensity' : 1}, radiationIntensity < 10 ? null : 'disabled')}} + {{:helper.link('-', null, {'radiationIntensity' : 0}, (data.radiationIntensity > 1) ? null : 'disabled')}} +
     {{:data.radiationIntensity}} 
    + {{:helper.link('+', null, {'radiationIntensity' : 1}, (data.radiationIntensity < 10) ? null : 'disabled')}}
    @@ -270,9 +270,9 @@ Used In File(s): D:\Development\SS13-BS12\code\game\dna\dna_modifier.dm Duration:
    - {{:~link('-', null, {'radiationDuration' : 0}, radiationDuration > 2 ? null : 'disabled')}} -
     {{:radiationDuration}} 
    - {{:~link('+', null, {'radiationDuration' : 1}, radiationDuration < 20 ? null : 'disabled')}} + {{:helper.link('-', null, {'radiationDuration' : 0}, (data.radiationDuration > 2) ? null : 'disabled')}} +
     {{:data.radiationDuration}} 
    + {{:helper.link('+', null, {'radiationDuration' : 1}, (data.radiationDuration < 20) ? null : 'disabled')}}
    @@ -280,7 +280,7 @@ Used In File(s): D:\Development\SS13-BS12\code\game\dna\dna_modifier.dm  
    - {{:~link('Pulse Radiation', 'radiation', {'pulseRadiation' : 1}, !hasOccupant ? 'disabled' : null)}} + {{:helper.link('Pulse Radiation', 'radiation', {'pulseRadiation' : 1}, !data.hasOccupant ? 'disabled' : null)}}
    {{/if}} @@ -294,7 +294,7 @@ Used In File(s): D:\Development\SS13-BS12\code\game\dna\dna_modifier.dm Occupant:
    - {{:~link('Eject Occupant', 'eject', {'ejectOccupant' : 1}, locked || !hasOccupant || irradiating ? 'disabled' : null)}} + {{:helper.link('Eject Occupant', 'eject', {'ejectOccupant' : 1}, data.locked || !data.hasOccupant || data.irradiating ? 'disabled' : null)}}
    @@ -302,16 +302,16 @@ Used In File(s): D:\Development\SS13-BS12\code\game\dna\dna_modifier.dm Door Lock:
    - {{:~link('Engaged', 'locked', {'toggleLock' : 1}, locked ? 'selected' : !hasOccupant ? 'disabled' : null)}} - {{:~link('Disengaged', 'unlocked', {'toggleLock' : 1}, !locked ? 'selected' : irradiating ? 'disabled' : null)}} + {{:helper.link('Engaged', 'locked', {'toggleLock' : 1}, data.locked ? 'selected' : !data.hasOccupant ? 'disabled' : null)}} + {{:helper.link('Disengaged', 'unlocked', {'toggleLock' : 1}, !data.locked ? 'selected' : data.irradiating ? 'disabled' : null)}}
    -{{if irradiating}} +{{if data.irradiating}}

    Irradiating Subject

    -

    For {{:irradiating}} seconds.

    +

    For {{:data.irradiating}} seconds.

    {{/if}} diff --git a/nano/templates/docking_airlock_console.tmpl b/nano/templates/docking_airlock_console.tmpl index b19d13a3a6d..4c4a65f86c6 100644 --- a/nano/templates/docking_airlock_console.tmpl +++ b/nano/templates/docking_airlock_console.tmpl @@ -3,53 +3,53 @@
    Docking Port Status:
    - {{if docking_status == "docked"}} + {{if data.docking_status == "docked"}}
    - {{if !override_enabled}} + {{if !data.override_enabled}} DOCKED {{else}} DOCKED-OVERRIDE ENABLED {{/if}} - {{:~link('Override', 'alert', {'command' : 'toggle_override'}, null, override_enabled ? 'redBackground' : null)}} + {{:helper.link('Override', 'alert', {'command' : 'toggle_override'}, null, data.override_enabled ? 'redBackground' : null)}}
    - {{else docking_status == "docking"}} + {{else data.docking_status == "docking"}}
    - {{if !override_enabled}} + {{if !data.override_enabled}} DOCKING {{else}} DOCKING-OVERRIDE ENABLED {{/if}} - {{:~link('Override', 'alert', {'command' : 'toggle_override'}, null, override_enabled ? 'redBackground' : null)}} + {{:helper.link('Override', 'alert', {'command' : 'toggle_override'}, null, data.override_enabled ? 'redBackground' : null)}}
    - {{else docking_status == "undocking"}} + {{else data.docking_status == "undocking"}}
    - {{if !override_enabled}} + {{if !data.override_enabled}} UNDOCKING {{else}} UNDOCKING-OVERRIDE ENABLED {{/if}} - {{:~link('Override', 'alert', {'command' : 'toggle_override'}, null, override_enabled ? 'redBackground' : null)}} + {{:helper.link('Override', 'alert', {'command' : 'toggle_override'}, null, data.override_enabled ? 'redBackground' : null)}}
    - {{else docking_status == "undocked"}} + {{else data.docking_status == "undocked"}}
    - {{if !override_enabled}} + {{if !data.override_enabled}} NOT IN USE {{else}} OVERRIDE ENABLED {{/if}} - {{:~link('Override', 'alert', {'command' : 'toggle_override'}, null, override_enabled ? 'redBackground' : null)}} + {{:helper.link('Override', 'alert', {'command' : 'toggle_override'}, null, data.override_enabled ? 'redBackground' : null)}}
    {{else}} ERROR - {{:~link('Override', 'alert', {'command' : 'toggle_override'}, null, override_enabled ? 'redBackground' : null)}} + {{:helper.link('Override', 'alert', {'command' : 'toggle_override'}, null, data.override_enabled ? 'redBackground' : null)}} {{/if}} @@ -59,9 +59,9 @@ Chamber Pressure:
    - {{:~displayBar(chamber_pressure, 0, 200, chamber_pressure < 80 || chamber_pressure > 120 ? 'bad' : chamber_pressure < 95 || chamber_pressure > 110 ? 'average' : 'good')}} + {{:helper.displayBar(data.chamber_pressure, 0, 200, (data.chamber_pressure < 80 || data.chamber_pressure > 120) ? 'bad' : (data.chamber_pressure < 95 || data.chamber_pressure > 110) ? 'average' : 'good')}}
    - {{:chamber_pressure}} kPa + {{:data.chamber_pressure}} kPa
    @@ -69,28 +69,28 @@
    - {{:~link('Cycle to Exterior', 'arrowthickstop-1-w', {'command' : 'cycle_ext'}, (processing || airlock_disabled) ? 'disabled' : null)}} - {{:~link('Cycle to Interior', 'arrowthickstop-1-e', {'command' : 'cycle_int'}, (processing || airlock_disabled) ? 'disabled' : null)}} + {{:helper.link('Cycle to Exterior', 'arrowthickstop-1-w', {'command' : 'cycle_ext'}, (data.processing || data.airlock_disabled) ? 'disabled' : null)}} + {{:helper.link('Cycle to Interior', 'arrowthickstop-1-e', {'command' : 'cycle_int'}, (data.processing || data.airlock_disabled) ? 'disabled' : null)}}
    - {{if airlock_disabled}} - {{:~link('Force exterior door', 'alert', {'command' : 'force_ext'}, 'disabled', null)}} - {{:~link('Force interior door', 'alert', {'command' : 'force_int'}, 'disabled', null)}} + {{if data.airlock_disabled}} + {{:helper.link('Force exterior door', 'alert', {'command' : 'force_ext'}, 'disabled', null)}} + {{:helper.link('Force interior door', 'alert', {'command' : 'force_int'}, 'disabled', null)}} {{else}} - {{if interior_status.state == "open"}} - {{:~link('Force exterior door', 'alert', {'command' : 'force_ext'}, null, 'redBackground')}} + {{if data.interior_status.state == "open"}} + {{:helper.link('Force exterior door', 'alert', {'command' : 'force_ext'}, null, 'redBackground')}} {{else}} - {{:~link('Force exterior door', 'alert', {'command' : 'force_ext'}, null, processing ? 'yellowBackground' : null)}} + {{:helper.link('Force exterior door', 'alert', {'command' : 'force_ext'}, null, data.processing ? 'yellowBackground' : null)}} {{/if}} - {{if exterior_status.state == "open"}} - {{:~link('Force interior door', 'alert', {'command' : 'force_int'}, null, 'redBackground')}} + {{if data.exterior_status.state == "open"}} + {{:helper.link('Force interior door', 'alert', {'command' : 'force_int'}, null, 'redBackground')}} {{else}} - {{:~link('Force interior door', 'alert', {'command' : 'force_int'}, null, processing ? 'yellowBackground' : null)}} + {{:helper.link('Force interior door', 'alert', {'command' : 'force_int'}, null, data.processing ? 'yellowBackground' : null)}} {{/if}} {{/if}}
    - {{:~link('Abort', 'cancel', {'command' : 'abort'}, (processing && !airlock_disabled) ? null : 'disabled', (processing && !airlock_disabled) ? 'redBackground' : null)}} + {{:helper.link('Abort', 'cancel', {'command' : 'abort'}, (data.processing && !data.airlock_disabled) ? null : 'disabled', (data.processing && !data.airlock_disabled) ? 'redBackground' : null)}}
    \ No newline at end of file diff --git a/nano/templates/door_access_console.tmpl b/nano/templates/door_access_console.tmpl index c755d7c806a..2e5c81cb7e5 100644 --- a/nano/templates/door_access_console.tmpl +++ b/nano/templates/door_access_console.tmpl @@ -4,7 +4,7 @@ Exterior Door Status:
    - {{if exterior_status.state == "closed"}} + {{if data.exterior_status.state == "closed"}} Locked {{else}} Open @@ -16,7 +16,7 @@ Interior Door Status:
    - {{if interior_status.state == "closed"}} + {{if data.interior_status.state == "closed"}} Locked {{else}} Open @@ -27,15 +27,15 @@
    - {{if exterior_status.state == "open"}} - {{:~link('Lock Exterior Door', 'alert', {'command' : 'force_ext'}, processing ? 'disabled' : null)}} + {{if data.exterior_status.state == "open"}} + {{:helper.link('Lock Exterior Door', 'alert', {'command' : 'force_ext'}, data.processing ? 'disabled' : null)}} {{else}} - {{:~link('Cycle to Exterior', 'arrowthickstop-1-w', {'command' : 'cycle_ext_door'}, processing ? 'disabled' : null)}} + {{:helper.link('Cycle to Exterior', 'arrowthickstop-1-w', {'command' : 'cycle_ext_door'}, data.processing ? 'disabled' : null)}} {{/if}} - {{if interior_status.state == "open"}} - {{:~link('Lock Interior Door', 'alert', {'command' : 'force_int'}, processing ? 'disabled' : null)}} + {{if data.interior_status.state == "open"}} + {{:helper.link('Lock Interior Door', 'alert', {'command' : 'force_int'}, data.processing ? 'disabled' : null)}} {{else}} - {{:~link('Cycle to Interior', 'arrowthickstop-1-e', {'command' : 'cycle_int_door'}, processing ? 'disabled' : null)}} + {{:helper.link('Cycle to Interior', 'arrowthickstop-1-e', {'command' : 'cycle_int_door'}, data.processing ? 'disabled' : null)}} {{/if}}
    diff --git a/nano/templates/engines_control.tmpl b/nano/templates/engines_control.tmpl index 505150964ac..2e4816a3ac1 100644 --- a/nano/templates/engines_control.tmpl +++ b/nano/templates/engines_control.tmpl @@ -1,17 +1,17 @@
    - {{:~link('Overall status', 'note', {'state' :'status'}, null, state == 'status' ? 'selected' : null)}} - {{:~link('Details', 'note', {'state' : 'engines'}, null, state == 'engines' ? 'selected' : null)}} + {{:helper.link('Overall status', 'note', {'state' :'status'}, null, state == 'status' ? 'selected' : null)}} + {{:helper.link('Details', 'note', {'state' : 'engines'}, null, state == 'engines' ? 'selected' : null)}}
    -{{if state == "engines"}} - {{if engines_info}} - {{for engines_info}} +{{if data.state == "engines"}} + {{if data.engines_info}} + {{for data.engines_info}}
    - Engine #{{:#index + 1}}: + Engine #{{:(index + 1)}}:
    - {{:~link(eng_on ? 'Shutdown' : 'Power up', 'power', { 'toggle' : 1, 'engine' : eng_reference }, null, eng_on ? 'selected' : null)}} + {{:helper.link(value.eng_on ? 'Shutdown' : 'Power up', 'power', { 'toggle' : 1, 'engine' : value.eng_reference }, null, value.eng_on ? 'selected' : null)}}
    @@ -20,7 +20,7 @@ Type:
    - {{:eng_type}} + {{:value.eng_type}}
    @@ -28,8 +28,8 @@ Status:
    - {{:eng_on ? 'Online' : 'Offline'}}
    - {{:eng_status}} + {{:value.eng_on ? 'Online' : 'Offline'}}
    + {{:value.eng_status}}
    @@ -37,7 +37,7 @@ Current thrust:
    - {{:eng_thrust}} + {{:value.eng_thrust}}
    @@ -45,25 +45,25 @@ Thrust limit:
    - {{:~link('', 'circle-plus', { 'limit' : 0.1, 'engine' : eng_reference }, null, null)}} - {{:~link(eng_thrust_limiter+'%', null, { 'set_limit' : 1, 'engine' : eng_reference }, null, null)}} - {{:~link('', 'circle-minus', { 'limit' : -0.1, 'engine' : eng_reference }, null, null)}} + {{:helper.link('', 'circle-plus', { 'limit' : 0.1, 'engine' : value.eng_reference }, null, null)}} + {{:helper.link(value.eng_thrust_limiter+'%', null, { 'set_limit' : 1, 'engine' : value.eng_reference }, null, null)}} + {{:helper.link('', 'circle-minus', { 'limit' : -0.1, 'engine' : value.eng_reference }, null, null)}}
    {{/for}} {{/if}} {{/if}} -{{if state == "status"}} -{{if engines_info}} - {{for engines_info}} +{{if data.state == "status"}} + {{if data.engines_info}} + {{for data.engines_info}}
    - Engine #{{:#index + 1}}: + Engine #{{:(index + 1)}}:
    - {{:~link(eng_on ? 'Shutdown' : 'Power up', 'power', { 'toggle' : 1, 'engine' : eng_reference }, null, eng_on ? 'selected' : null)}} + {{:helper.link(value.eng_on ? 'Shutdown' : 'Power up', 'power', { 'toggle' : 1, 'engine' : value.eng_reference }, null, value.eng_on ? 'selected' : null)}}
    @@ -73,9 +73,9 @@ Thrust limit:
    - {{:eng_thrust}} + {{:value.eng_thrust}}
    - {{:eng_thrust_limiter}}% + {{:value.eng_thrust_limiter}}%
    diff --git a/nano/templates/escape_pod_berth_console.tmpl b/nano/templates/escape_pod_berth_console.tmpl index 756ab7e6568..aedb46bb86a 100644 --- a/nano/templates/escape_pod_berth_console.tmpl +++ b/nano/templates/escape_pod_berth_console.tmpl @@ -4,17 +4,17 @@ Escape Pod Status:
    - {{if docking_status == "docked"}} - {{if armed}} + {{if data.docking_status == "docked"}} + {{if data.armed}} ARMED {{else}} SYSTEMS OK {{/if}} - {{else docking_status == "undocking"}} + {{else data.docking_status == "undocking"}} EJECTING-STAND CLEAR! - {{else docking_status == "undocked"}} + {{else data.docking_status == "undocked"}} POD EJECTED - {{else docking_status == "docking"}} + {{else data.docking_status == "docking"}} INITIALIZING... {{else}} ERROR @@ -25,17 +25,17 @@
    - {{if armed}} - {{if docking_status == "docked"}} - {{:~link('Force exterior door', 'alert', {'command' : 'force_door'}, override_enabled ? null : 'disabled', null)}} - {{:~link('Override', 'alert', {'command' : 'toggle_override'}, null, override_enabled ? 'redBackground' : null)}} + {{if data.armed}} + {{if data.docking_status == "docked"}} + {{:helper.link('Force exterior door', 'alert', {'command' : 'force_door'}, data.override_enabled ? null : 'disabled', null)}} + {{:helper.link('Override', 'alert', {'command' : 'toggle_override'}, null, data.override_enabled ? 'redBackground' : null)}} {{else}} - {{:~link('Force exterior door', 'alert', {'command' : 'force_door'}, override_enabled ? null : 'disabled', override_enabled? 'redBackground' : null)}} - {{:~link('Override', 'alert', {'command' : 'toggle_override'}, null, override_enabled ? 'redBackground' : 'yellowBackground')}} + {{:helper.link('Force exterior door', 'alert', {'command' : 'force_door'}, data.override_enabled ? null : 'disabled', data.override_enabled ? 'redBackground' : null)}} + {{:helper.link('Override', 'alert', {'command' : 'toggle_override'}, null, data.override_enabled ? 'redBackground' : 'yellowBackground')}} {{/if}} {{else}} - {{:~link('Force exterior door', 'alert', {'command' : 'force_door'}, 'disabled', null)}} - {{:~link('Override', 'alert', {'command' : 'toggle_override'}, 'disabled', null)}} + {{:helper.link('Force exterior door', 'alert', {'command' : 'force_door'}, 'disabled', null)}} + {{:helper.link('Override', 'alert', {'command' : 'toggle_override'}, 'disabled', null)}} {{/if}}
    diff --git a/nano/templates/escape_pod_console.tmpl b/nano/templates/escape_pod_console.tmpl index 90346af30ee..977c95ca42d 100644 --- a/nano/templates/escape_pod_console.tmpl +++ b/nano/templates/escape_pod_console.tmpl @@ -4,17 +4,17 @@ Escape Pod Status:
    - {{if docking_status == "docked"}} - {{if is_armed}} + {{if data.docking_status == "docked"}} + {{if data.is_armed}} ARMED {{else}} SYSTEMS OK {{/if}} - {{else docking_status == "undocking"}} + {{else data.docking_status == "undocking"}} EJECTING - {{else docking_status == "undocked"}} + {{else data.docking_status == "undocked"}} POD EJECTED - {{else docking_status == "docking"}} + {{else data.docking_status == "docking"}} DOCKING {{else}} ERROR @@ -28,40 +28,40 @@ Docking Hatch:
    - {{if docking_status == "docked"}} - {{if door_state == "open"}} + {{if data.docking_status == "docked"}} + {{if data.door_state == "open"}} OPEN - {{else door_state == "closed"}} + {{else data.door_state == "closed"}} CLOSED {{else}} ERROR {{/if}} - {{else docking_status == "docking"}} - {{if door_state == "open"}} + {{else data.docking_status == "docking"}} + {{if data.door_state == "open"}} OPEN - {{else door_state == "closed" && door_lock == "locked"}} + {{else data.door_state == "closed" && data.door_lock == "locked"}} SECURED - {{else door_state == "closed" && door_lock == "unlocked"}} + {{else data.door_state == "closed" && data.door_lock == "unlocked"}} UNSECURED {{else}} ERROR {{/if}} - {{else docking_status == "undocking"}} - {{if door_state == "open"}} + {{else data.docking_status == "undocking"}} + {{if data.door_state == "open"}} OPEN - {{else door_state == "closed" && door_lock == "locked"}} + {{else data.door_state == "closed" && data.door_lock == "locked"}} SECURED - {{else door_state == "closed" && door_lock == "unlocked"}} + {{else data.door_state == "closed" && data.door_lock == "unlocked"}} UNSECURED {{else}} ERROR {{/if}} - {{else docking_status == "undocked"}} - {{if door_state == "open"}} + {{else data.docking_status == "undocked"}} + {{if data.door_state == "open"}} OPEN - {{else door_state == "closed" && door_lock == "locked"}} + {{else data.door_state == "closed" && data.door_lock == "locked"}} SECURED - {{else door_state == "closed" && door_lock == "unlocked"}} + {{else data.door_state == "closed" && data.door_lock == "unlocked"}} UNSECURED {{else}} ERROR @@ -75,12 +75,12 @@
    - {{if docking_status == "docked"}} - {{:~link('Force exterior door', 'alert', {'command' : 'force_door'}, override_enabled ? null : 'disabled', null)}} - {{:~link('Override', 'alert', {'command' : 'toggle_override'}, null, override_enabled ? 'redBackground' : null)}} + {{if data.docking_status == "docked"}} + {{:helper.link('Force exterior door', 'alert', {'command' : 'force_door'}, data.override_enabled ? null : 'disabled', null)}} + {{:helper.link('Override', 'alert', {'command' : 'toggle_override'}, null, data.override_enabled ? 'redBackground' : null)}} {{else}} - {{:~link('Force exterior door', 'alert', {'command' : 'force_door'}, override_enabled ? null : 'disabled', override_enabled? 'redBackground' : null)}} - {{:~link('Override', 'alert', {'command' : 'toggle_override'}, null, override_enabled ? 'redBackground' : 'yellowBackground')}} + {{:helper.link('Force exterior door', 'alert', {'command' : 'force_door'}, data.override_enabled ? null : 'disabled', data.override_enabled ? 'redBackground' : null)}} + {{:helper.link('Override', 'alert', {'command' : 'toggle_override'}, null, data.override_enabled ? 'redBackground' : 'yellowBackground')}} {{/if}}
    @@ -88,8 +88,8 @@
    - {{:~link('ARM', 'alert', {'command' : 'manual_arm'}, is_armed ? 'disabled' : null, is_armed ? 'redBackground' : 'yellowBackground')}} - {{:~link('MANUAL EJECT', 'alert', {'command' : 'force_launch'}, can_force ? null : 'disabled', can_force ? 'yellowBackground' : null)}} + {{:helper.link('ARM', 'alert', {'command' : 'manual_arm'}, data.is_armed ? 'disabled' : null, data.is_armed ? 'redBackground' : 'yellowBackground')}} + {{:helper.link('MANUAL EJECT', 'alert', {'command' : 'force_launch'}, data.can_force ? null : 'disabled', data.can_force ? 'yellowBackground' : null)}}
    diff --git a/nano/templates/escape_shuttle_control_console.tmpl b/nano/templates/escape_shuttle_control_console.tmpl index ad2d682ade9..d01f90fcd30 100644 --- a/nano/templates/escape_shuttle_control_console.tmpl +++ b/nano/templates/escape_shuttle_control_console.tmpl @@ -1,7 +1,7 @@

    Shuttle Status

    - {{:shuttle_status}} + {{:data.shuttle_status}}
    @@ -10,11 +10,11 @@ Bluespace Drive:
    - {{if shuttle_state == "idle"}} + {{if data.shuttle_state == "idle"}} IDLE - {{else shuttle_state == "warmup"}} + {{else data.shuttle_state == "warmup"}} SPINNING UP - {{else shuttle_state == "in_transit"}} + {{else data.shuttle_state == "in_transit"}} ENGAGED {{else}} ERROR @@ -22,28 +22,28 @@
    -{{if has_docking}} +{{if data.has_docking}}
    Docking Status:
    - {{if docking_status == "docked"}} + {{if data.docking_status == "docked"}} DOCKED - {{else docking_status == "docking"}} - {{if !docking_override}} + {{else data.docking_status == "docking"}} + {{if !data.docking_override}} DOCKING {{else}} DOCKING-MANUAL {{/if}} - {{else docking_status == "undocking"}} - {{if !docking_override}} + {{else data.docking_status == "undocking"}} + {{if !data.docking_override}} UNDOCKING {{else}} UNDOCKING-MANUAL {{/if}} - {{else docking_status == "undocked"}} + {{else data.docking_status == "undocked"}} UNDOCKED {{else}} ERROR @@ -55,7 +55,7 @@

    Shuttle Authorization

    - {{if has_auth}} + {{if data.has_auth}} Access Granted. Shuttle controls unlocked. {{else}} Additional authorization required. @@ -63,8 +63,8 @@
    - {{for auth_list}} - {{:~link(auth_name, 'eject', {'auth' : auth_hash}, null, 'itemContentWide')}} + {{for data.auth_list}} + {{:helper.link(value.auth_name, 'eject', {'auth' : value.auth_hash}, null, 'itemContentWide')}} {{/for}}
    @@ -72,9 +72,9 @@
    - {{:~link('Launch Shuttle', 'arrowthickstop-1-e', {'move' : '1'}, can_launch? null : 'disabled' , null)}} - {{:~link('Cancel Launch', 'cancel', {'cancel' : '1'}, can_cancel? null : 'disabled' , null)}} - {{:~link('Force Launch', 'alert', {'force' : '1'}, can_force? null : 'disabled' , can_force? 'redBackground' : null)}} + {{:helper.link('Launch Shuttle', 'arrowthickstop-1-e', {'move' : '1'}, data.can_launch ? null : 'disabled' , null)}} + {{:helper.link('Cancel Launch', 'cancel', {'cancel' : '1'}, data.can_cancel ? null : 'disabled' , null)}} + {{:helper.link('Force Launch', 'alert', {'force' : '1'}, data.can_force ? null : 'disabled' , data.can_force ? 'redBackground' : null)}}
    \ No newline at end of file diff --git a/nano/templates/freezer.tmpl b/nano/templates/freezer.tmpl index 9e1c13edaee..d45fa135b6f 100644 --- a/nano/templates/freezer.tmpl +++ b/nano/templates/freezer.tmpl @@ -3,7 +3,7 @@ Status:
    - {{:~link('On', 'power', {'toggleStatus' : 1}, on ? 'selected' : null)}}{{:~link('Off', 'close', {'toggleStatus' : 1}, on ? null : 'selected')}} + {{:helper.link('On', 'power', {'toggleStatus' : 1}, data.on ? 'selected' : null)}}{{:helper.link('Off', 'close', {'toggleStatus' : 1}, data.on ? null : 'selected')}}
    @@ -12,7 +12,7 @@ Gas Pressure:
    - {{:gasPressure}} kPa + {{:data.gasPressure}} kPa
    @@ -22,9 +22,9 @@ Current:
    - {{:~displayBar(gasTemperature, minGasTemperature, maxGasTemperature, gasTemperatureClass)}} + {{:helper.displayBar(data.gasTemperature, data.minGasTemperature, data.maxGasTemperature, data.gasTemperatureClass)}}
    - {{:gasTemperature}} K + {{:data.gasTemperature}} K
    @@ -34,15 +34,15 @@ Target:
    - {{:~displayBar(targetGasTemperature, minGasTemperature, maxGasTemperature)}} + {{:helper.displayBar(data.targetGasTemperature, data.minGasTemperature, data.maxGasTemperature)}}
    - {{:~link('-', null, {'temp' : -100}, (targetGasTemperature > minGasTemperature) ? null : 'disabled')}} - {{:~link('-', null, {'temp' : -10}, (targetGasTemperature > minGasTemperature) ? null : 'disabled')}} - {{:~link('-', null, {'temp' : -1}, (targetGasTemperature > minGasTemperature) ? null : 'disabled')}} -
     {{:targetGasTemperature}} K 
    - {{:~link('+', null, {'temp' : 1}, (targetGasTemperature < maxGasTemperature) ? null : 'disabled')}} - {{:~link('+', null, {'temp' : 10}, (targetGasTemperature < maxGasTemperature) ? null : 'disabled')}} - {{:~link('+', null, {'temp' : 100}, (targetGasTemperature < maxGasTemperature) ? null : 'disabled')}} + {{:helper.link('-', null, {'temp' : -100}, (data.targetGasTemperature > data.minGasTemperature) ? null : 'disabled')}} + {{:helper.link('-', null, {'temp' : -10}, (data.targetGasTemperature > data.minGasTemperature) ? null : 'disabled')}} + {{:helper.link('-', null, {'temp' : -1}, (data.targetGasTemperature > data.minGasTemperature) ? null : 'disabled')}} +
     {{:data.targetGasTemperature}} K 
    + {{:helper.link('+', null, {'temp' : 1}, (data.targetGasTemperature < data.maxGasTemperature) ? null : 'disabled')}} + {{:helper.link('+', null, {'temp' : 10}, (data.targetGasTemperature < data.maxGasTemperature) ? null : 'disabled')}} + {{:helper.link('+', null, {'temp' : 100}, (data.targetGasTemperature < data.maxGasTemperature) ? null : 'disabled')}}
    diff --git a/nano/templates/geoscanner.tmpl b/nano/templates/geoscanner.tmpl index 1f8e1e06003..e928858ad8c 100644 --- a/nano/templates/geoscanner.tmpl +++ b/nano/templates/geoscanner.tmpl @@ -6,10 +6,10 @@ Used In File(s): \code\modules\research\xenoarchaeology\machinery\geosample_scan

    Machine Status

    - {{:~link(scanning ? 'Halt Scan' : 'Begin Scan', 'signal-diag', {'scanItem' : 1}, null)}} + {{:helper.link(data.scanning ? 'Halt Scan' : 'Begin Scan', 'signal-diag', {'scanItem' : 1}, null)}}
    - {{:~link('Eject item', 'eject', {'ejectItem' : 1}, (scanned_item && !scanning) ? null : 'disabled')}} + {{:helper.link('Eject item', 'eject', {'ejectItem' : 1}, (data.scanned_item && !data.scanning) ? null : 'disabled')}}
    @@ -17,8 +17,8 @@ Used In File(s): \code\modules\research\xenoarchaeology\machinery\geosample_scan
    Item:
    - {{if scanned_item}} - {{:scanned_item}} + {{if data.scanned_item}} + {{:data.scanned_item}} {{else}} No item inserted {{/if}} @@ -27,8 +27,8 @@ Used In File(s): \code\modules\research\xenoarchaeology\machinery\geosample_scan
    Heuristic analysis:
    - {{if scanned_item_desc}} - {{:scanned_item_desc}} + {{if data.scanned_item_desc}} + {{:data.scanned_item_desc}} {{/if}}
    @@ -38,11 +38,11 @@ Used In File(s): \code\modules\research\xenoarchaeology\machinery\geosample_scan
    Scan progress:
    - {{:~displayBar(scan_progress, 0, 100, 'good')}} - {{:scan_progress}} % + {{:helper.displayBar(data.scan_progress, 0, 100, 'good')}} + {{:data.scan_progress}} %
    - {{if scan_progress >= 100}} + {{if data.scan_progress >= 100}} Scan completed successfully. {{/if}}
    @@ -50,11 +50,11 @@ Used In File(s): \code\modules\research\xenoarchaeology\machinery\geosample_scan
    Vacuum seal integrity:
    - {{:~displayBar(scanner_seal_integrity, 0, 100, (scanner_seal_integrity < 66 ? (scanner_seal_integrity < 33 ? 'bad' : 'average') : 'good'))}} - {{:scanner_seal_integrity}} % + {{:helper.displayBar(data.scanner_seal_integrity, 0, 100, ((data.scanner_seal_integrity < 66) ? ((data.scanner_seal_integrity < 33) ? 'bad' : 'average') : 'good'))}} + {{:data.scanner_seal_integrity}} %
    - {{if scanner_seal_integrity < 25}} + {{if data.scanner_seal_integrity < 25}} Warning! Vacuum seal breach will result in scan failure! {{/if}}
    @@ -64,11 +64,11 @@ Used In File(s): \code\modules\research\xenoarchaeology\machinery\geosample_scan
    MASER Efficiency:
    - {{:~displayBar(maser_efficiency, 1, 100, (maser_efficiency < 66 ? (maser_efficiency < 33 ? 'bad' : 'average') : 'good'))}} - {{:maser_efficiency}} % + {{:helper.displayBar(data.maser_efficiency, 1, 100, ((data.maser_efficiency < 66) ? ((data.maser_efficiency) < 33 ? 'bad' : 'average') : 'good'))}} + {{:data.maser_efficiency}} %
    - {{if maser_efficiency < 50}} + {{if data.maser_efficiency < 50}} Match wavelengths to progress the scan. {{/if}}
    @@ -76,25 +76,25 @@ Used In File(s): \code\modules\research\xenoarchaeology\machinery\geosample_scan
    Optimal Wavelength:
    - {{:~displayBar(optimal_wavelength, 1, 10000, 'good')}} - {{:optimal_wavelength}} MHz + {{:helper.displayBar(data.optimal_wavelength, 1, 10000, 'good')}} + {{:data.optimal_wavelength}} MHz
    Current Wavelength:
    - {{:~displayBar(maser_wavelength, 1, 10000, 'good')}} - {{:maser_wavelength}} MHz + {{:helper.displayBar(data.maser_wavelength, 1, 10000, 'good')}} + {{:data.maser_wavelength}} MHz
    - {{:~link('-2 GHz', null, {'maserWavelength' : -2}, null)}} - {{:~link('-1 GHz', null, {'maserWavelength' : -1}, null)}} - {{:~link('-0.5 GHz', null, {'maserWavelength' : -0.5}, null)}} + {{:helper.link('-2 GHz', null, {'maserWavelength' : -2}, null)}} + {{:helper.link('-1 GHz', null, {'maserWavelength' : -1}, null)}} + {{:helper.link('-0.5 GHz', null, {'maserWavelength' : -0.5}, null)}}
    - {{:~link('+0.5 GHz', null, {'maserWavelength' : 0.5}, null)}} - {{:~link('+1 GHz', null, {'maserWavelength' : 1}, null)}} - {{:~link('+2 GHz', null, {'maserWavelength' : 2}, null)}} + {{:helper.link('+0.5 GHz', null, {'maserWavelength' : 0.5}, null)}} + {{:helper.link('+1 GHz', null, {'maserWavelength' : 1}, null)}} + {{:helper.link('+2 GHz', null, {'maserWavelength' : 2}, null)}}
    @@ -102,18 +102,18 @@ Used In File(s): \code\modules\research\xenoarchaeology\machinery\geosample_scan
    Centrifuge speed:
    - {{:~displayBar(scanner_rpm, 0, 1000, 'good')}} - {{:scanner_rpm}} RPM + {{:helper.displayBar(data.scanner_rpm, 0, 1000, 'good')}} + {{:data.scanner_rpm}} RPM
    Internal temperature:
    - {{:~displayBar(scanner_temperature, 0, 1273, (scanner_temperature > 250 ? (scanner_temperature > 1000 ? 'bad' : 'average') : 'good')))}} - {{:scanner_temperature}} K + {{:helper.displayBar(data.scanner_temperature, 0, 1273, (data.scanner_temperature > 250 ? (data.scanner_temperature > 1000 ? 'bad' : 'average') : 'good')))}} + {{:data.scanner_temperature}} K
    - {{if scanner_temperature > 1000}} + {{if data.scanner_temperature > 1000}} Warning! Exceeding 1200K will result in scan failure! {{/if}}
    @@ -123,12 +123,12 @@ Used In File(s): \code\modules\research\xenoarchaeology\machinery\geosample_scan
    Ambient radiation:
    - {{:~displayBar(radiation, 0, 100, (radiation > 15 ? (radiation > 65 ? 'bad' : 'average') : 'good'))}} - {{:radiation}} mSv + {{:helper.displayBar(data.radiation, 0, 100, ((data.radiation > 15) ? ((data.radiation > 65) ? 'bad' : 'average') : 'good'))}} + {{:data.radiation}} mSv
    - {{:~link(rad_shield_on ? 'Disable Radiation Shielding' : 'Enable Radiation Shielding', 'radiation', {'toggle_rad_shield' : 1}, null)}} - {{if rad_shield_on}} + {{:helper.link(data.rad_shield_on ? 'Disable Radiation Shielding' : 'Enable Radiation Shielding', 'radiation', {'toggle_rad_shield' : 1}, null)}} + {{if data.rad_shield_on}} Shield blocking scanner. {{/if}}
    @@ -138,11 +138,11 @@ Used In File(s): \code\modules\research\xenoarchaeology\machinery\geosample_scan
    Coolant remaining:
    - {{:~displayBar(unused_coolant_per, 0, 100, (unused_coolant_per < 66 ? (unused_coolant_per < 33 ? 'bad' : 'average') : 'good'))}} - {{:unused_coolant_abs}} u + {{:helper.displayBar(data.unused_coolant_per, 0, 100, ((data.unused_coolant_per < 66) ? ((data.unused_coolant_per < 33) ? 'bad' : 'average') : 'good'))}} + {{:data.unused_coolant_abs}} u
    - {{if unused_coolant_per < 20}} + {{if data.unused_coolant_per < 20}} Warning! Coolant stocks low! {{/if}}
    @@ -150,28 +150,28 @@ Used In File(s): \code\modules\research\xenoarchaeology\machinery\geosample_scan
    Coolant flow rate:
    - {{:~displayBar(coolant_usage_rate, 0, 10, 'good')}} - {{:coolant_usage_rate}} u/s + {{:helper.displayBar(data.coolant_usage_rate, 0, 10, 'good')}} + {{:data.coolant_usage_rate}} u/s
    - {{:~link('Min u/s', null, {'coolantRate' : -10}, null)}} - {{:~link('-3 u/s', null, {'coolantRate' : -3}, null)}} - {{:~link('-1 u/s', null, {'coolantRate' : -1}, null)}} + {{:helper.link('Min u/s', null, {'coolantRate' : -10}, null)}} + {{:helper.link('-3 u/s', null, {'coolantRate' : -3}, null)}} + {{:helper.link('-1 u/s', null, {'coolantRate' : -1}, null)}}
    - {{:~link('+1 u/s', null, {'coolantRate' : 1}, null)}} - {{:~link('+3 u/s', null, {'coolantRate' : 3}, null)}} - {{:~link('Max u/s', null, {'coolantRate' : 10}, null)}} + {{:helper.link('+1 u/s', null, {'coolantRate' : 1}, null)}} + {{:helper.link('+3 u/s', null, {'coolantRate' : 3}, null)}} + {{:helper.link('Max u/s', null, {'coolantRate' : 10}, null)}}
    Coolant purity:
    - {{:~displayBar(coolant_purity, 0, 100, (coolant_purity < 66 ? (coolant_purity < 33 ? 'bad' : 'average') : 'good'))}} - {{:coolant_purity}} % + {{:helper.displayBar(data.coolant_purity, 0, 100, ((data.coolant_purity < 66) ? ((data.coolant_purity < 33) ? 'bad' : 'average') : 'good'))}} + {{:data.coolant_purity}} %
    - {{if coolant_purity < 0.5}} + {{if data.coolant_purity < 0.5}} Warning! Check coolant for contaminants! {{/if}}
    @@ -180,6 +180,6 @@ Used In File(s): \code\modules\research\xenoarchaeology\machinery\geosample_scan

    Latest Results

    - {{:last_scan_data}} + {{:data.last_scan_data}}
    diff --git a/nano/templates/helm.tmpl b/nano/templates/helm.tmpl index 1457d7a3368..9fcee26fb2c 100644 --- a/nano/templates/helm.tmpl +++ b/nano/templates/helm.tmpl @@ -1,17 +1,13 @@ - - - -

    Sector information

    - {{:sector}} + {{:data.sector}}
    - Coordinates: {{:s_x}} : {{:s_y}} + Coordinates: {{:data.s_x}} : {{:data.s_y}}
    - Additional information: {{:s_x}} : {{:s_y}} - {{:sector_info}} + Additional information: {{:data.s_x}} : {{:data.s_y}} + {{:data.sector_info}}
    @@ -23,7 +19,7 @@ Speed:
    - {{:speed}} + {{:data.speed}}
    @@ -31,7 +27,7 @@ Acceleration:
    - {{:accel}} + {{:data.accel}}
    @@ -39,7 +35,7 @@ Heading:
    - {{:heading}} + {{:data.heading}}
    @@ -51,26 +47,26 @@
    - {{:~link('', 'triangle-1-nw', { 'move' : 9 }, null, null)}} - {{:~link('', 'triangle-1-n', { 'move' : 1 }, null, null)}} - {{:~link('', 'triangle-1-ne', { 'move' : 5 }, null, null)}} + {{:helper.link('', 'triangle-1-nw', { 'move' : 9 }, null, null)}} + {{:helper.link('', 'triangle-1-n', { 'move' : 1 }, null, null)}} + {{:helper.link('', 'triangle-1-ne', { 'move' : 5 }, null, null)}}
    - {{:~link('', 'triangle-1-w', { 'move' : 8 }, null, null)}} - {{:~link('', 'circle-close', { 'brake' : 1 }, null, null)}} - {{:~link('', 'triangle-1-e', { 'move' : 4 }, null, null)}} + {{:helper.link('', 'triangle-1-w', { 'move' : 8 }, null, null)}} + {{:helper.link('', 'circle-close', { 'brake' : 1 }, null, null)}} + {{:helper.link('', 'triangle-1-e', { 'move' : 4 }, null, null)}}
    - {{:~link('', 'triangle-1-sw', { 'move' : 10 }, null, null)}} - {{:~link('', 'triangle-1-s', { 'move' : 2 }, null, null)}} - {{:~link('', 'triangle-1-se', { 'move' : 6 }, null, null)}} + {{:helper.link('', 'triangle-1-sw', { 'move' : 10 }, null, null)}} + {{:helper.link('', 'triangle-1-s', { 'move' : 2 }, null, null)}} + {{:helper.link('', 'triangle-1-se', { 'move' : 6 }, null, null)}}
    Direct control - {{:~link(manual_control ? 'Engaged' : 'Disengaged', 'shuffle', { 'manual' : 1 }, manual_control ? 'selected' : null, null)}} + {{:helper.link(data.manual_control ? 'Engaged' : 'Disengaged', 'shuffle', { 'manual' : 1 }, data.manual_control ? 'selected' : null, null)}}
    @@ -81,7 +77,7 @@

    Autopilot

    - {{:~link(autopilot? 'Engaged' : 'Disengaged', 'gear', { 'apilot' : 1 }, dest ? null : 'disabled' , autopilot ? 'selected' : null)}} + {{:helper.link(data.autopilot ? 'Engaged' : 'Disengaged', 'gear', { 'apilot' : 1 }, data.dest ? null : 'disabled', data.autopilot ? 'selected' : null)}}
    @@ -89,30 +85,30 @@ Target coordinates
    - {{if dest}} - {{:~link(d_x, null, { 'setx' : 1 }, null, null)}} {{:~link(d_y, null, { 'sety' : 1 }, null, null)}} + {{if data.dest}} + {{:helper.link(data.d_x, null, { 'setx' : 1 }, null, null)}} {{:helper.link(data.d_y, null, { 'sety' : 1 }, null, null)}} {{else}} - {{:~link('None', null, { 'sety' : 1, 'setx' : 1 }, null, null)}} + {{:helper.link('None', null, { 'sety' : 1, 'setx' : 1 }, null, null)}} {{/if}}

    Navigation data

    - {{:~link('Save current position', 'disk', { 'add' : 'current' }, null)}} - {{:~link('Add new entry', 'document', { 'add' : 'new' }, null)}} + {{:helper.link('Save current position', 'disk', { 'add' : 'current' }, null)}} + {{:helper.link('Add new entry', 'document', { 'add' : 'new' }, null)}}
    - {{if locations}} - {{for locations}} + {{if data.locations}} + {{for data.locations}}
    - {{:name}}: - {{:x}} : {{:y}} + {{:value.name}}: + {{:value.x}} : {{:value.y}}
    - {{:~link('Plot course', 'arrowreturnthick-1-e', { 'x' : x, 'y' : y }, null, null)}} - {{:~link('Remove entry', 'close', { 'remove' : reference }, null, null)}} + {{:helper.link('Plot course', 'arrowreturnthick-1-e', { 'x' : value.x, 'y' : value.y }, null, null)}} + {{:helper.link('Remove entry', 'close', { 'remove' : value.reference }, null, null)}}
    {{/for}} {{/if}} diff --git a/nano/templates/identification_computer.tmpl b/nano/templates/identification_computer.tmpl index 3c52746ce8f..d7635dc9f70 100644 --- a/nano/templates/identification_computer.tmpl +++ b/nano/templates/identification_computer.tmpl @@ -1,4 +1,4 @@ -{{if printing}} +{{if data.printing}}
    The computer is currently busy.
    Printing...
    @@ -7,23 +7,23 @@ Thank you for your patience!

    {{else}} - {{:~link('Access Modification', 'home', {'choice' : 'mode', 'mode_target' : 0}, !mode ? 'disabled' : null)}} - {{:~link('Crew Manifest', 'folder-open', {'choice' : 'mode', 'mode_target' : 1}, mode ? 'disabled' : null)}} - {{:~link('Print', 'print', {'choice' : 'print'}, (mode || has_modify) ? null : 'disabled')}} + {{:helper.link('Access Modification', 'home', {'choice' : 'mode', 'mode_target' : 0}, !data.mode ? 'disabled' : null)}} + {{:helper.link('Crew Manifest', 'folder-open', {'choice' : 'mode', 'mode_target' : 1}, data.mode ? 'disabled' : null)}} + {{:helper.link('Print', 'print', {'choice' : 'print'}, (data.mode || data.has_modify) ? null : 'disabled')}} - {{if mode}} + {{if data.mode}}

    Crew Manifest

    - {{:manifest}} + {{:data.manifest}}
    {{else}}

    Access Modification

    - {{if !authenticated}} + {{if !data.authenticated}} Please insert the IDs into the terminal to proceed.
    {{/if}} @@ -32,7 +32,7 @@ Target Identity:
    - {{:~link(target_name, 'eject', {'choice' : 'modify'})}} + {{:helper.link(data.target_name, 'eject', {'choice' : 'modify'})}}
    @@ -40,12 +40,12 @@ Authorized Identity:
    - {{:~link(scan_name, 'eject', {'choice' : 'scan'})}} + {{:helper.link(data.scan_name, 'eject', {'choice' : 'scan'})}}

    - {{if authenticated}} + {{if data.authenticated}} - {{if has_modify}} + {{if data.has_modify}}

    Details

    -
    +
    - + Registered Name:
    - +
    -
    +
    - + Account Number:
    - +
    @@ -115,7 +115,7 @@ Terminations:
    - {{:~link('Terminate ' + target_owner, 'gear', {'choice' : 'terminate'}, target_rank == "Terminated" ? 'disabled' : null, target_rank == "Terminated" ? 'disabled' : 'linkDanger')}} + {{:helper.link('Terminate ' + data.target_owner, 'gear', {'choice' : 'terminate'}, data.target_rank == "Terminated" ? 'disabled' : null, data.target_rank == "Terminated" ? 'disabled' : 'linkDanger')}}
    @@ -124,12 +124,12 @@
    -
    - {{:~link('Auto', 'refresh', {'cmode' : 1}, chargeMode ? 'selected' : null)}}{{:~link('Off', 'close', {'cmode' : 1}, chargeMode ? null : 'selected')}} + {{:helper.link('Auto', 'refresh', {'cmode' : 1}, data.chargeMode ? 'selected' : null)}}{{:helper.link('Off', 'close', {'cmode' : 1}, data.chargeMode ? null : 'selected')}}   - {{if charging}} + {{if data.charging}} [Charging] {{else}} [Not Charging] @@ -31,12 +31,12 @@ Input Level:
    - {{:~displayBar(chargeLevel, 0, chargeMax)}} + {{:helper.displayBar(data.chargeLevel, 0, data.chargeMax)}}
    - {{:~link('MIN', null, {'input' : 'min'}, (chargeLevel > 0) ? null : 'disabled')}} - {{:~link('SET', null, {'input' : 'set'}, null)}} - {{:~link('MAX', null, {'input' : 'max'}, (chargeLevel < chargeMax) ? null : 'disabled')}} -
     {{:chargeLevel}} W 
    + {{:helper.link('MIN', null, {'input' : 'min'}, (data.chargeLevel > 0) ? null : 'disabled')}} + {{:helper.link('SET', null, {'input' : 'set'}, null)}} + {{:helper.link('MAX', null, {'input' : 'max'}, (data.chargeLevel < data.chargeMax) ? null : 'disabled')}} +
     {{:data.chargeLevel}} W 
    @@ -47,7 +47,7 @@ Output Status:
    - {{:~link('Online', 'power', {'online' : 1}, outputOnline ? 'selected' : null)}}{{:~link('Offline', 'close', {'online' : 1}, outputOnline ? null : 'selected')}} + {{:helper.link('Online', 'power', {'online' : 1}, data.outputOnline ? 'selected' : null)}}{{:helper.link('Offline', 'close', {'online' : 1}, data.outputOnline ? null : 'selected')}}
    @@ -56,12 +56,12 @@ Output Level:
    - {{:~displayBar(outputLevel, 0, outputMax)}} + {{:helper.displayBar(data.outputLevel, 0, data.outputMax)}}
    - {{:~link('MIN', null, {'output' : 'min'}, (outputLevel > 0) ? null : 'disabled')}} - {{:~link('SET', null, {'output' : 'set'}, null)}} - {{:~link('MAX', null, {'output' : 'max'}, (outputLevel < outputMax) ? null : 'disabled')}} -
     {{:outputLevel}} W 
    + {{:helper.link('MIN', null, {'output' : 'min'}, (data.outputLevel > 0) ? null : 'disabled')}} + {{:helper.link('SET', null, {'output' : 'set'}, null)}} + {{:helper.link('MAX', null, {'output' : 'max'}, (data.outputLevel < data.outputMax) ? null : 'disabled')}} +
     {{:data.outputLevel}} W 
    @@ -71,9 +71,9 @@ Output Load:
    - {{:~displayBar(outputLoad, 0, outputMax, (outputLoad < outputLevel) ? 'good' : 'average')}} + {{:helper.displayBar(data.outputLoad, 0, data.outputMax, (data.outputLoad < data.outputLevel) ? 'good' : 'average')}}
    - {{:outputLoad}} W + {{:data.outputLoad}} W
    \ No newline at end of file diff --git a/nano/templates/tanks.tmpl b/nano/templates/tanks.tmpl index af7ab874f64..c9d4e6c335a 100644 --- a/nano/templates/tanks.tmpl +++ b/nano/templates/tanks.tmpl @@ -1,4 +1,4 @@ -{{if maskConnected}} +{{if data.maskConnected}}
    This tank is connected to a mask.
    {{else}}
    This tank is NOT connected to a mask.
    @@ -9,9 +9,9 @@ Tank Pressure:
    - {{:~displayBar(tankPressure, 0, 1013, (tankPressure > 200) ? 'good' : (tankPressure > 100) ? 'average' : 'bad'))}} + {{:helper.displayBar(data.tankPressure, 0, 1013, (data.tankPressure > 200) ? 'good' : ((data.tankPressure > 100) ? 'average' : 'bad'))}}
    - {{:tankPressure}} kPa + {{:data.tankPressure}} kPa
    @@ -23,15 +23,15 @@ Mask Release Pressure:
    - {{:~displayBar(releasePressure, 0, maxReleasePressure, (releasePressure >= 23) ? null : ((releasePressure >= 17) ? 'average' : 'bad'))}} + {{:helper.displayBar(data.releasePressure, 0, data.maxReleasePressure, (data.releasePressure >= 23) ? null : ((data.releasePressure >= 17) ? 'average' : 'bad'))}}
    - {{:~link('-', null, {'dist_p' : -10}, (releasePressure > 0) ? null : 'disabled')}} - {{:~link('-', null, {'dist_p' : -1}, (releasePressure > 0) ? null : 'disabled')}} -
     {{:releasePressure}} kPa 
    - {{:~link('+', null, {'dist_p' : 1}, (releasePressure < maxReleasePressure) ? null : 'disabled')}} - {{:~link('+', null, {'dist_p' : 10}, (releasePressure < maxReleasePressure) ? null : 'disabled')}} - {{:~link('Max', null, {'dist_p' : 'max'}, (releasePressure < maxReleasePressure) ? null : 'disabled')}} - {{:~link('Reset', null, {'dist_p' : 'reset'}, (releasePressure != defaultReleasePressure) ? null : 'disabled')}} + {{:helper.link('-', null, {'dist_p' : -10}, (data.releasePressure > 0) ? null : 'disabled')}} + {{:helper.link('-', null, {'dist_p' : -1}, (data.releasePressure > 0) ? null : 'disabled')}} +
     {{:data.releasePressure}} kPa 
    + {{:helper.link('+', null, {'dist_p' : 1}, (data.releasePressure < data.maxReleasePressure) ? null : 'disabled')}} + {{:helper.link('+', null, {'dist_p' : 10}, (data.releasePressure < data.maxReleasePressure) ? null : 'disabled')}} + {{:helper.link('Max', null, {'dist_p' : 'max'}, (data.releasePressure < data.maxReleasePressure) ? null : 'disabled')}} + {{:helper.link('Reset', null, {'dist_p' : 'reset'}, (data.releasePressure != data.defaultReleasePressure) ? null : 'disabled')}}
    @@ -41,7 +41,7 @@ Mask Release Valve:
    - {{:~link('Open', 'unlocked', {'stat' : 1}, (!maskConnected) ? 'disabled' : (valveOpen ? 'selected' : null))}}{{:~link('Close', 'locked', {'stat' : 1}, valveOpen ? null : 'selected')}} + {{:helper.link('Open', 'unlocked', {'stat' : 1}, (!data.maskConnected) ? 'disabled' : (data.valveOpen ? 'selected' : null))}}{{:helper.link('Close', 'locked', {'stat' : 1}, data.valveOpen ? null : 'selected')}}
    diff --git a/nano/templates/telescience_console.tmpl b/nano/templates/telescience_console.tmpl index bd88dc4586d..4f88267510c 100644 --- a/nano/templates/telescience_console.tmpl +++ b/nano/templates/telescience_console.tmpl @@ -5,16 +5,16 @@ Used In File(s): \code\modules\telesci\telesci_computer.dm
    Coordinates:
    - {{:~link('X: ' + coordx, 'gear', {'setx': 1})}} - {{:~link('Y: ' + coordy, 'gear', {'sety': 1})}} - {{:~link('Z: ' + coordz, 'gear', {'setz': 1})}} + {{:helper.link('X: ' + data.coordx, 'gear', {'setx': 1})}} + {{:helper.link('Y: ' + data.coordy, 'gear', {'sety': 1})}} + {{:helper.link('Z: ' + data.coordz, 'gear', {'setz': 1})}}
    Controls:
    - {{:~link('Send', 'gear', {'send': 1}, null, (coordx != null && coordy != null && coordz != null) ? '' : 'disabled')}} - {{:~link('Receive', 'gear', {'receive': 1}, null, (coordx != null && coordy != null && coordz != null) ? '' : 'disabled')}} - {{:~link('Recalibrate', 'gear', {'recal': 1})}} + {{:helper.link('Send', 'gear', {'send': 1}, null, (data.coordx != null && data.coordy != null && data.coordz != null) ? '' : 'disabled')}} + {{:helper.link('Receive', 'gear', {'receive': 1}, null, (data.coordx != null && data.coordy != null && data.coordz != null) ? '' : 'disabled')}} + {{:helper.link('Recalibrate', 'gear', {'recal': 1})}}
    diff --git a/nano/templates/transfer_valve.tmpl b/nano/templates/transfer_valve.tmpl index 6c5cca62ff0..f8395839994 100644 --- a/nano/templates/transfer_valve.tmpl +++ b/nano/templates/transfer_valve.tmpl @@ -3,12 +3,12 @@ Attachment One:
    - {{if attachmentOne}} - {{:attachmentOne}} + {{if data.attachmentOne}} + {{:data.attachmentOne}} {{else}} None {{/if}} - {{:~link('Remove', 'eject', {'tankone' : 1}, attachmentOne ? null : 'disabled')}} + {{:helper.link('Remove', 'eject', {'tankone' : 1}, data.attachmentOne ? null : 'disabled')}}
    @@ -17,12 +17,12 @@ Attachment Two:
    - {{if attachmentTwo}} - {{:attachmentTwo}} + {{if data.attachmentTwo}} + {{:data.attachmentTwo}} {{else}} None {{/if}} - {{:~link('Remove', 'eject', {'tanktwo' : 1}, attachmentTwo ? null : 'disabled')}} + {{:helper.link('Remove', 'eject', {'tanktwo' : 1}, data.attachmentTwo ? null : 'disabled')}}
    @@ -31,14 +31,14 @@ Valve Attachment:
    - {{if valveAttachment}} - {{:valveAttachment}} + {{if data.valveAttachment}} + {{:data.valveAttachment}} {{else}} None {{/if}} - {{:~link('Remove', 'eject', {'rem_device' : 1}, valveAttachment ? null : 'disabled')}} - {{if valveAttachment}} - {{:~link('View', 'wrench', {'device' : 1})}} + {{:helper.link('Remove', 'eject', {'rem_device' : 1}, data.valveAttachment ? null : 'disabled')}} + {{if data.valveAttachment}} + {{:helper.link('View', 'wrench', {'device' : 1})}} {{/if}}
    @@ -50,7 +50,7 @@ Valve Status:
    - {{:~link('Open', 'unlocked', {'open' : 1}, (!attachmentOne || !attachmentTwo) ? 'disabled' : (valveOpen ? 'selected' : null))}}{{:~link('Close', 'locked', {'open' : 1}, (!attachmentOne || !attachmentTwo) ? 'disabled' : (valveOpen ? null : 'selected'))}} + {{:helper.link('Open', 'unlocked', {'open' : 1}, (!data.attachmentOne || !data.attachmentTwo) ? 'disabled' : (data.valveOpen ? 'selected' : null))}}{{:helper.link('Close', 'locked', {'open' : 1}, (!data.attachmentOne || !data.attachmentTwo) ? 'disabled' : (data.valveOpen ? null : 'selected'))}}
    diff --git a/nano/templates/uplink.tmpl b/nano/templates/uplink.tmpl index 34188899a59..dd92bcd0bea 100644 --- a/nano/templates/uplink.tmpl +++ b/nano/templates/uplink.tmpl @@ -3,44 +3,43 @@ Title: Syndicate Uplink, uses some javascript to change nanoUI up a bit. Used In File(s): \code\game\objects\items\devices\uplinks.dm --> -{{:~syndicateMode()}} -

    {{:welcome}}

    +{{:helper.syndicateMode()}} +

    {{:data.welcome}}


    Functions:
    - {{:~link('Close', 'gear', {'lock' : "1"}, null, 'fixedLeft')}} + {{:helper.link('Close', 'gear', {'lock' : "1"}, null, 'fixedLeft')}}

    -
    - Tele-Crystals: -
    -
    - {{:crystals}} -
    +
    + Tele-Crystals: +
    +
    + {{:data.crystals}} +

    Request items:


    Each item costs a number of tele-crystals as indicated by the number following their name.

    -{{for nano_items}} -
    -

    {{:Category}}

    -
    - {{for items}} -
    - {{:~link( Name, 'gear', {'buy_item' : obj_path, 'cost' : Cost}, Cost > ~root.crystals ? 'disabled' : null, null)}} - {{:Cost}} -
    +{{for data.nano_items}} +
    +

    {{:value.Category}}

    +
    + {{for data.items :itemValue:itemIndex}} +
    + {{:helper.link( itemValue.Name, 'gear', {'buy_item' : itemValue.obj_path, 'cost' : itemValue.Cost}, itemValue.Cost > data.crystals ? 'disabled' : null, null)}} - {{:itemValue.Cost}} +
    {{/for}} -
    - +
    {{/for}}
    - {{:~link('Buy Random (??)' , 'gear', {'buy_item' : 'random'}, null, 'fixedLeftWidest')}} + {{:helper.link('Buy Random (??)' , 'gear', {'buy_item' : 'random'}, null, 'fixedLeftWidest')}}