diff --git a/baystation12.dme b/baystation12.dme index ed845c859c..9ef6c90239 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -14,7 +14,6 @@ #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/ShieldGen" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter" #define FILE_DIR "code/WorkInProgress/Susan" -#define FILE_DIR "code/WorkInProgress/Uristqwerty" #define FILE_DIR "html" #define FILE_DIR "icons" #define FILE_DIR "icons/48x48" @@ -606,6 +605,7 @@ #include "code\game\objects\structures\tables_racks.dm" #include "code\game\objects\structures\tank_dispenser.dm" #include "code\game\objects\structures\target_stake.dm" +#include "code\game\objects\structures\transit_tubes.dm" #include "code\game\objects\structures\watercloset.dm" #include "code\game\objects\structures\windoor_assembly.dm" #include "code\game\objects\structures\window.dm" @@ -1291,7 +1291,6 @@ #include "code\WorkInProgress\Ported\policetape.dm" #include "code\WorkInProgress\SkyMarshal\Ultralight_procs.dm" #include "code\WorkInProgress\Susan\susan_desert_turfs.dm" -#include "code\WorkInProgress\Uristqwerty\transit_tubes.dm" #include "code\WorkInProgress\virus2\analyser.dm" #include "code\WorkInProgress\virus2\antibodies.dm" #include "code\WorkInProgress\virus2\base.dm" diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm index 52ab6d043a..438894ca86 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm @@ -62,6 +62,7 @@ max volume of plasma storeable by the field = the total volume of a number of ti active_power_usage = 500 //multiplied by field strength var/cached_power_avail = 0 directwired = 1 + anchored = 0 var/state = 0 var/locked = 1 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm index 64e9f46535..6d18b71f4c 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm @@ -3,17 +3,19 @@ name = "Fuel Injector" icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi' icon_state = "injector0" + density = 1 - var/state = 2 + anchored = 0 + var/state = 0 var/locked = 0 + req_access = list(access_engine) + var/obj/item/weapon/fuel_assembly/cur_assembly var/fuel_usage = 0.0001 //percentage of available fuel to use per cycle var/id_tag = "One" var/injecting = 0 var/trying_to_swap_fuel = 0 - // - req_access = list(access_engine) - // + use_power = 1 idle_power_usage = 10 active_power_usage = 500 diff --git a/code/WorkInProgress/Uristqwerty/transit_tube.dmi b/code/WorkInProgress/Uristqwerty/transit_tube.dmi deleted file mode 100644 index e708700180..0000000000 Binary files a/code/WorkInProgress/Uristqwerty/transit_tube.dmi and /dev/null differ diff --git a/code/WorkInProgress/Uristqwerty/transit_tubes.dm b/code/WorkInProgress/Uristqwerty/transit_tubes.dm deleted file mode 100644 index 96fffda15a..0000000000 --- a/code/WorkInProgress/Uristqwerty/transit_tubes.dm +++ /dev/null @@ -1,405 +0,0 @@ - -// Basic transit tubes. Straight pieces, curved sections, -// and basic splits/joins (no routing logic). -// Mappers: you can use "Generate Instances from Icon-states" -// to get the different pieces. -/obj/structure/transit_tube - icon = 'transit_tube.dmi' - icon_state = "E-W" - density = 1 - layer = 3.1 - anchored = 1.0 - var/list/tube_dirs = null - var/exit_delay = 2 - var/enter_delay = 1 - - -// A place where tube pods stop, and people can get in or out. -// Mappers: use "Generate Instances from Directions" for this -// one. -/obj/structure/transit_tube/station - icon = 'transit_tube_station.dmi' - icon_state = "closed" - exit_delay = 2 - enter_delay = 3 - var/pod_moving = 0 - var/automatic_launch_time = 100 - - var/const/OPEN_DURATION = 6 - var/const/CLOSE_DURATION = 6 - - - -/obj/structure/transit_tube_pod - icon = 'transit_tube_pod.dmi' - icon_state = "pod" - animate_movement = FORWARD_STEPS - var/moving = 0 - var/datum/gas_mixture/air_contents - - - -/obj/structure/transit_tube/station/New(loc) - ..(loc) - - spawn(automatic_launch_time) - launch_pod() - - -/obj/structure/transit_tube/station/Bumped(mob/AM as mob|obj) - if(!pod_moving && icon_state == "open" && istype(AM, /mob)) - for(var/obj/structure/transit_tube_pod/pod in loc) - if(!pod.moving && pod.dir in directions()) - AM.loc = pod - return - - - -/obj/structure/transit_tube/station/attack_hand(mob/user as mob) - if(!pod_moving) - for(var/obj/structure/transit_tube_pod/pod in loc) - if(!pod.moving && pod.dir in directions()) - if(icon_state == "closed") - open_animation() - - else if(icon_state == "open") - close_animation() - - - -/obj/structure/transit_tube/station/proc/open_animation() - if(icon_state == "closed") - icon_state = "opening" - spawn(OPEN_DURATION) - if(icon_state == "opening") - icon_state = "open" - - - -/obj/structure/transit_tube/station/proc/close_animation() - if(icon_state == "open") - icon_state = "closing" - spawn(CLOSE_DURATION) - if(icon_state == "closing") - icon_state = "closed" - - - -/obj/structure/transit_tube/station/proc/launch_pod() - for(var/obj/structure/transit_tube_pod/pod in loc) - if(!pod.moving && pod.dir in directions()) - spawn(5) - pod_moving = 1 - close_animation() - sleep(CLOSE_DURATION + 2) - if(icon_state == "closed" && pod) - pod.follow_tube() - - pod_moving = 0 - - return - - - -/obj/structure/transit_tube/proc/should_stop_pod(pod, from_dir) - return 0 - - - -/obj/structure/transit_tube/station/should_stop_pod(pod, from_dir) - return 1 - - - -/obj/structure/transit_tube/proc/pod_stopped(pod, from_dir) - return 0 - - - -/obj/structure/transit_tube/station/pod_stopped(obj/structure/transit_tube_pod/pod, from_dir) - pod_moving = 1 - spawn(5) - open_animation() - sleep(OPEN_DURATION + 2) - pod_moving = 0 - pod.mix_air() - - if(automatic_launch_time) - var/const/wait_step = 5 - var/i = 0 - while(i < automatic_launch_time) - sleep(wait_step) - i += wait_step - - if(pod_moving || icon_state != "open") - return - - launch_pod() - - - -// Returns a /list of directions this tube section can -// connect to. -/obj/structure/transit_tube/proc/directions() - return tube_dirs - - - -/obj/structure/transit_tube/proc/has_entrance(from_dir) - from_dir = turn(from_dir, 180) - - for(var/direction in directions()) - if(direction == from_dir) - return 1 - - return 0 - - - -/obj/structure/transit_tube/proc/has_exit(in_dir) - for(var/direction in directions()) - if(direction == in_dir) - return 1 - - return 0 - - - -// Searches for an exit direction within 45 degrees of the -// specified dir. Returns that direction, or 0 if none match. -/obj/structure/transit_tube/proc/get_exit(in_dir) - var/near_dir = 0 - var/in_dir_cw = turn(in_dir, -45) - var/in_dir_ccw = turn(in_dir, 45) - - for(var/direction in directions()) - if(direction == in_dir) - return direction - - else if(direction == in_dir_cw) - near_dir = direction - - else if(direction == in_dir_ccw) - near_dir = direction - - return near_dir - - - -/obj/structure/transit_tube/proc/exit_delay(pod, to_dir) - return exit_delay - -/obj/structure/transit_tube/proc/enter_delay(pod, to_dir) - return enter_delay - - - -/obj/structure/transit_tube_pod/proc/follow_tube() - if(moving) - return - - moving = 1 - - spawn() - var/obj/structure/transit_tube/current_tube = null - var/next_dir - var/next_loc - - for(var/obj/structure/transit_tube/tube in loc) - if(tube.has_exit(dir)) - current_tube = tube - break - - while(current_tube) - next_dir = current_tube.get_exit(dir) - - if(!next_dir) - break - - sleep(current_tube.exit_delay(src, dir)) - next_loc = get_step(loc, next_dir) - - current_tube = null - for(var/obj/structure/transit_tube/tube in next_loc) - if(tube.has_entrance(next_dir)) - current_tube = tube - break - - if(current_tube == null) - dir = next_dir - step(src, dir) - break - - sleep(current_tube.enter_delay(src, next_dir)) - dir = next_dir - loc = next_loc - - if(current_tube && current_tube.should_stop_pod(src, next_dir)) - current_tube.pod_stopped(src, dir) - break - - moving = 0 - - - -// HUGE HACK: Because the pod isn't a mecha, travelling through tubes over space -// won't protect people from space. -// This avoids editing an additional file, so that adding -// tubes to a SS13 codebase is a simple as dropping this code file and the -// required icon files somewhere where BYOND can find them. -/mob/living/carbon/human/handle_environment(datum/gas_mixture/environment) - if(!istype(loc, /obj/structure/transit_tube_pod)) - return ..(environment) - - - -/obj/structure/transit_tube_pod/return_air() - var/datum/gas_mixture/GM = new() - GM.oxygen = MOLES_O2STANDARD * 2 - GM.nitrogen = MOLES_N2STANDARD - GM.temperature = T20C - return GM - -// For now, copying what I found in an unused FEA file (and almost identical in a -// used ZAS file). Means that assume_air and remove_air don't actually alter the -// air contents. -/obj/structure/transit_tube_pod/assume_air(datum/gas_mixture/giver) - return 0 - -/obj/structure/transit_tube_pod/remove_air(amount) - var/oxygen = MOLES_O2STANDARD - var/carbon_dioxide = 0 - var/nitrogen = MOLES_N2STANDARD - var/toxins = 0 - - var/datum/gas_mixture/GM = new() - - var/sum = oxygen + carbon_dioxide + nitrogen + toxins - if(sum>0) - GM.oxygen = (oxygen/sum)*amount - GM.carbon_dioxide = (carbon_dioxide/sum)*amount - GM.nitrogen = (nitrogen/sum)*amount - GM.toxins = (toxins/sum)*amount - - GM.temperature = T20C - GM.update_values() //Needed in ZAS to prevent suffocation. Not present in FEA. Comment/uncomment as nessecary. - - return GM - - - -// Called when a pod arrives at, and before a pod departs from a station, -// giving it a chance to mix its internal air supply with the turf it is -// currently on. -/obj/structure/transit_tube_pod/proc/mix_air() - //Needs to be implemented at some point - - - -// When the player moves, check if the pos is currently stopped at a station. -// if it is, check the direction. If the direction matches the direction of -// the station, try to exit. If the direction matches one of the station's -// tube directions, launch the pod in that direction. -/obj/structure/transit_tube_pod/relaymove(mob/mob, direction) - if(!moving && istype(mob, /mob) && mob.client) - for(var/obj/structure/transit_tube/station/station in loc) - if(!station.pod_moving && (dir in station.directions())) - if(direction == station.dir) - if(station.icon_state == "open") - mob.loc = loc - mob.client.Move(get_step(loc, direction), direction) - - else - station.open_animation() - - else if(direction in station.directions()) - dir = direction - station.launch_pod() - - - -/obj/structure/transit_tube/New(loc) - ..(loc) - - if(tube_dirs == null) - init_dirs() - - - -// Parse the icon_state into a list of directions. -// This means that mappers can use Dream Maker's built in -// "Generate Instances from Icon-states" option to get all -// variations. Additionally, as a separate proc, sub-types -// can handle it more intelligently. -/obj/structure/transit_tube/proc/init_dirs() - tube_dirs = parse_dirs(icon_state) - - if(copytext(icon_state, 1, 3) == "D-") - density = 0 - - - -// Tube station directions are simply 90 to either side of -// the exit. -/obj/structure/transit_tube/station/init_dirs() - tube_dirs = list(turn(dir, 90), turn(dir, -90)) - - - -// Uses a list() to cache return values. Since they should -// never be edited directly, all tubes with a certain -// icon_state can just reference the same list. In theory, -// reduces memory usage, and improves CPU cache usage. -// In reality, I don't know if that is quite how BYOND works, -// but it is probably safer to assume the existence of, and -// rely on, a sufficiently smart compiler/optimizer. -/obj/structure/transit_tube/proc/parse_dirs(text) - var/global/list/direction_table = list() - - if(text in direction_table) - return direction_table[text] - - var/list/split_text = stringsplit(text, "-") - - // If the first token is D, the icon_state represents - // a purely decorative tube, and doesn't actually - // connect to anything. - if(split_text[1] == "D") - direction_table[text] = list() - return null - - var/list/directions = list() - - for(var/text_part in split_text) - var/direction = text2dir_extended(text_part) - - if(direction > 0) - directions += direction - - direction_table[text] = directions - return directions - - - -// A copy of text2dir, extended to accept one and two letter -// directions, and to clearly return 0 otherwise. -/obj/structure/transit_tube/proc/text2dir_extended(direction) - switch(uppertext(direction)) - if("NORTH", "N") - return 1 - if("SOUTH", "S") - return 2 - if("EAST", "E") - return 4 - if("WEST", "W") - return 8 - if("NORTHEAST", "NE") - return 5 - if("NORTHWEST", "NW") - return 9 - if("SOUTHEAST", "SE") - return 6 - if("SOUTHWEST", "SW") - return 10 - else - return 0 \ No newline at end of file diff --git a/code/game/machinery/bees.dm b/code/game/machinery/bees.dm index 68b2838e70..27a317a91a 100644 --- a/code/game/machinery/bees.dm +++ b/code/game/machinery/bees.dm @@ -1,5 +1,5 @@ -/obj/effect/bee +/mob/living/simple_animal/bee name = "bees" icon = 'icons/obj/apiary_bees_etc.dmi' icon_state = "bees1" @@ -11,162 +11,154 @@ var/mob/target_mob var/obj/machinery/apiary/parent pass_flags = PASSGRILLE|PASSTABLE + turns_per_move = 6 + var/obj/machinery/hydroponics/my_hydrotray -/obj/effect/bee/New(loc, var/obj/machinery/apiary/new_parent) +/mob/living/simple_animal/bee/New(loc, var/obj/machinery/apiary/new_parent) ..() - processing_objects.Add(src) parent = new_parent + verbs -= /atom/movable/verb/pull -/obj/effect/bee/Del() - processing_objects.Remove(src) +/mob/living/simple_animal/bee/Del() if(parent) parent.owned_bee_swarms.Remove(src) ..() -/obj/effect/bee/process() +/mob/living/simple_animal/bee/Life() + ..() - //if we're strong enough, sting some people - var/overrun = strength - 5 + feral / 2 - if(prob(max( overrun * 10 + feral * 10, 0))) - var/mob/living/carbon/human/M = locate() in src.loc - if(M) - var/sting_prob = 100 - var/obj/item/clothing/worn_suit = M.wear_suit - var/obj/item/clothing/worn_helmet = M.head - if(worn_suit) - sting_prob -= worn_suit.armor["bio"] - if(worn_helmet) - sting_prob -= worn_helmet.armor["bio"] + if(stat == CONSCIOUS) + //if we're strong enough, sting some people + var/overrun = strength - 5 + feral / 2 + if(prob(max( overrun * 10 + feral * 10, 0))) + var/mob/living/carbon/human/M = pick(range(1,src)) + if(M) + var/sting_prob = 100 + var/obj/item/clothing/worn_suit = M.wear_suit + var/obj/item/clothing/worn_helmet = M.head + if(worn_suit) + sting_prob -= worn_suit.armor["bio"] + if(worn_helmet) + sting_prob -= worn_helmet.armor["bio"] - if( prob(sting_prob) && (M.stat == CONSCIOUS || (M.stat == UNCONSCIOUS && prob(25))) ) - M.apply_damage(overrun / 2 + mut / 2, BRUTE) - M.apply_damage(overrun / 2 + toxic / 2, TOX) - M << "\red You have been stung!" - M.flash_pain() + if( prob(sting_prob) && (M.stat == CONSCIOUS || (M.stat == UNCONSCIOUS && prob(25))) ) + M.apply_damage(overrun / 2 + mut / 2, BRUTE) + M.apply_damage(overrun / 2 + toxic / 2, TOX) + M << "\red You have been stung!" + M.flash_pain() - //if we're chasing someone, get a little bit angry - if(target_mob && prob(10)) - feral++ + //if we're chasing someone, get a little bit angry + if(target_mob && prob(10)) + feral++ - //calm down a little bit - var/move_prob = 40 - if(feral > 0) - if(prob(feral * 10)) - feral -= 1 - else - //if feral is less than 0, we're becalmed by smoke or steam - if(feral < 0) - feral += 1 - - if(target_mob) - target_mob = null - target_turf = null - if(strength > 5) - //calm down and spread out a little - var/obj/effect/bee/B = new(get_turf(pick(orange(src,1)))) - B.strength = rand(1,5) - src.strength -= B.strength - if(src.strength <= 5) - src.icon_state = "bees[src.strength]" - B.icon_state = "bees[B.strength]" - if(src.parent) - B.parent = src.parent - src.parent.owned_bee_swarms.Add(B) - - //make some noise - if(prob(0.5)) - src.visible_message("\blue [pick("Buzzzz.","Hmmmmm.","Bzzz.")]") - - //smoke, water and steam calms us down - var/calming = 0 - var/list/calmers = list(/obj/effect/effect/chem_smoke, /obj/effect/effect/water, /obj/effect/effect/foam, /obj/effect/effect/steam, /obj/effect/mist) - - for(var/this_type in calmers) - var/obj/effect/check_effect = locate() in src.loc - if(check_effect.type == this_type) - calming = 1 - break - - if(calming) + //calm down a little bit if(feral > 0) - src.visible_message("\blue The bees calm down!") - feral = -10 - target_mob = null - target_turf = null - - for(var/obj/effect/bee/B in src.loc) - if(B == src) - continue - - if(feral > 0) - src.strength += B.strength - del(B) - src.icon_state = "bees[src.strength]" - if(strength > 5) - icon_state = "bees_swarm" - else if(prob(10)) - //make the other swarm of bees stronger, then move away - var/total_bees = B.strength + src.strength - if(total_bees < 10) - B.strength = min(5, total_bees) - src.strength = total_bees - B.strength - - B.icon_state = "bees[B.strength]" - if(src.strength <= 0) - del(src) - return - src.icon_state = "bees[B.strength]" - var/turf/simulated/floor/T = get_turf(get_step(src, pick(1,2,4,8))) - density = 1 - if(T.Enter(src, get_turf(src))) - src.loc = T - density = 0 - break - - if(target_mob) - if(target_mob in view(src,7)) - target_turf = get_turf(target_mob) + if(prob(feral * 10)) + feral -= 1 else - for(var/mob/living/carbon/M in view(src,7)) - target_mob = M + //if feral is less than 0, we're becalmed by smoke or steam + if(feral < 0) + feral += 1 + + if(target_mob) + target_mob = null + target_turf = null + if(strength > 5) + //calm down and spread out a little + var/mob/living/simple_animal/bee/B = new(get_turf(pick(orange(src,1)))) + B.strength = rand(1,5) + src.strength -= B.strength + if(src.strength <= 5) + src.icon_state = "bees[src.strength]" + B.icon_state = "bees[B.strength]" + if(src.parent) + B.parent = src.parent + src.parent.owned_bee_swarms.Add(B) + + //make some noise + if(prob(0.5)) + src.visible_message("\blue [pick("Buzzzz.","Hmmmmm.","Bzzz.")]") + + //smoke, water and steam calms us down + var/calming = 0 + var/list/calmers = list(/obj/effect/effect/chem_smoke, \ + /obj/effect/effect/water, \ + /obj/effect/effect/foam, \ + /obj/effect/effect/steam, \ + /obj/effect/mist) + + for(var/this_type in calmers) + var/mob/living/simple_animal/check_effect = locate() in src.loc + if(check_effect.type == this_type) + calming = 1 break - if(target_turf) - var/turf/next_turf = get_step(src.loc, get_dir(src,target_turf)) + if(calming) + if(feral > 0) + src.visible_message("\blue The bees calm down!") + feral = -10 + target_mob = null + target_turf = null + wander = 1 + + for(var/mob/living/simple_animal/bee/B in src.loc) + if(B == src) + continue + + if(feral > 0) + src.strength += B.strength + del(B) + src.icon_state = "bees[src.strength]" + if(strength > 5) + icon_state = "bees_swarm" + else if(prob(10)) + //make the other swarm of bees stronger, then move away + var/total_bees = B.strength + src.strength + if(total_bees < 10) + B.strength = min(5, total_bees) + src.strength = total_bees - B.strength + + B.icon_state = "bees[B.strength]" + if(src.strength <= 0) + del(src) + return + src.icon_state = "bees[B.strength]" + var/turf/simulated/floor/T = get_turf(get_step(src, pick(1,2,4,8))) + density = 1 + if(T.Enter(src, get_turf(src))) + src.loc = T + density = 0 + break + + if(target_mob) + if(target_mob in view(src,7)) + target_turf = get_turf(target_mob) + wander = 0 + else + for(var/mob/living/carbon/M in view(src,7)) + target_mob = M + break + + if(target_turf) + Move(get_step(src, get_dir(src,target_turf))) - //hacky, but w/e - var/old_density = -1 - if(target_mob && get_dist(src, target_mob) <= 1) - old_density = target_mob.density - target_mob.density = 0 - density = 1 - if(next_turf.Enter(src, get_turf(src))) - src.loc = next_turf - density = 0 if(src.loc == target_turf) target_turf = null - if(target_mob && old_density != -1) - target_mob.density = old_density + wander = 1 else //find some flowers, harvest //angry bee swarms don't hang around if(feral > 0) - move_prob = 60 + turns_per_move = rand(1,3) else if(feral < 0) - move_prob = 0 - else - var/obj/machinery/hydroponics/H = locate() in src.loc - if(H) - if(H.planted && !H.dead && H.myseed) - move_prob = 1 - - //chance to wander around - if(prob(move_prob)) - var/turf/simulated/floor/T = get_turf(get_step(src, pick(1,2,4,8))) - density = 1 - if(T.Enter(src, get_turf(src))) - src.loc = T - density = 0 + turns_since_move = 0 + else if(!my_hydrotray || my_hydrotray.loc != src.loc || !my_hydrotray.planted || my_hydrotray.dead || !my_hydrotray.myseed) + var/obj/machinery/hydroponics/my_hydrotray = locate() in src.loc + if(my_hydrotray) + if(my_hydrotray.planted && !my_hydrotray.dead && my_hydrotray.myseed) + turns_per_move = rand(20,50) + else + my_hydrotray = null pixel_x = rand(-12,12) pixel_y = rand(-12,12) diff --git a/code/game/machinery/bees_apiary.dm b/code/game/machinery/bees_apiary.dm index 9bd9a45bfb..982feec1f2 100644 --- a/code/game/machinery/bees_apiary.dm +++ b/code/game/machinery/bees_apiary.dm @@ -22,6 +22,7 @@ var/bees_in_hive = 0 var/list/owned_bee_swarms = list() + var/hydrotray_type = /obj/machinery/hydroponics //overwrite this after it's created if the apiary needs a custom machinery sprite /obj/machinery/apiary/New() @@ -69,7 +70,7 @@ else user << "\blue You begin to dislodge the dead apiary from the tray." if(do_after(user, 50)) - new /obj/machinery/hydroponics(src.loc) + new hydrotray_type(src.loc) new /obj/item/apiary(src.loc) user << "\red You dislodge the apiary from the tray." del(src) @@ -112,11 +113,11 @@ if(swarming > 0) swarming -= 1 if(swarming <= 0) - for(var/obj/effect/bee/B in src.loc) + for(var/mob/living/simple_animal/bee/B in src.loc) bees_in_hive += B.strength del(B) else if(bees_in_hive < 10) - for(var/obj/effect/bee/B in src.loc) + for(var/mob/living/simple_animal/bee/B in src.loc) bees_in_hive += B.strength del(B) @@ -144,7 +145,7 @@ health += max(nutrilevel - 1, round(-health / 2)) bees_in_hive += max(nutrilevel - 1, round(-bees_in_hive / 2)) if(owned_bee_swarms.len) - var/obj/effect/bee/B = pick(owned_bee_swarms) + var/mob/living/simple_animal/bee/B = pick(owned_bee_swarms) B.target_turf = get_turf(src) //clear out some toxins @@ -161,7 +162,7 @@ //make some new bees if(bees_in_hive >= 10 && prob(bees_in_hive * 10)) - var/obj/effect/bee/B = new(get_turf(src), src) + var/mob/living/simple_animal/bee/B = new(get_turf(src), src) owned_bee_swarms.Add(B) B.mut = mut B.toxic = toxic @@ -193,7 +194,7 @@ /obj/machinery/apiary/proc/die() if(owned_bee_swarms.len) - var/obj/effect/bee/B = pick(owned_bee_swarms) + var/mob/living/simple_animal/bee/B = pick(owned_bee_swarms) B.target_turf = get_turf(src) B.strength -= 1 if(B.strength <= 0) @@ -204,7 +205,7 @@ health = 0 /obj/machinery/apiary/proc/angry_swarm(var/mob/M) - for(var/obj/effect/bee/B in owned_bee_swarms) + for(var/mob/living/simple_animal/bee/B in owned_bee_swarms) B.feral = 50 B.target_mob = M @@ -215,7 +216,7 @@ if(bees_in_hive >= 5) spawn_strength = 6 - var/obj/effect/bee/B = new(get_turf(src), src) + var/mob/living/simple_animal/bee/B = new(get_turf(src), src) B.target_mob = M B.strength = spawn_strength B.feral = 5 diff --git a/code/game/machinery/bees_items.dm b/code/game/machinery/bees_items.dm index cbfc2b3bd7..01ed5bfa40 100644 --- a/code/game/machinery/bees_items.dm +++ b/code/game/machinery/bees_items.dm @@ -17,7 +17,7 @@ /obj/item/weapon/bee_net/attack_self(mob/user as mob) var/turf/T = get_step(get_turf(user), user.dir) - for(var/obj/effect/bee/B in T) + for(var/mob/living/simple_animal/bee/B in T) if(B.feral < 0) caught_bees += B.strength del(B) @@ -38,7 +38,7 @@ while(caught_bees > 0) //release a few super massive swarms while(caught_bees > 5) - var/obj/effect/bee/B = new(src.loc) + var/mob/living/simple_animal/bee/B = new(src.loc) B.feral = 5 B.target_mob = M B.strength = 6 @@ -46,7 +46,7 @@ caught_bees -= 6 //what's left over - var/obj/effect/bee/B = new(src.loc) + var/mob/living/simple_animal/bee/B = new(src.loc) B.strength = caught_bees B.icon_state = "bees[B.strength]" B.feral = 5 diff --git a/code/game/machinery/computer/ai_core.dm b/code/game/machinery/computer/ai_core.dm index 939b87aa7f..f24d0ce2b8 100644 --- a/code/game/machinery/computer/ai_core.dm +++ b/code/game/machinery/computer/ai_core.dm @@ -117,7 +117,7 @@ laws.add_inherent_law(M.newFreeFormLaw) usr << "Added a freeform law." - if(istype(P, /obj/item/device/mmi) || istype(P, /obj/item/device/posibrain)) + if(istype(P, /obj/item/device/mmi) || istype(P, /obj/item/device/mmi/posibrain)) if(!P:brainmob) user << "\red Sticking an empty [P] into the frame would sort of defeat the purpose." return diff --git a/code/game/machinery/hydroponics.dm b/code/game/machinery/hydroponics.dm index 265e3aec36..5d187b337c 100644 --- a/code/game/machinery/hydroponics.dm +++ b/code/game/machinery/hydroponics.dm @@ -779,6 +779,7 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob) var/obj/machinery/apiary/A = new(src.loc) A.icon = src.icon A.icon_state = src.icon_state + A.hydrotray_type = src.type del(src) return diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 225318a9b8..d70512148c 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -651,7 +651,7 @@ /obj/mecha/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/device/mmi) || istype(W, /obj/item/device/posibrain)) + if(istype(W, /obj/item/device/mmi) || istype(W, /obj/item/device/mmi/posibrain)) if(mmi_move_inside(W,user)) user << "[src]-MMI interface initialized successfuly" else @@ -1136,7 +1136,7 @@ src.occupant.client.perspective = MOB_PERSPECTIVE */ src.occupant << browse(null, "window=exosuit") - if(istype(mob_container, /obj/item/device/mmi) || istype(mob_container, /obj/item/device/posibrain)) + if(istype(mob_container, /obj/item/device/mmi) || istype(mob_container, /obj/item/device/mmi/posibrain)) var/obj/item/device/mmi/mmi = mob_container if(mmi.brainmob) occupant.loc = mmi diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index 68f57112cb..522ff35af1 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -114,7 +114,8 @@ /obj/effect/spider/spiderling/proc/die() visible_message("[src] dies!") - icon_state = "greenshatter" + new /obj/effect/decal/cleanable/spiderling_remains(src.loc) + del(src) /obj/effect/spider/spiderling/healthcheck() if(health <= 0) @@ -189,6 +190,12 @@ new spawn_type(src.loc) del(src) +/obj/effect/decal/cleanable/spiderling_remains + name = "spiderling remains" + desc = "Green squishy mess." + icon = 'icons/effects/effects.dmi' + icon_state = "greenshatter" + /obj/effect/spider/cocoon name = "cocoon" desc = "Something wrapped in silky spider web" diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 3b5da8c3a1..cc6a5b52f5 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -210,10 +210,12 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use if (!connection) return - Broadcast_Message(connection, new /mob/living/silicon/ai(src,null,null,1), + var/mob/living/silicon/ai/A = new /mob/living/silicon/ai(src, null, null, 1) + Broadcast_Message(connection, A, 0, "*garbled automated announcement*", src, message, from, "Automated Announcement", from, "synthesized voice", - 4, 0, 1) + 4, 0, list(1), 1459) + del(A) return /obj/item/device/radio/talk_into(mob/living/M as mob, message, channel) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 6d8a77549f..f86f38cc83 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -126,9 +126,11 @@ MASS SPECTROMETER if(M.status_flags & FAKEDEATH) OX = fake_oxy > 50 ? "\red Severe oxygen deprivation detected\blue" : "Subject bloodstream oxygen level normal" user.show_message("[OX] | [TX] | [BU] | [BR]") - if (istype(M, /mob/living/carbon/human)) - if(M:virus2 || M:reagents.total_volume > 0) + if (istype(M, /mob/living/carbon)) + if(M:reagents.total_volume > 0) user.show_message(text("\red Warning: Unknown substance detected in subject's blood.")) + if(M:virus2) + user.show_message(text("\red Warning: Unknown pathogen detected in subject's blood.")) if (M.getCloneLoss()) user.show_message("\red Subject appears to have been imperfectly cloned.") for(var/datum/disease/D in M.viruses) diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 62dfb126bf..b410785563 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -161,7 +161,7 @@ else user << "\blue You need to attach a flash to it first!" - if(istype(W, /obj/item/device/mmi) || istype(W, /obj/item/device/posibrain)) + if(istype(W, /obj/item/device/mmi) || istype(W, /obj/item/device/mmi/posibrain)) var/obj/item/device/mmi/M = W if(check_completion()) if(!istype(loc,/turf)) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 38662ddcf5..48c13eb849 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -46,7 +46,7 @@ for(var/obj/effect/dummy/chameleon/AD in src) AD.loc = src.loc - for(var/obj/item/I in src) + for(var/obj/I in src) I.loc = src.loc for(var/mob/M in src) diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 05d8b4241b..0026aa5316 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -175,15 +175,29 @@ redlight = "largemetalr" greenlight = "largemetalg" -/obj/structure/closet/crate/secure/large_reinforced - name = "large crate" +/obj/structure/closet/crate/secure/large/close() + //we can hold up to one large item + var/found = 0 + for(var/obj/structure/S in src.loc) + if(S == src) + continue + if(!S.anchored) + found = 1 + S.loc = src + break + if(!found) + for(var/obj/machinery/M in src.loc) + if(!M.anchored) + M.loc = src + break + ..() + +//fluff variant +/obj/structure/closet/crate/secure/large/reinforced desc = "A hefty, reinforced metal crate with an electronic locking system." - icon = 'icons/obj/storage.dmi' icon_state = "largermetal" icon_opened = "largermetalopen" icon_closed = "largermetal" - redlight = "largemetalr" - greenlight = "largemetalg" /obj/structure/closet/crate/secure desc = "A secure crate." @@ -206,6 +220,23 @@ icon_opened = "largemetalopen" icon_closed = "largemetal" +/obj/structure/closet/crate/large/close() + //we can hold up to one large item + var/found = 0 + for(var/obj/structure/S in src.loc) + if(S == src) + continue + if(!S.anchored) + found = 1 + S.loc = src + break + if(!found) + for(var/obj/machinery/M in src.loc) + if(!M.anchored) + M.loc = src + break + ..() + /obj/structure/closet/crate/hydroponics name = "Hydroponics crate" desc = "All you need to destroy those pesky weeds and pests." diff --git a/code/game/objects/structures/transit_tubes.dm b/code/game/objects/structures/transit_tubes.dm new file mode 100644 index 0000000000..5e85802b1f --- /dev/null +++ b/code/game/objects/structures/transit_tubes.dm @@ -0,0 +1,621 @@ + +// Basic transit tubes. Straight pieces, curved sections, +// and basic splits/joins (no routing logic). +// Mappers: you can use "Generate Instances from Icon-states" +// to get the different pieces. +/obj/structure/transit_tube + icon = 'icons/obj/pipes/transit_tube.dmi' + icon_state = "E-W" + density = 1 + layer = 3.1 + anchored = 1.0 + var/list/tube_dirs = null + var/exit_delay = 2 + var/enter_delay = 1 + + // alldirs in global.dm is the same list of directions, but since + // the specific order matters to get a usable icon_state, it is + // copied here so that, in the unlikely case that alldirs is changed, + // this continues to work. + var/global/list/tube_dir_list = list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST) + + +// A place where tube pods stop, and people can get in or out. +// Mappers: use "Generate Instances from Directions" for this +// one. +/obj/structure/transit_tube/station + icon = 'icons/obj/pipes/transit_tube_station.dmi' + icon_state = "closed" + exit_delay = 2 + enter_delay = 3 + var/pod_moving = 0 + var/automatic_launch_time = 100 + + var/const/OPEN_DURATION = 6 + var/const/CLOSE_DURATION = 6 + + + +/obj/structure/transit_tube_pod + icon = 'icons/obj/pipes/transit_tube_pod.dmi' + icon_state = "pod" + animate_movement = FORWARD_STEPS + anchored = 1.0 + density = 1 + var/moving = 0 + var/datum/gas_mixture/air_contents = new() + + + +/obj/structure/transit_tube_pod/Del() + for(var/atom/movable/AM in contents) + AM.loc = loc + + ..() + + + +// When destroyed by explosions, properly handle contents. +obj/structure/ex_act(severity) + switch(severity) + if(1.0) + for(var/atom/movable/AM in contents) + AM.loc = loc + AM.ex_act(severity++) + + del(src) + return + if(2.0) + if(prob(50)) + for(var/atom/movable/AM in contents) + AM.loc = loc + AM.ex_act(severity++) + + del(src) + return + if(3.0) + return + + + +/obj/structure/transit_tube_pod/New(loc) + ..(loc) + + air_contents.oxygen = MOLES_O2STANDARD * 2 + air_contents.nitrogen = MOLES_N2STANDARD + air_contents.temperature = T20C + + // Give auto tubes time to align before trying to start moving + spawn(5) + follow_tube() + + + +/obj/structure/transit_tube/New(loc) + ..(loc) + + if(tube_dirs == null) + init_dirs() + + + +/obj/structure/transit_tube/station/New(loc) + ..(loc) + + + +/obj/structure/transit_tube/station/Bumped(mob/AM as mob|obj) + if(!pod_moving && icon_state == "open" && istype(AM, /mob)) + for(var/obj/structure/transit_tube_pod/pod in loc) + if(!pod.moving && pod.dir in directions()) + AM.loc = pod + return + + + +/obj/structure/transit_tube/station/attack_hand(mob/user as mob) + if(!pod_moving) + for(var/obj/structure/transit_tube_pod/pod in loc) + if(!pod.moving && pod.dir in directions()) + if(icon_state == "closed") + open_animation() + + else if(icon_state == "open") + close_animation() + + + +/obj/structure/transit_tube/station/proc/open_animation() + if(icon_state == "closed") + icon_state = "opening" + spawn(OPEN_DURATION) + if(icon_state == "opening") + icon_state = "open" + + + +/obj/structure/transit_tube/station/proc/close_animation() + if(icon_state == "open") + icon_state = "closing" + spawn(CLOSE_DURATION) + if(icon_state == "closing") + icon_state = "closed" + + + +/obj/structure/transit_tube/station/proc/launch_pod() + for(var/obj/structure/transit_tube_pod/pod in loc) + if(!pod.moving && pod.dir in directions()) + spawn(5) + pod_moving = 1 + close_animation() + sleep(CLOSE_DURATION + 2) + if(icon_state == "closed" && pod) + pod.follow_tube() + + pod_moving = 0 + + return + + + +// Called to check if a pod should stop upon entering this tube. +/obj/structure/transit_tube/proc/should_stop_pod(pod, from_dir) + return 0 + + + +/obj/structure/transit_tube/station/should_stop_pod(pod, from_dir) + return 1 + + + +// Called when a pod stops in this tube section. +/obj/structure/transit_tube/proc/pod_stopped(pod, from_dir) + return + + + +/obj/structure/transit_tube/station/pod_stopped(obj/structure/transit_tube_pod/pod, from_dir) + pod_moving = 1 + spawn(5) + open_animation() + sleep(OPEN_DURATION + 2) + pod_moving = 0 + pod.mix_air() + + if(automatic_launch_time) + var/const/wait_step = 5 + var/i = 0 + while(i < automatic_launch_time) + sleep(wait_step) + i += wait_step + + if(pod_moving || icon_state != "open") + return + + launch_pod() + + + +// Returns a /list of directions this tube section can connect to. +// Tubes that have some sort of logic or changing direction might +// override it with additional logic. +/obj/structure/transit_tube/proc/directions() + return tube_dirs + + + +/obj/structure/transit_tube/proc/has_entrance(from_dir) + from_dir = turn(from_dir, 180) + + for(var/direction in directions()) + if(direction == from_dir) + return 1 + + return 0 + + + +/obj/structure/transit_tube/proc/has_exit(in_dir) + for(var/direction in directions()) + if(direction == in_dir) + return 1 + + return 0 + + + +// Searches for an exit direction within 45 degrees of the +// specified dir. Returns that direction, or 0 if none match. +/obj/structure/transit_tube/proc/get_exit(in_dir) + var/near_dir = 0 + var/in_dir_cw = turn(in_dir, -45) + var/in_dir_ccw = turn(in_dir, 45) + + for(var/direction in directions()) + if(direction == in_dir) + return direction + + else if(direction == in_dir_cw) + near_dir = direction + + else if(direction == in_dir_ccw) + near_dir = direction + + return near_dir + + + +// Return how many BYOND ticks to wait before entering/exiting +// the tube section. Default action is to return the value of +// a var, which wouldn't need a proc, but it makes it possible +// for later tube types to interact in more interesting ways +// such as being very fast in one direction, but slow in others +/obj/structure/transit_tube/proc/exit_delay(pod, to_dir) + return exit_delay + +/obj/structure/transit_tube/proc/enter_delay(pod, to_dir) + return enter_delay + + + +/obj/structure/transit_tube_pod/proc/follow_tube() + if(moving) + return + + moving = 1 + + spawn() + var/obj/structure/transit_tube/current_tube = null + var/next_dir + var/next_loc + var/last_delay = 0 + var/exit_delay + + for(var/obj/structure/transit_tube/tube in loc) + if(tube.has_exit(dir)) + current_tube = tube + break + + while(current_tube) + next_dir = current_tube.get_exit(dir) + + if(!next_dir) + break + + exit_delay = current_tube.exit_delay(src, dir) + last_delay += exit_delay + + sleep(exit_delay) + + next_loc = get_step(loc, next_dir) + + current_tube = null + for(var/obj/structure/transit_tube/tube in next_loc) + if(tube.has_entrance(next_dir)) + current_tube = tube + break + + if(current_tube == null) + dir = next_dir + Move(get_step(loc, dir)) // Allow collisions when leaving the tubes. + break + + last_delay = current_tube.enter_delay(src, next_dir) + sleep(last_delay) + dir = next_dir + loc = next_loc // When moving from one tube to another, skip collision and such. + density = current_tube.density + + if(current_tube && current_tube.should_stop_pod(src, next_dir)) + current_tube.pod_stopped(src, dir) + break + + density = 1 + + // If the pod is no longer in a tube, move in a line until stopped or slowed to a halt. + // /turf/inertial_drift appears to only work on mobs, and re-implementing some of the + // logic allows a gradual slowdown and eventual stop when passing over non-space turfs. + if(!current_tube && last_delay <= 10) + do + sleep(last_delay) + + if(!istype(loc, /turf/space)) + last_delay++ + + if(last_delay > 10) + break + + while(isturf(loc) && Move(get_step(loc, dir))) + + moving = 0 + + +// Should I return a copy here? If the caller edits or del()s the returned +// datum, there might be problems if I don't... +/obj/structure/transit_tube_pod/return_air() + var/datum/gas_mixture/GM = new() + GM.oxygen = air_contents.oxygen + GM.carbon_dioxide = air_contents.carbon_dioxide + GM.nitrogen = air_contents.nitrogen + GM.toxins = air_contents.toxins + GM.temperature = air_contents.temperature + return GM + +// For now, copying what I found in an unused FEA file (and almost identical in a +// used ZAS file). Means that assume_air and remove_air don't actually alter the +// air contents. +/obj/structure/transit_tube_pod/assume_air(datum/gas_mixture/giver) + return air_contents.merge(giver) + +/obj/structure/transit_tube_pod/remove_air(amount) + return air_contents.remove(amount) + + + +// Called when a pod arrives at, and before a pod departs from a station, +// giving it a chance to mix its internal air supply with the turf it is +// currently on. +/obj/structure/transit_tube_pod/proc/mix_air() + var/datum/gas_mixture/environment = loc.return_air() + var/env_pressure = environment.return_pressure() + var/int_pressure = air_contents.return_pressure() + var/total_pressure = env_pressure + int_pressure + + if(total_pressure == 0) + return + + // Math here: Completely made up, not based on realistic equasions. + // Goal is to balance towards equal pressure, but ensure some gas + // transfer in both directions regardless. + // Feel free to rip this out and replace it with something better, + // I don't really know muhch about how gas transfer rates work in + // SS13. + var/transfer_in = max(0.1, 0.5 * (env_pressure - int_pressure) / total_pressure) + var/transfer_out = max(0.1, 0.3 * (int_pressure - env_pressure) / total_pressure) + + var/datum/gas_mixture/from_env = loc.remove_air(environment.total_moles() * transfer_in) + var/datum/gas_mixture/from_int = air_contents.remove(air_contents.total_moles() * transfer_out) + + loc.assume_air(from_int) + air_contents.merge(from_env) + + + +// When the player moves, check if the pos is currently stopped at a station. +// if it is, check the direction. If the direction matches the direction of +// the station, try to exit. If the direction matches one of the station's +// tube directions, launch the pod in that direction. +/obj/structure/transit_tube_pod/relaymove(mob/mob, direction) + if(istype(mob, /mob) && mob.client) + // If the pod is not in a tube at all, you can get out at any time. + if(!(locate(/obj/structure/transit_tube) in loc)) + mob.loc = loc + mob.client.Move(get_step(loc, direction), direction) + + //if(moving && istype(loc, /turf/space)) + // Todo: If you get out of a moving pod in space, you should move as well. + // Same direction as pod? Direcion you moved? Halfway between? + + if(!moving) + for(var/obj/structure/transit_tube/station/station in loc) + if(dir in station.directions()) + if(!station.pod_moving) + if(direction == station.dir) + if(station.icon_state == "open") + mob.loc = loc + mob.client.Move(get_step(loc, direction), direction) + + else + station.open_animation() + + else if(direction in station.directions()) + dir = direction + station.launch_pod() + return + + for(var/obj/structure/transit_tube/tube in loc) + if(dir in tube.directions()) + if(tube.has_exit(direction)) + dir = direction + return + + + +// Parse the icon_state into a list of directions. +// This means that mappers can use Dream Maker's built in +// "Generate Instances from Icon-states" option to get all +// variations. Additionally, as a separate proc, sub-types +// can handle it more intelligently. +/obj/structure/transit_tube/proc/init_dirs() + if(icon_state == "auto") + // Additional delay, for map loading. + spawn(1) + init_dirs_automatic() + + else + tube_dirs = parse_dirs(icon_state) + + if(copytext(icon_state, 1, 3) == "D-" || findtextEx(icon_state, "Pass")) + density = 0 + + + +// Tube station directions are simply 90 to either side of +// the exit. +/obj/structure/transit_tube/station/init_dirs() + tube_dirs = list(turn(dir, 90), turn(dir, -90)) + + + +// Initialize dirs by searching for tubes that do/might connect +// on nearby turfs. Create corner pieces if nessecary. +// Pick two directions, preferring tubes that already connect +// to loc, or other auto tubes if there aren't enough connections. +/obj/structure/transit_tube/proc/init_dirs_automatic() + var/list/connected = list() + var/list/connected_auto = list() + + for(var/direction in tube_dir_list) + var/location = get_step(loc, direction) + for(var/obj/structure/transit_tube/tube in location) + if(tube.directions() == null && tube.icon_state == "auto") + connected_auto += direction + break + + else if(turn(direction, 180) in tube.directions()) + connected += direction + break + + connected += connected_auto + + tube_dirs = select_automatic_dirs(connected) + + if(length(tube_dirs) == 2 && tube_dir_list.Find(tube_dirs[1]) > tube_dir_list.Find(tube_dirs[2])) + tube_dirs.Swap(1, 2) + + generate_automatic_corners(tube_dirs) + select_automatic_icon_state(tube_dirs) + + + +// Given a list of directions, look a pair that forms a 180 or +// 135 degree angle, and return a list containing the pair. +// If none exist, return list(connected[1], turn(connected[1], 180) +/obj/structure/transit_tube/proc/select_automatic_dirs(connected) + if(length(connected) < 1) + return list() + + for(var/i = 1, i <= length(connected), i++) + for(var/j = i + 1, j <= length(connected), j++) + var/d1 = connected[i] + var/d2 = connected[j] + + if(d1 == turn(d2, 135) || d1 == turn(d2, 180) || d1 == turn(d2, 225)) + return list(d1, d2) + + return list(connected[1], turn(connected[1], 180)) + + + +/obj/structure/transit_tube/proc/select_automatic_icon_state(directions) + if(length(directions) == 2) + icon_state = "[dir2text_short(directions[1])]-[dir2text_short(directions[2])]" + + + +// Look for diagonal directions, generate the decorative corners in each. +/obj/structure/transit_tube/proc/generate_automatic_corners(directions) + for(var/direction in directions) + if(direction == 5 || direction == 6 || direction == 9 || direction == 10) + if(direction & NORTH) + create_automatic_decorative_corner(get_step(loc, NORTH), direction ^ 3) + + else + create_automatic_decorative_corner(get_step(loc, SOUTH), direction ^ 3) + + if(direction & EAST) + create_automatic_decorative_corner(get_step(loc, EAST), direction ^ 12) + + else + create_automatic_decorative_corner(get_step(loc, WEST), direction ^ 12) + + + +// Generate a corner, if one doesn't exist for the direction on the turf. +/obj/structure/transit_tube/proc/create_automatic_decorative_corner(location, direction) + var/state = "D-[dir2text_short(direction)]" + + for(var/obj/structure/transit_tube/tube in location) + if(tube.icon_state == state) + return + + var/obj/structure/transit_tube/tube = new(location) + tube.icon_state = state + tube.init_dirs() + + + +// Uses a list() to cache return values. Since they should +// never be edited directly, all tubes with a certain +// icon_state can just reference the same list. In theory, +// reduces memory usage, and improves CPU cache usage. +// In reality, I don't know if that is quite how BYOND works, +// but it is probably safer to assume the existence of, and +// rely on, a sufficiently smart compiler/optimizer. +/obj/structure/transit_tube/proc/parse_dirs(text) + var/global/list/direction_table = list() + + if(text in direction_table) + return direction_table[text] + + var/list/split_text = stringsplit(text, "-") + + // If the first token is D, the icon_state represents + // a purely decorative tube, and doesn't actually + // connect to anything. + if(split_text[1] == "D") + direction_table[text] = list() + return null + + var/list/directions = list() + + for(var/text_part in split_text) + var/direction = text2dir_extended(text_part) + + if(direction > 0) + directions += direction + + direction_table[text] = directions + return directions + + + +// A copy of text2dir, extended to accept one and two letter +// directions, and to clearly return 0 otherwise. +/obj/structure/transit_tube/proc/text2dir_extended(direction) + switch(uppertext(direction)) + if("NORTH", "N") + return 1 + if("SOUTH", "S") + return 2 + if("EAST", "E") + return 4 + if("WEST", "W") + return 8 + if("NORTHEAST", "NE") + return 5 + if("NORTHWEST", "NW") + return 9 + if("SOUTHEAST", "SE") + return 6 + if("SOUTHWEST", "SW") + return 10 + else + return 0 + + + +// A copy of dir2text, which returns the short one or two letter +// directions used in tube icon states. +/obj/structure/transit_tube/proc/dir2text_short(direction) + switch(direction) + if(1) + return "N" + if(2) + return "S" + if(4) + return "E" + if(8) + return "W" + if(5) + return "NE" + if(6) + return "SE" + if(9) + return "NW" + if(10) + return "SW" + else + return diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 30fe52b562..94c1d350dd 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -350,6 +350,8 @@ commented out in r5061, I left it because of the shroom thingies excavate_find(5, src.finds[1]) else if(prob(50)) src.finds.Remove(src.finds[1]) + if(prob(50)) + artifact_debris() if(do_after(user,P.digspeed)) user << "\blue You finish [P.drill_verb] the rock." @@ -387,9 +389,8 @@ commented out in r5061, I left it because of the shroom thingies B = new(src) if(artifact_find) B.artifact_find = artifact_find - else if(src.excavation_level + P.excavation_amount >= 100) - spawn(0) - artifact_debris() + else if(artifact_find && src.excavation_level + P.excavation_amount >= 100) + artifact_debris(1) gets_drilled(B ? 0 : 1) return @@ -477,13 +478,8 @@ commented out in r5061, I left it because of the shroom thingies for (var/i=0;i[pick("[display_name] crumbles away into dust","[display_name] breaks apart","[display_name] collapses onto itself")].") + src.visible_message("\red[pick("[display_name] crumbles away into dust","[display_name] breaks apart")].") del(X) src.finds.Remove(F) -/turf/simulated/mineral/proc/artifact_debris() +/turf/simulated/mineral/proc/artifact_debris(var/severity = 0) //cael's patented random limited drop componentized loot system! + severity = max(min(severity,1),0) var/materials = 0 var/list/viable_materials = list(1,2,4,8,16,32,64,128,256) - var/num_materials = rand(1,5) + var/num_materials = rand(1,3 + severity*2) for(var/i=0, i 406) for(var/datum/disease/D in viruses) D.cure() + if(virus2) virus2.cure(src) if(!virus2) for(var/obj/effect/decal/cleanable/blood/B in view(1,src)) if(B.virus2 && get_infection_chance()) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 375d175f21..e8d8525e7a 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -126,7 +126,7 @@ Please contact me on #coderbus IRC. ~Carn x var/list/overlays_lying[TOTAL_LAYERS] var/list/overlays_standing[TOTAL_LAYERS] var/previous_damage_appearance // store what the body last looked like, so we only have to update it if something changed - + var/race_icon //UPDATES OVERLAYS FROM OVERLAYS_LYING/OVERLAYS_STANDING //this proc is messy as I was forced to include some old laggy cloaking code to it so that I don't break cloakers @@ -234,24 +234,8 @@ proc/get_damage_icon_part(damage_state, body_part) var/g = "m" if(gender == FEMALE) g = "f" - var/icon/icobase - if(skeleton) - icobase = 'icons/mob/human_races/r_skeleton.dmi' - else if(dna) - switch(dna.mutantrace) - if("tajaran") - icobase = 'icons/mob/human_races/r_tajaran.dmi' - if("lizard") - icobase = 'icons/mob/human_races/r_lizard.dmi' - if("skrell") - icobase = 'icons/mob/human_races/r_skrell.dmi' - else - icobase = 'icons/mob/human_races/r_human.dmi' - else - icobase = 'icons/mob/human_races/r_human.dmi' - if(!skeleton) - stand_icon = new /icon(icobase, "torso_[g][fat?"_fat":""]") + stand_icon = new /icon(race_icon, "torso_[g][fat?"_fat":""]") if(husk) stand_icon.ColorTone(husk_color_mod) else if(hulk) @@ -261,7 +245,7 @@ proc/get_damage_icon_part(damage_state, body_part) else if(plant) stand_icon.ColorTone(plant_color_mod) else - stand_icon = new /icon(icobase, "torso") + stand_icon = new /icon(race_icon, "torso") var/datum/organ/external/head = get_organ("head") var/has_head = 0 @@ -273,16 +257,16 @@ proc/get_damage_icon_part(damage_state, body_part) var/icon/temp if(istype(part, /datum/organ/external/groin)) if(skeleton) - temp = new /icon(icobase, "groin") + temp = new /icon(race_icon, "groin") else - temp = new /icon(icobase, "groin_[g]") + temp = new /icon(race_icon, "groin_[g]") else if(istype(part, /datum/organ/external/head)) if(skeleton) - temp = new /icon(icobase, "head") + temp = new /icon(race_icon, "head") else - temp = new /icon(icobase, "head_[g]") + temp = new /icon(race_icon, "head_[g]") else - temp = new /icon(icobase, "[part.icon_name]") + temp = new /icon(race_icon, "[part.icon_name]") if(part.status & ORGAN_ROBOT) temp.GrayScale() if(part.status & ORGAN_DEAD) @@ -327,7 +311,7 @@ proc/get_damage_icon_part(damage_state, body_part) if(husk) var/icon/mask = new(stand_icon) - var/icon/husk_over = new(icobase,"overlay_husk") + var/icon/husk_over = new(race_icon,"overlay_husk") mask.MapColors(0,0,0,1, 0,0,0,1, 0,0,0,1, 0,0,0,1, 0,0,0,0) husk_over.Blend(mask, ICON_ADD) stand_icon.Blend(husk_over, ICON_OVERLAY) @@ -451,14 +435,30 @@ proc/get_damage_icon_part(damage_state, body_part) // var/g = "m" // if (gender == FEMALE) g = "f" //BS12 EDIT + var/skeleton = (SKELETON in src.mutations) + if(skeleton) + race_icon = 'icons/mob/human_races/r_skeleton.dmi' + else if(dna) + switch(dna.mutantrace) + if("tajaran") + race_icon = 'icons/mob/human_races/r_tajaran.dmi' + if("lizard") + race_icon = 'icons/mob/human_races/r_lizard.dmi' + if("skrell") + race_icon = 'icons/mob/human_races/r_skrell.dmi' + else + race_icon = 'icons/mob/human_races/r_human.dmi' + else + icon = 'icons/mob/human_races/r_human.dmi' + if(dna) switch(dna.mutantrace) - if("lizard","golem","slime","shadow","adamantine") + if("golem","slime","shadow","adamantine") overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace][fat]_[gender]_l") overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace][fat]_[gender]_s") - if("lizard","tajaran","skrell") - overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/species.dmi', "icon_state" = "[dna.mutantrace]_[gender]_l") - overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/species.dmi', "icon_state" = "[dna.mutantrace]_[gender]_s") + // if("lizard","tajaran","skrell") + // overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/species.dmi', "icon_state" = "[dna.mutantrace]_[gender]_l") + // overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/species.dmi', "icon_state" = "[dna.mutantrace]_[gender]_s") if("plant") if(stat == DEAD) //TODO overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace]_d") diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 14fdc2eb1f..45e57a3da7 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -42,6 +42,9 @@ //Disabilities handle_disabilities() + //Virus updates, duh + handle_virus_updates() + //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 @@ -147,6 +150,28 @@ emote("gasp") updatehealth() + proc/handle_virus_updates()//copypaste from mob/carbon/human/life.dm + if(bodytemperature > 406) + for(var/datum/disease/D in viruses) + D.cure() + if(!virus2) + for(var/obj/effect/decal/cleanable/blood/B in view(1,src)) + if(B.virus2 && get_infection_chance()) + infect_virus2(src,B.virus2) + for(var/obj/effect/decal/cleanable/mucus/M in view(1,src)) + if(M.virus2 && get_infection_chance()) + infect_virus2(src,M.virus2) + else + if(isnull(virus2)) // Trying to figure out a runtime error that keeps repeating + CRASH("virus2 nulled before calling activate()") + else + virus2.activate(src) + + // activate may have deleted the virus + if(!virus2) return + + // check if we're immune + if(virus2.antigen & src.antibodies) virus2.dead = 1 proc/breathe() if(reagents) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index b82f7b1d98..5415ba9900 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -194,7 +194,7 @@ /mob/living/silicon/robot/proc/updatename(var/prefix as text) - if(istype(mmi, /obj/item/device/posibrain)) + if(istype(mmi, /obj/item/device/mmi/posibrain)) braintype = "Android" else braintype = "Cyborg" diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index 3958dc5e26..719c9764ce 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -43,7 +43,7 @@ /mob/living/simple_animal/spiderbot/attackby(var/obj/item/O as obj, var/mob/user as mob) - if(istype(O, /obj/item/device/mmi) || istype(O, /obj/item/device/posibrain)) + if(istype(O, /obj/item/device/mmi) || istype(O, /obj/item/device/mmi/posibrain)) var/obj/item/device/mmi/B = O if(src.mmi) //There's already a brain in it. user << "\red There's already a brain in [src]!" @@ -284,14 +284,14 @@ return 0 if(istype(held_item, /obj/item/weapon/grenade)) - visible_message("\red [src] launches the [held_item]!", "\red You launch the [held_item]!", "You hear a skittering noise and a thump!") + visible_message("\red [src] launches \the [held_item]!", "\red You launch \the [held_item]!", "You hear a skittering noise and a thump!") var/obj/item/weapon/grenade/G = held_item G.loc = src.loc G.prime() held_item = null return 1 - visible_message("\blue [src] drops the [held_item]!", "\blue You drop the [held_item]!", "You hear a skittering noise and a soft thump.") + visible_message("\blue [src] drops \the [held_item]!", "\blue You drop \the [held_item]!", "You hear a skittering noise and a soft thump.") held_item.loc = src.loc held_item = null @@ -308,7 +308,7 @@ return -1 if(held_item) - src << "\red You are already holding the [held_item]" + src << "\red You are already holding \the [held_item]" return 1 var/list/items = list() @@ -318,16 +318,14 @@ var/obj/selection = input("Select an item.", "Pickup") in items - items.Cut() if(selection) for(var/obj/item/I in view(1, src)) if(selection == I) held_item = selection selection.loc = src - visible_message("\blue [src] scoops up the [held_item]!", "\blue You grab the [held_item]!", "You hear a skittering noise and a clink.") + visible_message("\blue [src] scoops up \the [held_item]!", "\blue You grab \the [held_item]!", "You hear a skittering noise and a clink.") return held_item - else - src << "\red \The [selection] is too far away." + src << "\red \The [selection] is too far away." src << "\red There is nothing of interest to take." return 0 @@ -335,4 +333,4 @@ /mob/living/simple_animal/spiderbot/examine() ..() if(src.held_item) - usr << "It is carrying \a [src.held_item] \icon[src.held_item]." \ No newline at end of file + usr << "It is carrying \a [src.held_item] \icon[src.held_item]." diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 131711916b..bc25116ae5 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -224,9 +224,11 @@ return "[emote], \"[text]\"" return "says, \"[text]\""; -/mob/living/simple_animal/emote(var/act) +/mob/living/simple_animal/emote(var/act, var/type, var/desc) if(act) if(act == "scream") act = "makes a loud and pained whimper" //ugly hack to stop animals screaming when crushed :P + if(act == "me") //Allow me-emotes. + act = desc if( findtext(act,".",lentext(act)) == 0 && findtext(act,"!",lentext(act)) == 0 && findtext(act,"?",lentext(act)) == 0 ) act = addtext(act,".") //Makes sure all emotes end with a period. for (var/mob/O in viewers(src, null)) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 7402019ad4..1e8dd38692 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -129,7 +129,10 @@ return if(client.prefs.species != "Human") - if(!is_alien_whitelisted(src, client.prefs.species) && config.usealienwhitelist) + + var/S = client.prefs.species + if(S == "Unathi") S = "Soghun" + if(!is_alien_whitelisted(src, S) && config.usealienwhitelist) src << alert("You are currently not whitelisted to play [client.prefs.species].") return 0 @@ -144,7 +147,9 @@ usr << "\blue There is an administrative lock on entering the game!" return - if(!is_alien_whitelisted(src, client.prefs.species) && config.usealienwhitelist) + var/S = client.prefs.species + if(S == "Unathi") S = "Soghun" + if(!is_alien_whitelisted(src, S) && config.usealienwhitelist) src << alert("You are currently not whitelisted to play [client.prefs.species].") return 0 @@ -286,13 +291,9 @@ proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank) if (ticker.current_state == GAME_STATE_PLAYING) var/obj/item/device/radio/intercom/a = new /obj/item/device/radio/intercom(null)// BS12 EDIT Arrivals Announcement Computer, rather than the AI. - - //unlikely for this to be an issue, but just in case - if(istype(character.wear_id, /obj/item/weapon/card/id)) - var/obj/item/weapon/card/id/I = character.wear_id - a.autosay("\"[character.real_name],[I.assignment ? " [I.assignment]," : "" ] has arrived on the station.\"", "Arrivals Announcement Computer") - else - a.autosay("\"[character.real_name], visitor, has arrived on the station.\"", "Arrivals Announcement Computer") + if(character.mind.role_alt_title) + rank = character.mind.role_alt_title + a.autosay("[character.real_name],[rank ? " [rank]," : " visitor," ] has arrived on the station.", "Arrivals Announcement Computer") del(a) proc/LateChoices() @@ -331,15 +332,15 @@ new_character.lastarea = get_area(loc) if(client.prefs.species == "Tajaran") //This is like the worst, but it works, so meh. - Erthilo - if(is_alien_whitelisted(src, "Tajaran") || !config.usealienwhitelist) + if(is_alien_whitelisted(src, "Tajaran"|| !config.usealienwhitelist)) new_character.dna.mutantrace = "tajaran" new_character.tajaran_talk_understand = 1 if(client.prefs.species == "Unathi") - if(is_alien_whitelisted(src, "Soghun") || !config.usealienwhitelist) + if(is_alien_whitelisted(src, "Soghun"|| !config.usealienwhitelist)) new_character.dna.mutantrace = "lizard" new_character.soghun_talk_understand = 1 if(client.prefs.species == "Skrell") - if(is_alien_whitelisted(src, "Skrell") || !config.usealienwhitelist) + if(is_alien_whitelisted(src, "Skrell"|| !config.usealienwhitelist)) new_character.dna.mutantrace = "skrell" new_character.skrell_talk_understand = 1 diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 5c18258954..45a6de87f7 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -135,37 +135,34 @@ datum/preferences var/g = "m" if(gender == FEMALE) g = "f" - if(species == "Tajaran") - preview_icon = new /icon('icons/effects/species.dmi', "tajaran_[g]_s") - preview_icon.Blend(new /icon('icons/effects/species.dmi', "tajtail_s"), ICON_OVERLAY) - else if(species == "Unathi") - preview_icon = new /icon('icons/effects/species.dmi', "lizard_[g]_s") - preview_icon.Blend(new /icon('icons/effects/species.dmi', "sogtail_s"), ICON_OVERLAY) - else if(species == "Skrell") - preview_icon = new /icon('icons/effects/species.dmi', "skrell_[g]_s") - else - preview_icon = new /icon('human.dmi', "torso_[g]_s") - preview_icon.Blend(new /icon('human.dmi', "chest_[g]_s"), ICON_OVERLAY) + var/icon/icobase + switch(species) + if("Tajaran") + icobase = 'icons/mob/human_races/r_tajaran.dmi' + if("Unathi") + icobase = 'icons/mob/human_races/r_lizard.dmi' + if("Skrell") + icobase = 'icons/mob/human_races/r_skrell.dmi' + else + icobase = 'icons/mob/human_races/r_human.dmi' + preview_icon = new /icon(icobase, "torso_[g]") + preview_icon.Blend(new /icon(icobase, "groin_[g]"), ICON_OVERLAY) + preview_icon.Blend(new /icon(icobase, "head_[g]"), ICON_OVERLAY) - if(organ_data["head"] != "amputated") - preview_icon.Blend(new /icon('human.dmi', "head_[g]_s"), ICON_OVERLAY) + for(var/name in list("l_arm","r_arm","l_leg","r_leg","l_foot","r_foot","l_hand","r_hand")) + // make sure the organ is added to the list so it's drawn + if(organ_data[name] == null) + organ_data[name] = null - for(var/name in list("l_arm","r_arm","l_leg","r_leg","l_foot","r_foot","l_hand","r_hand")) - // make sure the organ is added to the list so it's drawn - if(organ_data[name] == null) - organ_data[name] = null + for(var/name in organ_data) + if(organ_data[name] == "amputated") continue - for(var/name in organ_data) - if(organ_data[name] == "amputated") continue + var/icon/temp = new /icon(icobase, "[name]") + if(organ_data[name] == "cyborg") + temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) - var/icon/temp = new /icon('human.dmi', "[name]_s") - if(organ_data[name] == "cyborg") - temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) - - preview_icon.Blend(temp, ICON_OVERLAY) - - preview_icon.Blend(new /icon('human.dmi', "groin_[g]_s"), ICON_OVERLAY) + preview_icon.Blend(temp, ICON_OVERLAY) // Skin tone if(species == "Human") diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm index 6764da2e28..51f17273e3 100644 --- a/code/modules/organs/blood.dm +++ b/code/modules/organs/blood.dm @@ -25,7 +25,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 for(var/datum/reagent/blood/B in vessel.reagent_list) if(B.id == "blood") B.data = list( "donor"=src,"viruses"=null,"blood_DNA"=dna.unique_enzymes,"blood_type"=dna.b_type, \ - "resistances"=null,"trace_chem"=null, "virus2" = null, "antobodies" = null) + "resistances"=null,"trace_chem"=null, "virus2" = null, "antibodies" = null) // Takes care blood loss and regeneration /mob/living/carbon/human/proc/handle_blood() @@ -165,7 +165,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 B.data["donor"] = src if(src.virus2) B.data["virus2"] = src.virus2.getcopy() - B.data["antibodies"] |= src.antibodies + B.data["antibodies"] = src.antibodies B.data["blood_DNA"] = copytext(src.dna.unique_enzymes,1,0) if(src.resistances && src.resistances.len) if(B.data["resistances"]) @@ -176,8 +176,8 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 var/list/temp_chem = list() for(var/datum/reagent/R in src.reagents.reagent_list) - temp_chem += R.name - temp_chem[R.name] = R.volume + temp_chem += R.id + temp_chem[R.id] = R.volume B.data["trace_chem"] = list2params(temp_chem) return B @@ -197,9 +197,16 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 reagents.add_reagent("toxin",amount * 0.5) reagents.update_total() else - vessel.add_reagent("blood", amount) + vessel.add_reagent("blood", amount, injected.data) vessel.update_total() + var/list/chems = list() + chems = params2list(injected.data["trace_chem"]) + for(var/C in chems) + src.reagents.add_reagent(C, (text2num(chems[C]) / 560) * amount)//adds trace chemicals to owner's blood + //world << "added [(text2num(chems[C])/560) * amount] = [text2num(chems[C])]/560*[amount] units of [C] to [src]" //DEBUG + reagents.update_total() + container.reagents.remove_reagent("blood", amount) //Gets human's own blood. diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 2bcd0cfa00..247c380eb2 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -340,6 +340,9 @@ P.pixel_y = rand(-7, 7) P.icon_state = "pill"+pillsprite reagents.trans_to(P,50) + if(src.loaded_pill_bottle) + P.loc = src.loaded_pill_bottle + src.updateUsrDialog() else if (href_list["createbottle"]) if(!condi) var/name = reject_bad_text(input(usr,"Name:","Name your bottle!",reagents.get_master_reagent_name())) diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 08bd8ad3d4..26666f0ecb 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -103,7 +103,7 @@ datum blood - data = new/list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null) + data = new/list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null, "antibodies" = null) name = "Blood" id = "blood" reagent_state = LIQUID @@ -122,11 +122,14 @@ datum M.contract_disease(D) else //injected M.contract_disease(D, 1, 0) - if(self.data && self.data["virus2"]) + if(self.data && self.data["virus2"] && istype(M, /mob/living/carbon))//infecting... if(method == TOUCH) infect_virus2(M,self.data["virus2"]) else infect_virus2(M,self.data["virus2"],1) + if(self.data && self.data["antibodies"] && istype(M, /mob/living/carbon))//... and curing + var/mob/living/carbon/C = M + C.antibodies |= self.data["antibodies"] @@ -1693,6 +1696,13 @@ datum /////////////////////////////////////////////////////////////////////////////////////////////////////////////// + holywater + name = "Holy Water" + id = "holywater" + description = "A ubiquitous chemical substance that is composed of hydrogen and oxygen." + reagent_state = LIQUID + color = "#535E66" // rgb: 83, 94, 102 + nanites name = "Nanomachines" id = "nanites" diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index c20091e4c3..44fd0cf046 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -11,10 +11,12 @@ var/slices_num //Placeholder for effect that trigger on eating that aren't tied to reagents. -/obj/item/weapon/reagent_containers/food/snacks/proc/On_Consume() +/obj/item/weapon/reagent_containers/food/snacks/proc/On_Consume(var/mob/M) if(!usr) return if(!reagents.total_volume) - usr.visible_message("[usr] finishes eating [src].","You finish eating [src].") + if(M == usr) + usr << "You finish eating \the [src]." + usr.visible_message("[usr] finishes eating \the [src].") usr.drop_from_inventory(src) //so icons update :[ if(trash) @@ -90,7 +92,7 @@ else reagents.trans_to(M, reagents.total_volume) bitecount++ - On_Consume() + On_Consume(M) return 1 return 0 diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 45cf1331e9..d491448a18 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -207,15 +207,15 @@ if (target != user && target.getarmor(target_zone, "melee") > 5 && prob(50)) for(var/mob/O in viewers(world.view, user)) - O.show_message(text("\red [user] tries to stab [target] in the [hit_area] with [src.name], but the attack is deflected by armor!"), 1) + O.show_message(text("\red [user] tries to stab [target] in \the [hit_area] with [src.name], but the attack is deflected by armor!"), 1) user.u_equip(src) del(src) return for(var/mob/O in viewers(world.view, user)) - O.show_message(text("\red [user] stabs [target] in the [hit_area] with [src.name]!"), 1) + O.show_message(text("\red [user] stabs [target] in \the [hit_area] with [src.name]!"), 1) - if(affecting.take_damage(7)) + if(affecting.take_damage(3)) target:UpdateDamageIcon() else diff --git a/code/modules/reagents/syringe_gun.dm b/code/modules/reagents/syringe_gun.dm index a724d91ecd..30b1e66658 100644 --- a/code/modules/reagents/syringe_gun.dm +++ b/code/modules/reagents/syringe_gun.dm @@ -22,16 +22,20 @@ usr << "\blue [syringes.len] / [max_syringes] syringes." attackby(obj/item/I as obj, mob/user as mob) - if(istype(I, /obj/item/weapon/reagent_containers/syringe)) - if(syringes.len < max_syringes) - user.drop_item() - I.loc = src - syringes += I - user << "\blue You put the syringe in [src]." - user << "\blue [syringes.len] / [max_syringes] syringes." + var/obj/item/weapon/reagent_containers/syringe/S = I + if(S.mode != 2)//SYRINGE_BROKEN in syringes.dm + if(syringes.len < max_syringes) + user.drop_item() + I.loc = src + syringes += I + user << "\blue You put the syringe in [src]." + user << "\blue [syringes.len] / [max_syringes] syringes." + else + usr << "\red [src] cannot hold more syringes." else - usr << "\red [src] cannot hold more syringes." + usr << "\red This syringe is broken!" + afterattack(obj/target, mob/user , flag) if(!isturf(target.loc) || target == user) return diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_hoverpod.dm b/code/modules/research/xenoarchaeology/artifact/artifact_hoverpod.dm index a21b8181f7..838c26a87c 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact_hoverpod.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact_hoverpod.dm @@ -33,19 +33,19 @@ return 0 //these three procs overriden to play different sounds -/obj/mecha/mechturn(direction) +/obj/mecha/working/hoverpod/mechturn(direction) dir = direction //playsound(src,'sound/machines/hiss.ogg',40,1) return 1 -/obj/mecha/mechstep(direction) +/obj/mecha/working/hoverpod/mechstep(direction) var/result = step(src,direction) if(result) playsound(src,'sound/machines/hiss.ogg',40,1) return result -/obj/mecha/mechsteprand() +/obj/mecha/working/hoverpod/mechsteprand() var/result = step_rand(src) if(result) playsound(src,'sound/machines/hiss.ogg',40,1) diff --git a/code/modules/research/xenoarchaeology/machinery/analysis_base.dm b/code/modules/research/xenoarchaeology/machinery/analysis_base.dm index 2f29eb6a1d..5319102be9 100644 --- a/code/modules/research/xenoarchaeology/machinery/analysis_base.dm +++ b/code/modules/research/xenoarchaeology/machinery/analysis_base.dm @@ -12,7 +12,7 @@ var/target_scan_ticks = 60 var/report_num = 0 var/scan_process = 0 - var/heat_accumulation_rate = 1 + var/heat_accumulation_rate = 0.25 var/temperature = 273 //measured in kelvin, if this exceeds 1200, the machine is damaged and requires repairs //if this exceeds 600 and safety is enabled it will shutdown //temp greater than 600 also requires a safety prompt to initiate scanning diff --git a/code/modules/research/xenoarchaeology/manuals.dm b/code/modules/research/xenoarchaeology/manuals.dm index 84230853d7..ceaa3d036e 100644 --- a/code/modules/research/xenoarchaeology/manuals.dm +++ b/code/modules/research/xenoarchaeology/manuals.dm @@ -312,7 +312,7 @@ the the denser clumps of matter out of the refined sample. This is done by mixing 1 part lithium, 2 parts sodium, 1 part tungsten, 4 parts oxygen.
  • Mix separator with sample - The resulting mixture is very close to the final product, but make sure to extract any leftover reagents and the chemical waste byproduct.
  • -
  • Bring sample to boil - Using a standard bunsen burner, bring the mixture to a boil to vaporise the remaining unwanted matter. Remember +
  • Bring sample to boil - Using a standard bunsen burner, bring the mixture containing at least 5u of DST to a boil to vaporise the remaining unwanted matter. Remember to again clear out any waste byproducts.

  • Contents @@ -411,3 +411,65 @@ "} + +/obj/item/weapon/book/manual/stasis + name = "Cellular suspension, the new Cryogenics?" + icon_state = "stasis" + author = "Elvin Schmidt" + title = "Cellular suspension, the new Cryogenics?" + dat = {" + + + + + +

    Contents

    +
      +
    1. Forward: A replacement for cryosleep?
    2. +
    3. The breakthrough
    4. +
    5. Applying this new principle
    6. +
    +
    +

    Forward: A replacement for cryosleep?

    + The development of rudimentary cryofreezing in the 20th and 21st centuries was hailed as a crank science by some, but many early visionaries recognised the + potential it had to change the way we approach so many fields, such as medicine, therapeutics and space travel. It was breakthroughs in the field in the 22nd and + later centures that turned the procedure from science fiction to science fact, however. Since then, cryogenics has become a hallmark of modern science, and + regarded as one of the great achievements of our era. As with all sciences however, they have their time and are superseded by newer technological miracles when + it is over.
    + Contents + +

    The breakthrough

    + It was in examining the effects of decellerated, blue-space high energy particles when transphased through bluespace that the effects where primarily noticed. + Due to exigent properties of that dimension, transphasing those particles capable of existing in bluespace with high stability levels has the effect of bringing + some of those effects into realspace. Examining the Hoffman emissions in particular, it was discovered that they exhibited a-entropic behaviour, and in what is + now termed the 'Effete Hoffman Principle,' it was found that metastabilising the Hoffman radiation resulted in the effect being applied across other physical + interactions, in particular forces and reactions.
    + Contents + +

    Applying this new principle

    + When combined with an appropriate energy-effect replicate for cryogenics (slowing down biological activity, thus stabilising the organics), the effect is + effectively identical to cryogenics, and while it consumes vastly more power and requires extremely complex equipment, it's (for all intents and purposes) superior + to cryogenics, all that remains is to 'commercialise' the process by enabling cheaper development and mass production.
    + The Effete Hoffman Principle can be tweak-combined with other effects however, for different purposes. A division of PMC Research initially developed the application + in prisons as a literal 'suspension field' where convincts are held immobile in the air, and the use quickly spread to numerous other areas.
    +
    + By examining the material resonance properties of certain strong waveforms when combined with Hoffman radiation, an effect was produced able to reverse energy + transferral through matter, and to slow the effects of gravity. When combined with energy repulse technology, the triple effects compound themselves into a much + stronger field, although all three componenets do slightly different things. High energy researchers assure me of the following key points:
    +
      +
    1. The energy repulsion factor provides a 'shell' capable of weak suspension.
    2. +
    3. The Hoffman emissions nullify energy transferral and other kinetic activity, maintaining stability inside the field.
    4. +
    5. The resonant waveform combines the effects of the above two points, and applies it magnified onto it's synched 'resonance' materials.
    6. +
    + As an interesting aside, a carbon waveform was chosen for the field in prison suspension fields, due to it's resonance with organic matter.
    + Contents + + + + "} diff --git a/code/modules/research/xenoarchaeology/misc.dm b/code/modules/research/xenoarchaeology/misc.dm index 4abd501492..fd2f506330 100644 --- a/code/modules/research/xenoarchaeology/misc.dm +++ b/code/modules/research/xenoarchaeology/misc.dm @@ -53,6 +53,7 @@ new /obj/item/weapon/book/manual/materials_chemistry_analysis(src) new /obj/item/weapon/book/manual/anomaly_testing(src) new /obj/item/weapon/book/manual/anomaly_spectroscopy(src) + new /obj/item/weapon/book/manual/stasis(src) update_icon() //---- Lockers and closets @@ -85,7 +86,6 @@ icon_closed = "toolcloset" icon_opened = "toolclosetopen" - New() ..() sleep(2) @@ -99,10 +99,11 @@ new /obj/item/device/radio/beacon(src) new /obj/item/clothing/glasses/meson(src) new /obj/item/weapon/pickaxe(src) + new /obj/item/device/measuring_tape(src) return //---- Isolation room air alarms /obj/machinery/alarm/isolation name = "Isolation room air control" - req_access = list(access_research) \ No newline at end of file + req_access = list(access_research) diff --git a/code/modules/research/xenoarchaeology/tools/suspension_generator.dm b/code/modules/research/xenoarchaeology/tools/suspension_generator.dm index 40980994ce..36a75826f7 100644 --- a/code/modules/research/xenoarchaeology/tools/suspension_generator.dm +++ b/code/modules/research/xenoarchaeology/tools/suspension_generator.dm @@ -82,13 +82,14 @@ dat += "
    " if(!locked) dat += "Select field mode
    " - dat += "[field_type=="carbon"?"":"" ]Diffracted CO2 laser
    " + dat += "[field_type=="carbon"?"":"" ]Diffracted carbon dioxide laser
    " dat += "[field_type=="nitrogen"?"":"" ]Nitrogen tracer field
    " dat += "[field_type=="potassium"?"":"" ]Potassium refrigerant cloud
    " dat += "[field_type=="mercury"?"":"" ]Mercury dispersion wave
    " dat += "[field_type=="iron"?"":"" ]Iron wafer conduction field
    " dat += "[field_type=="calcium"?"":"" ]Calcium binary deoxidiser
    " - dat += "[field_type=="plasma"?"":"" ]Plasma saturated field
    " + dat += "[field_type=="plasma"?"":"" ]Chlorine diffusion emissions
    " + dat += "[field_type=="plasma"?"":"" ]Plasma saturated field
    " else dat += "
    " dat += "
    " @@ -260,6 +261,9 @@ if("plasma") success = 1 // + if("calcium") + success = 1 + // if("iron") success = 1 for(var/mob/living/silicon/R in T) diff --git a/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm b/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm index 948328d9c8..a850a1dab9 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm @@ -72,6 +72,7 @@ excavation_amount = 5 drill_sound = 'sound/items/Screwdriver.ogg' drill_verb = "delicately picking" + w_class = 2 /obj/item/weapon/pickaxe/six_pick name = "1/1 pick" @@ -118,6 +119,7 @@ "/obj/item/weapon/pickaxe/six_pick",\ "/obj/item/weapon/pickaxe/hand") max_combined_w_class = 20 + max_w_class = 4 use_to_pickup = 1 // for picking up broken bulbs, not that most people will try /obj/item/weapon/storage/box/excavation/New() diff --git a/html/changelog.html b/html/changelog.html index 24c0830c70..3ffcb1b8c1 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -69,6 +69,18 @@ should be listed in the changelog upon commit though. Thanks. --> +
    +

    26.03.2013

    +

    Spamcat updated:

    +
      +
    • Chemmaster now puts pills in pill bottles (if one is inserted).
    • +
    • Stabbing someone with a syringe now deals 3 damage instead of 7 because 7 is like, a crowbar punch.
    • +
    • Lizards can now join mid-round again.
    • +
    • Chemicals in bloodstream will transfer with blood now, so don't get drunk before your blood donation. Viruses and antibodies transfer through blood too.
    • +
    • Virology is working again.
    • +
    +
    +

    March 15th 2013

    Cael_Aislinn updated:

    diff --git a/icons/mob/human_races/r_human.dmi b/icons/mob/human_races/r_human.dmi index 16324b2bee..40d2a6aa60 100644 Binary files a/icons/mob/human_races/r_human.dmi and b/icons/mob/human_races/r_human.dmi differ diff --git a/icons/mob/human_races/r_lizard.dmi b/icons/mob/human_races/r_lizard.dmi index cdd67dd1ed..e8fb53fdac 100644 Binary files a/icons/mob/human_races/r_lizard.dmi and b/icons/mob/human_races/r_lizard.dmi differ diff --git a/icons/mob/human_races/r_skrell.dmi b/icons/mob/human_races/r_skrell.dmi index daf33ee223..9d6713a3cb 100644 Binary files a/icons/mob/human_races/r_skrell.dmi and b/icons/mob/human_races/r_skrell.dmi differ diff --git a/icons/mob/human_races/r_tajaran.dmi b/icons/mob/human_races/r_tajaran.dmi index ad23c0ebcf..7fe00fe9a0 100644 Binary files a/icons/mob/human_races/r_tajaran.dmi and b/icons/mob/human_races/r_tajaran.dmi differ diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index 1f7cecb6e0..08dc71cb1d 100644 Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ diff --git a/icons/obj/pipes/transit_tube.dmi b/icons/obj/pipes/transit_tube.dmi new file mode 100644 index 0000000000..45b2abc3c3 Binary files /dev/null and b/icons/obj/pipes/transit_tube.dmi differ diff --git a/code/WorkInProgress/Uristqwerty/transit_tube_pod.dmi b/icons/obj/pipes/transit_tube_pod.dmi similarity index 100% rename from code/WorkInProgress/Uristqwerty/transit_tube_pod.dmi rename to icons/obj/pipes/transit_tube_pod.dmi diff --git a/code/WorkInProgress/Uristqwerty/transit_tube_station.dmi b/icons/obj/pipes/transit_tube_station.dmi similarity index 100% rename from code/WorkInProgress/Uristqwerty/transit_tube_station.dmi rename to icons/obj/pipes/transit_tube_station.dmi diff --git a/maps/tgstation.2.1.0.0.1.dmm b/maps/tgstation.2.1.0.0.1.dmm index 107f33ab1a..2d612efe9c 100644 --- a/maps/tgstation.2.1.0.0.1.dmm +++ b/maps/tgstation.2.1.0.0.1.dmm @@ -2622,7 +2622,7 @@ "aYv" = (/obj/machinery/turret,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "aYw" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "aYx" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/captain) -"aYy" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/captain) +"aYy" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/captain) "aYz" = (/obj/machinery/light_switch{pixel_y = 28},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/captain) "aYA" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "aYB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/carpet,/area/crew_quarters/captain) @@ -2677,10 +2677,10 @@ "aZy" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "aZz" = (/obj/machinery/ai_slipper{icon_state = "motion0"},/obj/effect/landmark{name = "lightsout"},/obj/machinery/camera/all{c_tag = "AI Chamber"; dir = 1; pixel_x = 12},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "aZA" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"aZB" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai) -"aZC" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"aZD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/wall/r_wall,/area/turret_protected/ai) -"aZE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/crew_quarters/captain) +"aZB" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/captain) +"aZC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/wall/r_wall,/area/turret_protected/ai) +"aZD" = (/obj/machinery/light/small{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"aZE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/captain) "aZF" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "aZG" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/floor/carpet,/area/crew_quarters/captain) "aZH" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/carpet,/area/crew_quarters/captain) @@ -2977,7 +2977,7 @@ "bfm" = (/obj/structure/table,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics RC"; pixel_y = 30},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bfn" = (/obj/machinery/r_n_d/circuit_imprinter,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bfo" = (/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/assembly/robotics) -"bfp" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor/plating,/area/assembly/robotics) +"bfp" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/lawoffice) "bfq" = (/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/toxins/lab) "bfr" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/window/southright{name = "Research and Development Desk"; req_access_txt = "7"},/turf/simulated/floor/plating,/area/toxins/lab) "bfs" = (/obj/machinery/autolathe,/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) @@ -3066,7 +3066,7 @@ "bgX" = (/obj/structure/sign/securearea,/turf/simulated/wall,/area/medical/research{name = "Research Division"}) "bgY" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/clothing/glasses/welding,/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/lab) "bgZ" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/lab) -"bha" = (/obj/structure/table,/obj/item/device/posibrain,/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/lab) +"bha" = (/obj/structure/table,/obj/item/device/mmi/posibrain,/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/lab) "bhb" = (/obj/machinery/camera{c_tag = "Research and Development"; dir = 2; network = list("RD"); pixel_x = 22},/obj/machinery/camera{c_tag = "Research and Development Lab"; dir = 2},/obj/machinery/power/apc{dir = 1; name = "Research Lab APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/toxins/lab) "bhc" = (/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bhd" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) @@ -5105,8 +5105,8 @@ "bUi" = (/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; dir = 1; icon_state = "manifold-c"; level = 2},/obj/machinery/meter,/turf/simulated/wall/r_wall,/area/engine/break_room) "bUj" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/turf/simulated/floor,/area/engine/break_room) "bUk" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/atmos) -"bUl" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; icon_state = "manifold-c"; level = 2},/turf/simulated/floor,/area/atmos) -"bUm" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; icon_state = "manifold-c"; level = 2},/turf/simulated/floor{icon_state = "caution"; dir = 4},/area/atmos) +"bUl" = (/obj/machinery/computer/atmos_alert,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"bUm" = (/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; icon_state = "manifold-c"; level = 2},/turf/simulated/floor{icon_state = "caution"; dir = 4},/area/atmos) "bUn" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/simulated/floor,/area/atmos) "bUo" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos) "bUp" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_on"; name = "Air to External"; on = 1},/turf/simulated/floor,/area/atmos) @@ -5163,7 +5163,7 @@ "bVo" = (/obj/structure/stool,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/camera{c_tag = "Aft Starboard Solar Control"; dir = 4; network = list("SS13")},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "bVp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "bVq" = (/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) -"bVr" = (/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor/plating,/area/maintenance/aft) +"bVr" = (/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/atmospherics/portables_connector{layer = 2},/turf/simulated/floor/plating,/area/maintenance/aft) "bVs" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) "bVt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) "bVu" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) @@ -5317,7 +5317,7 @@ "bYm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bYn" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/embedded_controller/radio/access_controller{exterior_door_tag = "virology_airlock_exterior"; id_tag = "virology_airlock_control"; interior_door_tag = "virology_airlock_interior"; name = "Virology Access Console"; pixel_x = 8; pixel_y = 22},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bYo" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bYp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/power/apc{name = "Virology APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bYp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/power/apc{name = "Virology APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bYq" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bYr" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bYs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) @@ -5574,7 +5574,7 @@ "cdj" = (/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) "cdk" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio2"; 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; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/xenobiology) "cdl" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"cdm" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"cdm" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/folder/white,/turf/simulated/floor/plating,/area/assembly/robotics) "cdn" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/reagentgrinder,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cdo" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cdp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) @@ -5664,8 +5664,8 @@ "ceV" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "ceW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "ceX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"ceY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = -32},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/toxins/xenobiology) -"ceZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/toxins/xenobiology) +"ceY" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/clothing/gloves/latex,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"ceZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{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/toxins/xenobiology) "cfa" = (/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/toxins/xenobiology) "cfb" = (/obj/machinery/power/tracker,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating/airless,/area/solar/port) "cfc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/solar/port) @@ -5690,11 +5690,11 @@ "cfv" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/solar_control,/obj/item/weapon/tracker_electronics,/obj/item/weapon/paper/solar,/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/engine/engine_smes) "cfw" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/simulated/floor,/area/engine/engine_smes) "cfx" = (/obj/structure/table,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/module/power_control,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor,/area/engine/engine_smes) -"cfy" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/obj/machinery/newscaster{pixel_x = -26; pixel_y = 0},/obj/structure/table/reinforced,/obj/item/weapon/cartridge/atmos,/obj/item/weapon/cartridge/engineering{pixel_x = 3},/obj/item/weapon/cartridge/engineering{pixel_x = -3; pixel_y = 2},/obj/item/weapon/cartridge/engineering{pixel_x = 4; pixel_y = 5},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"cfy" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/obj/structure/table/reinforced,/obj/item/weapon/cartridge/atmos,/obj/item/weapon/cartridge/engineering{pixel_x = 3},/obj/item/weapon/cartridge/engineering{pixel_x = -3; pixel_y = 2},/obj/item/weapon/cartridge/engineering{pixel_x = 4; pixel_y = 5},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cfz" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's Desk"; departmentType = 3; name = "Chief Engineer RC"; pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cfA" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 0},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"cfA" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cfB" = (/obj/machinery/door_control{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = 10; pixel_y = 24; req_access_txt = "24"},/obj/machinery/door_control{desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; pixel_x = -10; pixel_y = 24; req_access_txt = "10"},/obj/machinery/door_control{desc = "A remote control-switch for secure storage."; id = "Secure Storage"; name = "Engineering Secure Storage"; pixel_x = 0; pixel_y = 24; req_access_txt = "11"},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cfC" = (/obj/machinery/computer/atmos_alert,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"cfC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/wall/r_wall,/area/crew_quarters/captain) "cfD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/engine/chiefs_office) "cfE" = (/turf/simulated/floor,/area/engine/engineering) "cfF" = (/obj/effect/landmark{name = "lightsout"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/engine/engineering) @@ -5717,7 +5717,7 @@ "cfW" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) "cfX" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/aft) "cfY" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/engine/engineering) -"cfZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 0},/turf/simulated/floor,/area/engine/engineering) +"cfZ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area) "cga" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/engineering) "cgb" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/engine/engineering) "cgc" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) @@ -5918,7 +5918,7 @@ "cjP" = (/obj/structure/closet/radiation,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor{dir = 5; icon_state = "yellow"},/area/engine/engineering) "cjQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/engine/engineering) "cjR" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/engine/engineering) -"cjS" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) +"cjS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/engine/engineering) "cjT" = (/obj/machinery/camera{c_tag = "Engineering Center"; dir = 2; pixel_x = 23},/obj/machinery/light{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) "cjU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) "cjV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/engine/engineering) @@ -5937,7 +5937,7 @@ "cki" = (/turf/simulated/floor/plating,/area/engine/engineering) "ckj" = (/obj/machinery/door/poddoor{id = "Secure Storage"; name = "Secure Storage"},/turf/simulated/floor/plating,/area/engine/engineering) "ckk" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"ckl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 0},/turf/simulated/floor,/area/engine/engineering) +"ckl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/engine/engineering) "ckm" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) "ckn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cko" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/engine/engineering) @@ -5947,7 +5947,7 @@ "cks" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/engine/engineering) "ckt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) "cku" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"ckv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 0},/turf/simulated/floor,/area/engine/engineering) +"ckv" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/engine/engineering) "ckw" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) "ckx" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) "cky" = (/obj/machinery/camera/xray{c_tag = "Engineering Escape Pod"; dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) @@ -8444,39 +8444,39 @@ "dgt" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l (WEST)"; icon_state = "propulsion_l"; dir = 8},/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l (WEST)"; icon_state = "propulsion_l"; dir = 8},/turf/space,/area) "dgu" = (/turf/simulated/mineral,/area/mine/unexplored) "dgv" = (/turf/space,/area/syndicate_station/mining) -"dgw" = (/obj/structure/lattice,/turf/space,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dgx" = (/obj/machinery/atmospherics/pipe/vent,/obj/structure/lattice,/turf/space,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) +"dgw" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction,/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/research_outpost/anomaly) +"dgx" = (/obj/machinery/door/window/westleft{dir = 1; name = "Spectroscopy"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dgy" = (/obj/structure/transit_tube{tag = "icon-D-SE"; icon_state = "D-SE"},/obj/structure/lattice,/turf/space,/area) "dgz" = (/obj/structure/lattice,/obj/structure/transit_tube{tag = "icon-E-SW"; icon_state = "E-SW"},/turf/space,/area) "dgA" = (/obj/structure/lattice,/obj/structure/transit_tube,/turf/space,/area) -"dgB" = (/obj/structure/transit_tube{tag = "icon-W-SE"; icon_state = "W-SE"},/obj/structure/lattice,/turf/space,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dgC" = (/obj/structure/transit_tube{icon_state = "D-SW"; tag = "icon-D-NW"},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r"; level = 1; name = "pipe"},/turf/space,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) +"dgB" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction,/turf/simulated/floor{dir = 4; icon_state = "whitered"},/area/research_outpost/anomaly) +"dgC" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/power/emitter{anchored = 1; state = 2},/obj/structure/cable,/turf/simulated/floor/plating{dir = 5; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01; tag = "icon-warnplate (NORTHEAST)"},/area/research_outpost/anomaly) "dgD" = (/obj/structure/lattice,/obj/structure/transit_tube{tag = "icon-S-NE"; icon_state = "S-NE"},/turf/space,/area) -"dgE" = (/obj/structure/transit_tube{tag = "icon-D-NW"; icon_state = "D-NW"},/turf/simulated/wall/r_wall,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dgF" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 6; icon_state = "intact-r-f"; initialize_directions = 10; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dgG" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dgH" = (/obj/structure/transit_tube{tag = "icon-D-NE"; icon_state = "D-NE"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dgI" = (/obj/structure/transit_tube{tag = "icon-NW-SE"; icon_state = "NW-SE"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 9; icon_state = "intact-r"; initialize_directions = 10; level = 1; name = "pipe"},/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dgJ" = (/obj/structure/transit_tube{icon_state = "D-SW"; tag = "icon-D-NW"},/turf/simulated/mineral,/area/mine/unexplored) +"dgE" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/westleft{dir = 1; name = "Spectroscopy"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dgF" = (/obj/machinery/atmospherics/pipe/tank/nitrogen,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dgG" = (/obj/machinery/camera{c_tag = "Research Outpost Anomalous Materials Lab"; dir = 8; network = list("RD","SS13")},/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 273; dir = 2; on = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dgH" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/clipboard,/obj/item/weapon/pen,/obj/item/weapon/folder,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dgI" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dgJ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dgK" = (/obj/structure/lattice,/obj/structure/transit_tube{tag = "icon-N-S"; icon_state = "N-S"},/turf/space,/area) -"dgL" = (/turf/simulated/wall/r_wall,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dgM" = (/obj/machinery/atmospherics/trinary/filter{dir = 1; filter_type = 2; icon_state = "intact_on"; name = "Gas filter (N2 tank)"; on = 1},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dgN" = (/obj/machinery/alarm{step_y = 25},/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_on"; on = 1},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dgO" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 10; icon_state = "intact-b"; initialize_directions = 6; level = 2; name = "pipe"},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dgP" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 273; dir = 2; on = 1},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dgQ" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 273; dir = 2; on = 1},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dgR" = (/obj/machinery/light/small,/obj/structure/transit_tube{tag = "icon-D-NE"; icon_state = "D-NE"},/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/maintstore1) -"dgS" = (/obj/structure/transit_tube{tag = "icon-E-NW"; icon_state = "E-NW"},/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/maintstore1) +"dgL" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/research_outpost/anomaly) +"dgM" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/turf/simulated/floor{dir = 4; icon_state = "whiteredcorner"},/area/research_outpost/anomaly) +"dgN" = (/obj/machinery/anomaly/hyperspectral,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/turf/simulated/floor{dir = 1; icon_state = "whiteredcorner"},/area/research_outpost/anomaly) +"dgO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) +"dgP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/research_outpost/hallway) +"dgQ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 4; icon_state = "whiteredcorner"},/area/research_outpost/hallway) +"dgR" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/anomaly) +"dgS" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/anomaly) "dgT" = (/obj/structure/transit_tube{tag = "icon-W-SE"; icon_state = "W-SE"},/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/maintstore1) "dgU" = (/obj/structure/transit_tube{tag = "icon-D-SW"; icon_state = "D-SW"},/turf/simulated/mineral,/area/mine/unexplored) "dgV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/hallway) "dgW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/hallway) "dgX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/hallway) -"dgY" = (/obj/machinery/atmospherics/trinary/filter{dir = 1; filter_type = 1; icon_state = "intact_on"; name = "Gas filter (O2 tank)"; on = 1},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dgZ" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_on"; on = 1},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dha" = (/obj/machinery/atmospherics/pipe/manifold4w{color = "blue"; icon_state = "manifold4w-b"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dhb" = (/obj/machinery/atmospherics/pipe/manifold4w{color = "blue"; icon_state = "manifold4w-b"; level = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dhc" = (/obj/structure/sign/fire{pixel_x = 32},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b"; initialize_directions = 11; level = 2; name = "pipe manifold"},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) +"dgY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1; pressure_checks = 1},/turf/simulated/floor{dir = 2; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) +"dgZ" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) +"dha" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro) +"dhb" = (/obj/machinery/anomaly/accelerator,/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) +"dhc" = (/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) "dhd" = (/turf/simulated/wall/r_wall,/area/research_outpost/maintstore1) "dhe" = (/obj/structure/transit_tube{tag = "icon-D-NE"; icon_state = "D-NE"},/turf/simulated/wall/r_wall,/area/research_outpost/maintstore1) "dhf" = (/obj/structure/transit_tube{tag = "icon-NW-SE"; icon_state = "NW-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/maintstore1) @@ -8489,11 +8489,11 @@ "dhm" = (/obj/structure/transit_tube,/obj/structure/lattice,/turf/space,/area) "dhn" = (/obj/structure/transit_tube{tag = "icon-W-SE"; icon_state = "W-SE"},/obj/structure/lattice,/turf/space,/area) "dho" = (/obj/structure/lattice,/obj/structure/transit_tube{icon_state = "D-SW"; tag = "icon-D-NW"},/turf/space,/area) -"dhp" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r"; level = 2},/obj/machinery/meter,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dhq" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; layer = 2.4; level = 2; on = 1; scrub_Toxins = 0},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dhr" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b"; level = 2},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dhs" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; layer = 2.4; level = 2; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dht" = (/obj/machinery/power/apc{dir = 4; name = "Spectrometry Lab Atmospherics APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/tank/air{dir = 1; initialize_directions = 0; layer = 2.6; level = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) +"dhp" = (/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) +"dhq" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) +"dhr" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) +"dhs" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/rack,/obj/item/clothing/suit/fire/heavy{desc = "A suit that protects against temperatures up to -50 C"; max_heat_protection_temperature = 273; min_cold_protection_temperature = 223; name = "thermal protection suit"},/obj/item/clothing/gloves/black{desc = "These gloves are cold-resistant."; max_heat_protection_temperature = 273; min_cold_protection_temperature = 223; name = "warm gloves"},/obj/item/clothing/ears/earmuffs{cold_protection = 1; desc = "Protects your hearing from loud noises and keeps your ears warm."; min_cold_protection_temperature = 223},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro) +"dht" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) "dhu" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/emergency{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor/plating,/area/research_outpost/maintstore1) "dhv" = (/obj/structure/closet/hydrant{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area/research_outpost/maintstore1) "dhw" = (/obj/structure/table,/obj/item/device/analyzer/plant_analyzer,/obj/item/weapon/cell,/obj/item/weapon/cable_coil/random,/obj/item/weapon/cable_coil/random,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/maintstore1) @@ -8506,9 +8506,9 @@ "dhD" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/research_outpost/hallway) "dhE" = (/obj/structure/lattice,/obj/structure/transit_tube{tag = "icon-D-NE"; icon_state = "D-NE"},/turf/space,/area) "dhF" = (/obj/structure/transit_tube{tag = "icon-NW-SE"; icon_state = "NW-SE"},/obj/structure/lattice,/turf/space,/area) -"dhG" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 5; icon_state = "intact-r-f"; level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dhH" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 10; icon_state = "intact-r-f"; initialize_directions = 10; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) -"dhI" = (/obj/machinery/door/airlock/atmos{name = "Spectrometry Lab Atmospherics"; req_access_txt = "0"; req_one_access_txt = "47;10;24"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Spectrometry Lab Atmospherics"}) +"dhG" = (/obj/machinery/door/window/westleft{dir = 4; name = "Spectrometry Lab"; req_access_txt = "47"},/obj/machinery/door/window/westleft{dir = 8; name = "Spectrometry Lab"; opacity = 0; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) +"dhH" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) +"dhI" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) "dhJ" = (/obj/structure/rack,/obj/item/stack/sheet/metal{pixel_x = 5; pixel_y = 5},/obj/item/stack/sheet/glass,/obj/item/weapon/storage/belt/utility{pixel_x = 3; pixel_y = 3},/turf/simulated/floor/plating,/area/research_outpost/maintstore1) "dhK" = (/turf/simulated/floor/plating,/area/research_outpost/maintstore1) "dhL" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/research_outpost/maintstore1) @@ -8527,12 +8527,12 @@ "dhY" = (/obj/structure/transit_tube{tag = "icon-S-NW"; icon_state = "S-NW"},/obj/structure/lattice,/turf/space,/area) "dhZ" = (/turf/simulated/mineral/random,/area/mine/unexplored) "dia" = (/obj/structure/transit_tube{tag = "icon-N-S"; icon_state = "N-S"},/obj/structure/lattice,/turf/space,/area) -"dib" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/spectro) -"dic" = (/obj/machinery/anomaly/accelerator,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) -"did" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) -"die" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) -"dif" = (/obj/machinery/anomaly/isotope_ratio,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) -"dig" = (/obj/machinery/anomaly/isotope_ratio,/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) +"dib" = (/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},/turf/simulated/floor/plating,/area/research_outpost/spectro) +"dic" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 6},/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) +"did" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 10},/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) +"die" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) +"dif" = (/obj/machinery/door/window/westleft{dir = 4; name = "Spectrometry Lab"; req_access_txt = "47"},/obj/machinery/door/window/westleft{dir = 8; name = "Spectrometry Lab"; opacity = 0; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) +"dig" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) "dih" = (/turf/simulated/wall/r_wall,/area/research_outpost/spectro) "dii" = (/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) "dij" = (/obj/machinery/light/small,/turf/simulated/floor/plating,/area/research_outpost/maintstore1) @@ -8544,11 +8544,11 @@ "dip" = (/turf/simulated/floor/carpet,/area/research_outpost/hallway) "diq" = (/obj/machinery/door/airlock{id_tag = "rminingdorm1"; name = "Dorm 1"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/research_outpost/hallway) "dir" = (/obj/machinery/door/airlock{id_tag = "rdorm2"; name = "Dorm 2"},/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/research_outpost/hallway) -"dis" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/spectro) -"dit" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) -"diu" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 5; icon_state = "intact-b-f"; initialize_directions = 6; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) -"div" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) -"diw" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro) +"dis" = (/obj/structure/table,/obj/structure/sign/nosmoking_2{pixel_x = 32},/obj/machinery/camera{c_tag = "Research Outpost Mass Spectrometry"; dir = 8; network = list("RD","SS13")},/obj/item/weapon/pen,/obj/item/weapon/clipboard,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/folder,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro) +"dit" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) +"diu" = (/obj/machinery/anomaly/gas_chromatography,/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) +"div" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) +"diw" = (/obj/structure/table,/obj/machinery/power/apc{dir = 4; name = "Mass Spectrometry APC"; pixel_x = 24; pixel_y = 0; pixel_x = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/item/weapon/storage/box/solution_trays,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro) "dix" = (/turf/simulated/wall/r_wall,/area/research_outpost/sample) "diy" = (/obj/machinery/power/apc{dir = 8; name = "Auxiliary Storage APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/research_outpost/maintstore1) "diz" = (/turf/simulated/floor{icon_state = "warning"},/area/research_outpost/maintstore1) @@ -8562,11 +8562,11 @@ "diH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/atmos) "diI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/abandoned) "diJ" = (/obj/machinery/door/airlock/external,/turf/simulated/floor,/area/mine/abandoned) -"diK" = (/obj/structure/transit_tube{tag = "icon-N-SE"; icon_state = "N-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/spectro) -"diL" = (/obj/structure/transit_tube{tag = "icon-D-SW"; icon_state = "D-SW"},/turf/simulated/wall/r_wall,/area/research_outpost/spectro) -"diM" = (/obj/machinery/anomaly/gas_chromatography,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) -"diN" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) -"diO" = (/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro) +"diK" = (/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "47"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) +"diL" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/spectro) +"diM" = (/obj/machinery/anomaly/ion_mobility,/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) +"diN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/research_outpost/spectro) +"diO" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{dir = 6; icon_state = "whitegreen"},/area/research_outpost/spectro) "diP" = (/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) "diQ" = (/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "diR" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) @@ -8591,12 +8591,12 @@ "djk" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/research_outpost/atmos) "djl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/abandoned) "djm" = (/turf/simulated/floor,/area/mine/abandoned) -"djn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/transit_tube{tag = "icon-D-NE"; icon_state = "D-NE"},/turf/simulated/floor/plating,/area/research_outpost/spectro) -"djo" = (/obj/structure/transit_tube{tag = "icon-S-NW"; icon_state = "S-NW"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/spectro) -"djp" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) -"djq" = (/obj/machinery/anomaly/ion_mobility,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) -"djr" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) -"djs" = (/obj/structure/table,/obj/machinery/power/apc{dir = 4; name = "Mass Spectrometry APC"; pixel_x = 24; pixel_y = 0; step_x = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro) +"djn" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) +"djo" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 8; icon_state = "freezer_0"; tag = ""},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) +"djp" = (/obj/machinery/anomaly/ion_mobility,/obj/machinery/light,/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) +"djq" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) +"djr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) +"djs" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/research_outpost/hallway) "djt" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 3; pixel_x = 2; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dju" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "djv" = (/obj/structure/table,/obj/machinery/bunsen_burner,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) @@ -8616,18 +8616,18 @@ "djJ" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r"; level = 2; tag = "icon-manifold-r (EAST)"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/atmos) "djK" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 10; icon_state = "intact-r"; level = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) "djL" = (/obj/machinery/door/window/westleft,/turf/simulated/floor,/area/research_outpost/atmos) -"djM" = (/obj/structure/transit_tube/station{dir = 8; icon_state = "opening"; tag = "icon-opening (EAST)"},/turf/simulated/floor{icon_state = "bot"},/area/research_outpost/atmos) +"djM" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/maint) "djN" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating,/area/mine/abandoned) "djO" = (/obj/item/stack/rods,/obj/structure/door_assembly/door_assembly_ext{name = "Broken External Airlock"},/turf/simulated/floor,/area/mine/abandoned) "djP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/abandoned) "djQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/mine/abandoned) -"djR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/spectro) -"djS" = (/obj/structure/transit_tube/station{tag = "icon-closed (EAST)"; icon_state = "closed"; dir = 4},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/research_outpost/spectro) -"djT" = (/obj/machinery/door/window/westleft{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) -"djU" = (/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) -"djV" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) -"djW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) -"djX" = (/obj/structure/table,/obj/machinery/light/small{dir = 4},/obj/structure/sign/nosmoking_2{pixel_x = 32},/obj/machinery/camera{c_tag = "Research Outpost Mass Spectrometry"; dir = 8; network = list("RD","SS13")},/obj/item/weapon/pen,/obj/item/weapon/clipboard,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/folder,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro) +"djR" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 0; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) +"djS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/research_outpost/hallway) +"djT" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/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{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 1; icon_state = "whitegreencorner"},/area/research_outpost/hallway) +"djU" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) +"djV" = (/obj/structure/transit_tube,/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/maintstore1) +"djW" = (/obj/structure/transit_tube,/turf/simulated/floor/plating/airless/asteroid,/area) +"djX" = (/obj/machinery/light/small,/obj/structure/transit_tube,/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/maintstore1) "djY" = (/obj/machinery/chem_dispenser,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "djZ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dka" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) @@ -8647,12 +8647,12 @@ "dko" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) "dkp" = (/obj/structure/lattice,/obj/structure/transit_tube{tag = "icon-D-SE"; icon_state = "D-SE"},/turf/space,/area) "dkq" = (/obj/structure/transit_tube{tag = "icon-E-SW"; icon_state = "E-SW"},/obj/structure/lattice,/turf/space,/area) -"dkr" = (/obj/structure/lattice,/obj/structure/transit_tube{tag = "icon-D-SW"; icon_state = "D-SW"},/turf/space,/area) -"dks" = (/obj/structure/transit_tube{tag = "icon-N-SW"; icon_state = "N-SW"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/spectro) -"dkt" = (/obj/structure/table,/obj/item/weapon/storage/box/solution_trays,/obj/machinery/light/small,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/research_outpost/spectro) -"dku" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/research_outpost/spectro) -"dkv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/research_outpost/spectro) -"dkw" = (/obj/structure/stool,/turf/simulated/floor{dir = 6; icon_state = "whitegreen"},/area/research_outpost/spectro) +"dkr" = (/obj/structure/transit_tube{tag = "icon-D-NW"; icon_state = "D-NW"},/obj/structure/lattice,/turf/space,/area) +"dks" = (/obj/structure/lattice,/obj/structure/transit_tube{tag = "icon-NE-SW"; icon_state = "NE-SW"},/turf/space,/area) +"dkt" = (/obj/structure/transit_tube{tag = "icon-S-NE"; icon_state = "S-NE"},/obj/structure/lattice,/turf/space,/area) +"dku" = (/obj/machinery/anomaly/isotope_ratio,/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) +"dkv" = (/obj/machinery/anomaly/isotope_ratio,/obj/machinery/light{dir = 1},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) +"dkw" = (/obj/machinery/atmospherics/pipe/tank/nitrogen{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) "dkx" = (/obj/machinery/chem_master,/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) "dky" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper{pixel_y = -4},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) "dkz" = (/obj/structure/table,/obj/item/weapon/storage/box/solution_trays,/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/camera{c_tag = "Research Outpost Sample Preparation"; dir = 1; network = list("RD","SS13")},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) @@ -8681,10 +8681,10 @@ "dkW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/abandoned) "dkX" = (/turf/simulated/mineral/random,/area/mine/explored) "dkY" = (/obj/structure/lattice,/obj/structure/transit_tube{tag = "icon-D-NW"; icon_state = "D-NW"},/turf/space,/area) -"dkZ" = (/obj/structure/transit_tube{tag = "icon-E-NW"; icon_state = "E-NW"},/obj/structure/lattice,/turf/space,/area) -"dla" = (/obj/structure/transit_tube{tag = "icon-W-NE"; icon_state = "W-NE"},/turf/simulated/wall/r_wall,/area/research_outpost/spectro) -"dlb" = (/obj/structure/transit_tube{tag = "icon-D-NW"; icon_state = "D-NW"},/turf/simulated/wall/r_wall,/area/research_outpost/spectro) -"dlc" = (/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "47"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) +"dkZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/rack,/obj/item/clothing/suit/fire/heavy{desc = "A suit that protects against temperatures up to -50 C"; max_heat_protection_temperature = 273; min_cold_protection_temperature = 223; name = "thermal protection suit"},/obj/item/clothing/gloves/black{desc = "These gloves are cold-resistant."; max_heat_protection_temperature = 273; min_cold_protection_temperature = 223; name = "warm gloves"},/obj/item/clothing/ears/earmuffs{cold_protection = 1; desc = "Protects your hearing from loud noises and keeps your ears warm."; min_cold_protection_temperature = 223},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) +"dla" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 6; icon_state = "intact-b-f"; initialize_directions = 6; level = 1; name = "pipe"},/obj/machinery/alarm{dir = 2; pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) +"dlb" = (/obj/structure/transit_tube/station{dir = 8; icon_state = "closed"; tag = "icon-opening (EAST)"},/turf/simulated/floor{icon_state = "bot"},/area/research_outpost/atmos) +"dlc" = (/obj/structure/transit_tube/station{dir = 8; icon_state = "closed"; tag = "icon-opening (EAST)"},/obj/structure/transit_tube_pod,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/mine/explored) "dld" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/sample) "dle" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials Sample Preparation"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dlf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/wall/r_wall,/area/research_outpost/sample) @@ -8708,13 +8708,13 @@ "dlx" = (/turf/simulated/wall,/area/mine/abandoned) "dly" = (/turf/space,/area/shuttle/research/outpost) "dlz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/hallway) -"dlA" = (/obj/machinery/firealarm{dir = 1; pixel_y = 24},/turf/simulated/floor,/area/research_outpost/hallway) +"dlA" = (/obj/structure/plasticflaps/mining,/obj/machinery/conveyor{dir = 2; id = "anotempload"},/turf/simulated/floor/plating,/area/research_outpost/maint) "dlB" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/research_outpost/hallway) "dlC" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/camera{c_tag = "Research Outpost Lobby"; dir = 2; network = list("RD","SS13")},/turf/simulated/floor{dir = 4; icon_state = "greencorner"},/area/research_outpost/hallway) -"dlD" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/research_outpost/hallway) -"dlE" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/sign/science{desc = "A warning sign which reads 'MASS SPECTROMETRY'"; name = "\improper MASS SPECTROMETRY"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 1; icon_state = "whitegreencorner"},/area/research_outpost/hallway) +"dlD" = (/obj/machinery/conveyor{dir = 2; id = "anotempload"},/turf/simulated/floor/airless{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) +"dlE" = (/obj/machinery/conveyor{dir = 2; id = "anotempload"},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) "dlF" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/alarm{dir = 2; pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) -"dlG" = (/obj/machinery/firealarm{dir = 1; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 0; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) +"dlG" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) "dlH" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) "dlI" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/research_outpost/hallway) "dlJ" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/research_outpost/hallway) @@ -8723,7 +8723,7 @@ "dlM" = (/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dlN" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 4; icon_state = "whitepurplecorner"},/area/research_outpost/anomaly) "dlO" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) -"dlP" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) +"dlP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{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/toxins/xenobiology) "dlQ" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/research_outpost/anomaly) "dlR" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/anomaly) "dlS" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor{dir = 8; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) @@ -8754,8 +8754,7 @@ "dmr" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dms" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dmt" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"dmu" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"dmv" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dmu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dmw" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dmx" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dmy" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "whitepurple"},/area/research_outpost/hallway) @@ -8781,11 +8780,7 @@ "dmS" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) "dmT" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/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; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/research_outpost/hallway) "dmU" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"dmV" = (/obj/structure/sign/nosmoking_2{pixel_y = -32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dmW" = (/obj/structure/table,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/item/device/measuring_tape,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"dmX" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/clipboard,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/item/weapon/folder,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"dmY" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"dmZ" = (/obj/machinery/camera{c_tag = "Research Outpost Anomalous Materials Lab"; dir = 8; network = list("RD","SS13")},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dna" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/sign/science{desc = "A warning sign which reads 'ANOMALOUS MATERIALS'"; name = "\improper ANOMALOUS MATERIALS"; pixel_x = -32},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "dnb" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/research_outpost/hallway) "dnc" = (/obj/machinery/door/airlock/engineering{name = "Outpost Power"; req_access_txt = "0"; req_one_access_txt = "47;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) @@ -8810,10 +8805,6 @@ "dnv" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dnw" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) "dnx" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"dny" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/power/emitter{anchored = 1; state = 2},/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/structure/cable,/turf/simulated/floor/plating{dir = 5; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01; tag = "icon-warnplate (NORTHEAST)"},/area/research_outpost/anomaly) -"dnz" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"dnA" = (/obj/machinery/door/window/westleft{dir = 1; name = "Spectroscopy"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 2; icon_state = "whiteredcorner"},/area/research_outpost/anomaly) -"dnB" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/turf/simulated/floor{dir = 2; icon_state = "whitered"},/area/research_outpost/anomaly) "dnC" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/camera{c_tag = "Research Outpost Hallway Engineering"; dir = 4; network = list("RD","SS13")},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dnD" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowcorner"},/area/research_outpost/hallway) "dnE" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/machinery/power/apc{dir = 8; name = "Outpost Power APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/research_outpost/power) @@ -8846,9 +8837,6 @@ "dof" = (/obj/machinery/door/window/westleft{dir = 8; name = "Monkey Pen"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dog" = (/obj/structure/disposalpipe/segment,/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "doh" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/research_outpost/anomaly) -"doi" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"doj" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 4; icon_state = "whitered"},/area/research_outpost/anomaly) -"dok" = (/obj/machinery/anomaly/hyperspectral,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dol" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dom" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/power/apc{dir = 4; name = "Outpost Hallways APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "don" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/power) @@ -8880,7 +8868,6 @@ "doN" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "doO" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "doP" = (/obj/machinery/door/window/westleft{dir = 4; name = "laser testing"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/anomaly) -"doQ" = (/turf/simulated/floor{dir = 4; icon_state = "whitered"},/area/research_outpost/anomaly) "doR" = (/obj/machinery/anomaly/fourier_transform,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "doS" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "doT" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) @@ -8919,7 +8906,6 @@ "dpA" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dpB" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dpC" = (/obj/machinery/door/window/westleft{dir = 2; name = "Monkey Pen"; req_access_txt = "47"},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) -"dpD" = (/obj/machinery/door/airlock/research{name = "Specotroscopy"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dpE" = (/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dpF" = (/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dpG" = (/obj/machinery/door/airlock/engineering{name = "Power substation"; req_access_txt = "0"; req_one_access_txt = "47;10;24"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/power) @@ -8960,8 +8946,6 @@ "dqp" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dqq" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dqr" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) -"dqs" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/sign/science{desc = "A warning sign which reads 'SPECTROSCOPY'"; name = "\improper SPECTROSCOPY"; pixel_x = 0; pixel_y = 32},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whiteredcorner"},/area/research_outpost/hallway) -"dqt" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/research_outpost/hallway) "dqu" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/alarm{dir = 2; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "whiteredcorner"},/area/research_outpost/hallway) "dqv" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dqw" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) @@ -9009,10 +8993,8 @@ "drm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "drn" = (/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{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "dro" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) -"drp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor{dir = 2; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "drq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/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) "drr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/research_outpost/hallway) -"drs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1; pressure_checks = 1},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/research_outpost/hallway) "drt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/firealarm{pixel_y = -24},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/research_outpost/hallway) "dru" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/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) "drv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/research_outpost/hallway) @@ -9085,7 +9067,6 @@ "dsK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/glass_mining{name = "Expedition Prep"; req_access_txt = "47"},/turf/simulated/floor/plating,/area/research_outpost/entry) "dsL" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/research_outpost/entry) "dsM" = (/obj/machinery/door/airlock/research{name = "Temporary Storage Loading"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) -"dsN" = (/obj/machinery/conveyor{dir = 1; id = "anotempload"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/research_outpost/maint) "dsO" = (/obj/machinery/conveyor{dir = 5; id = "anosample"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/maint) "dsP" = (/obj/machinery/conveyor{dir = 4; id = "anosample"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'MOVING PARTS'."; name = "\improper MOVING PARTS"; pixel_y = 32},/turf/simulated/floor/plating,/area/research_outpost/maint) "dsQ" = (/obj/machinery/disposal/deliveryChute{dir = 8},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/maint) @@ -9132,7 +9113,6 @@ "dtF" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/power/apc{dir = 1; name = "Temporary Storage APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/research_outpost/tempstorage) "dtG" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 9; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/research_outpost/tempstorage) "dtH" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;47"},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) -"dtI" = (/obj/machinery/conveyor{dir = 1; id = "anotempload"},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) "dtJ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'MOVING PARTS'."; name = "\improper MOVING PARTS"; pixel_y = 32},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) "dtK" = (/obj/machinery/conveyor{dir = 1; id = "anosample"},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) "dtL" = (/obj/machinery/conveyor_switch{id = "anosample"},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01; tag = "icon-warnplate (NORTH)"},/area/research_outpost/maint) @@ -9204,7 +9184,6 @@ "duZ" = (/obj/machinery/recharge_station,/turf/simulated/floor,/area/research_outpost/gearstore) "dva" = (/obj/machinery/mineral/unloading_machine,/turf/simulated/floor{icon_state = "floorgrime"},/area/research_outpost/tempstorage) "dvb" = (/obj/machinery/conveyor_switch{id = "anotempload"},/turf/simulated/floor/airless{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) -"dvc" = (/obj/machinery/conveyor{dir = 1; id = "anotempload"},/turf/simulated/floor/airless{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) "dvd" = (/obj/machinery/conveyor_switch{id = "anosample"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) "dve" = (/obj/machinery/conveyor{dir = 1; id = "anosample"},/turf/simulated/floor/airless{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) "dvf" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/maint) @@ -9271,7 +9250,6 @@ "dwo" = (/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) "dwp" = (/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) "dwq" = (/obj/machinery/disposal/deliveryChute{dir = 1},/obj/structure/disposalpipe/trunk,/turf/simulated/floor{icon_state = "floorgrime"},/area/research_outpost/tempstorage) -"dwr" = (/obj/machinery/atmospherics/unary/cold_sink/freezer,/turf/simulated/floor/plating,/area/research_outpost/maint) "dws" = (/obj/machinery/atmospherics/unary/heat_reservoir/heater{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/maint) "dwt" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{dir = 4; icon_state = "vault"; name = "Mainframe floor"; nitrogen = 100; oxygen = 0; tag = "icon-vault (EAST)"; temperature = 80},/area/research_outpost/iso1) "dwu" = (/obj/machinery/artifact_scanpad,/turf/simulated/floor/bluegrid,/area/research_outpost/iso1) @@ -9322,7 +9300,6 @@ "dxn" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "research_pump"},/turf/simulated/floor,/area/research_outpost/gearstore) "dxo" = (/obj/structure/closet/emcloset,/turf/simulated/floor,/area/research_outpost/gearstore) "dxp" = (/obj/machinery/door/window/westleft,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/explored) -"dxq" = (/obj/structure/transit_tube/station{dir = 8; icon_state = "opening"; tag = "icon-opening (EAST)"},/obj/structure/transit_tube_pod,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/mine/explored) "dxr" = (/turf/simulated/wall/r_wall,/area/mine/explored) "dxs" = (/obj/structure/transit_tube{tag = "icon-NE-SW"; icon_state = "NE-SW"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/unexplored) "dxt" = (/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap,/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) @@ -9862,7 +9839,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaofaogaofaaaaaaaaaaaaaaaaaaaaaajpaafamzamzamzamzamzaafamhaafamzamzamzamzamzaafajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagamlaohaoiamlaojaokaolaomaonaooanNaopaoqaoraosaotaouaovaowamJaoxaivanXaoyaozaozaozaozaozaoAaozaozaozaoBaoCaoDaoEaoFaoGaoHaoIaoJaoKaoLaoMaivaafaoNaoOaoOaoPaoOaoOaoQaaaaaaaaaaaaaaaajqaaaaaaaaaaafaaaaaaaaaamaaaaaaaaaaaafaaaaaaaaaajqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoRaoSaoTaaaaoUaoVaoWaaaaafaoXanJaoXaaaaaaaaaaaaaaaaaaaaaajqaaaaaaaaaaafaaaaaaaaaamhaaaaaaaaaaafaaaaaaaaaajqaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafamlamlamlamlaoiamlaoYaoZaoZapaaoZapbanNapcapdapdapdaotapeapfamIamJaoxaivapgaphapiapiapiapiapjaphapiapkapiaphapiapiapkapiaplapmapnapoappapqaprapraprapsaptaptaptaptaptapsapraaaaaaaaaaaaajpaafalEalEalEalEalEaafamaaafalEalEalEalEalEaafajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapuapvapwapvapuapxapyapxapuaafaoXapzapAaaaaaaaaaaaaaaaaaaaaaajpaafalGalGalGalGalGaafamhaafalGalGalGalGalGaafajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafamlapBapCamlaoiamlapDaoZapEapaaoZapFanNapGapdapHapHaotapdapfamIamJapIaivajmapJapKapLapMapNapOapPapNapQapRapSapNapTapUapVapWapXapYapZaqaaqbaqcaqdaprapsaptaptaptaptaptapsapraafaaaaaaaaaajqaafalXalYalYalYalYalZamaambamcamcamcamcamdaafajpaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqeapvaqfapvaqeapxaqgapxaqeaqhaqiaqjaqkaqlaqlaqmaqhaqhaafaaaajpaafameamfamfamfamfamgamhamiamjamjamjamjamkaafajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafamlaqnaqoaqpaqqaqraqsaqtaquapaaqvaqwanNaqxaqyaqzaqzaqAaqBapfamIamJaoxaivajmapJaqCaqDapMapNaqEaqFapNaqGaqHaqIapNaqJaqHaqKapraqLaqMaqNaqOaqPaqQaqRaqSaqTaptaptaptaptaptaqUapraprapraaaaaaajqaaaamyamyamyamyamyaafamaaafamyamyamyamyamyaaaajXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqeapvaqfapvaqeapxaqgapxaqeaqhaqiaqjaqkaqlaqlaqmaqhaqhaafaaaajpaafameamfamfamfamfamgamhamiamjamjamjamjamkaafajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafamlaqnaqoaqpaqqaqraqsaqtaquapaaqvaqwanNaqxaqyaqzbfpaqAaqBapfamIamJaoxaivajmapJaqCaqDapMapNaqEaqFapNaqGaqHaqIapNaqJaqHaqKapraqLaqMaqNaqOaqPaqQaqRaqSaqTaptaptaptaptaptaqUapraprapraaaaaaajqaaaamyamyamyamyamyaafamaaafamyamyamyamyamyaaaajXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqeaqVaqWaqXaqeaqYaqZaraaqeanJanJarbarcardarearfargaqhaaaaaaajXaaaamzamzamzamzamzaafamhaafamzamzamzamzamzaaaajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagamlarhanLamlariamlarjarkarlarmarnaroanNarparqarrarrarsartaruarvarwarxaryarzarAaqCapLapMapNarBaqFapNapNarCapNapNapNarDapNaprarEarFarGarHarIarJaqParKarLaptaptaptaptaptarMarNarOarPaaaaaaajqaaaaafaaaaafaafaaaaaaamaaaaaaaaafaaaaaaaafaaaajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqearQarRarSaqearQarRarSaqearTarUarVarVarVarVarWarXaofaaaaaaajpaaaaafaaaaafaafaaaaaaarYaaaaaaaafaaaaaaaafaaaajpaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaagamlamlamlamlariamlarZasaasaasbasaasaasaascasdasdasdasdaseasfasgamJashaivasiaphasjapLaskaslarBasmasnasoaspaspasqasraspassastasuarFasvaswasxasyaszasAasBaptaptaptaptaptasBasCasDasEaaaaaaajqajqajpaaaaaaaafaaaaaaamaaaaaafaafaafaafajpajpajpaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaapuaqeasFasGapuaqeasFasGapuaqhasHaqhaqhaqhaqhaqhasIaoXaaaaaaajpajpajpaaaaaaaafaaaasJasKasJaafaafaafaafajpajpajpaafamlamlamlamlasLasMasMasMasMasMasMasMasNamlamlasOasPasQamlasRanLasSasTasUasVasVasVasWasVasVasVasXasYasYasYasZasZataatbatcatdaniateatfatgathatiapNarBatjatjatkatlatlatmatkatjatjatnatoatpasvaswasxasyaszatqatraptaptaptaptaptatratsasDasEaaaaaaaaaaaaaafaafaaaaafaaaaaaattaaaaaaaafaaaaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9889,11 +9866,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRPaRPaRPaRPaRPaRPaRPaRPaRPaRPaRPaRPaRPavtarRavtauqaULaQtaUMaUNaUOaUOaUOaUOaUPaUQaQraURaUSaUTaUUaUVaUVaUVaUWaUVaUXaUYaUZaVaaVbaVbaVcaNPaVdaVeaVfaVgaVhaViaVjaVjaVkaVlaVmaVnaVoaVpaVpaVpaVqaMvaVraFCaVsaVtaVuaVvaVwaVxaVyaVzaVAaVBaVCaMzaMzaMzaMzaMzaMzaVDaVEaVFaVGaTWaVHaVIaMzaVxaVwaVJaVKaVtaVLaFCaFCaPGaHwaVMaHwaHwaHwaKuaHwaHwaRkaHwaVNaVNaVNaVNaVOaVPaVQaOwaOwaOwaVRaVSaVTaFWaVUaVVaOFaVWaVWaVXaVVaVYaGaaVZaWaaWbaWcaLNaLNaLNaLNaWdaLNaLNaLNaWeaUJaONaONaONaONaONaONaONaUIaUJaUKaQjaQjaWfaQjaWgaOTaafaafaaaaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRPaRPaRPaRPaRPaRPaRPaRPaRPaRPaRPaRPaRPaWhaWiaThavuaWjaWkaWlaWmaWnaWoaWpaUOaWqaWraQraWsaWtaUTaUUaWuaWvaWwaWxaUVaWyaWzaWAaMiaWBaWCaWDaWEaMiaWFaWGaWHaWHaWHaWHaWIaWHaWHaWJaWKaWKaWKaWLaWKaWMaWNaWOaWPaWQaWRaWSaWSaWSaWSaWTaWUaWVaWUaWWaWXaWXaWXaWXaWXaWXaWXaWXaWYaWZaWZaXaaWZaWZaWZaWZaWZaWZaWZaVLaFCaFCaFPaXbaXcaXdaXeaHwaXfaHwaXgaXhaHwaVNaXiaXjaXkaFWaFWaFWaXlaXmaXmaXmaFWaFWaFWaXnaOFaOFaXoaXpaXqaXraKBaGaaXsaWaaXtaBaaXuaXvaXwaSPaXxaXvaXyaSPaXzaBgaXAaEPaXBaONaONaXBaEPaXCaBgaXDaXEaXFaQjaQjaQkaOTaaaaafaafaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRPaRPaRPaRPaRPaRPaRPaRPaRPaRPaRPaRPaafauoaXGaMcaXHaQtaXIaXIaXJaXKaXLaXJaXMaXIaQraXNaXOaXPaXQaXRaXRaXSaXTaXRaXUaWzaXVaMiaWBaWCaXWaXXaMiaXYaWGaWHaXZaYaaYaaYaaYbaWHaYcaYdaYeaYfaWNaWNaWNaWNaFCaFCaYgaYhaYiaYjaYkaYlaYmaYnaYoaYpaWWaWXaYqaYraYsaYtaYuaYvaYwaWYaWZaYxaYyaYzaYAaYBaYCaYDaYEaWZaYFaYGaYGaFPaFPaFPaFPaFPaYHaPGaYHaYIaYJaFPaOnaFPaFPaFPaYKaYLaYLaYLaYLaYLaYLaYMaYLaYKaKBaYNaYNaYOaWbaWbaWbaWbaYKaXsaYPaXtaBaaBaaBaaBaaBaaYQaBaaBaaBaaBaaBgaYRaYSaYTaYTaYTaYTaYUaBgaBgaYVaQjaYWaQjaQjaQkaQlaNraNraTeaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawqapuaYXaxmaThaqeaqeaqeaqeaqeaqeaYYaXHaQtaQraQraQraQraQraQraQraQraQraYZaNAaUTaUUaWuaZaaZbaZcaUVaZdaZeaZfaMiaWBaWCaZgaZhaMiaXYaWGaWHaYaaZiaZiaYaaZiaWHaYcaZjaZkaZkaZlaZmaZnaWNaZoaFCaVsaZpaZqaZraZsaZtaZtaZsaZuaZvaWWaWXaZwaZxaZyaZzaZAaZBaZCaZDaZEaYEaYEaYEaZFaZGaZHaYEaZIaWZaVLaZJaFCaICaWbaWbaWbaWbaWbaWbaWbaWbaWbaZKaWbaWbaWbaWbaZLaWbaWbaWbaWbaWbaWbaWbaWbaZMaWbaWbaWbaWbaWbaWbaWbaWbaZNaZOaZPaZQaZRaZQaZSaZQaZTaZUaZVaZQaZWaZQaZXaZYaZQaZQaZQaZQaZQaZQaZQaZZbaababaYWaQjaQjaQjaRObacaRNaROaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawqapuaYXaxmaThaqeaqeaqeaqeaqeaqeaYYaXHaQtaQraQraQraQraQraQraQraQraQraYZaNAaUTaUUaWuaZaaZbaZcaUVaZdaZeaZfaMiaWBaWCaZgaZhaMiaXYaWGaWHaYaaZiaZiaYaaZiaWHaYcaZjaZkaZkaZlaZmaZnaWNaZoaFCaVsaZpaZqaZraZsaZtaZtaZsaZuaZvaWWaWXaZwaZxaZyaZzaZAcfZaZDaZCcfCaZEaZBaYEaZFaZGaZHaYEaZIaWZaVLaZJaFCaICaWbaWbaWbaWbaWbaWbaWbaWbaWbaZKaWbaWbaWbaWbaZLaWbaWbaWbaWbaWbaWbaWbaWbaZMaWbaWbaWbaWbaWbaWbaWbaWbaZNaZOaZPaZQaZRaZQaZSaZQaZTaZUaZVaZQaZWaZQaZXaZYaZQaZQaZQaZQaZQaZQaZQaZZbaababaYWaQjaQjaQjaRObacaRNaROaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadbadbadbadbadbadbadbadbadbadaaaaafbaeawtausbafbagbahbahbahbahbahbahbaibajaMfaTIaNAaUTaUUaUVaUVbakbalaUVaMiaMibamaMiaWBbanaZgbaoaMiaXYaWGaWHbapbaqaYaaZibaraWHaYcbasaZkaZkaZkbatbauaWNbavaFCaVsbawbaxbaybazbaAbaBbaCaZubaDaWWaWXbaEbaFbaGbaGbaGbaHbaIaWXbaJbaKaYEaYEaZFbaLaZHaYEbaMaWZbaNaFCaFCaICaWbaWbaWbaWbaWbaWbaWbaWbaWbbaOaWbaWbaWbaWbaWbaWbbaPaZQaZQaZQaZQaZQaZQbaQaZQaZQaZQaZQaZQaZQaZQbaRbaSbaTbaUaWbaWbaWbaWbaWbaWaaWbaWbaWbaWbaWbaWbaWbaWbaWbaWbaWbaWbbaVaWbbaWaQjaQjaYWaQjaQjbaXaTdaNraNraQmaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadbadbadbadbadbadbadbadbadbadbadaTfaTgaThavubaYbaZbbabbabbbbbabbabbabbcaMfaMfaMfaMfaUTaUUaWubbdbbebbfaUVbbgbbhbbiaMiaMiaMiaMibbjaMiaXYaWGaWHbbkaYaaZibblbbmaWHaYcaWNbbnaZkaZkbbobbpaWNbbqaFCaVsbbrbbsbaybazbbtbbubaCaZubbvaWWbbwbbxbbybaGbbzbaGbbAbbBbbCbaJbbDbbEbbFbbGbbGbbHaYEbbIaWZaVLbbJaFCaICaWbaWbaWbbbKaWbbbLbbMbbMbbMbbNbbMbbMbbMbbOaWbaWbaWbaWbbbPaWbbbKbbQbbRbbSaWbaWbaWbbbTbbUbbVbbWbbXbbYbbZaWbaWbaWbaWbaWbbcabcbbbPaWbaWbaWbaWbaWbaWbaWbaWbaWbaWbaWbaWbaWbbccbcdbcebcfbcgbchbcibcjaafaaaaafaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadbadbadbadbadbadbadbadbadbadbadavtarRavtauqbckbbabclbcmbcnbcnbcobcpbcqbcrbcrbcrbcrbcsbctbcubcubcvbcwbcubcxbcxbcybcxbczbcAbcAbcBbcAbcCbcDbcEbcFbcGbcGbcHbcIbcEbcJbcKbcLaZkaZkbbobcMbcNbbqaFCaVsbcObcPbcQaZsaZsaZsaZsaZubcRaWWaWXbcSbcTbcUbcVbcWbcTbcXaWXbaJbcYbcZbdabdbbdcbddbdebdfaWZbdgbdhbdhbdibdibdibdibdibdibdibdjbdkbdkbdlbdmbdnbdjbdobdobdobdobdobdobdpbdpbdpbdqbdpbdpbdpbdrbdsbcabdtbdubdvbdwbdxaWbaWbbdybdybdzbdzbdzbdzbdzbdAbdBbdBbdCbdBaWbbdBbdCbdBbdBbdDbdEbdEbdEbdEbdFbdGbdHaNrbdIaaaaaaaaaaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadbadbadbadbadbadbadbadbadbadbadaWhaWiaThavubdJbbabdKbbabdLbdMbbabbabbaaNAbdNbdObdObdPaUVaWubdQaZbbdRaUVbdSbdTbdUbdUbdVbdWbdXbdYbdZbdXbeabebbecbedbecbecbeebefbegbehbeiaZkaZkbejbekbelbbqaFCbembcObenbeobepbeqberbesbetaWWaWWaWXbeubevbewbexbeybezbeAaWXbaJbeBbeCbeDbeEbeFbddaYEbeGaWZaVLaFCbeHbdibeIbeJbeKbeLbeMbeNbeObePbePbeQbeRbeRbeSbdobeTbeUbeVbeWbdobeXbeYbeZbfabfbbfcbfdbfebffbfebfebfebfgbfhbfibfjbfibfkbfkbdzbflbfmbfnbdzbfobfpbfobdzbdAbdBbdDbdEbfqbfrbfqbdEbfsbftbdEbfubdGaaaaafaaaaaaaaaaaaaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadbadbadbadbadbadbadbadbadbadbadaWhaWiaThavubdJbbabdKbbabdLbdMbbabbabbaaNAbdNbdObdObdPaUVaWubdQaZbbdRaUVbdSbdTbdUbdUbdVbdWbdXbdYbdZbdXbeabebbecbedbecbecbeebefbegbehbeiaZkaZkbejbekbelbbqaFCbembcObenbeobepbeqberbesbetaWWaWWaWXbeubevbewbexbeybezbeAaWXbaJbeBbeCbeDbeEbeFbddaYEbeGaWZaVLaFCbeHbdibeIbeJbeKbeLbeMbeNbeObePbePbeQbeRbeRbeSbdobeTbeUbeVbeWbdobeXbeYbeZbfabfbbfcbfdbfebffbfebfebfebfgbfhbfibfjbfibfkbfkbdzbflbfmbfnbdzbfocdmbfobdzbdAbdBbdDbdEbfqbfrbfqbdEbfsbftbdEbfubdGaaaaafaaaaaaaaaaaaaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadbadbadbadbadbadbadbadbadbadaaaaaaawsaXGaMcbfvbbabfwbbabfxbfybfzbfAbbabfBaNAbfCaNAbfDaUVaUVaUVaUVaUVaUVbfEbfFbfGaNAbfHaWHaWHaWHbfIaWHaWHaWHbfJaWHaWHaWHaWHbfKbfLbfMbfNaZkaZkbbobfObcNbbqaFCbfPbcObfQbeoaWWaWWaWWaWWbfRaWWbfSbfTbfUbfVaYqbfWaYqbfXbfYbfZbgabeBbgbaYEbgcbgdbddbgeaYEbgfbggbghbgibdibgjbgkbglbgmbgnbgobgpbgqbePbgrbePbePbgsbgtbgubgvbgwbgxbdobgybgzbgAbgzbgBbgCbdpbgDbgEbgFbgGbdubgHbgIbgJbgKbgLbgMbgNbgObgPbgQbgPbgRbgSbgTbgUbdzbgVbgWbgXbdEbgYbgZbhabhbbhcbhdbdEbfubdGaaaaafaaaaaaaaaaaaaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawqapuaYXaxmaWiaQoaQoaQoaxmaQobheavuauqauqbbabhfbhgbhhbfzbhibhjbhkbhlbhlbhlbhlbhmbhnbhnbhnbdXbdXbdXbhobhpbhpbhpbhqaWHbhrbhsbhtbhubhvbhwbhxbhybhzbhAbhBbhCbhDbhEbhFbhGbhHbhIbhJbhJbhKbghbhLbhMbhNbhObhPbhQbhRbhSbhTbhUbhVbfZbfZbfZbfZbhWbfZbfZbfZbfZbhXbhYbhZbiabibbicbidbiebifbigbihaFCaFCbdibiibijbikbgmbilbimbgpbinbiobipbiobiobiqbirbisbitbiubivbdobiwbgzbixbgzbgBbiybdpbizbiAbiBbiCbdubgHbiDbiEbiFbiFbiGbiHbiIbiJbiJbiJbiKbiLbiMbiNbiObiPbiQbiRbiSbiTbiUbhcbiVbiWbiXbdEbfubiYaafaafaaaaaaaaaaaaaaaaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiZbjaarRavtatvatvatvaMcauqauqbbabjbbjcbfzbjdbbabbabbaaMfbjebjfbjgbjhbjgbjgbjgbjhbjgaMfaMfaWHaWHaWHbjiaWHbhxbhxbjjbhxbhxbhxbhxbhxbjkbjlbjmbjnbjobjpbjpbjpbjqbjrbjsbjtbjubjvbjwbjxbjybjybjzbjAbjBbjCbjDbjEbjFbjGbjHbjIbjJbjKbjLbjIbjMbjGbjNbeBbjObjPbjOaWZaWZaWZbjQbaJbjRaFCaFCbdibjSbjTbjUbgmbjVbjWbgpbgrbePbjXbjYbjZbkabdobkbbkcbkdbkebdobiwbkfbgzbgzbgBbgCbdpbdubdubdubdubdubgHbgIbkgbkhbkibkjbkkbklbkmbknbkobkobkpbgPbkqbdzbkrbksbktbdEbkubkvbkwbkxbkybkzbdEbfubkAaaaaafaaaaaeaaaaaaaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9901,8 +9878,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauoavtavtblZaQobmaawqapubmbbmabbabmcbmdbmebdMbbaaaaaaaaaaaaaaaabkFbkFbkFbkFbkFbkFbkFaaaaaabmfbmgbhxbmhbmibmibmibmibmibmjbmibmibmibmkbmlbmmbmnbmobmpaWNbmqbbobmrbmsbmtbbqbmubmvbkTbkTbkVbmwbmxbmybmzbmAbkVbmBbmCbmDbmEbmFbmGbmFbmHbmIbmJbmKbldbmLbbGbmMaWZbmNbjObmObmPbllaFCaFCbdibmQbmRbjUbmSbmTbeNbmUbmVbmWbmXbmYbePbmZbnabnbbncbndbnebdobdpbnfbdpbdpbngbngbngbngbngbngbngbngbgHbgIbkgbkhbkibnhbnibnjbnkbnlbnlbnlblLbgPbnmbnnbnobgWbnpbdEbnqbnrbnsbntbhcbnubdEbfubdGbdGaafaaaaaaaaaaaaaafbnvbnwbnxbnybnybnzbnvaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkFbkFbkFbkFbkFbkFbkFbnBbnCbnDbnEbhxbhxbhxbnFbnFbnFbnFbkJbhxbhxbhxbjkbnGaZkbnHbnIbnJbnKbnLbboaZkbnMbnNbbqbmubnObnPbnQbnRbnSbnTbnUbnVbnWbkVabVbnXbnYbjIbmFbnZbmFbjIboabobbjNbocbodboebofaWZbogbjObohbmPbllaFCaFCbdiboibojbjUbokbolbeNbombgrbePbonboobopboqbdoborbosbotboubdobovbowboxboybozboAboBboCboDboEboFboGbfgbfhboHboIboJboKboLbgOboMbnlbnlbnlboNbgPboObdzboPboPboQbdEboRboSboTboUbhcboVbdEbfuboWbdGaafaaaaaaaaaaaaaafboXboYbnxbnybnxboZblXaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkFbkFbkFbkFbkFbkFbkFbpabpbbpabpcbpdbhxbhxbhxbhxbhxbhxbkJbhxbpeaWHaWHbpfaZkaZkbpgbphbpibpjbboaZkaZkbpkaFCbmubplbpmbpnbpobppbpqbprbpsbptbkVabVbobbobbpubpvbpwbjIbpxbpybpzbpAbpBbpCbpCbpCbpCbpCbpCbpDbpEbpFbdhbdhbpGbpHbpIbpJbpKbeNbeNbpLbgrbePbePbePbePbpMbpNbePbpObePbpPbpQbpRbpSbePbpTbpUbpVbpWbpXbpYbpZbqabngbqbbqcbqdbqdbqebqfbqgbgObqhbgPbgPbqibqjbgPbqkbgObqlbqmbqnbqobqpbqqbqrbqsbfqbdEbdEbqtbdGbdGbqubqvbqvbqvbqwbgVbnvbnybnxbnybnybnzbnvaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAaaaaaaaaaaaaaaaaaaaaeaaaaaaaaabkFbkFbkFbkFbkFbkFbkFbqxbqybqxbqzbhxbhxbhxbnFbnFbnFbnFbkJbhxbqAbqBaWHbqCaZkaZkbpgbqDbqEbpjbqFbqGbmmbqHbqIbqJbllaOlbpnbqKbqLbqMbqNbqObqPbqQbqRbqSbqTbqUbqVbnZbqVbpybqWbqXbqXbpBbqYbqZbrabrbbrcbrdbrebrfbrgaUnaUnbrhbribrjbrkbrlbrmbrnbrobrpbrobrqbrobrobrrbrsbrobrsbrobrobrobrtbrubrvbrwbpUbrxbpWbrybrybrzbrAbngbgHbgIbrBbrCbrDbrEbrEbgObrFbrGbrHbgObrIbgPbrJbrKbrLbrMbrNbrObrPbrQbrRbrSbrTboPbgWbksbrUbrVbrWbrWbrWbrWbrWbrXbrYblWblXbrZblXblWbsaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkFbkFbkFbkFbkFbkFbkFbsbbnCbscbsdbhxbhxbhxbhxbhxbhxbhxbkJbhxbqAbseaWHbsfbataZkbsgbmmbshbmmbsiaZkbnMbmtbbqaFCbllaOlbpnbkVbsjbskbslbsmbsnbkWbsobspbsqbsrbpzbssbstbsubsvbswbsxbpBbsybszbsAbsBbsCbsCbsDbsEbsFaFCaFCbsGbsHbgrbePbsIbsJbsKbsLbsMbsLbsNbsLbsObsPbpRbsQbpRbpRbsRbsSbsTbsTbsUbsVbsWbsXbpWbsYbsZbpZbrAbngbdvbgIbfibtabtbbtabtabgObgObgObgObgObtcbtdbtebtfbtgbthbtibtjbtjbtkbtlbksbtmbtnbtobksbksbrVbksbksbtpbksbtqbgVbqubqvbqwbtrbgVaaaaaaaafaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAaaaaaaaaaaaaaaaaaaaaeaaaaaaaaabkFbkFbkFbkFbkFbkFbkFbqxbqybqxbqzbhxbhxbhxbnFbnFbnFbnFbkJbhxbqAbqBaWHbqCaZkaZkbpgbqDbqEbpjbqFbqGbmmbqHbqIbqJbllaOlbpnbqKbqLbqMbqNbqObqPbqQbqRbqSbqTbqUbqVbnZbqVbpybqWbqXbqXbpBbqYbqZbrabrbbrcbrdbrebrfbrgaUnaUnbrhbribrjbrkbrlbrmbrnbrobrpbrobrqbrobrobrrbrsbrobrsbrobrobrobrtbrubrvbrwbpUbrxbpWbrybrybrzbrAbngbgHbgIbrBbrCbrDbrEbrEbgObrFbrGbrHbgObrIbgPbrJbrKbrLbrMbrNbrObrPbrQbrRbrSbrTboPbgWbxKbrUbrVbrWbrWbrWbrWbrWbrXbrYblWblXbrZblXblWbsaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkFbkFbkFbkFbkFbkFbkFbsbbnCbscbsdbhxbhxbhxbhxbhxbhxbhxbkJbhxbqAbseaWHbsfbataZkbsgbmmbshbmmbsiaZkbnMbmtbbqaFCbllaOlbpnbkVbsjbskbslbsmbsnbkWbsobspbsqbsrbpzbssbstbsubsvbswbsxbpBbsybszbsAbsBbsCbsCbsDbsEbsFaFCaFCbsGbsHbgrbePbsIbsJbsKbsLbsMbsLbsNbsLbsObsPbpRbsQbpRbpRbsRbsSbsTbsTbsUbsVbsWbsXbpWbsYbsZbpZbrAbngbdvbgIbfibtabtbbtabtabgObgObgObgObgObtcbtdbtebtfbtgbthbtibtjbtjbtkbtlbksbtmbtnbtobxKbksbrVbksbksbtpbksbtqbgVbqubqvbqwbtrbgVaaaaaaaafaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkFbkFbkFbkFbkFbkFbkFbqxbqybqxbtsbttbhxbhxbtubtvbtwbtvbtxbtvbtybtzbcEbtAbtBbhGbtCbhGbtDbhHbtBbtEbtFbnNbbqaFCbtGbtHbtIbkVbtJbtKbtLbtMbtNbkWbtObtPbtQbtRbtSbtTbtUbtVbtWbtXbtYbtZbuabubbubbucbudbuebufbpEbugaFCaOmbdjbmUbuhbePbuibujbukbulbumbunbuobupbukbulbuqbuqbulbukburbdkbsTbusbrybrybutbpUbpWbuubuvbuwbuxbngbuybuzbuAbuBbuCbtjbtjbuDbuEbtjbuFbuGbuHbuIbuJbtjbuKbuLbuMbuNbuObuPbuQbuQbuQbuQbuQbqtbuRbdGbqubqwbgVbksbrWbuSbuSbtrbuTbuUbuVaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkFbkFbkFbkFbkFbkFbkFbuWbuXbuWbuYbuZbvabvabvabvabvabvbbvcbhxbqAbvdaWHbvebvfbvgbvhbvibkNbvjbvkbvlaWNaWNbvmaFCbvnbvobpnbkVbvpbvqbvrbskbvsbkWbvtbvubvvbvwbvxbvybvzbvAbvBbvCbvDbpBbvEbvFbvGbvHbudbuebufbpEbvIaFCaFCbvJbvKbvLbePbuibvMbukbvNbvObvPbvQbvRbukbvSbvTbvTbvUbukbvVbePbsTbvWbrybvXbvYbvZbwabwbbwcbwcbwdbwebwfbwgbwhbwibwjbrPbrPbwkbrPbwlbrPbrQbrPbrPbrPbrPbwmbwnbwobwpbwqbwrbwsbwtbwubwvbuQbfubwwbiYaafaafbgVbwxbrWbuSbuSbrXbwybwzbwAaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAbnAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkFbkFbkFbkFbkFbkFbkFbwBbwCbwDaWHaWHbwEbnCbnCbnCbwFaWHaWHbwGbwHbwIaWHbwJbwJbwJbwKbwJbwLbwMbwNbwObwPbwLbbqaFCbwQbwRaQPbkVbqQbwSbwTbwTbwUbwVbwWbwWbwXbwWbwYbwZbxabxbbxcbxcbxcbxdbpCbpCbpCbpCbpCbpCbpCbpEbvIaFCbxebukbukbxfbxgbxhbukbukbxibxjbxkbxlbxlbxmbxnbxobxpbxnbxqbvVbePbsTbxrbxsbxtbxubxvbxwbxxbxubxubxybxzbxAbxBbxCbxCbxCbxCbxCbxDbxCbxCbxEbxFbxGbxHbxHbxIbxJbxKbxLbwpbxMbxNbxObxPbxQbxRbuQbfubwwblUaaaaaabgVbxSbxTbgVbrXbgVbgVbrXbgVaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9924,30 +9901,30 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQHbQHbQHbQHbQHbQIbQJbQKbQLbQLbQMbOAbQNbQObQPbQQbQRbQSbNFbNFbQTbNEbQUbQVbQWbQXbQXbQYbQZbRabRbbRcbRdbRebRfbNZbMObNZbRgbRhbRibRjbRkbRlbRmbRnbRobRpbRqbPabRrbPdbPdbOeaafbCpbPvbPvbCpaaaaafaaabRsbRtbRubRvbRsaafaafaaaaafbCpbRwbRxbRybRzbGJbRAbRAbRBbRCbRDbREbPkbPkbPobPpbPkbPkbRFbRGbRHbRIbRIbRJbRKbRKbRLbRIbRIbRJbRKbRKbRLbRIbRMbwwbRNbRObRPbRQbRRbRSbRTbRUbRUbRUbRUbRUbRUbRUbRUbRUbRUbRUbRUbRUbRUbRUbRUbRVbRWbRWbRXbAzbAzbBRbBRbRYbBRbBRbAzbAzaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaafaafbRZbSabSbbScbSbbSdbSebSfbSgbSgbShbOAbSibEHbNEbSjbNFbSkbNFbNFbNFbSlbPUbOGbNMbSmbLGbSnbSobSpbSqbSrbMJbSsbStbNZbMObNZbSubSobSvbSwbSxbSybSzbSAbSzbSBaafbOebOebOebOebOeaafbCpbCpbSCbCpaafaafaafbSDbSEbSFbSGbSDaafaaaaaaaafbCpbCpbCpbCpbCpbSHbCpbCpbSIbSJbSKbCpbCpaaaaaaaaaaaabSLbSMbSNbSObSLaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabdGbSPbSQbSRbdGbdGbdGbdGaaaaafaaaaaaaaaagSagSagSaafaaaaaaaafaaaaaaaafaafaafbSSbSTbSUbDcbAybAzbAzbBRbBSbBRbAzbAzaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbRZbSVbSWbSXbSYbQKbSZbQKbTabQKbTbbTcbTdbTebNEbTfbNFbSkbNFbNFbTgbNEbThbTibNMbTjbLGbMGbTkbTlbOObTmbMJbTnbRgbTobTpbTqbTrbTsbTtbTubTvbTwbOTbTxbTybTzbOZbPabTAbTBbTBbOeaafaafbPvbTCbPvaaaaafaaabTDbTEbTFbTGbTDaafaaaaaaaafaaaaaaaaabCpbTHbTIbTJbCpaaaaafaaaaaaaafaaaaaaaaaaaabTKbTLbTMbTNbTKaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabTObTObTPbTQbTOaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbTRbAwbAwbAxbAybAybAzbAzbAzbAzbAAaafaafaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbRZbTSbTTbTUbTTbTVbTWbTXbTYbTZbUabOAbHNbEHbNEbUbbNFbUcbUdbUebUfbNEbUgbOGbNMbUhbUibUjbUkbOcbUlbUmbUnbOcbUobUpbUqbOcbUrbUsbUtbUubUvbNZbUwbUxbUybQiaafbQjbUzbUAbUBbOeaafaaaaaaaaaaaaaaaaaaaaabUCbQobUDbUEbUCaafaafaafaafaafaafaaabCpbUFbUGbPvbCpaaaaafaaaaaaaafaaaaaaaaaaaabUHbUIbUJbUKbUHaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabTObULbUMbUNbTOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbRZbTSbTTbTUbTTbTVbTWbTXbTYbTZbUabOAbHNbEHbNEbUbbNFbUcbUdbUebUfbNEbUgbOGbNMbUhbUibUjbUkbOccbGbUmbUnbOcbUobUpbUqbOcbUrbUsbUtbUubUvbNZbUwbUxbUybQiaafbQjbUzbUAbUBbOeaafaaaaaaaaaaaaaaaaaaaaabUCbQobUDbUEbUCaafaafaafaafaafaafaaabCpbUFbUGbPvbCpaaaaafaaaaaaaafaaaaaaaaaaaabUHbUIbUJbUKbUHaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabTObULbUMbUNbTOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafbQHbQHbQHbQHbQHbOAbOAbOAbOAbOAbOAbOAbHNbEHbNEbNEbNEbNEbNEbNEbNEbNEbUgbOGbNMbUObUPbUQbURbUSbUTbUUbUVbUWbUXbNZbMObNZbUYbUZbVabVbbVcbNZbUwbVdbVebVfbRqbPabVgbTBbTBbOeaafaaaaaaaaaaafaafaafaaabQobVhbVibVjbQobQobQobQobQobQobQoaafbCpbCpbCpbCpbCpaaaaafaaaaaaaafaaaaaaaaaaaabVkbVlbVmbVnbVkaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabTObVobVpbVqbTOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbEHbChbChbChbChbVrbEHbEHbVsbVtbVtbVtbVtbVubVvbVvbVwbVxbVxbVxbVxbVxbVxbVxbNDbChbVybOGbNMbVzbVAbVBbLObLNbVCbVDbVEbVDbVFbNZbMObNZbORbVGbVHbVIbVJbNZbUwbUxbVKbQiaafbOebOebOebOebOeaafaaabQobQobQobQobQobQobQobVLbVMbVNbVObVPbVQbVRbVSbVPbQoaafaafaafaafaafaafaafbVTaafaafaafaafaafaafaafbVUbSLbVVbVWbVUaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaabTObVXbVYbVZbTOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbWabWbbWcbWdbWebWfbEHbEHbOBbWgbEHbChbChbWhbWibChbChbWjbWkbWibChbChbWlbEHbOCbChbUgbOGbNMbWmbWnbMGbWobLGbWpbWqbWrbLNbLMbWsbMObNZbSubWtbVabStbWubWvbWwbWxbWybTzbOZbPabWzbWAbWBbOeaafaaabQobWCbWDbWEbWFbQobWGbWHbVMbWIbVObSEbWJbWKbWLbSEbQoaaaaaaaaaaafaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaabSLbWMbWNbWObSLaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabWPbWQbWRbWSbWTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaabEHbChbChbChbChbWUbWVbWVbWWbWXbWYbWXaaabWZaaaaaaaaaaaaaaaaaaaaabChbXabEHbOCbChbXbbXcbXdbXebXfbXgbXhbXibXjbXkbXlbXmbLMbXnbXobNZbSubWtbXpbStbWubXqbUwbUxbXrbQiaafbQjbXsbXtbXubOeaafaaabQobXvbXwbXxbVObQobXybVObXzbXybVObXAbXBbXCbXDbXEbQoaaaaaaaaaaafaaaaaaaaabSLbSLbSLbSLbSLbSLbSLbSLbSLbXFbXGbXHbSLaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaafbXIbXJbXIaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafbChbXKbWXbWXbXLbWXbXMbWXbWXbXNbXObWXbWXbXPbXQbXObWXbWXbWXbWXbXRbXSbXTbXUbNMbXVbXWbMGbMHbMGbMGbMGbMGbXXbLMbXYbXZbNZbSubWtbVabStbYabYbbYcbYdbYebVfbRqbPabYfbWAbWAbOeaafbYgbYhbYibYjbYkbYlbYkbYmbYnbYobYpbYkbYqbYrbYkbYsbYtbQoaaaaaaaaaaafaaaaaaaaabSLbYubYvbYwbYxbYybYzbYAbYBbYCbYDbYEbYFbYGaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafbYHbYIbYHaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafbChbXKbWXbWXbXLbWXbXMbWXbWXbXNbXObWXbWXbXPbXQbXObWXbWXbWXbWXbXRbXSbXTbXUbNMbXVbXWbMGbMHbMGbMGbMGbMGbXXbLMbXYbXZbNZbSubWtbVabStbYabYbbYcbYdbYebVfbRqbPabYfbWAbWAbOeaafbYgbYhbYibYjbYkbYlbYkbYmbYnbYodmubYpbYqbYrbYkbYsbYtbQoaaaaaaaaaaafaaaaaaaaabSLbYubYvbYwbYxbYybYzbYAbYBbYCbYDbYEbYFbYGaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafbYHbYIbYHaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqajqajqajpajpajqajpajpajpajXajpajpajpajqajqaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafbEKbXKbYJbYKbYLbYMbYNbYObYPbYQbYRbYSbWXbYRbYTbYUbYVbYVbYWbWXbYXbYYbYZbZabNMbXVbZbbZcbMHbMGbOJbMGbZdbZebZfbZgbZhbNZbSubNZbZibNZbZjbZkbUwbUxbZlbQiaafbOebOebOebOebOeaafaaabQobZmbRtbZnbZobZpbRvbZqbZrbZsbZnbZtbZubZnbRvbZvbQoaafaafaafaafaafaafaafbSLbZwbZxbZwbZybZzbUIbZAbYBbZBbZCbZBbSLbSLaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafaaabZDaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaajqaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaabGobXKbZEbZFbZGbZHbZIbZIbZIbZIbZJbZKbZLbYVbZMbYVbYVbZNbYVbZObDAbZPbZQbZabNMbXVbZRbZSbMHbZTbZUbZVbMHbZWbZXbZYbZZbNZbSubNZbORbVGcaacabcaccadcaebTzbOZbPacafcagcagbOeaafaaabUCbXAcahcaibQocajcakbZucalcamcancaobXDcapcaqcarbQoaaaaaaaaaaafaaaaaaaaabSLbZwbZwbZwcascatbYzcaucavcawcaxcaycazbSLaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacaAaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqaaacaBcaCcaDaaacaBcaCcaDaaacaBcaCcaDaafcaEaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaabGobXKbZEcaFbYVbZNcaGbYVbYVbYVbYVbYVcaFcaFbYVbYVbYVbYVcaHcaIbDAcaJbDAcaKcaLbZRbZRcaMbMHcaNcaOcaPbMHcaQbLMcaRcaScaTcaUbTqbRicaVcaWbOTbRkbUxcaXbQiaafbQjcaYcaZcbabOeaafaafaafaafaafaafbQocbbbSEbSGcbccbdbSDbZqcbebSDcbebZqbQoaaaaaaaaaaafaaaaaaaaabSLbYBbYBbYBbYBcbfbUIcbgcbhcbicbjcbkcblbSLaaaaaaaaaaaaaaacbmcbmcbmcbnaafaafaafaafcaAaafaafaafaafaafajXcbmcbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqaaacaBcbocaDaaacaBcbocaDaaacaBcbocaDaafaafaafaafaaaaaaaaaaaaaaaaaaaafaafaafbGobXKcbpcaFcbqbYVcbrcbscbtcbtbZMbYVcaFcbubYVbYVbYVbYVcbvcbwcbxcbybGzcbzcbAcbBcbCcbDbMHcaNbZUcbEbMHcaQbLMbSubNZbNZcaVbOccbFcbGcbHcbIbMWcbJcbKbVfbRqbPacbLcagcagbOeaafaaaaaaaafaaaaaabQocbMbSEbSGbSEcbNbSDbSEbSGbSDbSGcbObQoaaaaaaaaaaafaaaaaaaaabSLbYubYvbYwcbPcbQbYzcbRcbScbTcbUbUIcbVbSLaaaaaaaaaaaaaaacbmaaaaafaaaaafaaaaaaaaacbWaaaaafaafaaaaaaaaaaaacbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaajpaafcaBcbocaDaaacaBcbocaDaafcaBcbocaDaafaaaaaaaafaafaaaaaaaaaaaaaaaaafaaaaaabKibXKbWXcbXbYVcbYcbZccaccbcccccbccdccbcceccfbYRccgcaFcaFcaIbDBcchcciccjcckcclccmccnccoccpccqccrccscctbLMccubNZbNZccvbNZbNZbNZbObbUsccvbUxbVKbQiaafbOebOebOebOebOeaafaaaaaaaafaaaaaabQoccwccxccycczccAccBccCccDccBccDccCbQoaafaafaafaafaafaafaafbSLbZwbZwbZwccEbZzbUIccFccGccHccIbUIccJbSLbSLbSLbSLaaaaaacbmaaaccKccKccKccKccKaafccLaafccKccKccKccKccKaaacbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacaBcbocaDaafcaBcbocaDaaacaBcbocaDaaaaaaaaaaaaaaaaafaaaaafaaaaafaafaaaaaabChbXKbWXccMccNccNccObWXbWXbWXbWXbWXbWXbWXbWXbWXbWXbWXbWXbWXbChccPbChccQbChbLGccRccSccTbLGccUccVccWccXbLMccYccZcdacdbcdccddcdccdbcdecdbcdfcaVcdgaafaafaafaafaafaafaafaaaaaaaaaaaaaaabQobQobQocdhcdibQobQocdjbQobQobQocdjbUCaaaaaaaaaaaaaaaaaaaaabSLbZwbZwbZwcbPcdkbYzcdlcdmcdncdocdpcdpcdqcdrcdsbSLaafaafcbmaafcdtcducducducducdvccLcdwcdxcdxcdxcdxcdyaafcbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacaBcbocaDaafcaBcbocaDaaacaBcbocaDaaaaaaaaaaaaaaaaafaaaaafaaaaafaafaaaaaabChbXKbWXccMccNccNccObWXbWXbWXbWXbWXbWXbWXbWXbWXbWXbWXbWXbWXbChccPbChccQbChbLGccRccSccTbLGccUccVccWccXbLMccYccZcdacdbcdccddcdccdbcdecdbcdfcaVcdgaafaafaafaafaafaafaafaaaaaaaaaaaaaaabQobQobQocdhcdibQobQocdjbQobQobQocdjbUCaaaaaaaaaaaaaaaaaaaaabSLbZwbZwbZwcbPcdkbYzcdlceYcdncdocdpcdpcdqcdrcdsbSLaafaafcbmaafcdtcducducducducdvccLcdwcdxcdxcdxcdxcdyaafcbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqajqajpaafaaacaBcbocaDaafcaBcbocaDaaacaBcbocaDaafaaaaaaaaaaaaaafaafcdzcdAcdAcdAcdAbChbChbXKbWXcdBcdCcdCcdDcdEcdFcdGcdGcdGcdGcdGcdGcdHcdGcdGcdIcdIcdGcdJcdKcdLcdMcdNcdOcdPcdQcdRcdSbMGbMGcdTbVCbONcdUcdVcdWcdXcdYcdZceabNZcebceccedbNWaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaabQobXAceebQoaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaabSLbYBbYBbYBbYBcefbUIccFcegcehceibUIbUIcejbUIcekbSLaaaaaacbmaafcelcelcelcelcelaaaccLaaacelcelcelcelcelaafcbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqaaaaafaaaaafaafcemaafaafaafcemaafaaaaafcemaafaaaaaaaaaaaaaaacenceocepceqcercescetceubWVcevbWXbWXcewcexbWXbWXbLxcdRcdRcdRcdRcdRcdRceycdRcdRcdRcdNcdNcezceAceBceBceCceDceEceFceGceHbMGbMGceIceJceKceLceMceNceOcePceOceNceOceQceOceQceRaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaceSaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabSLbYubYvbYwceTcbQbYzceUbUKceVceWceWceXceYceZcfabSLaaaaaacbmaaaaafaaaaafaafaafaaaccLaaaaafaaaaafaaaaafaaacbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajpaafcfbcfccfccfdcfecfecfecfecfecfecfecfecfecfecfecfecfecfecffcfgcfhcficfjcfkcflcfmcfnbEHbXKcfobWXbWXbWXbWXbEHbLxcdRcfpcfqcfrcfscftcfucfvcfwcfxcdNcfycfzcfAcfBcfCcfDcfEcfFceFcfGcfHbMGbMGcfIbLGaafcfJaafcfKaafcfJaafcfKaafcfLaafcfLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfMaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabSLbZwbZxbZwcfNbZzbUIbUJbUKcfObUIbUIcfPbYBbYBbYBbSLaaaaaacbmaaaccKccKccKccKccKaafccLaafccKccKccKccKccKaafcbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqaaaaafaaaaafaafcfQaafaaaaafcfQaafaaaaafcfQaafaaaaaaaaaaaaaaacenceocfRcfScfTcfUcdAcfVbEHcfWbWVbWVbWVbWVbWVbWVcfXcdRcfYcfEcfEcfEcfZcgacfEcgbcgcceBcgdcgecgfcggcghcgicgjcgkceFcglcgmbMGbMGcgnbLGbOecgobQjcgobOecgobQjcgobOecgpbQjcgqbOeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSLbZwbZwbZwceTcgrcgscgtcgucgvbUIbUIcgwbUIcgxbUIbTKaafaafcbmaafcdtcducducducducdvccLcdwcdxcdxcdxcdxcdyaafcbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqaaaaafaaaaafaafcemaafaafaafcemaafaaaaafcemaafaaaaaaaaaaaaaaacenceocepceqcercescetceubWVcevbWXbWXcewcexbWXbWXbLxcdRcdRcdRcdRcdRcdRceycdRcdRcdRcdNcdNcezceAceBceBceCceDceEceFceGceHbMGbMGceIceJceKceLceMceNceOcePceOceNceOceQceOceQceRaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaceSaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabSLbYubYvbYwceTcbQbYzceUbUKceVceWceWceXdlPceZcfabSLaaaaaacbmaaaaafaaaaafaafaafaaaccLaaaaafaaaaafaaaaafaaacbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajpaafcfbcfccfccfdcfecfecfecfecfecfecfecfecfecfecfecfecfecfecffcfgcfhcficfjcfkcflcfmcfnbEHbXKcfobWXbWXbWXbWXbEHbLxcdRcfpcfqcfrcfscftcfucfvcfwcfxcdNcfycfzcfAcfBbUlcfDcfEcfFceFcfGcfHbMGbMGcfIbLGaafcfJaafcfKaafcfJaafcfKaafcfLaafcfLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfMaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabSLbZwbZxbZwcfNbZzbUIbUJbUKcfObUIbUIcfPbYBbYBbYBbSLaaaaaacbmaaaccKccKccKccKccKaafccLaafccKccKccKccKccKaafcbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqaaaaafaaaaafaafcfQaafaaaaafcfQaafaaaaafcfQaafaaaaaaaaaaaaaaacenceocfRcfScfTcfUcdAcfVbEHcfWbWVbWVbWVbWVbWVbWVcfXcdRcfYcfEcfEcfEckvcgacfEcgbcgcceBcgdcgecgfcggcghcgicgjcgkceFcglcgmbMGbMGcgnbLGbOecgobQjcgobOecgobQjcgobOecgpbQjcgqbOeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSLbZwbZwbZwceTcgrcgscgtcgucgvbUIbUIcgwbUIcgxbUIbTKaafaafcbmaafcdtcducducducducdvccLcdwcdxcdxcdxcdxcdyaafcbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqajqajpaafaafcaBcgycaDaaacaBcgycaDaaacaBcgycaDaafaaaaaaaaaaaaaafaafcgzcdAcdAcdAcdAbChbWlbXabEHcgAbEHbEHbEHcgBbOCcdRcgCcfEcgDcfEcgEcgFcgGcfEcgHcdNcgIcgJcgKcgLcgMcgNcfEceEcgOcdRbMGbMGbMGcgPbLGbOecgQcgRcgSbOecgTcgUcgVbOecgWcgXcgYbOeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVUbSLcgZchachachbchcchdchcchechfchgchhchibYzchjchkaaaaaacbmaafcelcelcelcelcelaaaccLaafcelcelcelcelcelaaacbmaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaBcgycaDaafcaBcgycaDaaacaBcgycaDaaaaaaaaaaafaaaaafaafaafaaaaaaaaaaaabChchlchmchmchnbChbChbChbChbOCcdRchocfEchpchqchrchschtcfEchucdNchvchwchxchychzcdNcdRchAchBcdRchCchDchEchFbLGbOechGchHchGbOechIchJchIbOechKchLchMbOeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceSaaabSLchNchOchPchQchRchOchSchTchRchOchUbSLaaaaaacbnaaaaafaaaaafaaaaafaaachVaaaaafaaaaafaafaafaafcbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDeaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajpaafcaBcgycaDaaacaBcgycaDaaacaBcgycaDaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafchWbKfchXbChbOCchYcfEcfEcfEcfEcfEchZcfEcfEciacibciccidciecifcigcihciicijcikcilcimcinciocipbLGbOechGciqchGbOechIcirchIbOechMcischMbOeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacitaafbSLciucivciwbYBcixciycizbYBciAciBciCbSLaaaaaacbmaaaccKccKccKccKccKaafcaAaafccKccKccKccKccKaafcbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajpaafcaBcgycaDaaacaBcgycaDaafcaBcgycaDaafaafaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafciDbEHbEHbHMciEcdRciFciGciHciIcfEchZcfEcfEcfEciJciKciLciKciKciKciMciNciOciPciQciRcfEcfEciSbLGbOebOebOebOebOebOebOebOebOebOebOebOebOeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaabSLciTbZwbZwbYBciTbZwbZwbYBciTbZwbZwbSLaafaafcbmaafcdtcducducducduciUciVciUcdxcdxcdxcdxcdyaafcbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXaafcaBciWcaDaaacaBciWcaDaaacaBciWcaDaafajpaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbNxbKhbKgcdRchBcdRcdRcdRcdRciXcfEciYciZcjacjbcjccjacjdcjecjfcjacjacjdcjgcjhcjicjjcjkcfEcjlbLGaaaaaaaaaaaaaafaafaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSLcjmbZwbZwbYBcjmbZwbZwbYBcjmbZwbZwbSLaaaaaacbmaafcelcelcelcelcelaaacaAaaacelcelcelcelcelaaacbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajpaaaaafaaaaaaaaaaafaafaafaaaaaaaafaafaaaajpaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbChbWjbWicdRcjncjocjpcjqcdRcdRcdRceycdRcjrcdRcdRcjscjtcjucjvcjvcjwcjxcjycjzcjscjAcdRcdRcjBbLGbZRbZRbZRbZRbLGaaaaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSLcjCbZwbZwbYBcjCbZwbZwbYBcjCbZwbZwbSLaaeaaacbmaaaaaaaafaafaafaaaaaacaAaafaaaaaaaafaafaaaaaacbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqajqajpajqajqajXajpajpajpajpajqajpajpajqcjDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdRcjEcjFcjGcjHcjIcjJcjKcjLcjMcjNcjOcjPcjQcjRcjScjTcjUcjVcjWcjXcjYcjZckackbcdRckcckcckcckdckeckfckfckgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVUbSLbSLbSLbSLbSLbSLbSLbSLckhckhckhbVUaaaaaacbmcbmcbmcbmcbmaaaaaaaaacaAaaaaaaaaacbmcbmcbmcbncbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaacdRckickickickickjcfEckkcklceEckmckncknckockpckqckrckscktckockuckvckwckwckxcdRcdRckyckickcckzckAckBckCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackDckDckDaaaaaaaaaaaaaaaaaaaaaaaaaaacbmaafckEaafcbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqajqajpajqajqajXajpajpajpajpajqajpajpajqcjDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdRcjEcjFcjGcjHcjIcjJcjKcjLcjMcjNcjOcjPcjQcjRdlGcjTcjUcjVcjWcjXcjYcjZckackbcdRckcckcckcckdckeckfckfckgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVUbSLbSLbSLbSLbSLbSLbSLbSLckhckhckhbVUaaaaaacbmcbmcbmcbmcbmaaaaaaaaacaAaaaaaaaaacbmcbmcbmcbncbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaacdRckickickickickjcfEckkcjSceEckmckncknckockpckqckrckscktckockucklckwckwckxcdRcdRckyckickcckzckAckBckCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackDckDckDaaaaaaaaaaaaaaaaaaaaaaaaaaacbmaafckEaafcbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacdRckFckGckHckIcdRckJckKckLckMckNckOckPcdRckQckRckScfEckTcdRckUckVckWckXckXckYcdRckZckiclaclbckfckfclcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbmaaaaafaaacbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafcdRcldcldcldckIcdRcleclfcdRclgclhclhclhcdRclicljclkcllclmcdRclhclhclhclgcdRclncloclpcdRclqbZRbZRclraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbmcbmcbmcbmcbmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaafaaaaafaaacdRcldcldckIckIcdRclscltcdRcluclvclwclxclyclzclAclBclCclmceGclvclvclvclDcdRclEclFclGclHclIclJclqclKaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10835,38 +10812,38 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgwdgxdgwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgydgzdgAdgAdgAdgAdgAdgBdgCdgwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgDdgEdgFdgGdgGdgGdgGdgHdgIdgJdgudgudgudgudgudgudguaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgKdgLdgMdgNdgOdgPdgQdgLdgRdgSdgTdgUdgudgudgudgudgudgudgudgudgudgVdgWdgXaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgKdgLdgYdgZdhadhbdhcdgLdhddhddhedhfdgUdgudgudgudhgdhhdhidhidhidhjdhkdhldhmdhmdgAdhndhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgKdgLdhpdhqdhrdhsdhtdgLdhudhvdhwdhedhfdhxdhddhydhzdhAdhBdhBdhBdhCdhDdhBdhBdhBdhBdhEdhFdhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgKdgLdhGdhHdhIdgLdgLdgLdhJdhKdhLdhMdhNdhOdhPdhQdhRdhSdhTdhUdhSdhVdhCdhSdhWdhTdhBaafdhXdhYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudhZdhZdgudgudhZdhZdhZdhZdgudhZdhZdhZdhZdhZdhZdhZdgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiadibdicdiddiedifdigdihdiidijdhKdikdildildildimdindhSdiodipdiqdhCdhCdirdipdiodhBaafaafdiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudhZdgudgudgudgudgudgudhZdhZdgudgudgudgudhZdhZdhZdhZdgudhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiadisdicditdiudivdiwdihdixdixdixdixdiydildizdiAdiBdhSdhSdhSdhSdiCdiDdiEdiEdiEdiEdiEdiFdiGdiHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiIdiJdiIaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudhZdgudgudgudhZdhZdgudhZdhZdhZdgudgudhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudhZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiKdiLdihdiMdiMdiNdiOdiPdiQdiRdiSdiTdiUdiVdiWdiXdiYdhSdiZdjadhSdjbdjcdjddjedjfdjgdjhdjidjjdjkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjldjmdjlaafaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudhZdhZdhZdhZdhZdhZdgudgudgudgudgudgudgudhZdhZdhZdhZdhZdgudgudgudhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjndjodjpdjqdjqdjrdjsdihdjtdiQdjudjvdjwdjxdjydjzdjAdjBdjCdjDdjEdjFdjGdiEdjHdjIdjJdjKdjLdjMdjkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjNdjOdjPdjQaafaaaaaadgudgudgudgudgudgudgudhZdgudgudhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjRdjSdjTdjUdjVdjWdjXdihdjYdjudjZdkadkbdkcdkcdkcdkddkcdkcdkcdkcdkedkfdiEdkgdjIdkhdkidkjdjjdjkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkkdkldkldkmdkndkodjlaafaaaaaadgudgudgudgudhZdhZdhZdgudgudhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZaafdkpdkqdhmdhmdhmdhmdhndkrdisdksdjpdktdkudkvdkwdihdkxdkydkzdkAdkBdkCdkDdkEdkFdkGdkHdkIdkcdkJdkKdiEdkLdkMdkNdkidiEdkOdkPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkQdkRdkSdkTdkUdkVdkWaafaafdhZdhZdgudgudhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdkXdkXdkXaafdgDdkYaafaafaafaafdhEdkZdladlbdihdihdihdlcdihdihdixdixdlddledlfdkcdlgdlhdkFdlidljdlkdkcdlldlmdlndlodlpdlqdlrdiEdlsdltaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvaaadgvdgvdgvdgvdgvaaadgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadludkldkldlvdlwdkodlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdkXdkXdkXaaaaaadgKdlydlydlydlydlydlydlydlzdlAdhCdlBdlCdlDdlEdlFdlGdlHdlIdlJdlKdkcdlLdlMdlNdlOdlPdlQdlRdlSdlTdlUdlUdlUdlVdlWdlXdlYdlZdlZdmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvaaadgvdgvdgvdgvdgvaaadgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdmbdmcdmddlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdkXaaaaaadgKdlydlydlydlydlydlydlydmedmfdmgdmhdmidmjdmkdmkdmldmmdmndmodmpdmqdmrdmsdmtdmudmvdmwdmxdmydmzdlUdmAdmBdmCdmDdlUdmEdltdltdltaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdmFdmGdmHdmIdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZaaaaaaaaaaaadgKdlydlydlydlydlydlydlydmedmJdmKdmLdmMdmNdmOdmPdmQdmRdhBdmSdmTdkcdmUdmVdmWdmXdmYdmZdkcdnadnbdncdnddnddnednfdngdnhdnidnjdnjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdnkdnldnmdlxdnndnodlxdlxdlxdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZaaaaaaaaaaaaaaaaaadgKdlydlydlydlydlydlydlydmedmJdhCdmLdnpdnqdnrdnsdntdnudhBdnvdnwdkcdnxdkcdnydnzdnAdnBdkcdnCdnDdlUdnEdnFdnGdnHdnIdnJdnKdnLdnLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdnMdnNdnOdnPdnQdnRdiIdkVdnSdlxdnTdnUdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZaaaaaaaaaaaaaaaaaadgKdlydlydlydlydlydlydlydnVdmJdhCdnWdnXdnYdnZdoadobdocdhBdoddoedofdogdkcdohdoidojdokdkcdoldomdondoodopdoqdordosdnJdnjdnjdnjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdotdoudnNdovdowdoxdoydozdnSdoAdnUdoBdnTdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZaaaaaaaaaaaaaaaaaadoCdoDdoEdoFdoGdoDdoEdoHdoIdoJdoKdhSdoLdhSdhBdhBdhBdhBdhBdoMdoNdoOdogdkcdoPdlMdoQdoRdkcdoSdoTdoUdoVdoWdoXdoYdoZdpadpbdhBdpcdkqdhmdhmdhmdhmdhmdhmdhndpdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpedotdpfdotdnOdnOdnndpgdowdlxdmIdphdlxdnUdpidlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZaaaaaaaaaaaaaaaaaadpjdpkdpldpldpmdpndpndpodppdpqdpndprdpsdptdpudpvdpwdpxdpydpzdpAdpBdpCdkcdkcdkcdpDdkcdkcdpEdpFdlUdlUdpGdlUdlUdlUdpHdpIdpJdpKdpLdpMdpMdpNdpMdpMdpMdpOdhYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdpPdpQdnOdpRdpSdnOdmddpTdoxdpUdpVdpWdlxdlxdlxdlxdlxdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaadpXdpYdpldpldpZdpldqadqbdqcdqddqedqfdqgdqhdpudqidqjdqkdqldqmdqndqodqpdqqdqrdqsdqtdqudqvdqwdqxdqqdqydqzdqAdqqdqBdqqdqvdqCdqDdqEdqFdqGdqHdqIdqJdqKdpMdiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdqLdqMdqNdnOdpSdqOdovdqPdowdqQdlxdqRdqSdlxdqTdnSdqUdqVdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaadqWdqXdpldpldqYdpldqZdradrbdrcdrddredrfdrgdpudrhdridrjdrkdrldrmdrndrodrpdrqdrrdrsdrtdrudrrdrvdrwdrxdrrdrwdrydrzdrAdrBdrCdrDdrEdrFdrGdrHdrIdrIdrJdpMdiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfYdgudgudgudgudgudgudgudguaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgydgzdgAdgAdjWdjWdjWdjWdjWdjXdjVdgTdgUdgudgudgudgudgudgudgudgudgudgVdgWdgXaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgydksdkrdgudgudgudgudgudgudhddhddhddhedhfdgUdgudgudgudhgdhhdhidhidhidhjdhkdhldhmdhmdgAdhndhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadktdkrdgudgudgudgudgudgudgudhddhudhvdhwdhedhfdhxdhddhydhzdhAdhBdhBdhBdhCdhDdhBdhBdhBdhBdhEdhFdhoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgKdihdihdihdihdihdihdihdihdihdhJdhKdhLdhMdhNdhOdhPdhQdhRdhSdhTdhUdhSdhVdhCdhSdhWdhTdhBaafdhXdhYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudhZdhZdgudgudhZdhZdhZdhZdgudhZdhZdhZdhZdhZdhZdhZdgudgudgudgudgudgudgudguaaaaaaaaaaaaaaaaaaaaaaaaaaadgKdihdkudkvdicdjndkwdladkZdihdiidijdhKdikdildildildimdindhSdiodipdiqdhCdhCdirdipdiodhBaafaafdiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudhZdgudgudgudgudgudgudhZdhZdgudgudgudgudhZdhZdhZdhZdgudhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdguaaaaaaaaaaaaaaaaaaaaaaaaaaadgKdibdicdhHdhIdhtdhGdhrdhsdihdixdixdixdixdiydildizdiAdiBdhSdhSdhSdhSdiCdiDdiEdiEdiEdiEdiEdiFdiGdiHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiIdiJdiIaaaaaaaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudgudhZdgudgudgudhZdhZdgudhZdhZdhZdgudgudhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudhZaaaaaaaaaaaaaaaaaaaaaaaadgKdihdhqdhbdhbdhcdhpdgZdhadiPdiQdiRdiSdiTdiUdiVdiWdiXdiYdhSdiZdjadhSdjbdjcdjddjedjfdjgdjhdjidjjdjkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjldjmdjlaafaaaaaaaaadgudgudgudgudgudgudgudgudgudgudgudgudhZdhZdhZdhZdhZdhZdgudgudgudgudgudgudgudhZdhZdhZdhZdhZdgudgudgudhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZaaaaaaaaaaaaaaaaaaaaaaaadgKdihdhqdiudiudhcdhpdivdiwdihdjtdiQdjudjvdjwdjxdjydjzdjAdjBdjCdjDdjEdjFdjGdiEdjHdjIdjJdjKdjLdlbdjkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjNdjOdjPdjQaafaaaaaadgudgudgudgudgudgudgudhZdgudgudhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZaaaaaaaaaaaaaaaaaaaaadgydugdibditdhHdiddiedifdigdisdihdjYdjudjZdkadkbdkcdkcdkcdkddkcdkcdkcdkcdkedkfdiEdkgdjIdkhdkidkjdjjdjkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkkdkldkldkmdkndkodjlaafaaaaaadgudgudgudgudhZdhZdhZdgudgudhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZaafdkpdkqdhmdhmdhmdtudkYdihdiMdjpdjqdjndjodiNdiOdihdkxdkydkzdkAdkBdkCdkDdkEdkFdkGdkHdkIdkcdkJdkKdiEdkLdkMdkNdkidiEdkOdkPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkQdkRdkSdkTdkUdkVdkWaafaafdhZdhZdgudgudhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdkXdkXdkXaafdgDdkYaafaafaafaafaafdihdihdihdihdihdihdiKdiLdihdixdixdlddledlfdkcdlgdlhdkFdlidljdlkdkcdlldlmdlndlodlpdlqdlrdiEdlsdltaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvaaadgvdgvdgvdgvdgvaaadgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadludkldkldlvdlwdkodlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdkXdkXdkXaaaaaadgKdlydlydlydlydlydlydlydhSdjsdhCdlBdlCdjSdjTdlFdjRdlHdlIdlJdlKdkcdlLdlMdlNdlOdlQdjUdlRdlSdlTdlUdlUdlUdlVdlWdlXdlYdlZdlZdmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvaaadgvdgvdgvdgvdgvaaadgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdmbdmcdmddlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdkXaaaaaadgKdlydlydlydlydlydlydlydlzdmfdmgdmhdmidmjdjrdmkdmldmmdmndmodmpdmqdmrdmsdmtdmwdmwdmwdmxdmydmzdlUdmAdmBdmCdmDdlUdmEdltdltdltaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaadgvdgvdgvdgvdgvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdmFdmGdmHdmIdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZaaaaaaaaaaaadgKdlydlydlydlydlydlydlydmedmJdmKdmLdmMdmNdmOdmPdmQdmRdhBdmSdmTdkcdmUdgHdmWdgFdgEdgGdkcdnadnbdncdnddnddnednfdngdnhdnidnjdnjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdnkdnldnmdlxdnndnodlxdlxdlxdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZaaaaaaaaaaaaaaaaaadgKdlydlydlydlydlydlydlydnVdmJdhCdmLdnpdnqdnrdnsdntdnudhBdnvdnwdkcdnxdkcdgCdgBdgxdgwdkcdnCdnDdlUdnEdnFdnGdnHdnIdnJdnKdnLdnLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdnMdnNdnOdnPdnQdnRdiIdkVdnSdlxdnTdnUdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZaaaaaaaaaaaaaaaaaadgKdlydlydlydlydlydlydlydhSdmJdhCdnWdnXdnYdnZdoadobdocdhBdoddoedofdogdkcdohdgMdgLdgNdkcdoldomdondoodopdoqdordosdnJdnjdnjdnjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdotdoudnNdovdowdoxdoydozdnSdoAdnUdoBdnTdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZaaaaaaaaaaaaaaaaaadoCdoDdoEdoFdoGdoDdoEdoHdoIdoJdoKdhSdoLdhSdhBdhBdhBdhBdhBdoMdoNdoOdogdkcdoPdgJdgIdoRdkcdoSdoTdoUdoVdoWdoXdoYdoZdpadpbdhBdpcdkqdhmdhmdhmdhmdhmdhmdhndpdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpedotdpfdotdnOdnOdnndpgdowdlxdmIdphdlxdnUdpidlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZaaaaaaaaaaaaaaaaaadpjdpkdpldpldpmdpndpndpodppdpqdpndprdpsdptdpudpvdpwdpxdpydpzdpAdpBdpCdkcdkcdgSdgRdkcdkcdpEdpFdlUdlUdpGdlUdlUdlUdpHdpIdpJdpKdpLdpMdpMdpNdpMdpMdpMdpOdhYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdpPdpQdnOdpRdpSdnOdmddpTdoxdpUdpVdpWdlxdlxdlxdlxdlxdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaadpXdpYdpldpldpZdpldqadqbdqcdqddqedqfdqgdqhdpudqidqjdqkdqldqmdqndqodqpdgOdqrdgQdgPdqudqvdqwdqxdqqdqydqzdqAdqqdqBdqqdqvdqCdqDdqEdqFdqGdqHdqIdqJdqKdpMdiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdqLdqMdqNdnOdpSdqOdovdqPdowdqQdlxdqRdqSdlxdqTdnSdqUdqVdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudgudgudgudgudgudgudgudgudgudgudgudgudguaaaaaaaaaaaaaaadqWdqXdpldpldqYdpldqZdradrbdrcdrddredrfdrgdpudrhdridrjdrkdrldrmdrndrodgYdrqdrrdrvdrtdrudrrdrvdrwdrxdrrdrwdrydrzdrAdrBdrCdrDdrEdrFdrGdrHdrIdrIdrJdpMdiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafdhZdhZdlxdnRdrKdrLdrMdqNdrNdrOdoxdrPdiIdkVdrQdlxdqTdmIdnSdqVdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudgudgudgudrRdrRdrRdrRdrRdrRdgudgudgudgudgudgudguaaaaaaaaaaaadrSdrTdpldrUdrVdrWdrXdrYdrZdsadsbdscdsddsedpudrhdpvdsfdsgdsgdsgdshdsidsjdskdsldsjdsmdsndsodsmdspdsqdsrdspdspdssdstdsudsvdpMdswdsxdpMdsydrIdrIdszdpMdiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdlxdlxdlxdlxdlxdlxdnQdowdsAdrKdowdpTdsBdrPdrPdozdnSdqRdlxdqTdmddsCdqVdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudgudrRdrRdrRdsDdsDdsDdsDdrRdrRdrRdgudgudgudgudsEdsFaaaaaaaaadsGdsHdoEdoFdsIdsIdsIdsIdsJdsKdsLdhSdhSdhSdpudsMdsgdsNdsgdsOdsPdsQdsRdsjdsSdsTdsUdsmdsVdsWdsXdspdsYdsZdtadspdtbdtcdsudtddtedpMdpMdpMdtfdtgdthdqKdpMdiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdlxdtidkVdoxdtjdlxdtkdtldtmdlxdpUdlxdtndtodtpdlxdkVdtqdjmdtrdmddmHdjmdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudgudgudrRdrRdsDdsDdsDdsDdsDdsDdsDdsDdrRdrRdgudgudtsdttdhmdhmdhmdhmdtudkYaafaafdtvdtwdtxdtydtzdtAdtBdtCdtDdtEdtFdtGdtHdtIdtJdtKdtLdtMdtNdtOdtPdtQdtRdsmdtSdtTdtUdspdtVdtWdtXdspdtYdtZduadubducdudduedpMdpMdpMdpMdpMdufdugaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhZdlxdtidmddkVdovdpUdtqdrKduhdrKduidkVdkVdujdnSdkVdmddmddlxdjmdukdmddkVdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudgudrRdrRdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdrRdrRduldumdundguaaaaaaaaaaaaaaaaaaaafdtvdtwduodupduqdurdusdutduuduuduvdpudsgdsNdsgduwdsgduxduyduzdsjduAdsjdsmdsmduBdsmdspdspduCdspdspduDduEduFduGduHduHduIdteduJdgzdhmdhmduKduLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhZdhZdlxdtiduMdmddmddpUdmddsCdnndmdduNduidsCdrQduOdmdduPdmIdlxdrKdjmdtqdkVdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudrRduQdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDduRdrRduSduTdrRdrRaaaaaaaaaaaaaaaaaaaafdtvdtwduUduVduWduVduXduYduZduudvadpudvbdvcdvddvedsgdvfdvgdvhdvidvjdvkdvldvmdvndvodvpdvqdvrdvsdspdvtdvudtedvvdvwdvvdvwdtedvxdvydhZaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdlxdlxdlxdlxdlxdlxdnQdowdsAdrKdowdpTdsBdrPdrPdozdnSdqRdlxdqTdmddsCdqVdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudgudrRdrRdrRdsDdsDdsDdsDdrRdrRdrRdgudgudgudgudsEdsFaaaaaaaaadsGdsHdoEdoFdsIdsIdsIdsIdsJdsKdsLdhSdhSdhSdpudsMdsgdlAdsgdsOdsPdsQdsRdsjdsSdsTdsUdsmdsVdsWdsXdspdsYdsZdtadspdtbdtcdsudtddtedpMdpMdpMdtfdtgdthdqKdpMdiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdlxdtidkVdoxdtjdlxdtkdtldtmdlxdpUdlxdtndtodtpdlxdkVdtqdjmdtrdmddmHdjmdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudgudgudrRdrRdsDdsDdsDdsDdsDdsDdsDdsDdrRdrRdgudgudtsdttdhmdhmdhmdhmdtudkYaafaafdtvdtwdtxdtydtzdtAdtBdtCdtDdtEdtFdtGdtHdlEdtJdtKdtLdtMdtNdtOdtPdtQdtRdsmdtSdtTdtUdspdtVdtWdtXdspdtYdtZduadubducdudduedpMdpMdpMdpMdpMdufdugaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhZdlxdtidmddkVdovdpUdtqdrKduhdrKduidkVdkVdujdnSdkVdmddmddlxdjmdukdmddkVdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudgudrRdrRdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdrRdrRduldumdundguaaaaaaaaaaaaaaaaaaaafdtvdtwduodupduqdurdusdutduuduuduvdpudsgdlAdsgduwdsgduxduyduzdsjduAdsjdsmdsmduBdsmdspdspduCdspdspduDduEduFduGduHduHduIdteduJdgzdhmdhmduKduLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhZdhZdlxdtiduMdmddmddpUdmddsCdnndmdduNduidsCdrQduOdmdduPdmIdlxdrKdjmdtqdkVdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudrRduQdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDduRdrRduSduTdrRdrRaaaaaaaaaaaaaaaaaaaafdtvdtwduUduVduWduVduXduYduZduudvadpudvbdlDdvddvedsgdvfdvgdvhdvidvjdvkdvldvmdvndvodvpdvqdvrdvsdspdvtdvudtedvvdvwdvvdvwdtedvxdvydhZaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhZdhZdhZdlxdtidvzdovdnQdlxdvAdlxdvBdvCdlxdoxdlxdvBdvCdlxdowdtqdlxdujdvDdjmdqRdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudrRdvEdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdvFduQdvGduQdrRaaaaaaaaaaaaaaaaaaaaaaafdtvduYduYduYdvHdvIdvJduYdvKduudvLdpudvMdvMdvMdvMdsgdvNdvOdsjdvPdvQdvRdsmdvSdvTdvUdspdvVdvWdvXdspdvYdvZdwadtedtedtedtedwbdwcdgudhZdhZdhZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhZdhZdhZdhZdhZdhZdlxdlxdlxdlxdlxdlxdvAdlxdwddnSdoxdqRdmIdowdrNdowdpWdovdlxdvBdwedwfdwgdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudrRduRdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdwhdwidwjaaaaaaaaaaaaaaaaaaaaaaafaafdtvdwkdwldwldwmdwnduYdwodwpduudwqdpudsDdsDdsDdsDdsgdwrdwsdsjdwtdwudwvdsmdwwdwxdwydspdwzdwAdwBdspdwCdwDdwadgudhZdgudwEdwFdwGdgudhZdhZdhZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhZdhZdhZdhZdhZdhZdlxdlxdlxdlxdlxdlxdvAdlxdwddnSdoxdqRdmIdowdrNdowdpWdovdlxdvBdwedwfdwgdlxdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudrRduRdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdwhdwidwjaaaaaaaaaaaaaaaaaaaaaaafaafdtvdwkdwldwldwmdwnduYdwodwpduudwqdpudsDdsDdsDdsDdsgdjMdwsdsjdwtdwudwvdsmdwwdwxdwydspdwzdwAdwBdspdwCdwDdwadgudhZdgudwEdwFdwGdgudhZdhZdhZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdlxdvAdlxdnSdqRdwHdpTdkodovdnSdlxdowdmIdlxdwIdwJdwJdwKdlxdwLdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudrRdrRdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdwMdwNdwOaaaaaaaaaaaaaaaaaaaafaafaafdtvdtvdwPdwQdtvdwRdwSdwTdwSdtvdwUdsDdsDdsDdsDdsDdsgdsgdsgdsjdsjdsjdsjdsmdsmdsmdsmdspdspdspdspdspdwadwadwVdwWdhidhidwXdvydgudgudhZdhZdhZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdlxdvAdlxdqRdkVdpWdnSdowdmIdpWdlxdvAdlxdlxdqTdjmdwJdwYdwZdwLdwLdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudrRdrRdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdxadxbdxcaaaaaaaaaaaaaaaaafdxddxedxfdxgdxhdxidxjdxkdxldxmdxndxodtvdwUdsDdsDdsDdsDdsDdxpdxqdxrdgudgudgudgudgudgudgudgudgudgudgudgudgudgudhgdxsdvydxtdgudgudgudgudgudhZdhZdhZdhZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdlxdvAdlxdqRdkVdpWdnSdowdmIdpWdlxdvAdlxdlxdqTdjmdwJdwYdwZdwLdwLdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudrRdrRdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdxadxbdxcaaaaaaaaaaaaaaaaafdxddxedxfdxgdxhdxidxjdxkdxldxmdxndxodtvdwUdsDdsDdsDdsDdsDdxpdlcdxrdgudgudgudgudgudgudgudgudgudgudgudgudgudgudhgdxsdvydxtdgudgudgudgudgudhZdhZdhZdhZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdlxdvAdlxdlxdlxdlxdlxdlxdlxdlxdlxdvAdlxdqTdjmdqUdjmdwKdxudwLdwLdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudrRdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdxvdxwdxxdxydxydxydxydxydxydxzdxAdxBdxCdxCdxDdxEdxEdtvdxFdxGdxHdtvdwUdsDdsDdsDdsDdsDdwMdxbdxIdgudgudhZdhZdhZdhZdhZdhZdgudgudgudgudgudhgdxsdvydxJdwLdxJdgudgudgudgudhZdhZdhZdhZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKaaaaaaaaaaaaaaadxKdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdlxdvAdvAdvAdvAdvAdvAdvAdvAdvAdvAdvAdlxdqTdqUdqUdqUdqVdlxdwLdwLdwLdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudrRdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdxLdxMdxMdxMdxMdxMdxMdxMdxMdxLdsDdsDdsDdsDdsDdsDdtvdwSdxNdwSdtvdxOdsDdsDdsDdsDdsDdxPdxQdxRdhidhidhidhidxSdhidhidhidhidhidxTdxUdxVdxWdvydwLdwLdwLdxJdsEdgudhZdhZdhZdhZdhZdhZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdxKdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdwgdxXdxYdlxdlxdwLdwLdwLdwLdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdhZdgudrRdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdsDdxvdxBdxZdyadyadyadyadyadyadyadxvdxBdsDdsDdsDdsDdsDdsDdybdycdyddyedyfdygdsDdsDdsDdsDdxrdxrdxrdgudgudhZdhZdhZdhZdhZdhZdhZdhZdyhdyidyjdykdwLdxJdwLdwLdxJdgudgudgudhZdhZdhZdhZdhZdhZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11310,3 +11287,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} +