diff --git a/baystation12.dme b/baystation12.dme index 227cf0d3122..bf50b75cc75 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -446,6 +446,7 @@ #include "code\game\objects\effects\decals\Cleanable\misc.dm" #include "code\game\objects\effects\decals\Cleanable\robots.dm" #include "code\game\objects\effects\decals\Cleanable\tracks.dm" +#include "code\game\objects\effects\decals\posters\bs12.dm" #include "code\game\objects\effects\spawners\bombspawner.dm" #include "code\game\objects\effects\spawners\gibspawner.dm" #include "code\game\objects\effects\spawners\vaultspawner.dm" @@ -1247,6 +1248,7 @@ #include "code\modules\scripting\Scanner\Tokens.dm" #include "code\modules\security levels\keycard authentication.dm" #include "code\modules\security levels\security levels.dm" +#include "code\modules\supermatter\supermatter.dm" #include "code\modules\surgery\appendix.dm" #include "code\modules\surgery\bones.dm" #include "code\modules\surgery\braincore.dm" @@ -1274,6 +1276,11 @@ #include "code\modules\virus2\helpers.dm" #include "code\modules\virus2\isolator.dm" #include "code\modules\virus2\items_devices.dm" +#include "code\TriDimension\controller.dm" +#include "code\TriDimension\Movement.dm" +#include "code\TriDimension\Pipes.dm" +#include "code\TriDimension\Structures.dm" +#include "code\TriDimension\Turfs.dm" #include "code\WorkInProgress\autopsy.dm" #include "code\WorkInProgress\buildmode.dm" #include "code\WorkInProgress\explosion_particles.dm" @@ -1320,7 +1327,6 @@ #include "code\WorkInProgress\Ported\policetape.dm" #include "code\WorkInProgress\SkyMarshal\officer_stuff.dm" #include "code\WorkInProgress\SkyMarshal\Ultralight_procs.dm" -#include "code\WorkInProgress\Yinadele\Supermatter.dm" #include "code\ZAS\Airflow.dm" #include "code\ZAS\Connection.dm" #include "code\ZAS\Debug.dm" diff --git a/code/ATMOSPHERICS/components/unary/heat_source.dm b/code/ATMOSPHERICS/components/unary/heat_source.dm index 01438c32d99..2d3e9b67a8e 100644 --- a/code/ATMOSPHERICS/components/unary/heat_source.dm +++ b/code/ATMOSPHERICS/components/unary/heat_source.dm @@ -26,7 +26,7 @@ process() ..() - if(!on) + if(!on || !network) return 0 var/air_heat_capacity = air_contents.heat_capacity() var/combined_heat_capacity = current_heat_capacity + air_heat_capacity diff --git a/code/TriDimension/Movement.dm b/code/TriDimension/Movement.dm index dfb529df5b1..5f451a1038d 100644 --- a/code/TriDimension/Movement.dm +++ b/code/TriDimension/Movement.dm @@ -1,49 +1,52 @@ -var/maxZ = 6 -var/minZ = 2 - -// Maybe it's best to have this hardcoded for whatever we'd add to the map, in order to avoid exploits -// (such as mining base => admin station) -// Note that this assumes the ship's top is at z=1 and bottom at z=4 -/obj/item/weapon/tank/jetpack/proc/move_z(cardinal, mob/user as mob) - if (user.z > 1) - user << "\red There is nothing of interest in that direction." - return - if(allow_thrust(0.01, user)) - switch(cardinal) - if (UP) // Going up! - if(user.z > maxZ) // If we aren't at the very top of the ship - var/turf/T = locate(user.x, user.y, user.z - 1) - // You can only jetpack up if there's space above, and you're sitting on either hull (on the exterior), or space - //if(T && istype(T, /turf/space) && (istype(user.loc, /turf/space) || istype(user.loc, /turf/space/*/hull*/))) - //check through turf contents to make sure there's nothing blocking the way - if(T && istype(T, /turf/space)) - var/blocked = 0 - for(var/atom/A in T.contents) - if(T.density) - blocked = 1 - user << "\red You bump into [T.name]." - break - if(!blocked) - user.Move(T) - else - user << "\red You bump into the ship's plating." +/obj/item/weapon/tank/jetpack/verb/moveup() + set name = "Move Upwards" + set category = "Object" + if(allow_thrust(0.01, usr)) + var/turf/controllerlocation = locate(1, 1, usr.z) + var/legal = 0 + for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) + legal = controller.up + if (controller.up) + var/turf/T = locate(usr.x, usr.y, controller.up_target) + if(T && (istype(T, /turf/space) || istype(T, /turf/simulated/floor/open))) + var/blocked = 0 + for(var/atom/A in T.contents) + if(A.density) + blocked = 1 + usr << "\red You bump into [A.name]." + break + if(!blocked) + usr.Move(T) + usr << "You move upwards." else - user << "\red The ship's gravity well keeps you in orbit!" // Assuming the ship starts on z level 1, you don't want to go past it + usr << "\red There is something in your way." + if (legal == 0) + usr << "There is nothing of interest in this direction." + return 1 - if (DOWN) // Going down! - if (user.z < 1) // If we aren't at the very bottom of the ship, or out in space - var/turf/T = locate(user.x, user.y, user.z + 1) - // You can only jetpack down if you're sitting on space and there's space down below, or hull - if(T && (istype(T, /turf/space) || istype(T, /turf/space/*/hull*/)) && istype(user.loc, /turf/space)) - var/blocked = 0 - for(var/atom/A in T.contents) - if(T.density) - blocked = 1 - user << "\red You bump into [T.name]." - break - if(!blocked) - user.Move(T) - else - user << "\red You bump into the ship's plating." +/obj/item/weapon/tank/jetpack/verb/movedown() + set name = "Move Downwards" + set category = "Object" + if(allow_thrust(0.01, usr)) + var/turf/controllerlocation = locate(1, 1, usr.z) + var/legal = 0 + for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) + legal = controller.down + if (controller.down == 1) + var/turf/T = locate(usr.x, usr.y, controller.down_target) + var/turf/S = locate(usr.x, usr.y, usr.z) + if(T && (istype(S, /turf/space) || istype(S, /turf/simulated/floor/open))) + var/blocked = 0 + for(var/atom/A in T.contents) + if(A.density) + blocked = 1 + usr << "\red You bump into [A.name]." + break + if(!blocked) + usr.Move(T) + usr << "You move downwards." else - user << "\red The ship's gravity well keeps you in orbit!" \ No newline at end of file + usr << "\red You cant move through the floor." + if (legal == 0) + usr << "There is nothing of interest in this direction." + return 1 diff --git a/code/TriDimension/Pipes.dm b/code/TriDimension/Pipes.dm index e69de29bb2d..efba6b96da3 100644 --- a/code/TriDimension/Pipes.dm +++ b/code/TriDimension/Pipes.dm @@ -0,0 +1,191 @@ +//////////////////////////// +// parent class for pipes // +//////////////////////////// +obj/machinery/atmospherics/pipe/zpipe + icon = 'icons/obj/structures.dmi' + icon_state = "up" + + name = "upwards pipe" + desc = "A pipe segment to connect upwards." + + volume = 70 + + dir = SOUTH + initialize_directions = SOUTH + + var/obj/machinery/atmospherics/node1 //connection on the same Z + var/obj/machinery/atmospherics/node2 //connection on the other Z + + var/minimum_temperature_difference = 300 + var/thermal_conductivity = 0 //WALL_HEAT_TRANSFER_COEFFICIENT No + + var/maximum_pressure = 70*ONE_ATMOSPHERE + var/fatigue_pressure = 55*ONE_ATMOSPHERE + alert_pressure = 55*ONE_ATMOSPHERE + + + level = 1 + +obj/machinery/atmospherics/pipe/zpipe/New() + ..() + switch(dir) + if(SOUTH) + initialize_directions = SOUTH + if(NORTH) + initialize_directions = NORTH + if(WEST) + initialize_directions = WEST + if(EAST) + initialize_directions = EAST + if(NORTHEAST) + initialize_directions = NORTH + if(NORTHWEST) + initialize_directions = WEST + if(SOUTHEAST) + initialize_directions = EAST + if(SOUTHWEST) + initialize_directions = SOUTH + initialize() + + +obj/machinery/atmospherics/pipe/zpipe/hide(var/i) + if(level == 1 && istype(loc, /turf/simulated)) + invisibility = i ? 101 : 0 + update_icon() + +obj/machinery/atmospherics/pipe/up/process() + if(!parent) //This should cut back on the overhead calling build_network thousands of times per cycle + ..() + else + . = PROCESS_KILL + +obj/machinery/atmospherics/pipe/zpipe/check_pressure(pressure) + var/datum/gas_mixture/environment = loc.return_air() + + var/pressure_difference = pressure - environment.return_pressure() + + if(pressure_difference > maximum_pressure) + burst() + + else if(pressure_difference > fatigue_pressure) + //TODO: leak to turf, doing pfshhhhh + if(prob(5)) + burst() + + else return 1 + +obj/machinery/atmospherics/pipe/zpipe/proc/burst() + src.visible_message("\red \bold [src] bursts!"); + playsound(src.loc, 'sound/effects/bang.ogg', 25, 1) + var/datum/effect/effect/system/smoke_spread/smoke = new + smoke.set_up(1,0, src.loc, 0) + smoke.start() + del(src) + +obj/machinery/atmospherics/pipe/zpipe/proc/normalize_dir() + if(dir==3) + dir = 1 + else if(dir==12) + dir = 4 + +obj/machinery/atmospherics/pipe/zpipe/Del() + if(node1) + node1.disconnect(src) + if(node2) + node2.disconnect(src) + ..() + +obj/machinery/atmospherics/pipe/zpipe/pipeline_expansion() + return list(node1, node2) + +obj/machinery/atmospherics/pipe/zpipe/update_icon() + return + +obj/machinery/atmospherics/pipe/zpipe/disconnect(obj/machinery/atmospherics/reference) + if(reference == node1) + if(istype(node1, /obj/machinery/atmospherics/pipe)) + del(parent) + node1 = null + + if(reference == node2) + if(istype(node2, /obj/machinery/atmospherics/pipe)) + del(parent) + node2 = null + + return null +///////////////////////// +// the elusive up pipe // +///////////////////////// +obj/machinery/atmospherics/pipe/zpipe/up + icon = 'icons/obj/structures.dmi' + icon_state = "up" + + name = "upwards pipe" + desc = "A pipe segment to connect upwards." + +obj/machinery/atmospherics/pipe/zpipe/up/initialize() + normalize_dir() + var/node1_dir + + for(var/direction in cardinal) + if(direction&initialize_directions) + if (!node1_dir) + node1_dir = direction + + for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir)) + if(target.initialize_directions & get_dir(target,src)) + node1 = target + break + + var/turf/controllerlocation = locate(1, 1, src.z) + for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) + if(controller.up) + var/turf/above = locate(src.x, src.y, controller.up_target) + if(above) + for(var/obj/machinery/atmospherics/target in above) + if(target.initialize_directions && istype(target, /obj/machinery/atmospherics/pipe/zpipe/down)) + node2 = target + break + + + var/turf/T = src.loc // hide if turf is not intact + hide(T.intact) + +/////////////////////// +// and the down pipe // +/////////////////////// + +obj/machinery/atmospherics/pipe/zpipe/down + icon = 'icons/obj/structures.dmi' + icon_state = "down" + + name = "downwards pipe" + desc = "A pipe segment to connect downwards." + +obj/machinery/atmospherics/pipe/zpipe/down/initialize() + normalize_dir() + var/node1_dir + + for(var/direction in cardinal) + if(direction&initialize_directions) + if (!node1_dir) + node1_dir = direction + + for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir)) + if(target.initialize_directions & get_dir(target,src)) + node1 = target + break + + var/turf/controllerlocation = locate(1, 1, src.z) + for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) + if(controller.down) + var/turf/below = locate(src.x, src.y, controller.down_target) + if(below) + for(var/obj/machinery/atmospherics/target in below) + if(target.initialize_directions && istype(target, /obj/machinery/atmospherics/pipe/zpipe/up)) + node2 = target + break + + + var/turf/T = src.loc // hide if turf is not intact + hide(T.intact) \ No newline at end of file diff --git a/code/TriDimension/Structures.dm b/code/TriDimension/Structures.dm index 85e499f7ad4..942945e6846 100644 --- a/code/TriDimension/Structures.dm +++ b/code/TriDimension/Structures.dm @@ -3,11 +3,10 @@ /////////////////////////////////////// /obj/multiz - icon = 'code/TriDimension/multiz.dmi' + icon = 'icons/obj/structures.dmi' density = 0 opacity = 0 anchored = 1 - var/obj/multiz/target CanPass(obj/mover, turf/source, height, airflow) return airflow || !density @@ -15,64 +14,140 @@ /obj/multiz/ladder icon_state = "ladderdown" name = "ladder" - desc = "A Ladder. You climb up and down it." + desc = "A ladder. You climb up and down it." - var/top_icon_state = "ladderdown" - var/bottom_icon_state = "ladderup" + var/d_state = 1 + var/obj/multiz/target New() . = ..() - spawn(1) //Allow map to load - if(z in levels_3d) - if(!target) - var/list/adjacent_to_me = global_adjacent_z_levels["[z]"] - if("up" in adjacent_to_me) - target = locate() in locate(x,y,adjacent_to_me["up"]) - if(istype(target)) - icon_state = bottom_icon_state - else if("down" in adjacent_to_me) - target = locate() in locate(x,y,adjacent_to_me["down"]) - if(istype(target)) - icon_state = top_icon_state - else - del src - else - del src - else if("down" in adjacent_to_me) - target = locate() in locate(x,y,adjacent_to_me["down"]) - if(istype(target)) - icon_state = bottom_icon_state - else - del src - else - del src - if(target) - target.icon_state = ( icon_state == top_icon_state ? bottom_icon_state : top_icon_state) - target.target = src - else - del src + + proc/connect() + if(icon_state == "ladderdown") // the upper will connect to the lower + d_state = 1 + var/turf/controllerlocation = locate(1, 1, z) + for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) + if(controller.down) + var/turf/below = locate(src.x, src.y, controller.down_target) + for(var/obj/multiz/ladder/L in below) + if(L.icon_state == "ladderup") + target = L + L.target = src + d_state = 0 + break + return + +/* ex_act(severity) + switch(severity) + if(1.0) + if(icon_state == "ladderup" && prob(10)) + Del() + if(2.0) + if(prob(50)) + Del() + if(3.0) + Del() + return*/ Del() spawn(1) - if(target) + if(target && icon_state == "ladderdown") del target return ..() attack_paw(var/mob/M) return attack_hand(M) - attackby(var/W, var/mob/M) - return attack_hand(M) + attackby(obj/item/C as obj, mob/user as mob) + (..) + +// construction commented out for balance concerns +/* if (!target && istype(C, /obj/item/stack/rods)) + var/turf/controllerlocation = locate(1, 1, z) + var/found = 0 + var/obj/item/stack/rods/S = C + if(S.amount < 2) + user << "You dont have enough rods to finish the ladder." + return + for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) + if(controller.down) + found = 1 + var/turf/below = locate(src.x, src.y, controller.down_target) + var/blocked = 0 + for(var/atom/A in below.contents) + if(A.density) + blocked = 1 + break + if(!blocked && !istype(below, /turf/simulated/wall)) + var/obj/multiz/ladder/X = new /obj/multiz/ladder(below) + S.amount = S.amount - 2 + if(S.amount == 0) S.Del() + X.icon_state = "ladderup" + connect() + user << "You finish the ladder." + else + user << "The area below is blocked." + if(!found) + user << "You cant build a ladder down there." + return + + else if (icon_state == "ladderdown" && d_state == 0 && istype(C, /obj/item/weapon/wrench)) + user << "You start loosening the anchoring bolts which secure the ladder to the frame." + playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) + + sleep(30) + if(!user || !C) return + + src.d_state = 1 + if(target) + var/obj/item/stack/rods/R = new /obj/item/stack/rods(target.loc) + R.amount = 2 + target.Del() + + user << "You remove the bolts anchoring the ladder." + return + + else if (icon_state == "ladderdown" && d_state == 1 && istype(C, /obj/item/weapon/weldingtool) ) + var/obj/item/weapon/weldingtool/WT = C + if( WT.remove_fuel(0,user) ) + + user << "You begin to remove the ladder." + playsound(src.loc, 'sound/items/Welder.ogg', 100, 1) + + sleep(60) + if(!user || !WT || !WT.isOn()) return + + var/obj/item/stack/sheet/metal/S = new /obj/item/stack/sheet/metal( src ) + S.amount = 2 + user << "You remove the ladder and close the hole." + Del() + else + user << "You need more welding fuel to complete this task." + return + + else + src.attack_hand(user) + return*/ + src.attack_hand(user) + return attack_hand(var/mob/M) if(!target || !istype(target.loc, /turf)) - del src - var/list/adjacent_to_me = global_adjacent_z_levels["[z]"] - M.visible_message("\blue \The [M] climbs [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!", "You climb [target.z == adjacent_to_me["up"] ? "up" : "down"] \the [src]!", "You hear some grunting, and clanging of a metal ladder being used.") - M.Move(target.loc) + M << "The ladder is incomplete and can't be climbed." + else + var/turf/T = target.loc + var/blocked = 0 + for(var/atom/A in T.contents) + if(A.density) + blocked = 1 + break + if(blocked || istype(T, /turf/simulated/wall)) + M << "Something is blocking the ladder." + else + M.visible_message("\blue \The [M] climbs [src.icon_state == "ladderup" ? "up" : "down"] \the [src]!", "You climb [src.icon_state == "ladderup" ? "up" : "down"] \the [src]!", "You hear some grunting, and clanging of a metal ladder being used.") + M.Move(target.loc) - - hatch +/* hatch icon_state = "hatchdown" name = "hatch" desc = "A hatch. You climb down it, and it will automatically seal against pressure loss behind you." @@ -125,81 +200,48 @@ spawn(7) top_hatch.icon_state = top_icon_state bottom_hatch.overlays -= red_overlay - active = 0 + active = 0*/ /obj/multiz/stairs name = "Stairs" desc = "Stairs. You walk up and down them." - icon_state = "ramptop" - var/top_icon_state = "ramptop" - var/bottom_icon_state = "rampbottom" + icon_state = "rampbottom" + var/obj/multiz/stairs/connected + var/turf/target - active - density = 1 + New() + ..() + var/turf/cl= locate(1, 1, src.z) + for(var/obj/effect/landmark/zcontroller/c in cl) + if(c.up) + var/turf/O = locate(src.x, src.y, c.up_target) + if(istype(O, /turf/space)) + O.ChangeTurf(/turf/simulated/floor/open) - - New() - . = ..() - spawn(1) - if(z in levels_3d) - if(!target) - var/list/adjacent_to_me = global_adjacent_z_levels["[z]"] - if("up" in adjacent_to_me) - target = locate() in locate(x,y,adjacent_to_me["up"]) - if(istype(target)) - icon_state = bottom_icon_state - else if("down" in adjacent_to_me) - target = locate() in locate(x,y,adjacent_to_me["down"]) - if(istype(target)) - icon_state = top_icon_state - else - del src - else - del src - else if("down" in adjacent_to_me) - target = locate() in locate(x,y,adjacent_to_me["down"]) - if(istype(target)) - icon_state = bottom_icon_state - else - del src - else - del src - if(target) - target.icon_state = ( icon_state == top_icon_state ? bottom_icon_state : top_icon_state) - target.target = src - var/obj/multiz/stairs/lead_in = locate() in get_step(src, reverse_direction(dir)) - if(lead_in) - lead_in.icon_state = ( icon_state == top_icon_state ? bottom_icon_state : top_icon_state) - else - del src - - - Del() - spawn(1) + spawn(1) + for(var/dir in cardinal) + var/turf/T = get_step(src.loc,dir) + for(var/obj/multiz/stairs/S in T) + if(S && S.icon_state == "rampbottom" && !S.connected) + S.dir = dir + src.dir = dir + S.connected = src + src.connected = S + src.icon_state = "ramptop" + src.density = 1 + var/turf/controllerlocation = locate(1, 1, src.z) + for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) + if(controller.up) + var/turf/above = locate(src.x, src.y, controller.up_target) + if(istype(above,/turf/space) || istype(above,/turf/simulated/floor/open)) + src.target = above + break if(target) - del target - return ..() - + break Bumped(var/atom/movable/M) - if(target.z > z && istype(src, /obj/multiz/stairs/active) && !locate(/obj/multiz/stairs) in M.loc) - return //If on bottom, only let them go up stairs if they've moved to the entry tile first. - //If it's the top, they can fall down just fine. - - if(!target || !istype(target.loc, /turf)) - del src - - if(ismob(M) && M:client) - M:client.moving = 1 - M.Move(target.loc) - if (ismob(M) && M:client) - M:client.moving = 0 - - Click() - if(!istype(usr,/mob/dead/observer)) - return ..() - if(!target || !istype(target.loc, /turf)) - del src - usr.client.moving = 1 - usr.Move(target.loc) - usr.client.moving = 0 \ No newline at end of file + if(connected && target && istype(src, /obj/multiz/stairs) && locate(/obj/multiz/stairs) in M.loc) + var/obj/multiz/stairs/Con = locate(/obj/multiz/stairs) in M.loc + if(Con == src.connected) //make sure the atom enters from the approriate lower stairs tile + M.Move(target) + return diff --git a/code/TriDimension/Turfs.dm b/code/TriDimension/Turfs.dm index 1e49e4dc80e..94114c9a9e1 100644 --- a/code/TriDimension/Turfs.dm +++ b/code/TriDimension/Turfs.dm @@ -1,27 +1,3 @@ -atom/movable/var/list/adjacent_z_levels -atom/movable/var/archived_z_level - -atom/movable/Move() //Hackish - - if(adjacent_z_levels && adjacent_z_levels["up"]) - var/turf/above_me = locate(x,y,adjacent_z_levels["up"]) - if(istype(above_me, /turf/simulated/floor/open)) - above_me:RemoveImage(src) - - . = ..() - - if(archived_z_level != z) - archived_z_level = z - if(z in levels_3d) - adjacent_z_levels = global_adjacent_z_levels["[z]"] - else - adjacent_z_levels = null - - if(adjacent_z_levels && adjacent_z_levels["up"]) - var/turf/above_me = locate(x,y,adjacent_z_levels["up"]) - if(istype(above_me, /turf/simulated/floor/open)) - above_me:AddImage(src) - /turf/simulated/floor/open name = "open space" intact = 0 @@ -31,66 +7,109 @@ atom/movable/Move() //Hackish var/icon/darkoverlays = null var/turf/floorbelow var/list/overlay_references - mouse_opacity = 2 New() ..() - spawn(1) - if(!(z in levels_3d)) - ReplaceWithSpace() - var/list/adjacent_to_me = global_adjacent_z_levels["[z]"] - if(!("down" in adjacent_to_me)) - ReplaceWithSpace() - - floorbelow = locate(x, y, adjacent_to_me["down"]) - if(floorbelow) - if(!istype(floorbelow,/turf)) - del src - else if(floorbelow.density) - ReplaceWithPlating() - else - set_up() - else - ReplaceWithSpace() - + getbelow() + return Enter(var/atom/movable/AM) if (..()) //TODO make this check if gravity is active (future use) - Sukasa spawn(1) + // only fall down in defined areas (read: areas with artificial gravitiy) + if(!floorbelow) //make sure that there is actually something below + if(!getbelow()) + return if(AM) - AM.Move(floorbelow) - if (istype(AM, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = AM - var/damage = rand(5,15) - H.apply_damage(2*damage, BRUTE, "head") - H.apply_damage(2*damage, BRUTE, "chest") - H.apply_damage(0.5*damage, BRUTE, "l_leg") - H.apply_damage(0.5*damage, BRUTE, "r_leg") - H.apply_damage(0.5*damage, BRUTE, "l_arm") - H.apply_damage(0.5*damage, BRUTE, "r_arm") - H:weakened = max(H:weakened,2) - H:updatehealth() + var/area/areacheck = get_area(src) + var/blocked = 0 + var/soft = 0 + for(var/atom/A in floorbelow.contents) + if(A.density) + blocked = 1 + break + if(istype(A, /obj/machinery/atmospherics/pipe/zpipe/up) && istype(AM,/obj/item/pipe)) + blocked = 1 + break + if(istype(A, /obj/structure/disposalpipe/up) && istype(AM,/obj/item/pipe)) + blocked = 1 + break + if(istype(A, /obj/multiz/stairs)) + soft = 1 + //dont break here, since we still need to be sure that it isnt blocked + + if (soft || (!blocked && !(areacheck.name == "Space"))) + AM.Move(floorbelow) + if (!soft && istype(AM, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = AM + var/damage = 5 + H.apply_damage(min(rand(-damage,damage),0), BRUTE, "head") + H.apply_damage(min(rand(-damage,damage),0), BRUTE, "chest") + H.apply_damage(min(rand(-damage,damage),0), BRUTE, "l_leg") + H.apply_damage(min(rand(-damage,damage),0), BRUTE, "r_leg") + H.apply_damage(min(rand(-damage,damage),0), BRUTE, "l_arm") + H.apply_damage(min(rand(-damage,damage),0), BRUTE, "r_arm") + H:weakened = max(H:weakened,2) + H:updatehealth() return ..() - attackby() - return //nothing +/turf/simulated/floor/open/proc/getbelow() + var/turf/controllerlocation = locate(1, 1, z) + for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) + // check if there is something to draw below + if(!controller.down) + src.ChangeTurf(/turf/space) + return 0 + else + floorbelow = locate(src.x, src.y, controller.down_target) + return 1 + return 1 - proc/set_up() //Update the overlays to make the openspace turf show what's down a level - if(!overlay_references) - overlay_references = list() - if(!floorbelow) return - overlays += floorbelow - for(var/obj/o in floorbelow) - var/image/o_img = image(o, dir=o.dir, layer = TURF_LAYER+0.05*o.layer) - overlays += o_img - overlay_references[o] = o_img +// override to make sure nothing is hidden +/turf/simulated/floor/open/levelupdate() + for(var/obj/O in src) + if(O.level == 1) + O.hide(0) - proc/AddImage(var/atom/movable/o) - var/o_img = image(o, dir=o.dir, layer = TURF_LAYER+0.05*o.layer) - overlays += o_img - overlay_references[o] = o_img +//overwrite the attackby of space to transform it to openspace if necessary +/turf/space/attackby(obj/item/C as obj, mob/user as mob) + if (istype(C, /obj/item/weapon/cable_coil)) + var/turf/simulated/floor/open/W = src.ChangeTurf(/turf/simulated/floor/open) + W.attackby(C, user) + return + ..() - proc/RemoveImage(var/atom/movable/o) - var/o_img = overlay_references[o] - overlays -= o_img - overlay_references -= o \ No newline at end of file +/turf/simulated/floor/open/ex_act(severity) + // cant destroy empty space with an ordinary bomb + return + +/turf/simulated/floor/open/attackby(obj/item/C as obj, mob/user as mob) + (..) + if (istype(C, /obj/item/weapon/cable_coil)) + var/obj/item/weapon/cable_coil/cable = C + cable.turf_place(src, user) + return + + if (istype(C, /obj/item/stack/rods)) + var/obj/structure/lattice/L = locate(/obj/structure/lattice, src) + if(L) + return + var/obj/item/stack/rods/R = C + user << "\blue Constructing support lattice ..." + playsound(src.loc, 'sound/weapons/Genhit.ogg', 50, 1) + ReplaceWithLattice() + R.use(1) + return + + if (istype(C, /obj/item/stack/tile/plasteel)) + var/obj/structure/lattice/L = locate(/obj/structure/lattice, src) + if(L) + var/obj/item/stack/tile/plasteel/S = C + del(L) + playsound(src.loc, 'sound/weapons/Genhit.ogg', 50, 1) + S.build(src) + S.use(1) + return + else + user << "\red The plating is going to need some support." + return diff --git a/code/TriDimension/controller.dm b/code/TriDimension/controller.dm new file mode 100644 index 00000000000..528c2c76ba7 --- /dev/null +++ b/code/TriDimension/controller.dm @@ -0,0 +1,263 @@ +/obj/effect/landmark/zcontroller + name = "Z-Level Controller" + var/initialized = 0 // when set to 1, turfs will report to the controller + var/up = 0 // 1 allows up movement + var/up_target = 0 // the Z-level that is above the current one + var/down = 0 // 1 allows down movement + var/down_target = 0 // the Z-level that is below the current one + + var/list/slow = list() + var/list/normal = list() + var/list/fast = list() + + var/slow_time + var/normal_time + var/fast_time + +/obj/effect/landmark/zcontroller/New() + ..() + for (var/turf/T in world) + if (T.z == z) + fast += T + slow_time = world.time + 3000 + normal_time = world.time + 600 + fast_time = world.time + 10 + + processing_objects.Add(src) + + initialized = 1 + return 1 + +/obj/effect/landmark/zcontroller/Del() + processing_objects.Remove(src) + return + +/obj/effect/landmark/zcontroller/process() + if (world.time > fast_time) + calc(fast) + fast_time = world.time + 10 + + if (world.time > normal_time) + calc(normal) + normal_time = world.time + 600 + +/* if (world.time > slow_time) + calc(slow) + slow_time = world.time + 3000 */ + return + +/obj/effect/landmark/zcontroller/proc/add(var/list/L, var/I, var/transfer) + while (L.len) + var/turf/T = pick(L) + + L -= T + slow -= T + normal -= T + fast -= T + + if(!T || !istype(T, /turf)) + continue + + switch (I) + if(1) slow += T + if(2) normal += T + if(3) fast += T + + if(transfer > 0) + if(up) + var/turf/controller_up = locate(1, 1, up_target) + for(var/obj/effect/landmark/zcontroller/c_up in controller_up) + var/list/temp = list() + temp += locate(T.x, T.y, up_target) + c_up.add(temp, I, transfer-1) + + if(down) + var/turf/controller_down = locate(1, 1, down_target) + for(var/obj/effect/landmark/zcontroller/c_down in controller_down) + var/list/temp = list() + temp += locate(T.x, T.y, down_target) + c_down.add(temp, I, transfer-1) + return + +/turf + var/list/z_overlays = list() + +/turf/New() + ..() + + var/turf/controller = locate(1, 1, z) + for(var/obj/effect/landmark/zcontroller/c in controller) + if(c.initialized) + var/list/turf = list() + turf += src + c.add(turf,3,1) + +/turf/space/New() + ..() + + var/turf/controller = locate(1, 1, z) + for(var/obj/effect/landmark/zcontroller/c in controller) + if(c.initialized) + var/list/turf = list() + turf += src + c.add(turf,3,1) + +atom/movable/Move() //Hackish + . = ..() + + var/turf/controllerlocation = locate(1, 1, src.z) + for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) + if(controller.up || controller.down) + var/list/temp = list() + temp += locate(src.x, src.y, src.z) + controller.add(temp,3,1) + +/obj/effect/landmark/zcontroller/proc/calc(var/list/L) + var/list/slowholder = list() + var/list/normalholder = list() + var/list/fastholder = list() + var/new_list + + while(L.len) + var/turf/T = pick(L) + new_list = 0 + + if(!T || !istype(T, /turf)) + L -= T + continue + + T.overlays -= T.z_overlays + T.z_overlays -= T.z_overlays + + if(down && (istype(T, /turf/space) || istype(T, /turf/simulated/floor/open))) + var/turf/below = locate(T.x, T.y, down_target) + if(below) + if(!(istype(below, /turf/space) || istype(below, /turf/simulated/floor/open))) + var/image/t_img = list() + new_list = 1 + + var/image/temp = image(below, dir=below.dir, layer = TURF_LAYER + 0.04) + + temp.color = rgb(127,127,127) + temp.overlays += below.overlays + t_img += temp + T.overlays += t_img + T.z_overlays += t_img + + // get objects + var/image/o_img = list() + for(var/obj/o in below) + // ingore objects that have any form of invisibility + if(o.invisibility) continue + new_list = 2 + var/image/temp2 = image(o, dir=o.dir, layer = TURF_LAYER+0.05*o.layer) + temp2.color = rgb(127,127,127) + temp2.overlays += o.overlays + o_img += temp2 + // you need to add a list to .overlays or it will not display any because space + T.overlays += o_img + T.z_overlays += o_img + + // get mobs + var/image/m_img = list() + for(var/mob/m in below) + // ingore mobs that have any form of invisibility + if(m.invisibility) continue + // only add this tile to fastprocessing if there is a living mob, not a dead one + if(istype(m, /mob/living)) new_list = 3 + var/image/temp2 = image(m, dir=m.dir, layer = TURF_LAYER+0.05*m.layer) + temp2.color = rgb(127,127,127) + temp2.overlays += m.overlays + m_img += temp2 + // you need to add a list to .overlays or it will not display any because space + T.overlays += m_img + T.z_overlays += m_img + + T.overlays -= below.z_overlays + T.z_overlays -= below.z_overlays + + // this is sadly impossible to use right now + // the overlay is always opaque to mouseclicks and thus prevents interactions with everything except the turf + /*if(up) + var/turf/above = locate(T.x, T.y, up_target) + if(above) + var/eligeable = 0 + for(var/d in cardinal) + var/turf/mT = get_step(above,d) + if(istype(mT, /turf/space) || istype(mT, /turf/simulated/floor/open)) + eligeable = 1 + /*if(mT.opacity == 0) + for(var/f in cardinal) + var/turf/nT = get_step(mT,f) + if(istype(nT, /turf/space) || istype(nT, /turf/simulated/floor/open)) + eligeable = 1*/ + if(istype(above, /turf/space) || istype(above, /turf/simulated/floor/open)) eligeable = 1 + if(eligeable == 1) + if(!(istype(above, /turf/space) || istype(above, /turf/simulated/floor/open))) + var/image/t_img = list() + if(new_list < 1) new_list = 1 + + above.overlays -= above.z_overlays + var/image/temp = image(above, dir=above.dir, layer = 5 + 0.04) + above.overlays += above.z_overlays + + temp.alpha = 100 + temp.overlays += above.overlays + temp.overlays -= above.z_overlays + t_img += temp + T.overlays += t_img + T.z_overlays += t_img + + // get objects + var/image/o_img = list() + for(var/obj/o in above) + // ingore objects that have any form of invisibility + if(o.invisibility) continue + if(new_list < 2) new_list = 2 + var/image/temp2 = image(o, dir=o.dir, layer = 5+0.05*o.layer) + temp2.alpha = 100 + temp2.overlays += o.overlays + o_img += temp2 + // you need to add a list to .overlays or it will not display any because space + T.overlays += o_img + T.z_overlays += o_img + + // get mobs + var/image/m_img = list() + for(var/mob/m in above) + // ingore mobs that have any form of invisibility + if(m.invisibility) continue + // only add this tile to fastprocessing if there is a living mob, not a dead one + if(istype(m, /mob/living) && new_list < 3) new_list = 3 + var/image/temp2 = image(m, dir=m.dir, layer = 5+0.05*m.layer) + temp2.alpha = 100 + temp2.overlays += m.overlays + m_img += temp2 + // you need to add a list to .overlays or it will not display any because space + T.overlays += m_img + T.z_overlays += m_img + + T.overlays -= above.z_overlays + T.z_overlays -= above.z_overlays*/ + + L -= T + + if(new_list == 1) + slowholder += T + if(new_list == 2) + normalholder += T + if(new_list == 3) + fastholder += T + for(var/d in cardinal) + var/turf/mT = get_step(T,d) + if(!(mT in fastholder)) + fastholder += mT + for(var/f in cardinal) + var/turf/nT = get_step(mT,f) + if(!(nT in fastholder)) + fastholder += nT + + add(slowholder,1, 0) + add(normalholder, 2, 0) + add(fastholder, 3, 0) + return diff --git a/code/TriDimension/multiz.dmi b/code/TriDimension/multiz.dmi deleted file mode 100644 index 13b118ce9f2..00000000000 Binary files a/code/TriDimension/multiz.dmi and /dev/null differ diff --git a/code/TriDimension/multiz_pipe.dmi b/code/TriDimension/multiz_pipe.dmi deleted file mode 100644 index a3bbbee0b28..00000000000 Binary files a/code/TriDimension/multiz_pipe.dmi and /dev/null differ diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/areas.dm b/code/WorkInProgress/Cael_Aislinn/Rust/areas.dm index f3a9a4ea1c6..8887859fc0e 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/areas.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/areas.dm @@ -21,10 +21,6 @@ electrical_storage name = "\improper Electrical storage" - engine_monitoring - name = "\improper Electrical storage" - icon_state = "engine_monitoring" - reactor_core name = "\improper Reactor Core" //icon_state = "engine_core" diff --git a/code/ZAS/Functions.dm b/code/ZAS/Functions.dm index 3037e13f412..d0f5e593295 100644 --- a/code/ZAS/Functions.dm +++ b/code/ZAS/Functions.dm @@ -11,6 +11,12 @@ proc/FloodFill(turf/simulated/start) var/list/open = list(start) //The list of tiles which have been evaulated. var/list/closed = list() +/////// Z-Level stuff + //List of all space tiles bordering the zone + var/list/list_space = list() + //List of all Z-Levels of the zone where it borders space + var/list/z_space = list() +/////// Z-Level stuff //Loop through the turfs in the open list in order to find which adjacent turfs should be added to the zone. while(open.len) @@ -67,10 +73,75 @@ proc/FloodFill(turf/simulated/start) //If it cannot connect either to the north or west, connect it! closed += O +/////// Z-Level stuff + if(istype(O,/turf/space)) + if(!(O in list_space)) + list_space += O + if(!(O.z in z_space)) + z_space += O.z + + // handle Z-level connections + var/turf/controllerlocation = locate(1, 1, T.z) + for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) + // connect upwards + if(controller.up) + var/turf/above_me = locate(T.x, T.y, controller.up_target) + // add the turf above this + if(istype(above_me, /turf/simulated/floor/open) && !(above_me in open) && !(above_me in closed)) + open += above_me + + if(istype(above_me,/turf/space)) + if(!(above_me in list_space)) + list_space += above_me + if(!(above_me.z in z_space)) + z_space += above_me.z + // connect downwards + if(controller.down && istype(T, /turf/simulated/floor/open)) + var/turf/below_me = locate(T.x, T.y, controller.down_target) + // add the turf below this + if(!(below_me in open) && !(below_me in closed)) + open += below_me +/////// Z-Level stuff + //This tile is now evaluated, and can be moved to the list of evaluated tiles. open -= T closed += T +/////// Z-Level stuff + // once the zone is done, check if there is space that needs to be changed to open space + if(!open.len) + var/list/temp = list() + while(list_space.len) + var/turf/S = pick(list_space) + //check if the zone has any space borders below the evaluated space tile + //if there is some, we dont need to make open_space since the zone can vent and the zone above can vent + //through the evaluated tile + //if there is none, the zone can connect upwards to either vent from there or connect with the zone there + //also check if the turf below the space is actually part of this zone to prevent the edge tiles from transforming + var/turf/controllerloc = locate(1, 1, S.z) + for(var/obj/effect/landmark/zcontroller/controller in controllerloc) + if(controller.down) + var/turf/below = locate(S.x, S.y, controller.down_target) + if(!((S.z - 1) in z_space) && below in closed) + open += S.ChangeTurf(/turf/simulated/floor/open) + list_space -= S + else + list_space -= S + temp += S + else + list_space -= S + temp += S + // make sure the turf is removed from the list + list_space -= S + z_space -= z_space + while(temp.len) + var/turf/S = pick(temp) + if(!(S.z in z_space)) + z_space += S.z + list_space += S + temp -= S +/////// Z-Level stuff + return closed diff --git a/code/ZAS/ZAS_Zones.dm b/code/ZAS/ZAS_Zones.dm index c7387254d4d..1726d04f5c4 100644 --- a/code/ZAS/ZAS_Zones.dm +++ b/code/ZAS/ZAS_Zones.dm @@ -146,6 +146,13 @@ var/list/CounterDoorDirections = list(SOUTH,EAST) //Which directions doors turfs T.zone = src +///// Z-Level Stuff + // also add the tile below it if its open space + if(istype(T, /turf/simulated/floor/open)) + var/turf/simulated/floor/open/T2 = T + src.AddTurf(T2.floorbelow) +///// Z-Level Stuff + else if(!unsimulated_tiles) unsimulated_tiles = list() @@ -767,6 +774,32 @@ zone/proc/Rebuild() if(adjacent_id && (!lowest_id || adjacent_id < lowest_id)) lowest_id = adjacent_id +/////// Z-Level stuff + var/turf/controllerlocation = locate(1, 1, current.z) + for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) + // upwards + if(controller.up) + var/turf/simulated/adjacent = locate(current.x, current.y, controller.up_target) + + if(adjacent in turfs && istype(adjacent, /turf/simulated/floor/open)) + current_adjacents += adjacent + adjacent_id = turfs[adjacent] + + if(adjacent_id && (!lowest_id || adjacent_id < lowest_id)) + lowest_id = adjacent_id + + // downwards + if(controller.down && istype(current, /turf/simulated/floor/open)) + var/turf/simulated/adjacent = locate(current.x, current.y, controller.down_target) + + if(adjacent in turfs) + current_adjacents += adjacent + adjacent_id = turfs[adjacent] + + if(adjacent_id && (!lowest_id || adjacent_id < lowest_id)) + lowest_id = adjacent_id +/////// Z-Level stuff + if(!lowest_id) lowest_id = current_identifier++ identical_ids += lowest_id diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index ff853eca2f2..22e6376836e 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -23,6 +23,9 @@ var/global/list/all_species[0] var/global/list/all_languages[0] var/global/list/whitelisted_species = list("Human") +// Posters +var/global/list/datum/poster/poster_designs = typesof(/datum/poster) - /datum/poster + //Preferences stuff //Hairstyles var/global/list/hair_styles_list = list() //stores /datum/sprite_accessory/hair indexed by name @@ -33,8 +36,8 @@ var/global/list/facial_hair_styles_male_list = list() var/global/list/facial_hair_styles_female_list = list() var/global/list/skin_styles_female_list = list() //unused //Underwear -var/global/list/underwear_m = list("White", "Grey", "Green", "Blue", "Black", "Mankini", "Love-Hearts", "Black2", "Grey2", "Stripey", "Kinky", "None") //Curse whoever made male/female underwear diffrent colours -var/global/list/underwear_f = list("Red", "White", "Yellow", "Blue", "Black", "Thong", "Babydoll", "Baby-Blue", "Green", "Pink", "Kinky", "None") +var/global/list/underwear_m = list("White", "Grey", "Green", "Blue", "Black", "Mankini", "None") //Curse whoever made male/female underwear diffrent colours +var/global/list/underwear_f = list("Red", "White", "Yellow", "Blue", "Black", "Thong", "None") //Backpacks var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt") diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm index 86d1b61c384..85087a1f8a9 100644 --- a/code/__HELPERS/lists.dm +++ b/code/__HELPERS/lists.dm @@ -142,6 +142,13 @@ proc/listclearnulls(list/list) return picked return null +//Returns the next element in parameter list after first appearance of parameter element. If it is the last element of the list or not present in list, returns first element. +/proc/next_in_list(element, list/L) + for(var/i=1, i49) + U.hastie = new /obj/item/clothing/tie/medal/gold/captain(U) H.equip_to_slot_or_del(U, slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/device/pda/captain(H), slot_belt) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes) diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 7e3d8c215ab..528d55c9578 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -19,7 +19,6 @@ if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/bartender(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/device/pda/bar(H), slot_belt) @@ -362,4 +361,4 @@ var/datum/organ/external/affected = H.organs_by_name["head"] affected.implants += L L.part = affected - return 1 + return 1 diff --git a/code/game/machinery/Freezer.dm b/code/game/machinery/Freezer.dm index 319c7a89002..7de58c6f220 100644 --- a/code/game/machinery/Freezer.dm +++ b/code/game/machinery/Freezer.dm @@ -1,5 +1,5 @@ /obj/machinery/atmospherics/unary/cold_sink/freezer - name = "Freezer" + name = "gas cooling system" icon = 'icons/obj/Cryogenic2.dmi' icon_state = "freezer_0" density = 1 @@ -8,84 +8,91 @@ current_heat_capacity = 1000 - New() - ..() - initialize_directions = dir +/obj/machinery/atmospherics/unary/cold_sink/freezer/New() + ..() + initialize_directions = dir - initialize() - if(node) return +/obj/machinery/atmospherics/unary/cold_sink/freezer/initialize() + if(node) return - var/node_connect = dir - - for(var/obj/machinery/atmospherics/target in get_step(src,node_connect)) - if(target.initialize_directions & get_dir(target,src)) - node = target - break - - update_icon() + var/node_connect = dir + for(var/obj/machinery/atmospherics/target in get_step(src,node_connect)) + if(target.initialize_directions & get_dir(target,src)) + node = target + break update_icon() - if(src.node) - if(src.on) - icon_state = "freezer_1" - else - icon_state = "freezer" + + +/obj/machinery/atmospherics/unary/cold_sink/freezer/update_icon() + if(src.node) + if(src.on) + icon_state = "freezer_1" else - icon_state = "freezer_0" - return + icon_state = "freezer" + else + icon_state = "freezer_0" + return - attack_ai(mob/user as mob) - return src.attack_hand(user) +/obj/machinery/atmospherics/unary/cold_sink/freezer/attack_ai(mob/user as mob) + src.ui_interact(user) - attack_paw(mob/user as mob) - return src.attack_hand(user) +/obj/machinery/atmospherics/unary/cold_sink/freezer/attack_paw(mob/user as mob) + src.ui_interact(user) - attack_hand(mob/user as mob) - user.set_machine(src) - var/temp_text = "" - if(air_contents.temperature > (T0C - 20)) - temp_text = "[air_contents.temperature]" - else if(air_contents.temperature < (T0C - 20) && air_contents.temperature > (T0C - 100)) - temp_text = "[air_contents.temperature]" +/obj/machinery/atmospherics/unary/cold_sink/freezer/attack_hand(mob/user as mob) + src.ui_interact(user) + +/obj/machinery/atmospherics/unary/cold_sink/freezer/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) + // this is the data which will be sent to the ui + var/data[0] + data["on"] = on ? 1 : 0 + data["gasPressure"] = round(air_contents.return_pressure()) + data["gasTemperature"] = round(air_contents.temperature) + data["minGasTemperature"] = round(T0C - 200) + data["maxGasTemperature"] = round(T20C) + data["targetGasTemperature"] = round(current_temperature) + + var/temp_class = "good" + if (air_contents.temperature > (T0C - 20)) + temp_class = "bad" + else if (air_contents.temperature < (T0C - 20) && air_contents.temperature > (T0C - 100)) + temp_class = "average" + data["gasTemperatureClass"] = temp_class + + // update the ui if it exists, returns null if no ui is passed/found + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + if (!ui) + // the ui does not exist, so we'll create a new() one + // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm + ui = new(user, src, ui_key, "freezer.tmpl", "Gas Cooling System", 440, 300) + // when the ui is first opened this is the data it will use + ui.set_initial_data(data) + // open the new ui window + ui.open() + // auto update every Master Controller tick + ui.set_auto_update(1) + +/obj/machinery/atmospherics/unary/cold_sink/freezer/Topic(href, href_list) + if (href_list["toggleStatus"]) + src.on = !src.on + update_icon() + if(href_list["temp"]) + var/amount = text2num(href_list["temp"]) + if(amount > 0) + src.current_temperature = min(T20C, src.current_temperature+amount) else - temp_text = "[air_contents.temperature]" - - var/dat = {"Cryo gas cooling system
- Current status: [ on ? "Off On" : "Off On"]
- Current gas temperature: [temp_text]
- Current air pressure: [air_contents.return_pressure()]
- Target gas temperature: - - - [current_temperature] + + +
- "} - - user << browse(dat, "window=freezer;size=400x500") - onclose(user, "freezer") - - Topic(href, href_list) - if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai))) - usr.set_machine(src) - if (href_list["start"]) - src.on = !src.on - update_icon() - if(href_list["temp"]) - var/amount = text2num(href_list["temp"]) - if(amount > 0) - src.current_temperature = min(T20C, src.current_temperature+amount) - else - src.current_temperature = max((T0C - 200), src.current_temperature+amount) - src.updateUsrDialog() - src.add_fingerprint(usr) - return - - process() - ..() - src.updateUsrDialog() - + src.current_temperature = max((T0C - 200), src.current_temperature+amount) + src.add_fingerprint(usr) + return 1 +/obj/machinery/atmospherics/unary/cold_sink/freezer/process() + ..() /obj/machinery/atmospherics/unary/heat_reservoir/heater - name = "Heater" + name = "gas heating system" icon = 'icons/obj/Cryogenic2.dmi' icon_state = "freezer_0" density = 1 @@ -94,73 +101,83 @@ current_heat_capacity = 1000 - New() - ..() - initialize_directions = dir +/obj/machinery/atmospherics/unary/heat_reservoir/heater/New() + ..() + initialize_directions = dir - initialize() - if(node) return +/obj/machinery/atmospherics/unary/heat_reservoir/heater/initialize() + if(node) return - var/node_connect = dir - - for(var/obj/machinery/atmospherics/target in get_step(src,node_connect)) - if(target.initialize_directions & get_dir(target,src)) - node = target - break - - update_icon() + var/node_connect = dir + for(var/obj/machinery/atmospherics/target in get_step(src,node_connect)) + if(target.initialize_directions & get_dir(target,src)) + node = target + break update_icon() - if(src.node) - if(src.on) - icon_state = "heater_1" - else - icon_state = "heater" + + +/obj/machinery/atmospherics/unary/heat_reservoir/heater/update_icon() + if(src.node) + if(src.on) + icon_state = "heater_1" else - icon_state = "heater_0" - return + icon_state = "heater" + else + icon_state = "heater_0" + return - attack_ai(mob/user as mob) - return src.attack_hand(user) +/obj/machinery/atmospherics/unary/heat_reservoir/heater/attack_ai(mob/user as mob) + src.ui_interact(user) - attack_paw(mob/user as mob) - return src.attack_hand(user) +/obj/machinery/atmospherics/unary/heat_reservoir/heater/attack_paw(mob/user as mob) + src.ui_interact(user) - attack_hand(mob/user as mob) - user.set_machine(src) - var/temp_text = "" - if(air_contents.temperature > (T20C+40)) - temp_text = "[air_contents.temperature]" +/obj/machinery/atmospherics/unary/heat_reservoir/heater/attack_hand(mob/user as mob) + src.ui_interact(user) + +/obj/machinery/atmospherics/unary/heat_reservoir/heater/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) + // this is the data which will be sent to the ui + var/data[0] + data["on"] = on ? 1 : 0 + data["gasPressure"] = round(air_contents.return_pressure()) + data["gasTemperature"] = round(air_contents.temperature) + data["minGasTemperature"] = round(T20C) + data["maxGasTemperature"] = round(T20C+280) + data["targetGasTemperature"] = round(current_temperature) + + var/temp_class = "normal" + if (air_contents.temperature > (T20C+40)) + temp_class = "bad" + data["gasTemperatureClass"] = temp_class + + // update the ui if it exists, returns null if no ui is passed/found + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + if (!ui) + // the ui does not exist, so we'll create a new() one + // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm + ui = new(user, src, ui_key, "freezer.tmpl", "Gas Heating System", 440, 300) + // when the ui is first opened this is the data it will use + ui.set_initial_data(data) + // open the new ui window + ui.open() + // auto update every Master Controller tick + ui.set_auto_update(1) + +/obj/machinery/atmospherics/unary/heat_reservoir/heater/Topic(href, href_list) + if (href_list["toggleStatus"]) + src.on = !src.on + update_icon() + if(href_list["temp"]) + var/amount = text2num(href_list["temp"]) + if(amount > 0) + src.current_temperature = min((T20C+280), src.current_temperature+amount) else - temp_text = "[air_contents.temperature]" + src.current_temperature = max(T20C, src.current_temperature+amount) + + src.add_fingerprint(usr) + return 1 - var/dat = {"Heating system
- Current status: [ on ? "Off On" : "Off On"]
- Current gas temperature: [temp_text]
- Current air pressure: [air_contents.return_pressure()]
- Target gas temperature: - - - [current_temperature] + + +
- "} - - user << browse(dat, "window=heater;size=400x500") - onclose(user, "heater") - - Topic(href, href_list) - if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai))) - usr.set_machine(src) - if (href_list["start"]) - src.on = !src.on - update_icon() - if(href_list["temp"]) - var/amount = text2num(href_list["temp"]) - if(amount > 0) - src.current_temperature = min((T20C+280), src.current_temperature+amount) - else - src.current_temperature = max(T20C, src.current_temperature+amount) - src.updateUsrDialog() - src.add_fingerprint(usr) - return - - process() - ..() - src.updateUsrDialog() \ No newline at end of file +/obj/machinery/atmospherics/unary/heat_reservoir/heater/process() + ..() \ No newline at end of file diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 35e96899ea1..fb5e188371c 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -138,8 +138,6 @@ if(air_contents.temperature > PLASMA_FLASHPOINT) air_contents.zburn() - - src.updateDialog() return /obj/machinery/portable_atmospherics/canister/return_air() @@ -194,6 +192,10 @@ return ..() + + nanomanager.update_uis(src) // Update all NanoUIs attached to src + + /obj/machinery/portable_atmospherics/canister/attack_ai(var/mob/user as mob) return src.attack_hand(user) @@ -202,94 +204,94 @@ return src.attack_hand(user) /obj/machinery/portable_atmospherics/canister/attack_hand(var/mob/user as mob) - return src.interact(user) + return src.ui_interact(user) -/obj/machinery/portable_atmospherics/canister/interact(var/mob/user as mob) +/obj/machinery/portable_atmospherics/canister/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) if (src.destroyed) return - user.set_machine(src) - var/holding_text - if(holding) - holding_text = {"
Tank Pressure: [holding.air_contents.return_pressure()] KPa
-Remove Tank
-"} - var/output_text = {"[name][can_label?" relabel":""]
-Pressure: [air_contents.return_pressure()] KPa
-Port Status: [(connected_port)?("Connected"):("Disconnected")] -[holding_text] -
-Release Valve: [valve_open?("Open"):("Closed")]
-Release Pressure: - - - - [release_pressure] + + + +
-
-Close
-"} + // this is the data which will be sent to the ui + var/data[0] + data["name"] = name + data["canLabel"] = can_label ? 1 : 0 + data["portConnected"] = connected_port ? 1 : 0 + data["tankPressure"] = round(air_contents.return_pressure() ? air_contents.return_pressure() : 0) + data["releasePressure"] = round(release_pressure ? release_pressure : 0) + data["minReleasePressure"] = round(ONE_ATMOSPHERE/10) + data["maxReleasePressure"] = round(10*ONE_ATMOSPHERE) + data["valveOpen"] = valve_open ? 1 : 0 + + data["hasHoldingTank"] = holding ? 1 : 0 + if (holding) + data["holdingTank"] = list("name" = holding.name, "tankPressure" = round(holding.air_contents.return_pressure())) - user << browse("[src][output_text]", "window=canister;size=600x300") - onclose(user, "canister") - return + // update the ui if it exists, returns null if no ui is passed/found + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + if (!ui) + // the ui does not exist, so we'll create a new() one + // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm + ui = new(user, src, ui_key, "canister.tmpl", "Canister", 480, 400) + // when the ui is first opened this is the data it will use + ui.set_initial_data(data) + // open the new ui window + ui.open() + // auto update every Master Controller tick + ui.set_auto_update(1) /obj/machinery/portable_atmospherics/canister/Topic(href, href_list) - //Do not use "if(..()) return" here, canisters will stop working in unpowered areas like space or on the derelict. - if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) - usr << browse(null, "window=canister") - onclose(usr, "canister") - return - - if (((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) - usr.set_machine(src) - - if(href_list["toggle"]) - if (valve_open) - if (holding) - release_log += "Valve was closed by [usr] ([usr.ckey]), stopping the transfer into the [holding]
" - else - release_log += "Valve was closed by [usr] ([usr.ckey]), stopping the transfer into the air
" + //Do not use "if(..()) return" here, canisters will stop working in unpowered areas like space or on the derelict. + if (!istype(src.loc, /turf)) + return 0 + + if(href_list["toggle"]) + if (valve_open) + if (holding) + release_log += "Valve was closed by [usr] ([usr.ckey]), stopping the transfer into the [holding]
" else - if (holding) - release_log += "Valve was opened by [usr] ([usr.ckey]), starting the transfer into the [holding]
" - else - release_log += "Valve was opened by [usr] ([usr.ckey]), starting the transfer into the air
" - valve_open = !valve_open - - if (href_list["remove_tank"]) - if(holding) - if(istype(holding, /obj/item/weapon/tank)) - holding.manipulated_by = usr.real_name - holding.loc = loc - holding = null - - if (href_list["pressure_adj"]) - var/diff = text2num(href_list["pressure_adj"]) - if(diff > 0) - release_pressure = min(10*ONE_ATMOSPHERE, release_pressure+diff) + release_log += "Valve was closed by [usr] ([usr.ckey]), stopping the transfer into the air
" + else + if (holding) + release_log += "Valve was opened by [usr] ([usr.ckey]), starting the transfer into the [holding]
" else - release_pressure = max(ONE_ATMOSPHERE/10, release_pressure+diff) + release_log += "Valve was opened by [usr] ([usr.ckey]), starting the transfer into the air
" + valve_open = !valve_open - if (href_list["relabel"]) - if (can_label) - var/list/colors = list(\ - "\[N2O\]" = "redws", \ - "\[N2\]" = "red", \ - "\[O2\]" = "blue", \ - "\[Toxin (Bio)\]" = "orange", \ - "\[CO2\]" = "black", \ - "\[Air\]" = "grey", \ - "\[CAUTION\]" = "yellow", \ - ) - var/label = input("Choose canister label", "Gas canister") as null|anything in colors - if (label) - src.canister_color = colors[label] - src.icon_state = colors[label] - src.name = "Canister: [label]" - src.updateUsrDialog() - src.add_fingerprint(usr) - update_icon() - else - usr << browse(null, "window=canister") - return - return + if (href_list["remove_tank"]) + if(holding) + if(istype(holding, /obj/item/weapon/tank)) + holding.manipulated_by = usr.real_name + holding.loc = loc + holding = null + + if (href_list["pressure_adj"]) + var/diff = text2num(href_list["pressure_adj"]) + if(diff > 0) + release_pressure = min(10*ONE_ATMOSPHERE, release_pressure+diff) + else + release_pressure = max(ONE_ATMOSPHERE/10, release_pressure+diff) + + if (href_list["relabel"]) + if (can_label) + var/list/colors = list(\ + "\[N2O\]" = "redws", \ + "\[N2\]" = "red", \ + "\[O2\]" = "blue", \ + "\[Toxin (Bio)\]" = "orange", \ + "\[CO2\]" = "black", \ + "\[Air\]" = "grey", \ + "\[CAUTION\]" = "yellow", \ + ) + var/label = input("Choose canister label", "Gas canister") as null|anything in colors + if (label) + src.canister_color = colors[label] + src.icon_state = colors[label] + src.name = "Canister: [label]" + + src.add_fingerprint(usr) + update_icon() + + return 1 /obj/machinery/portable_atmospherics/canister/toxins/New() diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index d980b469f94..e5d4d3675a8 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -31,7 +31,8 @@ /obj/item/toy/prize/seraph = 1, /obj/item/toy/prize/mauler = 1, /obj/item/toy/prize/odysseus = 1, - /obj/item/toy/prize/phazon = 1 + /obj/item/toy/prize/phazon = 1, + /obj/item/toy/waterflower = 1 ) /obj/machinery/computer/arcade diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index f02f4644031..b7a0a9487c8 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -4,6 +4,7 @@ icon = 'icons/obj/doors/rapid_pdoor.dmi' icon_state = "pdoor1" var/id = 1.0 + dir = 1 explosion_resistance = 25 /obj/machinery/door/poddoor/Bumped(atom/AM) @@ -39,6 +40,7 @@ src.icon_state = "pdoor0" src.SetOpacity(0) sleep(10) + layer = initial(layer) src.density = 0 update_nearby_tiles() @@ -53,6 +55,7 @@ if (src.operating) return src.operating = 1 + layer = 3.3 flick("pdoorc1", src) src.icon_state = "pdoor1" src.density = 1 diff --git a/code/game/machinery/kitchen/processor.dm b/code/game/machinery/kitchen/processor.dm index f5e5b2987df..2107bbd0398 100644 --- a/code/game/machinery/kitchen/processor.dm +++ b/code/game/machinery/kitchen/processor.dm @@ -53,6 +53,13 @@ input = /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans output = /obj/item/weapon/reagent_containers/food/snacks/soydope + wheat + input = /obj/item/weapon/reagent_containers/food/snacks/grown/wheat + output = /obj/item/weapon/reagent_containers/food/snacks/flour + + spaghetti + input = /obj/item/weapon/reagent_containers/food/snacks/flour + output = /obj/item/weapon/reagent_containers/food/snacks/spagetti /* mobs */ mob @@ -143,13 +150,13 @@ src.processing = 1 user.visible_message("\blue [user] turns on \a [src].", \ "You turn on \a [src].", \ - "You hear a food processor") + "You hear a food processor.") playsound(src.loc, 'sound/machines/blender.ogg', 50, 1) use_power(500) sleep(P.time) P.process(src.loc, O) src.processing = 0 src.visible_message("\blue \the [src] finished processing.", \ - "You hear food processor stops") + "You hear the food processor stopping/") diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index 1babba054e6..72aa31ccee0 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -23,6 +23,10 @@ Buildable meters #define PIPE_MTVALVE 18 #define PIPE_MANIFOLD4W 19 #define PIPE_CAP 20 +///// Z-Level stuff +#define PIPE_UP 21 +#define PIPE_DOWN 22 +///// Z-Level stuff /obj/item/pipe name = "pipe" @@ -84,6 +88,12 @@ Buildable meters src.pipe_type = PIPE_MANIFOLD4W else if(istype(make_from, /obj/machinery/atmospherics/pipe/cap)) src.pipe_type = PIPE_CAP +///// Z-Level stuff + else if(istype(make_from, /obj/machinery/atmospherics/pipe/zpipe/up)) + src.pipe_type = PIPE_UP + else if(istype(make_from, /obj/machinery/atmospherics/pipe/zpipe/down)) + src.pipe_type = PIPE_DOWN +///// Z-Level stuff else src.pipe_type = pipe_type src.dir = dir @@ -117,6 +127,10 @@ Buildable meters "t-valve", \ "4-way manifold", \ "pipe cap", \ +///// Z-Level stuff + "pipe up", \ + "pipe down", \ +///// Z-Level stuff ) name = nlist[pipe_type+1] + " fitting" var/list/islist = list( \ @@ -141,6 +155,10 @@ Buildable meters "mtvalve", \ "manifold4w", \ "cap", \ +///// Z-Level stuff + "cap", \ + "cap", \ +///// Z-Level stuff ) icon_state = islist[pipe_type + 1] @@ -213,6 +231,10 @@ Buildable meters return dir|flip|cw if(PIPE_CAP) return flip +///// Z-Level stuff + if(PIPE_UP,PIPE_DOWN) + return dir +///// Z-Level stuff return 0 /obj/item/pipe/proc/get_pdir() //endpoints for regular pipes @@ -348,7 +370,7 @@ Buildable meters if (M.node3) M.node3.initialize() M.node3.build_network() - + if(PIPE_MANIFOLD4W) //4-way manifold var/obj/machinery/atmospherics/pipe/manifold4w/M = new( src.loc ) M.dir = dir @@ -515,7 +537,7 @@ Buildable meters if (P.node2) P.node2.initialize() P.node2.build_network() - + if(PIPE_MTVALVE) //manual t-valve var/obj/machinery/atmospherics/tvalve/V = new(src.loc) V.dir = dir @@ -535,7 +557,7 @@ Buildable meters if (V.node3) V.node3.initialize() V.node3.build_network() - + if(PIPE_CAP) var/obj/machinery/atmospherics/pipe/cap/C = new(src.loc) C.dir = dir @@ -593,6 +615,40 @@ Buildable meters if (C.node) C.node.initialize() C.node.build_network() +///// Z-Level stuff + if(PIPE_UP) //volume pump + var/obj/machinery/atmospherics/pipe/zpipe/up/P = new(src.loc) + P.dir = dir + P.initialize_directions = pipe_dir + if (pipename) + P.name = pipename + var/turf/T = P.loc + P.level = T.intact ? 2 : 1 + P.initialize() + P.build_network() + if (P.node1) + P.node1.initialize() + P.node1.build_network() + if (P.node2) + P.node2.initialize() + P.node2.build_network() + if(PIPE_DOWN) //volume pump + var/obj/machinery/atmospherics/pipe/zpipe/down/P = new(src.loc) + P.dir = dir + P.initialize_directions = pipe_dir + if (pipename) + P.name = pipename + var/turf/T = P.loc + P.level = T.intact ? 2 : 1 + P.initialize() + P.build_network() + if (P.node1) + P.node1.initialize() + P.node1.build_network() + if (P.node2) + P.node2.initialize() + P.node2.build_network() +///// Z-Level stuff playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) user.visible_message( \ @@ -649,4 +705,4 @@ Buildable meters #undef PIPE_VOLUME_PUMP #undef PIPE_OUTLET_INJECT #undef PIPE_MTVALVE -//#undef PIPE_MANIFOLD4W \ No newline at end of file +//#undef PIPE_MANIFOLD4W diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm index e883d4d07d1..bf6233f4d47 100644 --- a/code/game/machinery/pipe/pipe_dispenser.dm +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -13,6 +13,7 @@ /obj/machinery/pipedispenser/attack_hand(user as mob) if(..()) return +///// Z-Level stuff var/dat = {" Regular pipes:
Pipe
@@ -22,6 +23,8 @@ Pipe Cap
4-Way Manifold
Manual T-Valve
+upward Pipe
+downward Pipe
Devices:
Connector
Unary Vent
@@ -42,6 +45,7 @@ Bent Pipe
"} +///// Z-Level stuff //What number the make points to is in the define # at the top of construction.dm in same folder user << browse("[src][dat]", "window=pipedispenser") @@ -143,6 +147,7 @@ Nah if(..()) return +///// Z-Level stuff var/dat = {"Disposal Pipes

Pipe
Bent Pipe
@@ -152,7 +157,10 @@ Nah Bin
Outlet
Chute
+Upwards
+Downwards
"} +///// Z-Level stuff user << browse("[src][dat]", "window=pipedispenser") return @@ -192,6 +200,12 @@ Nah if(7) C.ptype = 8 C.density = 1 +///// Z-Level stuff + if(21) + C.ptype = 11 + if(22) + C.ptype = 12 +///// Z-Level stuff C.add_fingerprint(usr) C.update() wait = 1 @@ -203,7 +217,7 @@ Nah /obj/machinery/pipedispenser/orderable anchored = 0 unwrenched = 1 - + /obj/machinery/pipedispenser/disposal/orderable anchored = 0 - unwrenched = 1 \ No newline at end of file + unwrenched = 1 diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 9912e2e85db..8d5e888a976 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -57,7 +57,8 @@ if(src.occupant) if (istype(occupant, /mob/living/silicon/robot)) var/mob/living/silicon/robot/R = occupant - restock_modules() + if(R.module) + R.module.respawn_consumable(R) if(!R.cell) return else if(R.cell.charge >= R.cell.maxcharge) @@ -81,60 +82,6 @@ src.use_power = 1 return - restock_modules() - if(src.occupant) - if(istype(occupant, /mob/living/silicon/robot)) - var/mob/living/silicon/robot/R = occupant - if(R.module && R.module.modules) - var/list/um = R.contents|R.module.modules - // ^ makes sinle list of active (R.contents) and inactive modules (R.module.modules) - for(var/obj/O in um) - // Engineering - if(istype(O,/obj/item/stack/sheet/metal) || istype(O,/obj/item/stack/sheet/rglass) || istype(O,/obj/item/weapon/cable_coil)) - if(O:amount < 50) - O:amount += 1 - // Security - if(istype(O,/obj/item/device/flash)) - if(O:broken) - O:broken = 0 - O:times_used = 0 - O:icon_state = "flash" - if(istype(O,/obj/item/weapon/gun/energy/taser/cyborg)) - if(O:power_supply.charge < O:power_supply.maxcharge) - O:power_supply.give(O:charge_cost) - O:update_icon() - else - O:charge_tick = 0 - if(istype(O,/obj/item/weapon/melee/baton)) - if(O:charges < 10) - O:charges += 1 - //Service - if(istype(O,/obj/item/weapon/reagent_containers/food/condiment/enzyme)) - if(O.reagents.get_reagent_amount("enzyme") < 50) - O.reagents.add_reagent("enzyme", 2) - //Medical - if(istype(O,/obj/item/weapon/reagent_containers/glass/bottle/robot)) - var/obj/item/weapon/reagent_containers/glass/bottle/robot/B = O - if(B.reagent && (B.reagents.get_reagent_amount(B.reagent) < B.volume)) - B.reagents.add_reagent(B.reagent, 2) - //Janitor - if(istype(O, /obj/item/device/lightreplacer)) - var/obj/item/device/lightreplacer/LR = O - LR.Charge(R) - - if(R) - if(R.module) - R.module.respawn_consumable(R) - - //Emagged items for janitor and medical borg - if(R.module.emag) - if(istype(R.module.emag, /obj/item/weapon/reagent_containers/spray)) - var/obj/item/weapon/reagent_containers/spray/S = R.module.emag - if(S.name == "Polyacid spray") - S.reagents.add_reagent("pacid", 2) - else if(S.name == "Lube spray") - S.reagents.add_reagent("lube", 2) - verb move_eject() @@ -173,9 +120,4 @@ src.add_fingerprint(usr) build_icon() src.use_power = 2 - return - - - - - + return \ No newline at end of file diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index f09abfeefe0..fe8ac9c7517 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -616,6 +616,7 @@ /obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice = 4,/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice = 4, /obj/item/weapon/reagent_containers/food/drinks/bottle/cream = 4,/obj/item/weapon/reagent_containers/food/drinks/cans/tonic = 8, /obj/item/weapon/reagent_containers/food/drinks/cans/cola = 8, /obj/item/weapon/reagent_containers/food/drinks/cans/sodawater = 15, + /obj/item/weapon/reagent_containers/food/drinks/flask/barflask = 2, /obj/item/weapon/reagent_containers/food/drinks/flask/vacuumflask = 2, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 30,/obj/item/weapon/reagent_containers/food/drinks/ice = 9, /obj/item/weapon/reagent_containers/food/drinks/bottle/melonliquor = 2,/obj/item/weapon/reagent_containers/food/drinks/bottle/bluecuracao = 2, /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe = 2,/obj/item/weapon/reagent_containers/food/drinks/bottle/grenadine = 5) diff --git a/code/game/objects/closets/walllocker.dm b/code/game/objects/closets/walllocker.dm index 4cf3bcf979d..ad9d5ee25c2 100644 --- a/code/game/objects/closets/walllocker.dm +++ b/code/game/objects/closets/walllocker.dm @@ -16,8 +16,8 @@ /obj/structure/closet/walllocker/emerglocker name = "emergency locker" desc = "A wall mounted locker with emergency supplies" - var/list/spawnitems = list(/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/weapon/crowbar) - var/amount = 3 // spawns each items X times. + var/list/spawnitems = list(/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/mask/breath) + var/amount = 2 // spawns each items X times. icon_state = "emerg" /obj/structure/closet/walllocker/emerglocker/attack_hand(mob/user as mob) diff --git a/code/game/objects/effects/decals/contraband.dm b/code/game/objects/effects/decals/contraband.dm index 077780119bb..5a575f5e151 100644 --- a/code/game/objects/effects/decals/contraband.dm +++ b/code/game/objects/effects/decals/contraband.dm @@ -1,8 +1,6 @@ //########################## CONTRABAND ;3333333333333333333 -Agouri ################################################### -#define NUM_OF_POSTER_DESIGNS 10 - /obj/item/weapon/contraband name = "contraband item" desc = "You probably shouldn't be holding this." @@ -15,54 +13,16 @@ desc = "The poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface." icon_state = "rolled_poster" var/serial_number = 0 - var/obj/structure/sign/poster/resulting_poster = null //The poster that will be created is initialised and stored through contraband/poster's constructor /obj/item/weapon/contraband/poster/New(turf/loc, var/given_serial = 0) if(given_serial == 0) - serial_number = rand(1, NUM_OF_POSTER_DESIGNS) - resulting_poster = new(serial_number) + serial_number = rand(1, poster_designs.len) else serial_number = given_serial - //We don't give it a resulting_poster because if we called it with a given_serial it means that we're rerolling an already used poster. name += " - No. [serial_number]" ..(loc) - -/*/obj/item/weapon/contraband/poster/attack(mob/M as mob, mob/user as mob) - src.add_fingerprint(user) - if(resulting_poster) - resulting_poster.add_fingerprint(user) - ..()*/ - -/*/obj/item/weapon/contraband/poster/attack(atom/A, mob/user as mob) //This shit is handled through the wall's attackby() - if(istype(A, /turf/simulated/wall)) - if(resulting_poster == null) - return - else - var/turf/simulated/wall/W = A - var/check = 0 - var/stuff_on_wall = 0 - for(var/obj/O in W.contents) //Let's see if it already has a poster on it or too much stuff - if(istype(O,/obj/structure/sign/poster)) - check = 1 - break - stuff_on_wall++ - if(stuff_on_wall == 3) - check = 1 - break - - if(check) - user << "The wall is far too cluttered to place a poster!" - return - - resulting_poster.loc = W //Looks like it's uncluttered enough. Place the poster - W.contents += resulting_poster - - del(src)*/ - - - //############################## THE ACTUAL DECALS ########################### obj/structure/sign/poster @@ -79,44 +39,13 @@ obj/structure/sign/poster/New(var/serial) serial_number = serial if(serial_number == loc) - serial_number = rand(1, NUM_OF_POSTER_DESIGNS) //This is for the mappers that want individual posters without having to use rolled posters. + serial_number = rand(1, poster_designs.len) //This is for the mappers that want individual posters without having to use rolled posters. - icon_state = "poster[serial_number]" - - switch(serial_number) - if(1) - name += " - Free Tonto" - desc += " A framed shred of a much larger flag, colors bled together and faded from age." - if(2) - name += " - Atmosia Declaration of Independence" - desc += " A relic of a failed rebellion" - if(3) - name += " - Fun Police" - desc += " A poster condemning the station's security forces." - if(4) - name += " - Lusty Xeno" - desc += " A heretical poster depicting the titular star of an equally heretical book." - if(5) - name += " - Syndicate Recruitment Poster" - desc += " See the galaxy! Shatter corrupt megacorporations! Join today!" - if(6) - name += " - Clown" - desc += " Honk." - if(7) - name += " - Smoke" - desc += " A poster depicting a carton of cigarettes." - if(8) - name += " - Grey Tide" - desc += " A rebellious poster symbolizing assistant solidarity." - if(9) - name += " - Missing Gloves" - desc += " This poster is about the uproar that followed Nanotrasen's financial cuts towards insulated-glove purchases." - if(10) - name += " - Hacking Guide" - desc += " This poster details the internal workings of the common Nanotrasen airlock." - else - name = "This shit just bugged. Report it to Agouri - polyxenitopalidou@gmail.com" - desc = "Why are you still here?" + var/designtype = poster_designs[serial_number] + var/datum/poster/design=new designtype + name += " - [design.name]" + desc += " [design.desc]" + icon_state = design.icon_state // poster[serial_number] ..() obj/structure/sign/poster/attackby(obj/item/weapon/W as obj, mob/user as mob) @@ -151,14 +80,17 @@ obj/structure/sign/poster/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/structure/sign/poster/proc/roll_and_drop(turf/newloc) var/obj/item/weapon/contraband/poster/P = new(src, serial_number) - P.resulting_poster = src P.loc = newloc src.loc = P + del(src) -//seperated to reduce code duplication. Moved here for ease of reference and to unclutter r_wall/attackby() +//separated to reduce code duplication. Moved here for ease of reference and to unclutter r_wall/attackby() /turf/simulated/wall/proc/place_poster(var/obj/item/weapon/contraband/poster/P, var/mob/user) - if(!P.resulting_poster) return + + if(!istype(src,/turf/simulated/wall)) + user << "\red You can't place this here!" + return var/stuff_on_wall = 0 for(var/obj/O in contents) //Let's see if it already has a poster on it or too much stuff @@ -173,7 +105,7 @@ obj/structure/sign/poster/attackby(obj/item/weapon/W as obj, mob/user as mob) user << "You start placing the poster on the wall..." //Looks like it's uncluttered enough. Place the poster. //declaring D because otherwise if P gets 'deconstructed' we lose our reference to P.resulting_poster - var/obj/structure/sign/poster/D = P.resulting_poster + var/obj/structure/sign/poster/D = new(P.serial_number) var/temp_loc = user.loc flick("poster_being_set",D) @@ -188,4 +120,11 @@ obj/structure/sign/poster/attackby(obj/item/weapon/W as obj, mob/user as mob) user << "You place the poster!" else D.roll_and_drop(temp_loc) - return \ No newline at end of file + return + +/datum/poster + // Name suffix. Poster - [name] + var/name="" + // Description suffix + var/desc="" + var/icon_state="" \ No newline at end of file diff --git a/code/game/objects/effects/decals/posters/bs12.dm b/code/game/objects/effects/decals/posters/bs12.dm new file mode 100644 index 00000000000..8629c4fb738 --- /dev/null +++ b/code/game/objects/effects/decals/posters/bs12.dm @@ -0,0 +1,145 @@ +// baystation12 posters +/datum/poster/bay_1 + icon_state="bsposter1" + name = "Unlucky Space Explorer" + desc = "This particular one depicts a skeletal form within a space suit." + +/datum/poster/bay_2 + icon_state="bsposter2" + name = "Positronic Logic Conflicts" + desc = "This particular one depicts the cold, unmoving stare of a particular advanced AI." + +/datum/poster/bay_3 + icon_state="bsposter3" + name = "Paranoia" + desc = "This particular one warns of the dangers of trusting your co-workers too much." + +/datum/poster/bay_4 + icon_state="bsposter4" + name = "Keep Calm" + desc = "This particular one is of a famous New Earth design, although a bit modified. Someone has scribbled an O over the A on the poster." + +/datum/poster/bay_5 + icon_state="bsposter5" + name = "Martian Warlord" + desc = "This particular one depicts the cartoony mug of a certain Martial Warmonger." + +/datum/poster/bay_6 + icon_state="bsposter6" + name = "Technological Singularity" + desc = "This particular one is of the blood-curdling symbol of a long-since defeated enemy of humanity." + +/datum/poster/bay_7 + icon_state="bsposter7" + name = "Wasteland" + desc = "This particular one is of a couple of ragged gunmen, one male and one female, on top of a mound of rubble. The number \"12\" is visible on their blue jumpsuits." + +/datum/poster/bay_8 + icon_state="bsposter8" + name = "Pinup Girl Cindy" + desc = "This particular one is of Nanotrasen's PR girl, Cindy, in a particularly feminine pose." + +/datum/poster/bay_9 + icon_state="bsposter9" + name = "Pinup Girl Amy" + desc = "This particular one is of Amy, the nymphomaniac Urban Legend of Nanotrasen Space Stations. How this photograph came to be is not known." + +/datum/poster/bay_10 + icon_state="bsposter10" + name = "Don't Panic" + desc = "This particular one depicts some sort of star in a grimace. The \"Don't Panic\" is written in big, friendly letters." + +/datum/poster/bay_11 + icon_state="bsposter11" + name = "Underwater Laboratory" + desc = "This particular one is of the fabled last crew of Nanotrasen's previous project before going big on plasma research." + +/datum/poster/bay_12 + icon_state="bsposter12" + name = "Rogue AI" + desc = "This particular one depicts the shell of the infamous AI that catastropically comandeered one of Nanotrasen's earliest space stations. Back then, the corporation was just known as TriOptimum." + +/datum/poster/bay_13 + icon_state="bsposter13" + name = "User of the Arcane Arts" + desc = "This particular one depicts a wizard, casting a spell. You can't really make out if it's an actual photograph or a computer-generated image." + +/datum/poster/bay_14 + icon_state="bsposter14" + name = "Levitating Skull" + desc = "This particular one is the portrait of a flying enchanted skull. Its adventures along with its fabled companion are now fading through history..." + +/datum/poster/bay_15 + icon_state="bsposter15" + name = "Augmented Legend" + desc = "This particular one is of an obviously augmented individual, gazing towards the sky. The cyber-city in the backround is rather punkish." + +/datum/poster/bay_16 + icon_state="bsposter16" + name = "Dangerous Static" + desc = "This particular one depicts nothing remarkable other than a rather mesmerising pattern of monitor static. There's a tag on the sides of the poster, but it's ripped off." + +/datum/poster/bay_17 + icon_state="bsposter17" + name = "Pinup Girl Val" + desc = "Luscious Val McNeil, the vertically challenged Legal Extraordinaire, winner of Miss Space two years running and favoured pinup girl of Lawyers Weekly." + +/datum/poster/bay_18 + icon_state="bsposter18" + name = "Derpman, Enforcer of the State" + desc = "Here to protect and serve... your donuts! A generously proportioned man, he teaches you the value of hiding your snacks." + +/datum/poster/bay_19 + icon_state="bsposter19" + name = "Respect a Soghun" + desc = "This poster depicts a well dressed looking Soghun receiving a prestigious award. It appears to espouse greater co-operation and harmony between the two races." + +/datum/poster/bay_20 + icon_state="bsposter20" + name = "Skrell Twilight" + desc = "This poster depicts a mysteriously inscrutable, alien scene. Numerous Skrell can be seen conversing amidst great, crystalline towers rising above crashing waves" + +/datum/poster/bay_21 + icon_state="bsposter21" + name = "Join the Fuzz!" + desc = "It's a nice recruitment poster of a white haired Chinese woman that says; \"Big Guns, Hot Women, Good Times. Security. We get it done.\"" + +/datum/poster/bay_22 + icon_state="bsposter22" + name = "Looking for a career with excitement?" + desc = "A recruitment poster starring a dark haired woman with glasses and a purple shirt that has \"Got Brains? Got Talent? Not afraid of electric flying monsters that want to suck the soul out of you? Then Xenobiology could use someone like you!\" written on the bottom." + +/datum/poster/bay_23 + icon_state="bsposter23" + name = "Safety first: because electricity doesn't wait!" + desc = "A safety poster starring a clueless looking redhead with frazzled hair. \"Every year, hundreds of NT employees expose themselves to electric shock. Play it safe. Avoid suspicious doors after electrical storms, and always wear protection when doing electric maintenance.\"" + +/datum/poster/bay_24 + icon_state="bsposter24" + name = "Responsible medbay habits, No #259" + desc = "A poster with a nervous looking geneticist on it states; \"Friends Don't Tell Friends They're Clones. It can cause severe and irreparable emotional trauma. Always do the right thing and never tell them that they were dead.\"" + +/datum/poster/bay_25 + icon_state="bsposter25" + name = "Irresponsible medbay habits, No #2" + desc = "This is a safety poster starring a perverted looking naked doctor. \"Sexual harassment is never okay. REPORT any acts of sexual deviance or harassment that disrupt a healthy working environment.\"" + +/datum/poster/bay_26 + icon_state="bsposter26" + name = "The Men We Knew" + desc = "This movie poster depicts a group of soldiers fighting a large mech, the movie seems to be a patriotic war movie." + +/datum/poster/bay_27 + icon_state="bsposter27" + name = "Plastic Sheep Can't Scream" + desc = "This is a movie poster for an upcoming horror movie, it features an AI in the front of it." + +/datum/poster/bay_28 + icon_state="bsposter28" + name = "The Stars Know Love" + desc = "This is a movie poster. A bleeding woman is shown drawing a heart in her blood on the window of space ship, it seems to be a romantic Drama." + +/datum/poster/bay_29 + icon_state="bsposter29" + name = "Winter Is Coming" + desc = "On the poster is a frighteningly large wolf, he warns: \"Only YOU can keep the station from freezing during planetary occultation!\"" \ No newline at end of file diff --git a/code/game/objects/effects/decals/posters/tgposters.dm b/code/game/objects/effects/decals/posters/tgposters.dm new file mode 100644 index 00000000000..3dff589c3ae --- /dev/null +++ b/code/game/objects/effects/decals/posters/tgposters.dm @@ -0,0 +1,50 @@ +// /tg/ posters. +/datum/poster/tg_1 + name = "Free Tonto" + desc = "A framed shred of a much larger flag, colors bled together and faded from age." + icon_state="poster1" + +/datum/poster/tg_2 + name = "Atmosia Declaration of Independence" + desc = "A relic of a failed rebellion" + icon_state="poster2" + +/datum/poster/tg_3 + name = "Fun Police" + desc = "A poster condemning the station's security forces." + icon_state="poster3" + +/datum/poster/tg_4 + name = "Lusty Xeno" + desc = "A heretical poster depicting the titular star of an equally heretical book." + icon_state="poster4" + +/datum/poster/tg_5 + name = "Syndicate Recruitment Poster" + desc = "See the galaxy! Shatter corrupt megacorporations! Join today!" + icon_state="poster5" + +/datum/poster/tg_6 + name = "Clown" + desc = "Honk." + icon_state="poster6" + +/datum/poster/tg_7 + name = "Smoke" + desc = "A poster depicting a carton of cigarettes." + icon_state="poster7" + +/datum/poster/tg_8 + name = "Grey Tide" + desc = "A rebellious poster symbolizing assistant solidarity." + icon_state="poster8" + +/datum/poster/tg_9 + name = "Missing Gloves" + desc = "This poster is about the uproar that followed Nanotrasen's financial cuts towards insulated-glove purchases." + icon_state="poster9" + +/datum/poster/tg_10 + name = "Hacking Guide" + desc = "This poster details the internal workings of the common Nanotrasen airlock." + icon_state="poster10" \ No newline at end of file diff --git a/code/game/objects/explosion.dm b/code/game/objects/explosion.dm index 5ba97f90053..c024b498310 100644 --- a/code/game/objects/explosion.dm +++ b/code/game/objects/explosion.dm @@ -6,21 +6,9 @@ if(dx>=dy) return dx + (0.5*dy) //The longest side add half the shortest side approximates the hypotenuse else return dy + (0.5*dx) - -proc/trange(var/Dist=0,var/turf/Center=null)//alternative to range (ONLY processes turfs and thus less intensive) - if(Center==null) return - - //var/x1=((Center.x-Dist)<1 ? 1 : Center.x-Dist) - //var/y1=((Center.y-Dist)<1 ? 1 : Center.y-Dist) - //var/x2=((Center.x+Dist)>world.maxx ? world.maxx : Center.x+Dist) - //var/y2=((Center.y+Dist)>world.maxy ? world.maxy : Center.y+Dist) - - var/turf/x1y1 = locate(((Center.x-Dist)<1 ? 1 : Center.x-Dist),((Center.y-Dist)<1 ? 1 : Center.y-Dist),Center.z) - var/turf/x2y2 = locate(((Center.x+Dist)>world.maxx ? world.maxx : Center.x+Dist),((Center.y+Dist)>world.maxy ? world.maxy : Center.y+Dist),Center.z) - return block(x1y1,x2y2) - - -proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog = 1) +///// Z-Level Stuff +proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog = 1, z_transfer = 1) +///// Z-Level Stuff src = null //so we don't abort once src is deleted spawn(0) if(config.use_recursive_explosions) @@ -28,6 +16,12 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa explosion_rec(epicenter, power) return +///// Z-Level Stuff + if(z_transfer && (devastation_range > 0 || heavy_impact_range > 0)) + //transfer the explosion in both directions + explosion_z_transfer(epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range) +///// Z-Level Stuff + var/start = world.timeofday epicenter = get_turf(epicenter) if(!epicenter) return @@ -61,7 +55,7 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa var/y0 = epicenter.y var/z0 = epicenter.z - for(var/turf/T in trange(max(devastation_range, heavy_impact_range, light_impact_range), epicenter)) + for(var/turf/T in range(epicenter, max(devastation_range, heavy_impact_range, light_impact_range))) var/dist = cheap_pythag(T.x - x0,T.y - y0) if(dist < devastation_range) dist = 1 @@ -98,4 +92,21 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa proc/secondaryexplosion(turf/epicenter, range) for(var/turf/tile in range(range, epicenter)) - tile.ex_act(2) \ No newline at end of file + tile.ex_act(2) + +///// Z-Level Stuff +proc/explosion_z_transfer(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, up = 1, down = 1) + var/turf/controllerlocation = locate(1, 1, epicenter.z) + for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) + if(controller.down) + //start the child explosion, no admin log and no additional transfers + explosion(locate(epicenter.x, epicenter.y, controller.down_target), max(devastation_range - 2, 0), max(heavy_impact_range - 2, 0), max(light_impact_range - 2, 0), max(flash_range - 2, 0), 0, 0) + if(devastation_range - 2 > 0 || heavy_impact_range - 2 > 0) //only transfer further if the explosion is still big enough + explosion(locate(epicenter.x, epicenter.y, controller.down_target), max(devastation_range - 2, 0), max(heavy_impact_range - 2, 0), max(light_impact_range - 2, 0), max(flash_range - 2, 0), 0, 1) + + if(controller.up) + //start the child explosion, no admin log and no additional transfers + explosion(locate(epicenter.x, epicenter.y, controller.up_target), max(devastation_range - 2, 0), max(heavy_impact_range - 2, 0), max(light_impact_range - 2, 0), max(flash_range - 2, 0), 0, 0) + if(devastation_range - 2 > 0 || heavy_impact_range - 2 > 0) //only transfer further if the explosion is still big enough + explosion(locate(epicenter.x, epicenter.y, controller.up_target), max(devastation_range - 2, 0), max(heavy_impact_range - 2, 0), max(light_impact_range - 2, 0), max(flash_range - 2, 0), 1, 0) +///// Z-Level Stuff diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 24e5479251c..42e21091281 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -312,22 +312,22 @@ if(slot_l_ear) if(H.l_ear) return 0 + if( w_class < 2 ) + return 1 if( !(slot_flags & SLOT_EARS) ) return 0 if( (slot_flags & SLOT_TWOEARS) && H.r_ear ) return 0 - if( w_class < 2 ) - return 1 return 1 if(slot_r_ear) if(H.r_ear) return 0 + if( w_class < 2 ) + return 1 if( !(slot_flags & SLOT_EARS) ) return 0 if( (slot_flags & SLOT_TWOEARS) && H.l_ear ) return 0 - if( w_class < 2 ) - return 1 return 1 if(slot_w_uniform) if(H.w_uniform) @@ -488,7 +488,7 @@ (H.glasses && H.glasses.flags & GLASSESCOVERSEYES) \ )) // you can't stab someone in the eyes wearing a mask! - user << "\red You're going to need to remove that mask/helmet/glasses first." + user << "\red You're going to need to remove the eye covering first." return var/mob/living/carbon/monkey/Mo = M @@ -496,7 +496,7 @@ (Mo.wear_mask && Mo.wear_mask.flags & MASKCOVERSEYES) \ )) // you can't stab someone in the eyes wearing a mask! - user << "\red You're going to need to remove that mask/helmet/glasses first." + user << "\red You're going to need to remove the eye covering first." return if(istype(M, /mob/living/carbon/alien) || istype(M, /mob/living/carbon/slime))//Aliens don't have eyes./N slimes also don't have eyes! diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm index b47a2a30684..d1b39bf17b0 100644 --- a/code/game/objects/items/candle.dm +++ b/code/game/objects/items/candle.dm @@ -27,7 +27,7 @@ if(istype(W, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/WT = W if(WT.isOn()) //Badasses dont get blinded by lighting their candle with a welding tool - light("\red [user] casually lights the [name] with [W], what a badass.") + light("\red [user] casually lights the [name] with [W].") else if(istype(W, /obj/item/weapon/lighter)) var/obj/item/weapon/lighter/L = W if(L.lit) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index ee73d537d8e..b68e1e61cda 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -90,8 +90,8 @@ /obj/item/toy/crayon/attack(mob/M as mob, mob/user as mob) if(M == user) - user << "You take a bite of the crayon. Delicious!" - user.nutrition += 5 + user << "You take a bite of the crayon and swallow it." +// user.nutrition += 5 if(uses) uses -= 5 if(uses <= 0) diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index 9a57b4ff579..2fa75536ec3 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -33,6 +33,7 @@ user << "You attach the tank to the transfer valve." update_icon() + nanomanager.update_uis(src) // update all UIs attached to src //TODO: Have this take an assemblyholder else if(isassembly(item)) var/obj/item/device/assembly/A = item @@ -53,6 +54,7 @@ message_admins("[key_name_admin(user)] attached a [item] to a transfer valve.") log_game("[key_name_admin(user)] attached a [item] to a transfer valve.") attacher = user + nanomanager.update_uis(src) // update all UIs attached to src return @@ -63,49 +65,60 @@ /obj/item/device/transfer_valve/attack_self(mob/user as mob) - user.set_machine(src) - var/dat = {" Valve properties: -
Attachment one: [tank_one] [tank_one ? "Remove" : ""] -
Attachment two: [tank_two] [tank_two ? "Remove" : ""] -
Valve attachment: [attached_device ? "[attached_device]" : "None"] [attached_device ? "Remove" : ""] -
Valve status: [ valve_open ? "Closed Open" : "Closed Open"]"} + ui_interact(user) + +/obj/item/device/transfer_valve/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) - user << browse(dat, "window=trans_valve;size=600x300") - onclose(user, "trans_valve") - return + // this is the data which will be sent to the ui + var/data[0] + data["attachmentOne"] = tank_one ? tank_one.name : null + data["attachmentTwo"] = tank_two ? tank_two.name : null + data["valveAttachment"] = attached_device ? attached_device.name : null + data["valveOpen"] = valve_open ? 1 : 0 + + // update the ui if it exists, returns null if no ui is passed/found + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + if (!ui) + // the ui does not exist, so we'll create a new() one + // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm + ui = new(user, src, ui_key, "transfer_valve.tmpl", "Tank Transfer Valve", 460, 280) + // when the ui is first opened this is the data it will use + ui.set_initial_data(data) + // open the new ui window + ui.open() + // auto update every Master Controller tick + //ui.set_auto_update(1) /obj/item/device/transfer_valve/Topic(href, href_list) ..() if ( usr.stat || usr.restrained() ) - return - if (src.loc == usr) - if(tank_one && href_list["tankone"]) - split_gases() - valve_open = 0 - tank_one.loc = get_turf(src) - tank_one = null + return 0 + if (src.loc != usr) + return 0 + if(tank_one && href_list["tankone"]) + split_gases() + valve_open = 0 + tank_one.loc = get_turf(src) + tank_one = null + update_icon() + else if(tank_two && href_list["tanktwo"]) + split_gases() + valve_open = 0 + tank_two.loc = get_turf(src) + tank_two = null + update_icon() + else if(href_list["open"]) + toggle_valve() + else if(attached_device) + if(href_list["rem_device"]) + attached_device.loc = get_turf(src) + attached_device:holder = null + attached_device = null update_icon() - else if(tank_two && href_list["tanktwo"]) - split_gases() - valve_open = 0 - tank_two.loc = get_turf(src) - tank_two = null - update_icon() - else if(href_list["open"]) - toggle_valve() - else if(attached_device) - if(href_list["rem_device"]) - attached_device.loc = get_turf(src) - attached_device:holder = null - attached_device = null - update_icon() - if(href_list["device"]) - attached_device.attack_self(usr) - - src.attack_self(usr) - src.add_fingerprint(usr) - return - return + if(href_list["device"]) + attached_device.attack_self(usr) + src.add_fingerprint(usr) + return 1 // Returning 1 sends an update to attached UIs /obj/item/device/transfer_valve/process_activation(var/obj/item/device/D) if(toggle) diff --git a/code/game/objects/items/shooting_range.dm b/code/game/objects/items/shooting_range.dm index 6e3a893c9be..556f3a52220 100644 --- a/code/game/objects/items/shooting_range.dm +++ b/code/game/objects/items/shooting_range.dm @@ -72,11 +72,11 @@ syndicate icon_state = "target_s" - desc = "A shooting target that looks like a syndicate scum." + desc = "A shooting target that looks like a hostile agent." hp = 2600 // i guess syndie targets are sturdier? alien icon_state = "target_q" - desc = "A shooting target that looks like a xenomorphic alien." + desc = "A shooting target with a threatening silhouette." hp = 2350 // alium onest too kinda /obj/item/target/bullet_act(var/obj/item/projectile/Proj) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 764435ef577..3a157aa6183 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -166,7 +166,14 @@ var/global/list/datum/stack_recipe/cardboard_recipes = list ( \ new/datum/stack_recipe("cardborg suit", /obj/item/clothing/suit/cardborg, 3), \ new/datum/stack_recipe("cardborg helmet", /obj/item/clothing/head/cardborg), \ new/datum/stack_recipe("pizza box", /obj/item/pizzabox), \ - new/datum/stack_recipe("folder", /obj/item/weapon/folder), \ + null, \ + new/datum/stack_recipe_list("folders",list( \ + new/datum/stack_recipe("blue folder", /obj/item/weapon/folder/blue), \ + new/datum/stack_recipe("grey folder", /obj/item/weapon/folder), \ + new/datum/stack_recipe("red folder", /obj/item/weapon/folder/red), \ + new/datum/stack_recipe("white folder", /obj/item/weapon/folder/white), \ + new/datum/stack_recipe("yellow folder", /obj/item/weapon/folder/yellow), \ + )) \ ) /obj/item/stack/sheet/cardboard //BubbleWrap diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index f02824576cb..b7c0cef238d 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -294,7 +294,7 @@ /obj/item/toy/ammo/crossbow name = "foam dart" - desc = "Its nerf or nothing! Ages 8 and up." + desc = "It's nerf or nothing! Ages 8 and up." icon = 'icons/obj/toy.dmi' icon_state = "foamdart" flags = FPRINT | TABLEPASS @@ -365,7 +365,7 @@ /obj/item/toy/crayon name = "crayon" - desc = "A colourful crayon. Looks tasty. Mmmm..." + desc = "A colourful crayon. Please refrain from eating it or putting it in your nose." icon = 'icons/obj/crayons.dmi' icon_state = "crayonred" w_class = 1.0 diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index ac80658f27c..49dc148d410 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -82,17 +82,17 @@ CIGARETTE PACKETS ARE IN FANCY.DM if(istype(W, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/WT = W if(WT.isOn())//Badasses dont get blinded while lighting their cig with a welding tool - light("[user] casually lights the [name] with [W], what a badass.") + light("[user] casually lights the [name] with [W].") else if(istype(W, /obj/item/weapon/lighter/zippo)) var/obj/item/weapon/lighter/zippo/Z = W if(Z.lit) - light("With a single flick of their wrist, [user] smoothly lights their [name] with their [W]. Damn they're cool.") + light("With a flick of their wrist, [user] lights their [name] with their [W].") else if(istype(W, /obj/item/weapon/lighter)) var/obj/item/weapon/lighter/L = W if(L.lit) - light("After some fiddling, [user] manages to light their [name] with [W].") + light("[user] manages to light their [name] with [W].") else if(istype(W, /obj/item/weapon/match)) var/obj/item/weapon/match/M = W @@ -309,7 +309,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/cigarette/pipe/cobpipe name = "corn cob pipe" - desc = "A nicotine delivery system popularized by folksy backwoodsmen and kept popular in the modern age and beyond by space hipsters." + desc = "A nicotine delivery system popularized by folksy backwoodsmen, kept popular in the modern age and beyond by space hipsters." icon_state = "cobpipeoff" item_state = "cobpipeoff" icon_on = "cobpipeon" //Note - these are in masks.dmi @@ -360,7 +360,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM if(istype(src, /obj/item/weapon/lighter/zippo) ) user.visible_message("Without even breaking stride, [user] flips open and lights [src] in one smooth movement.") else - if(prob(75)) + if(prob(95)) user.visible_message("After a few attempts, [user] manages to light the [src].") else user << "You burn yourself while lighting the lighter." @@ -374,7 +374,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM icon_state = icon_off item_state = icon_off if(istype(src, /obj/item/weapon/lighter/zippo) ) - user.visible_message("You hear a quiet click, as [user] shuts off [src] without even looking at what they're doing. Wow.") + user.visible_message("You hear a quiet click, as [user] shuts off [src] without even looking at what they're doing.") else user.visible_message("[user] quietly shuts off the [src].") @@ -395,7 +395,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM cig.attackby(src, user) else if(istype(src, /obj/item/weapon/lighter/zippo)) - cig.light("[user] whips the [name] out and holds it for [M]. Their arm is as steady as the unflickering flame they light \the [cig] with.") + cig.light("[user] whips the [name] out and holds it for [M].") else cig.light("[user] holds the [name] out for [M], and lights the [cig.name].") else diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 80b3403a9be..1955a9d5388 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -95,32 +95,32 @@ /obj/item/weapon/handcuffs/cable name = "cable restraints" desc = "Looks like some cables tied together. Could be used to tie something up." - icon_state = "cuff_red" + icon_state = "cuff_white" breakouttime = 300 //Deciseconds = 30s /obj/item/weapon/handcuffs/cable/red - icon_state = "cuff_red" + color = "#DD0000" /obj/item/weapon/handcuffs/cable/yellow - icon_state = "cuff_yellow" + color = "#DDDD00" /obj/item/weapon/handcuffs/cable/blue - icon_state = "cuff_blue" + color = "#0000DD" /obj/item/weapon/handcuffs/cable/green - icon_state = "cuff_green" + color = "#00DD00" /obj/item/weapon/handcuffs/cable/pink - icon_state = "cuff_pink" + color = "#DD00DD" /obj/item/weapon/handcuffs/cable/orange - icon_state = "cuff_orange" + color = "#DD8800" /obj/item/weapon/handcuffs/cable/cyan - icon_state = "cuff_cyan" + color = "#00DDDD" /obj/item/weapon/handcuffs/cable/white - icon_state = "cuff_white" + color = "#FFFFFF" /obj/item/weapon/handcuffs/cyborg dispenser = 1 \ No newline at end of file diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index bcc337ec570..2166c674028 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -165,7 +165,7 @@ Implant Specifics:
"} message_admins("Explosive implant triggered in [T] ([T.key]). (JMP) ") log_game("Explosive implant triggered in [T] ([T.key]).") need_gib = 1 - + if(ishuman(imp_in)) if (elevel == "Localized Limb") if(part) //For some reason, small_boom() didn't work. So have this bit of working copypaste. @@ -194,7 +194,7 @@ Implant Specifics:
"} if(need_gib) imp_in.gib() - + var/turf/t = get_turf(imp_in) if(t) @@ -501,3 +501,4 @@ the implant may become unstable and either pre-maturely inject the subject or si /obj/item/weapon/implant/cortical name = "cortical stack" desc = "A fist-sized mass of biocircuits and chips." + icon_state = "implant_evil" \ No newline at end of file diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm index 1e0371d94c0..efe862d79b7 100644 --- a/code/game/objects/items/weapons/manuals.dm +++ b/code/game/objects/items/weapons/manuals.dm @@ -71,13 +71,13 @@ /obj/item/weapon/book/manual/supermatter_engine name = "Supermatter Engine User's Guide" - icon_state = "bookParticleAccelerator" //TEMP FIXME + icon_state = "bookSupermatter" author = "Waleed Asad" title = "Supermatter Engine User's Guide" dat = {"Engineering notes on single-stage Supermatter engine,
-Waleed Asad
- + Station,
Exodus
@@ -735,7 +735,7 @@ /obj/item/weapon/book/manual/chef_recipes name = "Chef Recipes" icon_state = "cooked_book" - author = "Lord Frenrir Cageth" + author = "Victoria Ponsonby" title = "Chef Recipes" dat = {" @@ -753,32 +753,35 @@

Food for Dummies

Here is a guide on basic food recipes and also how to not poison your customers accidentally. +

Basics:

+ Knead an egg and some flour to make dough. Bake that to make a bun or flatten and cut it. +

Burger:

- Put 1 meat and 1 flour into the microwave and turn it on. Then wait. + Put a bun and some meat into the microwave and turn it on. Then wait.

Bread:

- Put 3 flour into the microwave and then wait. + Put some dough and an egg into the microwave and then wait.

Waffles:

- Add 2 flour and 2 egg to the microwave and then wait. + Add two lumps of dough and 10u of sugar to the microwave and then wait.

Popcorn:

Add 1 corn to the microwave and wait.

Meat Steak:

- Put 1 meat, 1 unit of salt and 1 unit of pepper into the microwave and wait. + Put a slice of meat, 1 unit of salt and 1 unit of pepper into the microwave and wait.

Meat Pie:

- Put 1 meat and 2 flour into the microwave and wait. + Put a flattened piece of dough and some meat into the microwave and wait. -

Boiled Spagetti:

- Put 1 spagetti and 5 units of water into the microwave and wait. +

Boiled Spaghetti:

+ Put the spaghetti (processed flour) and 5 units of water into the microwave and wait.

Donuts:

- Add 1 egg and 1 flour to the microwave and wait. + Add some dough and 5 units of sugar to the microwave and wait.

Fries:

- Add one potato to the processor and wait. + Add one potato to the processor, then bake them in the microwave. diff --git a/code/game/objects/items/weapons/paint.dm b/code/game/objects/items/weapons/paint.dm index 5a20ac12d0c..166144407d9 100644 --- a/code/game/objects/items/weapons/paint.dm +++ b/code/game/objects/items/weapons/paint.dm @@ -36,6 +36,11 @@ var/global/list/cached_icons = list() ..() reagents.add_reagent("paint_[paint_type]", volume) + on_reagent_change() //Until we have a generic "paint", this will give new colours to all paints in the can + var/mixedcolor = mix_color_from_reagents(reagents.reagent_list) + for(var/datum/reagent/paint/P in reagents.reagent_list) + P.color = mixedcolor + red icon_state = "paint_red" paint_type = "red" @@ -171,9 +176,9 @@ var/global/list/cached_icons = list() datum/reagent/paint name = "Paint" id = "paint_" - description = "Floor paint is used to color floor tiles." reagent_state = 2 color = "#808080" + description = "This paint will only adhere to floor tiles." reaction_turf(var/turf/T, var/volume) if(!istype(T) || istype(T, /turf/space)) @@ -192,26 +197,26 @@ datum/reagent/paint red name = "Red Paint" id = "paint_red" - color = "#FF0000" + color = "#FE191A" green name = "Green Paint" - color = "#00FF00" + color = "#18A31A" id = "paint_green" blue name = "Blue Paint" - color = "#0000FF" + color = "#247CFF" id = "paint_blue" yellow name = "Yellow Paint" - color = "#FFFF00" + color = "#FDFE7D" id = "paint_yellow" violet name = "Violet Paint" - color = "#FF00FF" + color = "#CC0099" id = "paint_violet" black @@ -221,7 +226,7 @@ datum/reagent/paint white name = "White Paint" - color = "#FFFFFF" + color = "#F0F8FF" id = "paint_white" datum/reagent/paint_remover diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 036c57b003d..8798cb699c1 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -167,3 +167,68 @@ desc = "No bother to sink or swim when you can just float!" icon_state = "inflatable" item_state = "inflatable" + +/obj/item/weapon/storage/belt/security/tactical + name = "combat belt" + desc = "Can hold security gear like handcuffs and flashes, with more pouches for more storage." + icon_state = "swatbelt" + item_state = "swatbelt" + var/obj/item/weapon/gun/holstered = null + storage_slots = 9 + max_w_class = 3 + max_combined_w_class = 21 + can_hold = list( + "/obj/item/weapon/grenade/flashbang", + "/obj/item/weapon/reagent_containers/spray/pepper", + "/obj/item/weapon/handcuffs", + "/obj/item/device/flash", + "/obj/item/clothing/glasses", + "/obj/item/ammo_casing/shotgun", + "/obj/item/ammo_magazine", + "/obj/item/weapon/reagent_containers/food/snacks/donut/normal", + "/obj/item/weapon/reagent_containers/food/snacks/donut/jelly", + "/obj/item/weapon/melee/baton", + "/obj/item/weapon/gun/energy/taser", + "/obj/item/weapon/lighter/zippo", + "/obj/item/weapon/cigpacket", + "/obj/item/clothing/glasses/hud/security", + "/obj/item/device/flashlight", + "/obj/item/device/pda", + "/obj/item/device/radio/headset", + "/obj/item/weapon/melee", + "/obj/item/taperoll/police", + "/obj/item/weapon/gun/energy/taser" + ) + + + /obj/item/weapon/storage/belt/security/tactical/verb/holster() + set name = "Holster" + set category = "Object" + set src in usr + if(!istype(usr, /mob/living)) return + if(usr.stat) return + + if(!holstered) + if(!istype(usr.get_active_hand(), /obj/item/weapon/gun)) + usr << "\blue You need your gun equiped to holster it." + return + var/obj/item/weapon/gun/W = usr.get_active_hand() + if (!W.isHandgun()) + usr << "\red This gun won't fit in \the belt!" + return + holstered = usr.get_active_hand() + usr.drop_item() + holstered.loc = src + usr.visible_message("\blue \The [usr] holsters \the [holstered].", "You holster \the [holstered].") + else + if(istype(usr.get_active_hand(),/obj) && istype(usr.get_inactive_hand(),/obj)) + usr << "\red You need an empty hand to draw the gun!" + else + if(usr.a_intent == "hurt") + usr.visible_message("\red \The [usr] draws \the [holstered], ready to shoot!", \ + "\red You draw \the [holstered], ready to shoot!") + else + usr.visible_message("\blue \The [usr] draws \the [holstered], pointing it at the ground.", \ + "\blue You draw \the [holstered], pointing it at the ground.") + usr.put_in_hands(holstered) + holstered = null \ No newline at end of file diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index e0e30e60cb9..6cc4467882c 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -1,3 +1,6 @@ +#define TANK_MAX_RELEASE_PRESSURE (3*ONE_ATMOSPHERE) +#define TANK_DEFAULT_RELEASE_PRESSURE 24 + /obj/item/weapon/tank name = "tank" icon = 'icons/obj/tank.dmi' @@ -24,8 +27,7 @@ src.air_contents.volume = volume //liters src.air_contents.temperature = T20C - processing_objects.Add(src) - + processing_objects.Add(src) return /obj/item/weapon/tank/Del() @@ -121,7 +123,10 @@ /obj/item/weapon/tank/attack_self(mob/user as mob) if (!(src.air_contents)) return - user.set_machine(src) + + ui_interact(user) + +/obj/item/weapon/tank/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) var/using_internal if(istype(loc,/mob/living/carbon)) @@ -129,57 +134,69 @@ if(location.internal==src) using_internal = 1 - var/message = {" -Tank
-Tank Pressure: [air_contents.return_pressure()]
-
-Mask Release Pressure: - - [distribute_pressure] + +
-Mask Release Valve: [using_internal?("Open"):("Closed")] -"} - user << browse(message, "window=tank;size=600x300") - onclose(user, "tank") - return + // this is the data which will be sent to the ui + var/data[0] + data["tankPressure"] = round(air_contents.return_pressure() ? air_contents.return_pressure() : 0) + data["releasePressure"] = round(distribute_pressure ? distribute_pressure : 0) + data["defaultReleasePressure"] = round(TANK_DEFAULT_RELEASE_PRESSURE) + data["maxReleasePressure"] = round(TANK_MAX_RELEASE_PRESSURE) + data["valveOpen"] = using_internal ? 1 : 0 + + data["maskConnected"] = 0 + if(istype(loc,/mob/living/carbon)) + var/mob/living/carbon/location = loc + if(location.internal == src || (location.wear_mask && (location.wear_mask.flags & MASKINTERNALS))) + data["maskConnected"] = 1 + + // update the ui if it exists, returns null if no ui is passed/found + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + if (!ui) + // the ui does not exist, so we'll create a new() one + // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm + ui = new(user, src, ui_key, "tanks.tmpl", "Tank", 500, 300) + // when the ui is first opened this is the data it will use + ui.set_initial_data(data) + // open the new ui window + ui.open() + // auto update every Master Controller tick + ui.set_auto_update(1) /obj/item/weapon/tank/Topic(href, href_list) ..() if (usr.stat|| usr.restrained()) - return - if (src.loc == usr) - usr.set_machine(src) - if (href_list["dist_p"]) + return 0 + if (src.loc != usr) + return 0 + + if (href_list["dist_p"]) + if (href_list["dist_p"] == "reset") + src.distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE + else if (href_list["dist_p"] == "max") + src.distribute_pressure = TANK_MAX_RELEASE_PRESSURE + else var/cp = text2num(href_list["dist_p"]) src.distribute_pressure += cp - src.distribute_pressure = min(max(round(src.distribute_pressure), 0), 3*ONE_ATMOSPHERE) - if (href_list["stat"]) - if(istype(loc,/mob/living/carbon)) - var/mob/living/carbon/location = loc - if(location.internal == src) - location.internal = null + src.distribute_pressure = min(max(round(src.distribute_pressure), 0), TANK_MAX_RELEASE_PRESSURE) + if (href_list["stat"]) + if(istype(loc,/mob/living/carbon)) + var/mob/living/carbon/location = loc + if(location.internal == src) + location.internal = null + location.internals.icon_state = "internal0" + usr << "\blue You close the tank release valve." + if (location.internals) location.internals.icon_state = "internal0" - usr << "\blue You close the tank release valve." + else + if(location.wear_mask && (location.wear_mask.flags & MASKINTERNALS)) + location.internal = src + usr << "\blue You open \the [src] valve." if (location.internals) - location.internals.icon_state = "internal0" + location.internals.icon_state = "internal1" else - if(location.wear_mask && (location.wear_mask.flags & MASKINTERNALS)) - location.internal = src - usr << "\blue You open \the [src] valve." - if (location.internals) - location.internals.icon_state = "internal1" - else - usr << "\blue You need something to connect to \the [src]." + usr << "\blue You need something to connect to \the [src]." - src.add_fingerprint(usr) -/* - * the following is needed for a tank lying on the floor. But currently we restrict players to use not weared tanks as intrals. --rastaf - for(var/mob/M in viewers(1, src.loc)) - if ((M.client && M.machine == src)) - src.attack_self(M) -*/ - src.attack_self(usr) - else - usr << browse(null, "window=tank") - return - return + src.add_fingerprint(usr) + return 1 /obj/item/weapon/tank/remove_air(amount) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm index 13a823d4ab0..eb5ca2cf7d3 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm @@ -19,9 +19,11 @@ New() ..() sleep(2) - for(var/i = 0, i < 3, i++) - new /obj/item/weapon/reagent_containers/food/drinks/flour(src) + for(var/i = 0, i < 6, i++) + new /obj/item/weapon/reagent_containers/food/snacks/flour(src) new /obj/item/weapon/reagent_containers/food/condiment/sugar(src) + for(var/i = 0, i < 3, i++) + new /obj/item/weapon/reagent_containers/food/snacks/meat/monkey(src) return @@ -64,7 +66,7 @@ sleep(2) for(var/i = 0, i < 5, i++) new /obj/item/weapon/reagent_containers/food/drinks/milk(src) - for(var/i = 0, i < 5, i++) + for(var/i = 0, i < 3, i++) new /obj/item/weapon/reagent_containers/food/drinks/soymilk(src) for(var/i = 0, i < 2, i++) new /obj/item/weapon/storage/fancy/egg_box(src) diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index 28e0958206e..5f40f4464b7 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -370,3 +370,20 @@ new /obj/item/clothing/shoes/red(src) new /obj/item/clothing/shoes/leather(src) return + +/obj/structure/closet/wardrobe/tactical + name = "tactical equipment" + icon_state = "syndicate1" + icon_closed = "syndicate1" + icon_opened = "syndicate1open" + +/obj/structure/closet/wardrobe/tactical/New() + new /obj/item/clothing/under/tactical(src) + new /obj/item/clothing/suit/armor/tactical(src) + new /obj/item/clothing/head/helmet/tactical(src) + new /obj/item/clothing/mask/balaclava/tactical(src) + new /obj/item/clothing/glasses/sunglasses/sechud/tactical(src) + new /obj/item/weapon/storage/belt/security/tactical(src) + new /obj/item/clothing/shoes/jackboots(src) + new /obj/item/clothing/gloves/black(src) + return \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index ccace6a8f0e..486c2e00f1a 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -303,6 +303,15 @@ newgas.temperature = target_temp return newgas +/obj/structure/closet/crate/freezer/rations //Fpr use in the escape shuttle + desc = "A crate of emergency rations." + name = "Emergency Rations" + + +/obj/structure/closet/crate/freezer/rations/New() + ..() + new /obj/item/weapon/storage/box/donkpockets(src) + new /obj/item/weapon/storage/box/donkpockets(src) /obj/structure/closet/crate/bin desc = "A large bin." diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index 12ce9e0b5ff..672011cef9b 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -10,7 +10,9 @@ /obj/structure/lattice/New() ..() - if(!(istype(src.loc, /turf/space))) +///// Z-Level Stuff + if(!(istype(src.loc, /turf/space) || istype(src.loc, /turf/simulated/floor/open))) +///// Z-Level Stuff del(src) for(var/obj/structure/lattice/LAT in src.loc) if(LAT != src) @@ -80,4 +82,4 @@ dir_sum += direction icon_state = "lattice[dir_sum]" - return \ No newline at end of file + return diff --git a/code/game/turfs/simulated/floor_types.dm b/code/game/turfs/simulated/floor_types.dm index 2e82577a4b5..f24e837820d 100644 --- a/code/game/turfs/simulated/floor_types.dm +++ b/code/game/turfs/simulated/floor_types.dm @@ -9,6 +9,9 @@ ..() name = "floor" +/turf/simulated/floor/airless/ceiling + icon_state = "rockvault" + /turf/simulated/floor/light name = "Light floor" luminosity = 5 diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 3a4c6b40b4c..14b05c72986 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -200,6 +200,20 @@ if (!N) return +///// Z-Level Stuff ///// This makes sure that turfs are not changed to space when one side is part of a zone + if(N == /turf/space) + var/turf/controller = locate(1, 1, src.z) + for(var/obj/effect/landmark/zcontroller/c in controller) + if(c.down) + var/turf/below = locate(src.x, src.y, c.down_target) + if((below.zone || zone) && !istype(below, /turf/space)) // dont make open space into space, its pointless and makes people drop out of the station + var/turf/W = src.ChangeTurf(/turf/simulated/floor/open) + var/list/temp = list() + temp += W + c.add(temp,3,1) // report the new open space to the zcontroller + return W +///// Z-Level Stuff + var/old_lumcount = lighting_lumcount - initial(lighting_lumcount) if(ispath(N, /turf/simulated/floor)) @@ -337,4 +351,4 @@ if(!t.density) if(!LinkBlocked(src, t) && !TurfBlockedNonWindow(t)) L.Add(t) - return L \ No newline at end of file + return L diff --git a/code/modules/admin/verbs/vox_raiders.dm b/code/modules/admin/verbs/vox_raiders.dm index f1e6204d223..d00435e1fca 100644 --- a/code/modules/admin/verbs/vox_raiders.dm +++ b/code/modules/admin/verbs/vox_raiders.dm @@ -68,19 +68,6 @@ var/global/vox_tick = 1 W.handle_item_insertion(C) spawn_money(rand(50,150)*10,W) equip_to_slot_or_del(W, slot_wear_id) - - var/obj/item/weapon/implant/cortical/I = new(src) - I.imp_in = src - I.implanted = 1 - var/datum/organ/external/affected = src.get_organ("head") - affected.implants += I - I.part = affected - - if(ticker.mode && ( istype( ticker.mode,/datum/game_mode/heist ) ) ) - var/datum/game_mode/heist/M = ticker.mode - M.cortical_stacks += I - M.raiders[mind] = I - vox_tick++ if (vox_tick > 4) vox_tick = 1 diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index cd63e415a44..1d955a9e74b 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -242,30 +242,11 @@ //send resources to the client. It's here in its own proc so we can move it around easiliy if need be /client/proc/send_resources() // preload_vox() //Causes long delays with initial start window and subsequent windows when first logged in. + + // Send NanoUI resources to this client + nanomanager.send_resources(src) + getFiles( - 'nano/js/libraries.min.js', - 'nano/js/nano_update.js', - 'nano/js/nano_config.js', - 'nano/js/nano_base_helpers.js', - 'nano/css/shared.css', - 'nano/css/icons.css', - 'nano/templates/chem_dispenser.tmpl', - 'nano/templates/cryo.tmpl', - 'nano/templates/geoscanner.tmpl', - 'nano/templates/dna_modifier.tmpl', - 'nano/templates/telescience_console.tmpl', - 'nano/templates/pda.tmpl', - 'nano/templates/smes.tmpl', - 'nano/templates/uplink.tmpl', - 'nano/images/uiBackground.png', - 'nano/images/uiIcons16.png', - 'nano/images/uiIcons24.png', - 'nano/images/uiBackground-Syndicate.png', - 'nano/images/uiLinkPendingIcon.gif', - 'nano/images/uiMaskBackground.png', - 'nano/images/uiNoticeBackground.jpg', - 'nano/images/uiTitleFluff.png', - 'nano/images/uiTitleFluff-Syndicate.png', 'html/search.js', 'html/panels.css', 'icons/pda_icons/pda_atmos.png', diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 607dd9d8082..7ee835da35e 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -150,6 +150,11 @@ src.hud = new/obj/item/clothing/glasses/hud/security(src) return +/obj/item/clothing/glasses/sunglasses/sechud/tactical + name = "tactical HUD" + desc = "Flash-resistant goggles with inbuilt combat and security information." + icon_state = "swatgoggles" + /obj/item/clothing/glasses/thermal name = "Optical Thermal Scanner" desc = "Thermals in the shape of glasses." diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index ec2ef1b3fae..41cb4ce7f66 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -58,4 +58,14 @@ flags = FPRINT|TABLEPASS|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR item_state = "gladiator" flags_inv = HIDEMASK|HIDEEARS|HIDEEYES - siemens_coefficient = 1 \ No newline at end of file + siemens_coefficient = 1 + +/obj/item/clothing/head/helmet/tactical + name = "tactical helmet" + desc = "An armored helmet capable of being fitted with a multitude of attachments." + icon_state = "swathelm" + item_state = "helmet" + flags = FPRINT|TABLEPASS|HEADCOVERSEYES + armor = list(melee = 62, bullet = 50, laser = 50,energy = 35, bomb = 10, bio = 2, rad = 0) + flags_inv = HIDEEARS + siemens_coefficient = 0.7 \ No newline at end of file diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index 49d9505bce4..7a94a7bc943 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -7,6 +7,15 @@ flags_inv = HIDEFACE w_class = 2 +/obj/item/clothing/mask/balaclava/tactical + name = "green balaclava" + desc = "Designed to both hide identities and keep your face comfy and warm." + icon_state = "swatclava" + item_state = "balaclava" + flags = FPRINT|TABLEPASS|BLOCKHAIR + flags_inv = HIDEFACE + w_class = 2 + /obj/item/clothing/mask/luchador name = "Luchador Mask" desc = "Worn by robust fighters, flying high to defeat their foes!" diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index fdd54d63507..c58ec18be0f 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -183,4 +183,14 @@ desc = "Pukish armor." icon_state = "tdgreen" item_state = "tdgreen" - siemens_coefficient = 1 \ No newline at end of file + siemens_coefficient = 1 + +/obj/item/clothing/suit/armor/tactical + name = "tactical armor" + desc = "A suit of armor most often used by Special Weapons and Tactics squads. Includes padded vest with pockets along with shoulder and kneeguards." + icon_state = "swatarmor" + item_state = "armor" + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + slowdown = 1 + armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 20, bio = 0, rad = 0) + siemens_coefficient = 0.7 \ No newline at end of file diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index b170ea2de6f..6056a110e43 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -10,7 +10,7 @@ */ /obj/item/clothing/suit/bluetag name = "blue laser tag armour" - desc = "Blue Pride, Station Wide" + desc = "Blue Pride, Station Wide." icon_state = "bluetag" item_state = "bluetag" blood_overlay_type = "armor" @@ -20,7 +20,7 @@ /obj/item/clothing/suit/redtag name = "red laser tag armour" - desc = "Pew pew pew" + desc = "Reputed to go faster." icon_state = "redtag" item_state = "redtag" blood_overlay_type = "armor" @@ -76,7 +76,7 @@ /obj/item/clothing/suit/justice name = "justice suit" - desc = "this pretty much looks ridiculous" + desc = "This pretty much looks ridiculous." icon_state = "justice" item_state = "justice" flags = FPRINT | TABLEPASS diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index e6dda9c6f76..5b37f507194 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -58,6 +58,16 @@ item_state = "warden_corporate" item_color = "warden_corporate" +/obj/item/clothing/under/tactical + name = "tactical jumpsuit" + desc = "It's made of a slightly sturdier material than standard jumpsuits, to allow for robust protection." + icon_state = "swatunder" + item_state = "swatunder" + item_color = "swatunder" + armor = list(melee = 10, bullet = 5, laser = 5,energy = 0, bomb = 0, bio = 0, rad = 0) + flags = FPRINT | TABLEPASS + siemens_coefficient = 0.9 + /* * Detective */ diff --git a/code/modules/destilery/main.dm b/code/modules/destilery/main.dm index 429a29afdf1..e6944724aaf 100644 --- a/code/modules/destilery/main.dm +++ b/code/modules/destilery/main.dm @@ -45,10 +45,10 @@ switch(milled_item.type) if(/obj/item/weapon/reagent_containers/food/snacks/grown/wheat) //Wheat becomes flour - var/obj/item/weapon/reagent_containers/food/drinks/flour/F = new(src) + var/obj/item/weapon/reagent_containers/food/snacks/flour/F = new(src) output += F - if(/obj/item/weapon/reagent_containers/food/drinks/flour) //Flour is still flour - var/obj/item/weapon/reagent_containers/food/drinks/flour/F = new(src) + if(/obj/item/weapon/reagent_containers/food/snacks/flour) //Flour is still flour + var/obj/item/weapon/reagent_containers/food/snacks/flour/F = new(src) output += F else error = 1 @@ -117,7 +117,7 @@ return //Not done yet. switch(fermenting_item.type) - if(/obj/item/weapon/reagent_containers/food/drinks/flour) //Flour is still flour + if(/obj/item/weapon/reagent_containers/food/snacks/flour) //Flour is still flour var/obj/item/weapon/reagent_containers/food/drinks/cans/beer/B = new(src) output += B else diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index 31fe141ad10..09adb39440d 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -34,7 +34,7 @@ return if(IsMultiple(activeFor, 5)) - if(prob(25)) + if(prob(15)) var/obj/machinery/vending/infectedMachine = pick(vendingMachines) vendingMachines.Remove(infectedMachine) infectedVendingMachines.Add(infectedMachine) @@ -43,7 +43,7 @@ if(IsMultiple(activeFor, 12)) originMachine.speak(pick("Try our aggressive new marketing strategies!", \ - "You should buy products to feed your lifestyle obession!", \ + "You should buy products to feed your lifestyle obsession!", \ "Consume!", \ "Your money can buy happiness!", \ "Engage direct marketing!", \ @@ -52,6 +52,5 @@ /datum/event/brand_intelligence/end() for(var/obj/machinery/vending/infectedMachine in infectedVendingMachines) - if(prob(90)) - infectedMachine.shut_up = 1 - infectedMachine.shoot_inventory = 0 + infectedMachine.shut_up = 1 + infectedMachine.shoot_inventory = 0 diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm index 8228520cb86..594136bb2ea 100644 --- a/code/modules/food/recipes_microwave.dm +++ b/code/modules/food/recipes_microwave.dm @@ -34,7 +34,7 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/boiledegg /datum/recipe/dionaroast - reagents = list("radium" = 5) + reagents = list("pacid" = 5) //It dissolves the carapace. Still poisonous, though. items = list( /obj/item/weapon/holder/diona, /obj/item/weapon/reagent_containers/food/snacks/grown/apple @@ -53,27 +53,34 @@ I said no! */ /datum/recipe/jellydonut - reagents = list("berryjuice" = 5, "flour" = 5) + reagents = list("berryjuice" = 5, "sugar" = 5) items = list( - /obj/item/weapon/reagent_containers/food/snacks/egg + /obj/item/weapon/reagent_containers/food/snacks/dough ) result = /obj/item/weapon/reagent_containers/food/snacks/donut/jelly /datum/recipe/jellydonut/slime - reagents = list("slimejelly" = 5, "flour" = 5) + reagents = list("slimejelly" = 5, "sugar" = 5) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/dough + ) result = /obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly /datum/recipe/jellydonut/cherry - reagents = list("cherryjelly" = 5, "flour" = 5) + reagents = list("cherryjelly" = 5, "sugar" = 5) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/dough + ) result = /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly /datum/recipe/donut - reagents = list("flour" = 5) + reagents = list("sugar" = 5) items = list( - /obj/item/weapon/reagent_containers/food/snacks/egg + /obj/item/weapon/reagent_containers/food/snacks/dough ) result = /obj/item/weapon/reagent_containers/food/snacks/donut/normal +/* what is this /datum/recipe/human //invalid recipe make_food(var/obj/container as obj) @@ -93,115 +100,114 @@ I said no! HB.name = human_name+HB.name HB.job = human_job return HB +*/ /datum/recipe/human/burger - reagents = list("flour" = 5) items = list( - /obj/item/weapon/reagent_containers/food/snacks/meat/human + /obj/item/weapon/reagent_containers/food/snacks/meat/human, + /obj/item/weapon/reagent_containers/food/snacks/bun ) result = /obj/item/weapon/reagent_containers/food/snacks/human/burger -/* +/* Duplicated by plainburger /datum/recipe/monkeyburger items = list( - /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/bun, /obj/item/weapon/reagent_containers/food/snacks/meat/monkey ) result = /obj/item/weapon/reagent_containers/food/snacks/monkeyburger */ /datum/recipe/plainburger - reagents = list("flour" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/bun, /obj/item/weapon/reagent_containers/food/snacks/meat //do not place this recipe before /datum/recipe/humanburger ) result = /obj/item/weapon/reagent_containers/food/snacks/monkeyburger /datum/recipe/syntiburger - reagents = list("flour" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/bun, /obj/item/weapon/syntiflesh ) result = /obj/item/weapon/reagent_containers/food/snacks/monkeyburger /datum/recipe/brainburger - reagents = list("flour" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/bun, /obj/item/brain ) result = /obj/item/weapon/reagent_containers/food/snacks/brainburger -/* NO FUN ALLOWED /datum/recipe/roburger items = list( /obj/item/weapon/reagent_containers/food/snacks/flour, /obj/item/robot_parts/head ) result = /obj/item/weapon/reagent_containers/food/snacks/roburger -*/ /datum/recipe/xenoburger - reagents = list("flour" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/bun, /obj/item/weapon/reagent_containers/food/snacks/xenomeat ) result = /obj/item/weapon/reagent_containers/food/snacks/xenoburger /datum/recipe/fishburger - reagents = list("flour" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/bun, /obj/item/weapon/reagent_containers/food/snacks/carpmeat ) result = /obj/item/weapon/reagent_containers/food/snacks/fishburger /datum/recipe/tofuburger - reagents = list("flour" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/bun, /obj/item/weapon/reagent_containers/food/snacks/tofu ) result = /obj/item/weapon/reagent_containers/food/snacks/tofuburger /datum/recipe/ghostburger - reagents = list("flour" = 5) items = list( - /obj/item/weapon/ectoplasm + /obj/item/weapon/reagent_containers/food/snacks/bun, + /obj/item/weapon/ectoplasm //where do you even find this stuff ) result = /obj/item/weapon/reagent_containers/food/snacks/ghostburger /datum/recipe/clownburger - reagents = list("flour" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/bun, /obj/item/clothing/mask/gas/clown_hat, /* /obj/item/weapon/reagent_containers/food/snacks/grown/banana, */ ) result = /obj/item/weapon/reagent_containers/food/snacks/clownburger /datum/recipe/mimeburger - reagents = list("flour" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/bun, /obj/item/clothing/head/beret ) result = /obj/item/weapon/reagent_containers/food/snacks/mimeburger -/datum/recipe/waffles - reagents = list("flour" = 10) +/datum/recipe/hotdog items = list( - /obj/item/weapon/reagent_containers/food/snacks/egg, - /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/bun, + /obj/item/weapon/reagent_containers/food/snacks/sausage + ) + result = /obj/item/weapon/reagent_containers/food/snacks/hotdog + +/datum/recipe/waffles + reagents = list("sugar" = 10) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough ) result = /obj/item/weapon/reagent_containers/food/snacks/waffles -/* -/datum/recipe/faggot - monkeymeat_amount = 1 - humanmeat_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/faggot" -*/ - /datum/recipe/donkpocket - reagents = list("flour" = 5) items = list( - /obj/item/weapon/reagent_containers/food/snacks/faggot, + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/faggot ) result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket //SPECIAL proc/warm_up(var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked) @@ -228,8 +234,10 @@ I said no! return being_cooked /datum/recipe/meatbread - reagents = list("flour" = 15) items = list( + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, /obj/item/weapon/reagent_containers/food/snacks/meat, /obj/item/weapon/reagent_containers/food/snacks/meat, /obj/item/weapon/reagent_containers/food/snacks/meat, @@ -240,8 +248,10 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread /datum/recipe/syntibread - reagents = list("flour" = 15) items = list( + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, /obj/item/weapon/syntiflesh, /obj/item/weapon/syntiflesh, /obj/item/weapon/syntiflesh, @@ -251,17 +261,11 @@ I said no! ) result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread -/* -/datum/recipe/meatbreadhuman - flour_amount = 3 - humanmeat_amount = 3 - cheese_amount = 3 - creates = "/obj/item/weapon/reagent_containers/food/snacks/meatbread" -*/ - /datum/recipe/xenomeatbread - reagents = list("flour" = 15) items = list( + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, /obj/item/weapon/reagent_containers/food/snacks/xenomeat, /obj/item/weapon/reagent_containers/food/snacks/xenomeat, /obj/item/weapon/reagent_containers/food/snacks/xenomeat, @@ -272,11 +276,11 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread /datum/recipe/bananabread - reagents = list("milk" = 5, "flour" = 15) + reagents = list("milk" = 5, "sugar" = 15) items = list( - /obj/item/weapon/reagent_containers/food/snacks/egg, - /obj/item/weapon/reagent_containers/food/snacks/egg, - /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, /obj/item/weapon/reagent_containers/food/snacks/grown/banana, ) result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread @@ -291,9 +295,9 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/omelette /datum/recipe/muffin - reagents = list("milk" = 5, "flour" = 5) + reagents = list("milk" = 5, "sugar" = 5) items = list( - /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/dough, ) result = /obj/item/weapon/reagent_containers/food/snacks/muffin @@ -306,96 +310,96 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/eggplantparm /datum/recipe/soylenviridians - reagents = list("flour" = 15) items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans ) result = /obj/item/weapon/reagent_containers/food/snacks/soylenviridians /datum/recipe/soylentgreen - reagents = list("flour" = 15) items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, /obj/item/weapon/reagent_containers/food/snacks/meat/human, /obj/item/weapon/reagent_containers/food/snacks/meat/human, ) result = /obj/item/weapon/reagent_containers/food/snacks/soylentgreen /datum/recipe/carrotcake - reagents = list("milk" = 5, "flour" = 15) + reagents = list("milk" = 5, "sugar" = 15) items = list( - /obj/item/weapon/reagent_containers/food/snacks/egg, - /obj/item/weapon/reagent_containers/food/snacks/egg, - /obj/item/weapon/reagent_containers/food/snacks/egg, - /obj/item/weapon/reagent_containers/food/snacks/grown/carrot //TODO: more carrots + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/grown/carrot, + /obj/item/weapon/reagent_containers/food/snacks/grown/carrot, + /obj/item/weapon/reagent_containers/food/snacks/grown/carrot, ) result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake /datum/recipe/cheesecake - reagents = list("milk" = 5, "flour" = 15) + reagents = list("milk" = 5, "sugar" = 15) items = list( - /obj/item/weapon/reagent_containers/food/snacks/egg, - /obj/item/weapon/reagent_containers/food/snacks/egg, - /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, ) result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake /datum/recipe/plaincake - reagents = list("milk" = 5, "flour" = 15) + reagents = list("milk" = 5, "sugar" = 15) items = list( - /obj/item/weapon/reagent_containers/food/snacks/egg, - /obj/item/weapon/reagent_containers/food/snacks/egg, - /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, ) result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake /datum/recipe/meatpie - reagents = list("flour" = 10) items = list( + /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough, /obj/item/weapon/reagent_containers/food/snacks/meat, ) result = /obj/item/weapon/reagent_containers/food/snacks/meatpie /datum/recipe/tofupie - reagents = list("flour" = 10) items = list( + /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough, /obj/item/weapon/reagent_containers/food/snacks/tofu, ) result = /obj/item/weapon/reagent_containers/food/snacks/tofupie /datum/recipe/xemeatpie - reagents = list("flour" = 10) items = list( + /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough, /obj/item/weapon/reagent_containers/food/snacks/xenomeat, ) result = /obj/item/weapon/reagent_containers/food/snacks/xemeatpie /datum/recipe/pie - reagents = list("flour" = 10) + reagents = list("sugar" = 5) items = list( - /obj/item/weapon/reagent_containers/food/snacks/grown/banana, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough, + /obj/item/weapon/reagent_containers/food/snacks/grown/banana, ) result = /obj/item/weapon/reagent_containers/food/snacks/pie /datum/recipe/cherrypie - reagents = list("flour" = 10) + reagents = list("sugar" = 10) items = list( - /obj/item/weapon/reagent_containers/food/snacks/grown/cherries, + /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough, + /obj/item/weapon/reagent_containers/food/snacks/grown/cherries, ) result = /obj/item/weapon/reagent_containers/food/snacks/cherrypie -/* -/datum/recipe/berrypie - reagents = list("berryjuice" = 5) - items = list( - /obj/item/weapon/reagent_containers/food/snacks/flour, - /obj/item/weapon/reagent_containers/food/snacks/flour, - ) - result = /obj/item/weapon/reagent_containers/food/snacks/berrypie -*/ + /datum/recipe/berryclafoutis - reagents = list("flour" = 10) items = list( + /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough, /obj/item/weapon/reagent_containers/food/snacks/grown/berries, ) result = /obj/item/weapon/reagent_containers/food/snacks/berryclafoutis @@ -408,9 +412,9 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/wingfangchu /datum/recipe/chaosdonut - reagents = list("frostoil" = 5, "capsaicin" = 5, "flour" = 5) + reagents = list("frostoil" = 5, "capsaicin" = 5, "sugar" = 5) items = list( - /obj/item/weapon/reagent_containers/food/snacks/egg + /obj/item/weapon/reagent_containers/food/snacks/dough ) result = /obj/item/weapon/reagent_containers/food/snacks/donut/chaos @@ -447,8 +451,10 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/tofukabob /datum/recipe/tofubread - reagents = list("flour" = 15) items = list( + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, /obj/item/weapon/reagent_containers/food/snacks/tofu, /obj/item/weapon/reagent_containers/food/snacks/tofu, /obj/item/weapon/reagent_containers/food/snacks/tofu, @@ -473,8 +479,8 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/cheesyfries /datum/recipe/cubancarp - reagents = list("flour" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/dough, /obj/item/weapon/reagent_containers/food/snacks/grown/chili, /obj/item/weapon/reagent_containers/food/snacks/carpmeat, ) @@ -488,17 +494,17 @@ I said no! /datum/recipe/cookie - reagents = list("milk" = 5, "flour" = 5) + reagents = list("milk" = 5, "sugar" = 5) items = list( - /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/dough, /obj/item/weapon/reagent_containers/food/snacks/chocolatebar, ) result = /obj/item/weapon/reagent_containers/food/snacks/cookie /datum/recipe/fortunecookie - reagents = list("flour" = 5) + reagents = list("sugar" = 5) items = list( - /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/doughslice, /obj/item/weapon/paper, ) result = /obj/item/weapon/reagent_containers/food/snacks/fortunecookie @@ -532,8 +538,8 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/meatsteak /datum/recipe/pizzamargherita - reagents = list("flour" = 10) items = list( + /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough, /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, @@ -543,8 +549,8 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita /datum/recipe/meatpizza - reagents = list("flour" = 10) items = list( + /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough, /obj/item/weapon/reagent_containers/food/snacks/meat, /obj/item/weapon/reagent_containers/food/snacks/meat, /obj/item/weapon/reagent_containers/food/snacks/meat, @@ -554,8 +560,8 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza /datum/recipe/syntipizza - reagents = list("flour" = 10) items = list( + /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough, /obj/item/weapon/syntiflesh, /obj/item/weapon/syntiflesh, /obj/item/weapon/syntiflesh, @@ -565,23 +571,26 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza /datum/recipe/mushroompizza - reagents = list("flour" = 10) items = list( + /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough, /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom, /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom, /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom, /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom, /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato, ) result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza /datum/recipe/vegetablepizza - reagents = list("flour" = 10) items = list( + /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough, /obj/item/weapon/reagent_containers/food/snacks/grown/eggplant, /obj/item/weapon/reagent_containers/food/snacks/grown/carrot, /obj/item/weapon/reagent_containers/food/snacks/grown/corn, /obj/item/weapon/reagent_containers/food/snacks/grown/tomato, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, ) result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza @@ -656,45 +665,46 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/coldchili /datum/recipe/amanita_pie - reagents = list("flour" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough, /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita, ) result = /obj/item/weapon/reagent_containers/food/snacks/amanita_pie /datum/recipe/plump_pie - reagents = list("flour" = 10) items = list( + /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough, /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet, ) result = /obj/item/weapon/reagent_containers/food/snacks/plump_pie /datum/recipe/spellburger - reagents = list("flour" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/monkeyburger, /obj/item/clothing/head/wizard/fake, ) result = /obj/item/weapon/reagent_containers/food/snacks/spellburger /datum/recipe/spellburger - reagents = list("flour" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/monkeyburger, /obj/item/clothing/head/wizard, ) result = /obj/item/weapon/reagent_containers/food/snacks/spellburger /datum/recipe/bigbiteburger - reagents = list("flour" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/monkeyburger, /obj/item/weapon/reagent_containers/food/snacks/meat, /obj/item/weapon/reagent_containers/food/snacks/meat, /obj/item/weapon/reagent_containers/food/snacks/meat, + /obj/item/weapon/reagent_containers/food/snacks/egg, ) result = /obj/item/weapon/reagent_containers/food/snacks/bigbiteburger /datum/recipe/enchiladas items = list( - /obj/item/weapon/reagent_containers/food/snacks/meat, + /obj/item/weapon/reagent_containers/food/snacks/cutlet, /obj/item/weapon/reagent_containers/food/snacks/grown/chili, /obj/item/weapon/reagent_containers/food/snacks/grown/chili, /obj/item/weapon/reagent_containers/food/snacks/grown/corn, @@ -702,23 +712,30 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/enchiladas /datum/recipe/creamcheesebread - reagents = list("flour" = 15) items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, ) result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread /datum/recipe/monkeysdelight - reagents = list("sodiumchloride" = 1, "blackpepper" = 1, "flour" = 5) + reagents = list("sodiumchloride" = 1, "blackpepper" = 1) items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, /obj/item/weapon/reagent_containers/food/snacks/monkeycube, /obj/item/weapon/reagent_containers/food/snacks/grown/banana, ) result = /obj/item/weapon/reagent_containers/food/snacks/monkeysdelight /datum/recipe/baguette - reagents = list("sodiumchloride" = 1, "blackpepper" = 1, "flour" = 15) + reagents = list("sodiumchloride" = 1, "blackpepper" = 1) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, + ) result = /obj/item/weapon/reagent_containers/food/snacks/baguette /datum/recipe/fishandchips @@ -729,17 +746,20 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/fishandchips /datum/recipe/birthdaycake - reagents = list("milk" = 5, "flour" = 15) + reagents = list("milk" = 5, "sugar" = 5) items = list( - /obj/item/weapon/reagent_containers/food/snacks/egg, - /obj/item/weapon/reagent_containers/food/snacks/egg, - /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, /obj/item/clothing/head/cakehat ) result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake /datum/recipe/bread - reagents = list("flour" = 15) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/egg + ) result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/bread /datum/recipe/sandwich @@ -774,10 +794,10 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/tomatosoup /datum/recipe/rofflewaffles - reagents = list("psilocybin" = 5, "flour" = 10) + reagents = list("psilocybin" = 5, "sugar" = 10) items = list( - /obj/item/weapon/reagent_containers/food/snacks/egg, - /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, ) result = /obj/item/weapon/reagent_containers/food/snacks/rofflewaffles @@ -826,9 +846,11 @@ I said no! ) result = /obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat -/datum/recipe/spagetti - reagents = list("flour" = 5) - result= /obj/item/weapon/reagent_containers/food/snacks/spagetti +/*/datum/recipe/spagetti We have the processor now + items = list( + /obj/item/weapon/reagent_containers/food/snacks/doughslice + ) + result= /obj/item/weapon/reagent_containers/food/snacks/spagetti*/ /datum/recipe/boiledspagetti reagents = list("water" = 5) @@ -855,10 +877,9 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/pastatomato /datum/recipe/poppypretzel - reagents = list("flour" = 5) items = list( /obj/item/seeds/poppyseed, - /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/dough, ) result = /obj/item/weapon/reagent_containers/food/snacks/poppypretzel @@ -883,23 +904,14 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/spesslaw /datum/recipe/superbiteburger - reagents = list("sodiumchloride" = 5, "blackpepper" = 5, "flour" = 15) + reagents = list("sodiumchloride" = 5, "blackpepper" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/bigbiteburger, + /obj/item/weapon/reagent_containers/food/snacks/dough, /obj/item/weapon/reagent_containers/food/snacks/meat, - /obj/item/weapon/reagent_containers/food/snacks/meat, - /obj/item/weapon/reagent_containers/food/snacks/meat, - /obj/item/weapon/reagent_containers/food/snacks/meat, - /obj/item/weapon/reagent_containers/food/snacks/meat, - /obj/item/weapon/reagent_containers/food/snacks/grown/tomato, - /obj/item/weapon/reagent_containers/food/snacks/grown/tomato, - /obj/item/weapon/reagent_containers/food/snacks/grown/tomato, /obj/item/weapon/reagent_containers/food/snacks/grown/tomato, /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, - /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, - /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, - /obj/item/weapon/reagent_containers/food/snacks/egg, - /obj/item/weapon/reagent_containers/food/snacks/egg, - + /obj/item/weapon/reagent_containers/food/snacks/boiledegg, ) result = /obj/item/weapon/reagent_containers/food/snacks/superbiteburger @@ -911,31 +923,35 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/candiedapple /datum/recipe/applepie - reagents = list("flour" = 10) items = list( + /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough, /obj/item/weapon/reagent_containers/food/snacks/grown/apple, ) result = /obj/item/weapon/reagent_containers/food/snacks/applepie /datum/recipe/applecake - reagents = list("milk" = 5, "flour" = 15) + reagents = list("milk" = 5, "sugar" = 5) items = list( - /obj/item/weapon/reagent_containers/food/snacks/egg, - /obj/item/weapon/reagent_containers/food/snacks/egg, - /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, + /obj/item/weapon/reagent_containers/food/snacks/dough, /obj/item/weapon/reagent_containers/food/snacks/grown/apple, /obj/item/weapon/reagent_containers/food/snacks/grown/apple, ) result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake /datum/recipe/slimeburger - reagents = list("slimejelly" = 5, "flour" = 15) - items = list() + reagents = list("slimejelly" = 5) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/bun + ) result = /obj/item/weapon/reagent_containers/food/snacks/jellyburger/slime /datum/recipe/jellyburger - reagents = list("cherryjelly" = 5, "flour" = 15) - items = list() + reagents = list("cherryjelly" = 5) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/bun + ) result = /obj/item/weapon/reagent_containers/food/snacks/jellyburger/cherry /datum/recipe/twobread @@ -963,8 +979,11 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry /datum/recipe/orangecake - reagents = list("milk" = 5, "flour" = 15) + reagents = list("milk" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, /obj/item/weapon/reagent_containers/food/snacks/egg, /obj/item/weapon/reagent_containers/food/snacks/egg, /obj/item/weapon/reagent_containers/food/snacks/egg, @@ -974,8 +993,11 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake /datum/recipe/limecake - reagents = list("milk" = 5, "flour" = 15) + reagents = list("milk" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, /obj/item/weapon/reagent_containers/food/snacks/egg, /obj/item/weapon/reagent_containers/food/snacks/egg, /obj/item/weapon/reagent_containers/food/snacks/egg, @@ -985,8 +1007,11 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/limecake /datum/recipe/lemoncake - reagents = list("milk" = 5, "flour" = 15) + reagents = list("milk" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, /obj/item/weapon/reagent_containers/food/snacks/egg, /obj/item/weapon/reagent_containers/food/snacks/egg, /obj/item/weapon/reagent_containers/food/snacks/egg, @@ -996,8 +1021,11 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/lemoncake /datum/recipe/chocolatecake - reagents = list("milk" = 5, "flour" = 15) + reagents = list("milk" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, /obj/item/weapon/reagent_containers/food/snacks/egg, /obj/item/weapon/reagent_containers/food/snacks/egg, /obj/item/weapon/reagent_containers/food/snacks/egg, @@ -1014,11 +1042,9 @@ I said no! ) result = /obj/item/weapon/reagent_containers/food/snacks/bloodsoup - /datum/recipe/slimesoup reagents = list("water" = 10, "slimejelly" = 5) - items = list( - ) + items = list() result = /obj/item/weapon/reagent_containers/food/snacks/slimesoup /datum/recipe/clownstears @@ -1028,17 +1054,20 @@ I said no! /obj/item/weapon/ore/clown, ) result = /obj/item/weapon/reagent_containers/food/snacks/clownstears -/* + /datum/recipe/boiledslimeextract reagents = list("water" = 5) items = list( - /obj/item/slime_core, + /obj/item/slime_extract, ) result = /obj/item/weapon/reagent_containers/food/snacks/boiledslimecore -*/ + /datum/recipe/braincake - reagents = list("milk" = 5, "flour" = 15) + reagents = list("milk" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, /obj/item/weapon/reagent_containers/food/snacks/egg, /obj/item/weapon/reagent_containers/food/snacks/egg, /obj/item/weapon/reagent_containers/food/snacks/egg, @@ -1056,13 +1085,14 @@ I said no! /datum/recipe/sausage items = list( /obj/item/weapon/reagent_containers/food/snacks/faggot, - /obj/item/weapon/reagent_containers/food/snacks/meat, + /obj/item/weapon/reagent_containers/food/snacks/cutlet, ) result = /obj/item/weapon/reagent_containers/food/snacks/sausage /datum/recipe/fishfingers - reagents = list("flour" = 10) items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, /obj/item/weapon/reagent_containers/food/snacks/egg, /obj/item/weapon/reagent_containers/food/snacks/carpmeat, ) @@ -1079,16 +1109,18 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/mysterysoup /datum/recipe/pumpkinpie - reagents = list("milk" = 5, "sugar" = 5, "flour" = 5) + reagents = list("milk" = 5, "sugar" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, /obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin, /obj/item/weapon/reagent_containers/food/snacks/egg, ) result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie /datum/recipe/plumphelmetbiscuit - reagents = list("flour" = 5) + reagents = list("water" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet, ) result = /obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit @@ -1118,8 +1150,11 @@ I said no! result = /obj/item/weapon/reagent_containers/food/snacks/beetsoup /datum/recipe/appletart - reagents = list("sugar" = 5, "milk" = 5, "flour" = 15) + reagents = list("sugar" = 5, "milk" = 5) items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, /obj/item/weapon/reagent_containers/food/snacks/egg, /obj/item/weapon/reagent_containers/food/snacks/grown/goldapple, ) @@ -1159,7 +1194,10 @@ I said no! return being_cooked /datum/recipe/cracker - reagents = list("flour" = 5, "sodiumchloride" = 1) + reagents = list("sodiumchloride" = 1) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/doughslice + ) result = /obj/item/weapon/reagent_containers/food/snacks/cracker /datum/recipe/stuffing @@ -1176,3 +1214,52 @@ I said no! /obj/item/weapon/reagent_containers/food/snacks/stuffing, ) result = /obj/item/weapon/reagent_containers/food/snacks/tofurkey + + +////////////////////////////////////////// +// bs12 food port stuff +////////////////////////////////////////// + +/datum/recipe/taco + items = list( + /obj/item/weapon/reagent_containers/food/snacks/doughslice, + /obj/item/weapon/reagent_containers/food/snacks/cutlet, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge + ) + result = /obj/item/weapon/reagent_containers/food/snacks/taco + +/datum/recipe/bun + items = list( + /obj/item/weapon/reagent_containers/food/snacks/dough + ) + result = /obj/item/weapon/reagent_containers/food/snacks/bun + +/datum/recipe/flatbread + items = list( + /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough + ) + result = /obj/item/weapon/reagent_containers/food/snacks/flatbread + +/datum/recipe/faggot + items = list( + /obj/item/weapon/reagent_containers/food/snacks/rawfaggot + ) + result = /obj/item/weapon/reagent_containers/food/snacks/faggot + +/datum/recipe/cutlet + items = list( + /obj/item/weapon/reagent_containers/food/snacks/rawcutlet + ) + result = /obj/item/weapon/reagent_containers/food/snacks/cutlet + +/datum/recipe/fries + items = list( + /obj/item/weapon/reagent_containers/food/snacks/rawsticks + ) + result = /obj/item/weapon/reagent_containers/food/snacks/fries + +/datum/recipe/mint + reagents = list("sugar" = 5, "frostoil" = 5) + result = /obj/item/weapon/reagent_containers/food/snacks/mint + + diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index fa02150ab38..41b6e86c050 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -46,6 +46,19 @@ C.prefs.be_special ^= BE_PAI + transfer_identity(var/mob/living/carbon/H) + name = "positronic brain ([H])" + brainmob.name = H.real_name + brainmob.real_name = H.real_name + brainmob.dna = H.dna + brainmob.timeofhostdeath = H.timeofdeath + if(brainmob.mind) + brainmob.mind.assigned_role = "Positronic Brain" + if(H.mind) + H.mind.transfer_to(brainmob) + brainmob << "\blue You feel slightly disoriented. That's normal when you're just a metal cube." + icon_state = "posibrain-occupied" + return proc/transfer_personality(var/mob/candidate) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 289ecf67ace..fb82ca3e7ed 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -53,10 +53,14 @@ /mob/living/carbon/human/death(gibbed) if(stat == DEAD) return if(healths) healths.icon_state = "health5" + stat = DEAD dizziness = 0 jitteriness = 0 + //Handle species-specific deaths. + if(species) species.handle_death(src) + //Handle brain slugs. var/datum/organ/external/head = get_organ("head") var/mob/living/simple_animal/borer/B @@ -105,6 +109,8 @@ ticker.mode.check_win() //Calls the rounds wincheck, mainly for wizard, malf, and changeling now return ..(gibbed) + + /mob/living/carbon/human/proc/makeSkeleton() if(SKELETON in src.mutations) return diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index a8dfac9f134..d74f28b7c96 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1201,6 +1201,7 @@ update_icons() if(species) + species.handle_post_spawn(src) return 1 else return 0 diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 17fb4fc3ebe..dcd32822254 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -40,12 +40,18 @@ /mob/living/carbon/human/adjustBruteLoss(var/amount) + if(species && species.brute_mod) + amount = amount*species.brute_mod + if(amount > 0) take_overall_damage(amount, 0) else heal_overall_damage(-amount, 0) /mob/living/carbon/human/adjustFireLoss(var/amount) + if(species && species.burn_mod) + amount = amount*species.burn_mod + if(amount > 0) take_overall_damage(0, amount) else diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index b2a2180eadc..47473e2ba94 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -286,7 +286,7 @@ proc/breathe() if(reagents.has_reagent("lexorin")) return if(istype(loc, /obj/machinery/atmospherics/unary/cryo_cell)) return - if(species && species.flags & NO_BREATHE) return + if(species && (species.flags & NO_BREATHE || species.flags & IS_SYNTHETIC)) return var/datum/organ/internal/lungs/L = internal_organs["lungs"] L.process() @@ -639,7 +639,15 @@ pressure_alert = 0 else if(adjusted_pressure >= species.hazard_low_pressure) pressure_alert = -1 + + if(species && species.flags & IS_SYNTHETIC) + bodytemperature += 0.5 * TEMPERATURE_DAMAGE_COEFFICIENT //Synthetics suffer overheating in a vaccuum. ~Z + else + + if(species && species.flags & IS_SYNTHETIC) + bodytemperature += 1 * TEMPERATURE_DAMAGE_COEFFICIENT + if( !(COLD_RESISTANCE in mutations)) adjustBruteLoss( LOW_PRESSURE_DAMAGE ) pressure_alert = -2 @@ -866,8 +874,8 @@ */ proc/handle_chemicals_in_body() - if(reagents) + if(reagents && !(species.flags & IS_SYNTHETIC)) //Synths don't process reagents. var/alien = 0 //Not the best way to handle it, but neater than checking this for every single reagent proc. if(species && species.name == "Diona") alien = 1 @@ -966,7 +974,7 @@ dizziness = max(0, dizziness - 3) jitteriness = max(0, jitteriness - 3) - handle_trace_chems() + if(!(species.flags & IS_SYNTHETIC)) handle_trace_chems() var/datum/organ/internal/liver/liver = internal_organs["liver"] liver.process() diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 6063f544d62..636273993b6 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -113,13 +113,14 @@ Please contact me on #coderbus IRC. ~Carn x #define HAIR_LAYER 14 //TODO: make part of head layer? #define FACEMASK_LAYER 15 #define HEAD_LAYER 16 -#define HANDCUFF_LAYER 17 -#define LEGCUFF_LAYER 18 -#define L_HAND_LAYER 19 -#define R_HAND_LAYER 20 -#define TAIL_LAYER 21 //bs12 specific. this hack is probably gonna come back to haunt me -#define TARGETED_LAYER 22 //BS12: Layer for the target overlay from weapon targeting system -#define TOTAL_LAYERS 22 +#define COLLAR_LAYER 17 +#define HANDCUFF_LAYER 18 +#define LEGCUFF_LAYER 19 +#define TAIL_LAYER 20 //bs12 specific. this hack is probably gonna come back to haunt me +#define L_HAND_LAYER 21 +#define R_HAND_LAYER 22 +#define TARGETED_LAYER 23 //BS12: Layer for the target overlay from weapon targeting system +#define TOTAL_LAYERS 23 ////////////////////////////////// /mob/living/carbon/human @@ -620,6 +621,8 @@ proc/get_damage_icon_part(damage_state, body_part) update_tail_showing(0) + update_collar(0) + if(update_icons) update_icons() /mob/living/carbon/human/update_inv_pockets(var/update_icons=1) @@ -714,6 +717,22 @@ proc/get_damage_icon_part(damage_state, body_part) if(update_icons) update_icons() + +//Adds a collar overlay above the helmet layer if the suit has one +// Suit needs an identically named sprite in icons/mob/collar.dmi +/mob/living/carbon/human/proc/update_collar(var/update_icons=1) + var/icon/C = new('icons/mob/collar.dmi') + var/image/standing = null + + if(wear_suit) + if(wear_suit.icon_state in C.IconStates()) + standing = image("icon" = C, "icon_state" = "[wear_suit.icon_state]") + + overlays_standing[COLLAR_LAYER] = standing + + if(update_icons) update_icons() + + // Used mostly for creating head items /mob/living/carbon/human/proc/generate_head_icon() //gender no longer matters for the mouth, although there should probably be seperate base head icons. @@ -766,6 +785,7 @@ proc/get_damage_icon_part(damage_state, body_part) #undef BACK_LAYER #undef HAIR_LAYER #undef HEAD_LAYER +#undef COLLAR_LAYER #undef HANDCUFF_LAYER #undef LEGCUFF_LAYER #undef L_HAND_LAYER diff --git a/code/modules/mob/living/carbon/monkey/diona.dm b/code/modules/mob/living/carbon/monkey/diona.dm index d26de1f9a94..b044b308d54 100644 --- a/code/modules/mob/living/carbon/monkey/diona.dm +++ b/code/modules/mob/living/carbon/monkey/diona.dm @@ -30,7 +30,7 @@ ..() /obj/item/weapon/holder/process() - if(!loc) return + if(!loc) del(src) if(istype(loc,/turf) || !(contents.len)) for(var/mob/M in contents) @@ -54,12 +54,19 @@ //Let people pick the little buggers up. if(M.a_intent == "help") - var/obj/item/weapon/holder/diona/D = new(loc) - src.loc = D - D.name = loc.name - D.attack_hand(M) - M << "You scoop up [src]." - src << "[M] scoops you up." + if(M.species && M.species.name == "Diona") + M << "You feel your being twine with that of [src] as it merges with your biomass." + src << "You feel your being twine with that of [M] as you merge with its biomass." + src.verbs += /mob/living/carbon/monkey/diona/proc/split + src.verbs -= /mob/living/carbon/monkey/diona/proc/merge + src.loc = M + else + var/obj/item/weapon/holder/diona/D = new(loc) + src.loc = D + D.name = loc.name + D.attack_hand(M) + M << "You scoop up [src]." + src << "[M] scoops you up." return ..() @@ -71,9 +78,59 @@ dna.mutantrace = "plant" greaterform = "Diona" add_language("Rootspeak") + src.verbs += /mob/living/carbon/monkey/diona/proc/merge //Verbs after this point. +/mob/living/carbon/monkey/diona/proc/merge() + + set category = "Diona" + set name = "Merge with gestalt" + set desc = "Merge with another diona." + + if(istype(src.loc,/mob/living/carbon)) + src.verbs -= /mob/living/carbon/monkey/diona/proc/merge + return + + var/list/choices = list() + for(var/mob/living/carbon/C in view(1,src)) + + if(!(src.Adjacent(C)) || !(C.client)) continue + + if(istype(C,/mob/living/carbon/human)) + var/mob/living/carbon/human/D = C + if(D.species && D.species.name == "Diona") + choices += C + + var/mob/living/M = input(src,"Who do you wish to merge with?") in null|choices + + if(!M || !src || !(src.Adjacent(M))) return + + if(istype(M,/mob/living/carbon/human)) + M << "You feel your being twine with that of [src] as it merges with your biomass." + src << "You feel your being twine with that of [M] as you merge with its biomass." + src.loc = M + src.verbs += /mob/living/carbon/monkey/diona/proc/split + src.verbs -= /mob/living/carbon/monkey/diona/proc/merge + else + return + +/mob/living/carbon/monkey/diona/proc/split() + + set category = "Diona" + set name = "Split from gestalt" + set desc = "Split away from your gestalt as a lone nymph." + + if(!(istype(src.loc,/mob/living/carbon))) + src.verbs -= /mob/living/carbon/monkey/diona/proc/split + return + + src.loc << "You feel a pang of loss as [src] splits away from your biomass." + src << "You wiggle out of the depths of [src.loc]'s biomass and plop to the ground." + src.loc = get_turf(src) + src.verbs -= /mob/living/carbon/monkey/diona/proc/split + src.verbs += /mob/living/carbon/monkey/diona/proc/merge + /mob/living/carbon/monkey/diona/verb/fertilize_plant() set category = "Diona" @@ -130,6 +187,7 @@ src << "You have not yet consumed enough to grow..." return + src.split() src.visible_message("\red [src] begins to shift and quiver, and erupts in a shower of shed bark and twigs!","\red You begin to shift and quiver, then erupt in a shower of shed bark and twigs, attaining your adult form!") var/mob/living/carbon/human/adult = new(get_turf(src.loc)) @@ -144,8 +202,8 @@ adult.add_language(L.name) adult.regenerate_icons() - adult.name = src.name - adult.real_name = src.real_name + adult.name = "diona ([rand(100,999)])" + adult.real_name = adult.name adult.ckey = src.ckey for (var/obj/item/W in src.contents) @@ -172,6 +230,9 @@ src.visible_message("\red [src] flicks out a feeler and neatly steals a sample of [M]'s blood.","\red You flick out a feeler and neatly steal a sample of [M]'s blood.") donors += M.real_name + for(var/datum/language/L in M.languages) + languages += L + spawn(25) update_progression() @@ -183,11 +244,8 @@ if(donors.len == 5) ready_evolve = 1 src << "\green You feel ready to move on to your next stage of growth." - else if(donors.len == 2) + else if(donors.len == 3) universal_understand = 1 src << "\green You feel your awareness expand, and realize you know how to understand the creatures around you." - else if(donors.len == 4) - universal_speak = 1 - src << "\green You feel your awareness expand, and realize you know how to speak with the creatures around you." else src << "\green The blood seeps into your small form, and you draw out the echoes of memories and personality from it, working them into your budding mind." diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index cd6939831a0..349c5fd9015 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -32,8 +32,8 @@ var/warning_low_pressure = WARNING_LOW_PRESSURE // Low pressure warning. var/hazard_low_pressure = HAZARD_LOW_PRESSURE // Dangerously low pressure. - var/brute_resist // Physical damage reduction. - var/burn_resist // Burn damage reduction. + var/brute_mod = null // Physical damage reduction/malus. + var/burn_mod = null // Burn damage reduction/malus. var/flags = 0 // Various specific features. @@ -42,6 +42,19 @@ var/blood_color = "#A10808" //Red. var/flesh_color = "#FFC896" //Pink. +/datum/species/proc/handle_post_spawn(var/mob/living/carbon/human/H) //Handles anything not already covered by basic species assignment. + + if(flags & IS_SYNTHETIC) + for(var/datum/organ/external/E in H.organs) + if(E.status & ORGAN_CUT_AWAY || E.status & ORGAN_DESTROYED) continue + E.status |= ORGAN_ROBOT + for(var/datum/organ/internal/I in H.internal_organs) + I.robotic = 2 + return + +/datum/species/proc/handle_death(var/mob/living/carbon/human/H) //Handles any species-specific death events (such as dionaea nymph spawns). + return + /datum/species/human name = "Human" language = "Sol Common" @@ -131,9 +144,31 @@ blood_color = "#2299FC" flesh_color = "#808D11" +/datum/species/vox/handle_post_spawn(var/mob/living/carbon/human/H) + + var/datum/organ/external/affected = H.get_organ("head") + + //To avoid duplicates. + for(var/obj/item/weapon/implant/cortical/imp in H.contents) + affected.implants -= imp + del(imp) + + var/obj/item/weapon/implant/cortical/I = new(H) + I.imp_in = H + I.implanted = 1 + affected.implants += I + I.part = affected + + if(ticker.mode && ( istype( ticker.mode,/datum/game_mode/heist ) ) ) + var/datum/game_mode/heist/M = ticker.mode + M.cortical_stacks += I + M.raiders[H.mind] = I + + return ..() + /datum/species/diona name = "Diona" - icobase = 'icons/mob/human_races/r_plant.dmi' + icobase = 'icons/mob/human_races/r_diona.dmi' deform = 'icons/mob/human_races/r_def_plant.dmi' language = "Rootspeak" attack_verb = "slash" @@ -156,3 +191,49 @@ blood_color = "#004400" flesh_color = "#907E4A" +/datum/species/diona/handle_post_spawn(var/mob/living/carbon/human/H) + + H.gender = NEUTER + +/datum/species/diona/handle_death(var/mob/living/carbon/human/H) + + var/mob/living/carbon/monkey/diona/S = new(get_turf(H)) + + if(H.mind) + H.mind.transfer_to(S) + S.key = H + + for(var/mob/living/carbon/monkey/diona/D in H.contents) + if(D.client) + D.loc = H.loc + else + del(D) + + H.visible_message("\red[H] splits apart with a wet slithering noise!") + +/datum/species/machine + name = "Machine" + icobase = 'icons/mob/human_races/r_machine.dmi' + deform = 'icons/mob/human_races/r_machine.dmi' + language = "Tradeband" + punch_damage = 2 + + eyes = "blank_eyes" + brute_mod = 1.5 + burn_mod = 1.5 + + warning_low_pressure = 50 + hazard_low_pressure = 10 + + cold_level_1 = 50 + cold_level_2 = -1 + cold_level_3 = -1 + + heat_level_1 = 2000 + heat_level_2 = 3000 + heat_level_3 = 4000 + + flags = IS_WHITELISTED | NO_BREATHE | NO_SCAN | NO_BLOOD | NO_PAIN | IS_SYNTHETIC + + blood_color = "#FFFFFF" + flesh_color = "#AAAAAA" \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 2e03b9ffd04..468537ef347 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -708,8 +708,7 @@ locked = 0 else user << "You fail to emag the cover lock." - if(prob(25)) - src << "Hack attempt detected." + src << "Hack attempt detected." else user << "The cover is already unlocked." return @@ -726,7 +725,7 @@ lawupdate = 0 connected_ai = null user << "You emag [src]'s interface." -// message_admins("[key_name_admin(user)] emagged cyborg [key_name_admin(src)]. Laws overridden.") + message_admins("[key_name_admin(user)] emagged cyborg [key_name_admin(src)]. Laws overridden.") log_game("[key_name(user)] emagged cyborg [key_name(src)]. Laws overridden.") clear_supplied_laws() clear_inherent_laws() @@ -738,7 +737,7 @@ sleep(5) src << "\red Initiating diagnostics..." sleep(20) - src << "\red SynBorg v1.7 loaded." + src << "\red SynBorg v1.7.1 loaded." sleep(5) src << "\red LAW SYNCHRONISATION ERROR" sleep(5) @@ -757,9 +756,8 @@ src.module.rebuild() updateicon() else - user << "You fail to [ locked ? "unlock" : "lock"] [src]'s interface." - if(prob(25)) - src << "Hack attempt detected." + user << "You fail to hack [src]'s interface." + src << "Hack attempt detected." return else if(istype(W, /obj/item/borg/upgrade/)) @@ -798,7 +796,7 @@ if ("help") for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) - O.show_message(text("\blue [M] caresses [src]'s plating with its scythe like arm."), 1) + O.show_message(text("\blue [M] caresses [src]'s plating with its scythe-like arm."), 1) if ("grab") if (M == src) @@ -817,13 +815,6 @@ if ("hurt") var/damage = rand(10, 20) if (prob(90)) - /* - if (M.class == "combat") - damage += 15 - if(prob(20)) - weakened = max(weakened,4) - stunned = max(stunned,4) - What is this?*/ playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) for(var/mob/O in viewers(src, null)) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index df259c21972..d0fb3bb5fec 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -44,7 +44,6 @@ /obj/item/weapon/robot_module/standard name = "standard robot module" - New() ..() src.modules += new /obj/item/weapon/melee/baton(src) @@ -55,12 +54,14 @@ src.emag = new /obj/item/weapon/melee/energy/sword(src) return - +/obj/item/weapon/robot_module/standard/respawn_consumable(var/mob/living/silicon/robot/R) + var/obj/item/weapon/melee/baton/B = locate() in src.modules + if(B.charges < 10) + B.charges += 1 /obj/item/weapon/robot_module/medical name = "medical robot module" - New() ..() src.modules += new /obj/item/borg/sight/hud/med(src) @@ -77,7 +78,16 @@ src.emag.name = "Polyacid spray" return - +/obj/item/weapon/robot_module/medical/respawn_consumable(var/mob/living/silicon/robot/R) + var/obj/item/weapon/reagent_containers/syringe/S = locate() in src.modules + if(S.mode == 2)//SYRINGE_BROKEN + S.reagents.clear_reagents() + S.mode = initial(S.mode) + S.desc = initial(S.desc) + S.update_icon() + if(src.emag) + var/obj/item/weapon/reagent_containers/spray/PS = src.emag + PS.reagents.add_reagent("pacid", 2) /obj/item/weapon/robot_module/engineering name = "engineering robot module" @@ -98,6 +108,7 @@ src.modules += new /obj/item/device/multitool(src) src.modules += new /obj/item/device/t_scanner(src) src.modules += new /obj/item/device/analyzer(src) + src.modules += new /obj/item/taperoll/engineering(src) var/obj/item/stack/sheet/metal/cyborg/M = new /obj/item/stack/sheet/metal/cyborg(src) M.amount = 50 @@ -113,42 +124,58 @@ return - - respawn_consumable(var/mob/living/silicon/robot/R) - var/list/what = list ( - /obj/item/stack/sheet/metal, - /obj/item/stack/sheet/rglass, - /obj/item/weapon/cable_coil, - ) - for (var/T in what) - if (!(locate(T) in src.modules)) - src.modules -= null - var/O = new T(src) - src.modules += O - O:amount = 1 - return - - +/obj/item/weapon/robot_module/engineering/respawn_consumable(var/mob/living/silicon/robot/R) + var/list/stacks = list ( + /obj/item/stack/sheet/metal, + /obj/item/stack/sheet/rglass, + /obj/item/weapon/cable_coil, + ) + for(var/T in stacks) + var/O = locate(T) in src.modules + if(O) + if(O:amount < 50) + O:amount++ + else + src.modules -= null + O = new T(src) + src.modules += O + O:amount = 1 + return /obj/item/weapon/robot_module/security name = "security robot module" - New() ..() src.modules += new /obj/item/borg/sight/hud/sec(src) src.modules += new /obj/item/weapon/handcuffs/cyborg(src) src.modules += new /obj/item/weapon/melee/baton(src) src.modules += new /obj/item/weapon/gun/energy/taser/cyborg(src) + src.modules += new /obj/item/taperoll/police(src) src.emag = new /obj/item/weapon/gun/energy/laser/cyborg(src) return - +/obj/item/weapon/robot_module/security/respawn_consumable(var/mob/living/silicon/robot/R) + var/obj/item/device/flash/F = locate() in src.modules + if(F.broken) + F.broken = 0 + F.times_used = 0 + F.icon_state = "flash" + else if(F.times_used) + F.times_used-- + var/obj/item/weapon/gun/energy/taser/cyborg/T = locate() in src.modules + if(T.power_supply.charge < T.power_supply.maxcharge) + T.power_supply.give(T.charge_cost) + T.update_icon() + else + T.charge_tick = 0 + var/obj/item/weapon/melee/baton/B = locate() in src.modules + if(B.charges < 10) + B.charges += 1 /obj/item/weapon/robot_module/janitor name = "janitorial robot module" - New() ..() src.modules += new /obj/item/weapon/soap/nanotrasen(src) @@ -161,12 +188,16 @@ src.emag.name = "Lube spray" return - +/obj/item/weapon/robot_module/janitor/respawn_consumable(var/mob/living/silicon/robot/R) + var/obj/item/device/lightreplacer/LR = locate() in src.modules + LR.Charge(R) + if(src.emag) + var/obj/item/weapon/reagent_containers/spray/S = src.emag + S.reagents.add_reagent("lube", 2) /obj/item/weapon/robot_module/butler name = "service robot module" - New() ..() src.modules += new /obj/item/weapon/reagent_containers/food/drinks/cans/beer(src) @@ -194,12 +225,16 @@ src.emag.name = "Mickey Finn's Special Brew" return - +/obj/item/weapon/robot_module/butler/respawn_consumable(var/mob/living/silicon/robot/R) + var/obj/item/weapon/reagent_containers/food/condiment/enzyme/E = locate() in src.modules + E.reagents.add_reagent("enzyme", 2) + if(src.emag) + var/obj/item/weapon/reagent_containers/food/drinks/cans/beer/B = src.emag + B.reagents.add_reagent("beer2", 2) /obj/item/weapon/robot_module/miner name = "miner robot module" - New() ..() src.modules += new /obj/item/borg/sight/meson(src) @@ -210,11 +245,9 @@ // src.modules += new /obj/item/weapon/shovel(src) Uneeded due to buffed drill return - /obj/item/weapon/robot_module/syndicate name = "syndicate robot module" - New() src.modules += new /obj/item/weapon/melee/energy/sword(src) src.modules += new /obj/item/weapon/gun/energy/pulse_rifle/destroyer(src) diff --git a/code/modules/mob/living/simple_animal/borer.dm b/code/modules/mob/living/simple_animal/borer.dm index d3e0ea9518e..41e9ea25b64 100644 --- a/code/modules/mob/living/simple_animal/borer.dm +++ b/code/modules/mob/living/simple_animal/borer.dm @@ -218,7 +218,7 @@ src << "You cannot do that in your current state." return - if(host.internal_organs_by_name["brain"]) //this should only run in admin-weirdness situations, but it's here non the less - RR + if(!host.internal_organs_by_name["brain"]) //this should only run in admin-weirdness situations, but it's here non the less - RR src << "There is no brain here for us to command!" return diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 6ef470d4cde..26e1715a807 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -77,12 +77,8 @@ if(ticker.hide_mode == 0) stat("Game Mode:", "[master_mode]") // Old setting for showing the game mode - if((ticker.current_state == GAME_STATE_PREGAME) && going) - stat("Time To Start:", ticker.pregame_timeleft) - if((ticker.current_state == GAME_STATE_PREGAME) && !going) - stat("Time To Start:", "DELAYED") - if(ticker.current_state == GAME_STATE_PREGAME) + stat("Time To Start:", "[ticker.pregame_timeleft][going ? "" : " (DELAYED)"]") stat("Players: [totalPlayers]", "Players Ready: [totalPlayersReady]") totalPlayers = 0 totalPlayersReady = 0 diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index d52b53939f1..ee9a4d463c9 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -184,6 +184,10 @@ datum/preferences facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD) eyes_s.Blend(facial_s, ICON_OVERLAY) + var/icon/underwear_s = null + if(underwear > 0 && underwear < 7 && current_species.flags & HAS_UNDERWEAR) + underwear_s = new/icon("icon" = 'icons/mob/human.dmi', "icon_state" = "underwear[underwear]_[g]_s") + var/icon/clothes_s = null if(job_civilian_low & ASSISTANT)//This gives the preview icon clothes depending on which job(if any) is set to 'high' clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s") @@ -198,8 +202,8 @@ datum/preferences if(HOP) clothes_s = new /icon('icons/mob/uniform.dmi', "hop_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armor"), ICON_OVERLAY) - clothes_s.Blend(new /icon('icons/mob/head.dmi', "helmet"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "ianshirt"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -210,7 +214,8 @@ datum/preferences if(BARTENDER) clothes_s = new /icon('icons/mob/uniform.dmi', "ba_suit_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armor"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/head.dmi', "tophat"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -223,6 +228,8 @@ datum/preferences clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "ggloves"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "apron"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/head.dmi', "nymph"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -234,6 +241,8 @@ datum/preferences clothes_s = new /icon('icons/mob/uniform.dmi', "chef_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/head.dmi', "chef"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "apronchef"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -244,6 +253,8 @@ datum/preferences if(JANITOR) clothes_s = new /icon('icons/mob/uniform.dmi', "janitor_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "bio_janitor"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -254,6 +265,8 @@ datum/preferences if(LIBRARIAN) clothes_s = new /icon('icons/mob/uniform.dmi', "red_suit_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/head.dmi', "hairflower"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -265,8 +278,8 @@ datum/preferences clothes_s = new /icon('icons/mob/uniform.dmi', "qm_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/eyes.dmi', "sun"), ICON_OVERLAY) - clothes_s.Blend(new /icon('icons/mob/items_righthand.dmi', "clipboard"), ICON_UNDERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "poncho"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -278,6 +291,8 @@ datum/preferences clothes_s = new /icon('icons/mob/uniform.dmi', "cargotech_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/head.dmi', "flat_cap"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -289,6 +304,8 @@ datum/preferences clothes_s = new /icon('icons/mob/uniform.dmi', "miner_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/head.dmi', "bearpelt"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -300,7 +317,8 @@ datum/preferences clothes_s = new /icon('icons/mob/uniform.dmi', "internalaffairs_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/items_righthand.dmi', "briefcase"), ICON_UNDERLAY) - + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "suitjacket_blue"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -311,6 +329,8 @@ datum/preferences if(CHAPLAIN) clothes_s = new /icon('icons/mob/uniform.dmi', "chapblack_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "imperium_monk"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -343,8 +363,9 @@ datum/preferences if(RD) clothes_s = new /icon('icons/mob/uniform.dmi', "director_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/items_righthand.dmi', "clipboard"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/head.dmi', "petehat"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -356,6 +377,8 @@ datum/preferences clothes_s = new /icon('icons/mob/uniform.dmi', "toxinswhite_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/head.dmi', "metroid"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -366,7 +389,10 @@ datum/preferences if(CHEMIST) clothes_s = new /icon('icons/mob/uniform.dmi', "chemistrywhite_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_chem_open"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labgreen"), ICON_OVERLAY) + else + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_chem_open"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -377,8 +403,10 @@ datum/preferences if(CMO) clothes_s = new /icon('icons/mob/uniform.dmi', "cmo_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/items_lefthand.dmi', "firstaid"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_cmo_open"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "bio_cmo"), ICON_OVERLAY) + else + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_cmo_open"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "medicalpack"), ICON_OVERLAY) @@ -389,8 +417,10 @@ datum/preferences if(DOCTOR) clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/items_lefthand.dmi', "firstaid"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "surgeon"), ICON_OVERLAY) + else + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "medicalpack"), ICON_OVERLAY) @@ -401,7 +431,10 @@ datum/preferences if(GENETICIST) clothes_s = new /icon('icons/mob/uniform.dmi', "geneticswhite_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_gen_open"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "monkeysuit"), ICON_OVERLAY) + else + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_gen_open"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -414,6 +447,8 @@ datum/preferences clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/mask.dmi', "sterile"), ICON_OVERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_vir_open"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/head.dmi', "plaguedoctor"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "medicalpack"), ICON_OVERLAY) @@ -425,8 +460,9 @@ datum/preferences clothes_s = new /icon('icons/mob/uniform.dmi', "robotics_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/items_righthand.dmi', "toolbox_blue"), ICON_OVERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/items_righthand.dmi', "toolbox_blue"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -440,10 +476,10 @@ datum/preferences if(CAPTAIN) clothes_s = new /icon('icons/mob/uniform.dmi', "captain_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/head.dmi', "captain"), ICON_OVERLAY) - clothes_s.Blend(new /icon('icons/mob/mask.dmi', "cigaron"), ICON_OVERLAY) - clothes_s.Blend(new /icon('icons/mob/eyes.dmi', "sun"), ICON_OVERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "caparmor"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/head.dmi', "centcomcaptain"), ICON_OVERLAY) + else + clothes_s.Blend(new /icon('icons/mob/head.dmi', "captain"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -455,8 +491,8 @@ datum/preferences clothes_s = new /icon('icons/mob/uniform.dmi', "hosred_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/head.dmi', "helmet"), ICON_OVERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armor"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/head.dmi', "hosberet"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "securitypack"), ICON_OVERLAY) @@ -466,10 +502,11 @@ datum/preferences clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(WARDEN) clothes_s = new /icon('icons/mob/uniform.dmi', "warden_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "slippers_worn"), ICON_OVERLAY) + else + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/head.dmi', "helmet"), ICON_OVERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armor"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "securitypack"), ICON_OVERLAY) @@ -481,7 +518,8 @@ datum/preferences clothes_s = new /icon('icons/mob/uniform.dmi', "detective_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/mask.dmi', "cigaron"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/mask.dmi', "cigaron"), ICON_OVERLAY) clothes_s.Blend(new /icon('icons/mob/head.dmi', "detective"), ICON_OVERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "detective"), ICON_OVERLAY) switch(backbag) @@ -494,8 +532,8 @@ datum/preferences if(OFFICER) clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/head.dmi', "helmet"), ICON_OVERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armor"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/head.dmi', "officerberet"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "securitypack"), ICON_OVERLAY) @@ -508,8 +546,9 @@ datum/preferences clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) - clothes_s.Blend(new /icon('icons/mob/mask.dmi', "cigaron"), ICON_OVERLAY) clothes_s.Blend(new /icon('icons/mob/head.dmi', "hardhat0_white"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/items_righthand.dmi', "blueprints"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "engiepack"), ICON_OVERLAY) @@ -522,6 +561,8 @@ datum/preferences clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) clothes_s.Blend(new /icon('icons/mob/head.dmi', "hardhat0_yellow"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "hazard"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "engiepack"), ICON_OVERLAY) @@ -534,6 +575,8 @@ datum/preferences clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "firesuit"), ICON_OVERLAY) switch(backbag) if(2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -545,6 +588,8 @@ datum/preferences if(AI)//Gives AI and borgs assistant-wear, so they can still customize their character clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "straight_jacket"), ICON_OVERLAY) + clothes_s.Blend(new /icon('icons/mob/head.dmi', "cardborg_h"), ICON_OVERLAY) if(backbag == 2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) else if(backbag == 3 || backbag == 4) @@ -552,6 +597,8 @@ datum/preferences if(CYBORG) clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "cardborg"), ICON_OVERLAY) + clothes_s.Blend(new /icon('icons/mob/head.dmi', "cardborg_h"), ICON_OVERLAY) if(backbag == 2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) else if(backbag == 3 || backbag == 4) @@ -561,10 +608,13 @@ datum/preferences preview_icon.Blend(new /icon('icons/mob/eyes.dmi', "glasses"), ICON_OVERLAY) preview_icon.Blend(eyes_s, ICON_OVERLAY) + if(underwear_s) + preview_icon.Blend(underwear_s, ICON_OVERLAY) if(clothes_s) preview_icon.Blend(clothes_s, ICON_OVERLAY) preview_icon_front = new(preview_icon, dir = SOUTH) preview_icon_side = new(preview_icon, dir = WEST) del(eyes_s) - del(clothes_s) \ No newline at end of file + del(underwear_s) + del(clothes_s) diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index 230eca4cdf7..592114f73f4 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -307,10 +307,30 @@ icon_state = "hair_e" gender = MALE // turnoff! - bald name = "Bald" icon_state = "bald" + + icp_screen_pink + name = "pink IPC screen" + icon_state = "ipc_pink" + species_allowed = list("Machine") + + icp_screen_red + name = "red IPC screen" + icon_state = "ipc_red" + species_allowed = list("Machine") + + icp_screen_green + name = "green IPC screen" + icon_state = "ipc_green" + species_allowed = list("Machine") + + icp_screen_blue + name = "blue IPC screen" + icon_state = "ipc_blue" + species_allowed = list("Machine") + /* /////////////////////////////////// / =---------------------------= / @@ -328,7 +348,7 @@ name = "Shaved" icon_state = "bald" gender = NEUTER - species_allowed = list("Human","Unathi","Tajaran","Skrell","Vox") + species_allowed = list("Human","Unathi","Tajaran","Skrell","Vox","Machine") watson name = "Watson Mustache" @@ -623,4 +643,4 @@ name = "Default skrell skin" icon_state = "default" icon = 'icons/mob/human_races/r_skrell.dmi' - species_allowed = list("Skrell") + species_allowed = list("Skrell") \ No newline at end of file diff --git a/code/modules/nano/nanomanager.dm b/code/modules/nano/nanomanager.dm index b7b45060bb7..ae938a9a8a4 100644 --- a/code/modules/nano/nanomanager.dm +++ b/code/modules/nano/nanomanager.dm @@ -197,4 +197,28 @@ oldMob.open_uis.Cut() return 1 // success + + /** + * Sends all nano assets to the client + * This is called on user login + * + * @param client /client The user's client + * + * @return nothing + */ + +/datum/nanomanager/proc/send_resources(client) + var/list/nano_asset_dirs = list(\ + "nano/css/",\ + "nano/images/",\ + "nano/js/",\ + "nano/templates/"\ + ) + + var/list/files = null + for (var/path in nano_asset_dirs) + files = flist(path) + for(var/file in files) + if(copytext(file, length(file)) != "/") // files which end in "/" are actually directories, which we want to ignore + client << browse_rsc(file(path + file)) // send the file to the client diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 42612998483..f91fe51177b 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -77,9 +77,19 @@ if(status & ORGAN_DESTROYED) return 0 - if(status & ORGAN_ROBOT) - brute *= 0.66 //~2/3 damage for ROBOLIMBS - burn *= 0.66 //~2/3 damage for ROBOLIMBS + if(status & ORGAN_ROBOT ) + + var/brmod = 0.66 + var/bumod = 0.66 + + if(istype(owner,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = owner + if(H.species && H.species.flags & IS_SYNTHETIC) + brmod = H.species.brute_mod + bumod = H.species.burn_mod + + brute *= brmod //~2/3 damage for ROBOLIMBS + burn *= bumod //~2/3 damage for ROBOLIMBS //If limb took enough damage, try to cut or tear it off if(body_part != UPPER_TORSO && body_part != LOWER_TORSO) //as hilarious as it is, getting hit on the chest too much shouldn't effectively gib you. @@ -490,7 +500,10 @@ This function completely restores a damaged organ to perfect condition. if(LOWER_TORSO) owner << "\red You are now sterile." if(HEAD) - organ= new /obj/item/weapon/organ/head(owner.loc, owner) + if(owner.species.flags & IS_SYNTHETIC) + organ= new /obj/item/weapon/organ/head/posi(owner.loc, owner) + else + organ= new /obj/item/weapon/organ/head(owner.loc, owner) owner.u_equip(owner.glasses) owner.u_equip(owner.head) owner.u_equip(owner.l_ear) @@ -630,7 +643,7 @@ This function completely restores a damaged organ to perfect condition. return 0 /datum/organ/external/get_icon(gender="") - if (status & ORGAN_ROBOT) + if (status & ORGAN_ROBOT && !(owner.species && owner.species.flags & IS_SYNTHETIC)) return new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]") if (status & ORGAN_MUTATED) @@ -844,6 +857,9 @@ obj/item/weapon/organ/head var/mob/living/carbon/brain/brainmob var/brain_op_stage = 0 +/obj/item/weapon/organ/head/posi + name = "robotic head" + obj/item/weapon/organ/head/New(loc, mob/living/carbon/human/H) if(istype(H)) src.icon_state = H.gender == MALE? "head_m" : "head_f" @@ -916,7 +932,7 @@ obj/item/weapon/organ/head/attackby(obj/item/weapon/W as obj, mob/user as mob) switch(brain_op_stage) if(1) for(var/mob/O in (oviewers(brainmob) - user)) - O.show_message("\red [brainmob] has \his skull sawed open with [W] by [user].", 1) + O.show_message("\red [brainmob] has \his head sawed open with [W] by [user].", 1) brainmob << "\red [user] begins to saw open your head with [W]!" user << "\red You saw [brainmob]'s head open with [W]!" @@ -931,8 +947,12 @@ obj/item/weapon/organ/head/attackby(obj/item/weapon/W as obj, mob/user as mob) brainmob.attack_log += "\[[time_stamp()]\] Debrained by [user.name] ([user.ckey]) with [W.name] (INTENT: [uppertext(user.a_intent)])" msg_admin_attack("[user] ([user.ckey]) debrained [brainmob] ([brainmob.ckey]) (INTENT: [uppertext(user.a_intent)]) (JMP)") - var/obj/item/brain/B = new(loc) - B.transfer_identity(brainmob) + if(istype(src,/obj/item/weapon/organ/head/posi)) + var/obj/item/device/mmi/posibrain/B = new(loc) + B.transfer_identity(brainmob) + else + var/obj/item/brain/B = new(loc) + B.transfer_identity(brainmob) brain_op_stage = 4.0 else diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 560590cbad0..8e5a875f1d3 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -454,6 +454,37 @@ if(!user) return src.add_fingerprint(user) + + //Synthetic human mob goes here. + if(istype(user,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + if(H.species.flags & IS_SYNTHETIC && H.a_intent == "grab") + if(emagged || stat & BROKEN) + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(3, 1, src) + s.start() + H << "\red The APC power currents surge eratically, damaging your chassis!" + H.adjustFireLoss(10,0) + else if(src.cell && src.cell.charge > 0) + if(H.nutrition < 450) + + if(src.cell.charge >= 500) + H.nutrition += 50 + src.cell.charge -= 500 + else + H.nutrition += src.cell.charge/10 + src.cell.charge = 0 + + user << "\blue You slot your fingers into the APC interface and siphon off some of the stored charge for your own use." + if(src.cell.charge < 0) src.cell.charge = 0 + if(H.nutrition > 500) H.nutrition = 500 + + else + user << "\blue You are already fully charged." + else + user << "There is no charge to draw from that APC." + return + if(usr == user && opened && (!issilicon(user))) if(cell) user.put_in_hands(cell) @@ -520,129 +551,87 @@ user << browse(t1, "window=apcwires") onclose(user, "apcwires") - user.set_machine(src) - var/t = "[area.name] APCArea Power Controller ([area.name])
" - - //This goes after the wire stuff. They should be able to fix a physical problem when a wire is cut - if ( (get_dist(src, user) > 1 )) - if (!istype(user, /mob/living/silicon)) - user.unset_machine() - user << browse(null, "window=apc") - return - else if (istype(user, /mob/living/silicon) && src.aidisabled && !src.malfhack) - user << "AI control for this APC interface has been disabled." - user.unset_machine() - user << browse(null, "window=apc") - return - else if (src.malfai) - if ((src.malfai != user && src.malfai != user:parent) && !islinked(user, malfai)) - user << "AI control for this APC interface has been disabled." - user.unset_machine() - user << browse(null, "window=apc") - return - - - if(locked && (!istype(user, /mob/living/silicon))) - t += "(Swipe ID card to unlock inteface.)
" - t += "Main breaker : [operating ? "On" : "Off"]
" - t += "External power : [ main_status ? (main_status ==2 ? "Good" : "Low") : "None"]
" - t += "Power cell: [cell ? "[round(cell.percent())]%" : "Not connected."]" - if(cell) - t += " ([charging ? ( charging == 1 ? "Charging" : "Fully charged" ) : "Not charging"])" - t += " ([chargemode ? "Auto" : "Off"])" - - t += "

Power channels
"
-
-		var/list/L = list ("Off","Off (Auto)", "On", "On (Auto)")
-
-		t += "Equipment:    [add_lspace(lastused_equip, 6)] W : [L[equipment+1]]
" - t += "Lighting: [add_lspace(lastused_light, 6)] W : [L[lighting+1]]
" - t += "Environmental:[add_lspace(lastused_environ, 6)] W : [L[environ+1]]
" - - t += "
Total load: [lastused_light + lastused_equip + lastused_environ] W
" - t += "
Cover lock: [coverlocked ? "Engaged" : "Disengaged"]" - - else - if (!istype(user, /mob/living/silicon)) - t += "(Swipe ID card to lock interface.)
" - t += "Main breaker: [operating ? "On Off" : "On Off" ]
" - t += "External power : [ main_status ? (main_status ==2 ? "Good" : "Low") : "None"]
" - if(cell) - t += "Power cell: [round(cell.percent())]%" - t += " ([charging ? ( charging == 1 ? "Charging" : "Fully charged" ) : "Not charging"])" - t += " ([chargemode ? "Off Auto" : "Off Auto"])" - - else - t += "Power cell: Not connected." - - t += "

Power channels
"
-
-
-		t += "Equipment:    [add_lspace(lastused_equip, 6)] W : "
-		switch(equipment)
-			if(0)
-				t += "Off On Auto"
-			if(1)
-				t += "Off On Auto (Off)"
-			if(2)
-				t += "Off On Auto"
-			if(3)
-				t += "Off On Auto (On)"
-		t +="
" - - t += "Lighting: [add_lspace(lastused_light, 6)] W : " - - switch(lighting) - if(0) - t += "Off On Auto" - if(1) - t += "Off On Auto (Off)" - if(2) - t += "Off On Auto" - if(3) - t += "Off On Auto (On)" - t +="
" - - - t += "Environmental:[add_lspace(lastused_environ, 6)] W : " - switch(environ) - if(0) - t += "Off On Auto" - if(1) - t += "Off On Auto (Off)" - if(2) - t += "Off On Auto" - if(3) - t += "Off On Auto (On)" - - - - t += "
Total load: [lastused_light + lastused_equip + lastused_environ] W
" - t += "
Cover lock: [coverlocked ? "Engaged" : "Disengaged"]" - - - if (istype(user, /mob/living/silicon)) - t += "

Overload lighting circuit
" - if (ticker && ticker.mode) -// world << "there's a ticker" - if(user.mind in ticker.mode.malf_ai) -// world << "ticker says its malf" - if (!src.malfai) - t += "

Override Programming
" - else - t += "

APC Hacked
" - /*if(!src.occupant) - t += "Shunt Core Processes
" - else - t += "Core Processes Uploaded
"*/ - - t += "

Close" - - t += "
" - user << browse(t, "window=apc") - onclose(user, "apc") + // Open the APC NanoUI + ui_interact(user) return +/obj/machinery/power/apc/proc/get_malf_status(mob/user) + if (ticker && ticker.mode && (user.mind in ticker.mode.malf_ai) && istype(user, /mob/living/silicon/ai)) + if (src.malfai == (user:parent ? user:parent : user)) + if (src.occupant == user) + return 3 // 3 = User is shunted in this APC + else if (istype(user.loc, /obj/machinery/power/apc)) + return 4 // 4 = User is shunted in another APC + else + return 2 // 2 = APC hacked by user, and user is in its core. + else + return 1 // 1 = APC not hacked. + else + return 0 // 0 = User is not a Malf AI + +/obj/machinery/power/apc/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) + if(!user) + return + + var/list/data = list( + "locked" = locked, + "isOperating" = operating, + "externalPower" = main_status, + "powerCellStatus" = cell ? cell.percent() : null, + "chargeMode" = chargemode, + "chargingStatus" = charging, + "totalLoad" = lastused_equip + lastused_light + lastused_environ, + "coverLocked" = coverlocked, + "siliconUser" = istype(user, /mob/living/silicon), + "malfStatus" = get_malf_status(user), + + "powerChannels" = list( + list( + "title" = "Equipment", + "powerLoad" = lastused_equip, + "status" = equipment, + "topicParams" = list( + "auto" = list("eqp" = 3), + "on" = list("eqp" = 2), + "off" = list("eqp" = 1) + ) + ), + list( + "title" = "Lighting", + "powerLoad" = lastused_light, + "status" = lighting, + "topicParams" = list( + "auto" = list("lgt" = 3), + "on" = list("lgt" = 2), + "off" = list("lgt" = 1) + ) + ), + list( + "title" = "Environment", + "powerLoad" = lastused_environ, + "status" = environ, + "topicParams" = list( + "auto" = list("env" = 3), + "on" = list("env" = 2), + "off" = list("env" = 1) + ) + ) + ) + ) + + // update the ui if it exists, returns null if no ui is passed/found + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + if (!ui) + // the ui does not exist, so we'll create a new() one + // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm + ui = new(user, src, ui_key, "apc.tmpl", "[area.name] - APC", 520, data["siliconUser"] ? 465 : 440) + // when the ui is first opened this is the data it will use + ui.set_initial_data(data) + // open the new ui window + ui.open() + // auto update every Master Controller tick + ui.set_auto_update(1) + /obj/machinery/power/apc/proc/report() return "[area.name] : [equipment]/[lighting]/[environ] ([lastused_equip+lastused_light+lastused_environ]) : [cell? cell.percent() : "N/C"] ([charging])" @@ -754,8 +743,8 @@ istype(user, /mob/living/silicon) || \ istype(user, /mob/living/carbon/monkey) /*&& ticker && ticker.mode.name == "monkey"*/) ) user << "\red You don't have the dexterity to use this [src]!" - user << browse(null, "window=apc") - user.unset_machine() + nanomanager.close_user_uis(user, src) + return 0 if(user.restrained()) user << "\red You must have free hands to use this [src]" @@ -776,13 +765,13 @@ ) if(!loud) user << "\red \The [src] have AI control disabled!" - user << browse(null, "window=apc") - user.unset_machine() + nanomanager.close_user_uis(user, src) + return 0 else if ((!in_range(src, user) || !istype(src.loc, /turf))) - user << browse(null, "window=apc") - user.unset_machine() + nanomanager.close_user_uis(user, src) + return 0 var/mob/living/carbon/human/H = user @@ -801,8 +790,7 @@ if(!can_use(usr, 1)) return src.add_fingerprint(usr) - if(usingUI) // If we set their machine and they're not using the UI, it'll cause the UI to pop up. - usr.set_machine(src) + if (href_list["apcwires"]) var/t1 = text2num(href_list["apcwires"]) if (!( istype(usr.get_active_hand(), /obj/item/weapon/wirecutters) )) @@ -864,12 +852,12 @@ update_icon() update() else if( href_list["close"] ) - usr << browse(null, "window=apc") - usr.unset_machine() + nanomanager.close_user_uis(usr, src) + return else if (href_list["close2"]) usr << browse(null, "window=apcwires") - usr.unset_machine() + return else if (href_list["overload"]) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index bbcbdb9c9d9..b41f43b76b1 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -24,6 +24,40 @@ return // the power cable object +/obj/structure/cable + level = 1 + anchored =1 + var/datum/powernet/powernet + name = "power cable" + desc = "A flexible superconducting cable for heavy-duty power transfer" + icon = 'icons/obj/power_cond_white.dmi' + icon_state = "0-1" + var/d1 = 0 + var/d2 = 1 + layer = 2.44 //Just below unary stuff, which is at 2.45 and above pipes, which are at 2.4 + var/cable_color = COLOR_RED + var/obj/structure/powerswitch/power_switch + +/obj/structure/cable/yellow + cable_color = COLOR_YELLOW + +/obj/structure/cable/green + cable_color = COLOR_GREEN + +/obj/structure/cable/blue + cable_color = COLOR_BLUE + +/obj/structure/cable/pink + cable_color = COLOR_PINK + +/obj/structure/cable/orange + cable_color = COLOR_ORANGE + +/obj/structure/cable/cyan + cable_color = COLOR_CYAN + +/obj/structure/cable/white + cable_color = COLOR_WHITE /obj/structure/cable/New() ..() @@ -57,10 +91,8 @@ updateicon() /obj/structure/cable/proc/updateicon() - if(invisibility) - icon_state = "[d1]-[d2]-f" - else - icon_state = "[d1]-[d2]" + icon_state = "[d1]-[d2]" + alpha = invisibility ? 127 : 255 // returns the powernet this cable belongs to @@ -78,6 +110,12 @@ if(istype(W, /obj/item/weapon/wirecutters)) +///// Z-Level Stuff + if(src.d1 == 12 || src.d2 == 12) + user << "You must cut this cable from above." + return +///// Z-Level Stuff + // if(power_switch) // user << "\red This piece of cable is tied to a power switch. Flip the switch to remove it." // return @@ -91,7 +129,18 @@ new/obj/item/weapon/cable_coil(T, 1, cable_color) for(var/mob/O in viewers(src, null)) - O.show_message("\red [user] cuts the cable.", 1) + O.show_message("[user] cuts the cable.", 1) + +///// Z-Level Stuff + if(src.d1 == 11 || src.d2 == 11) + var/turf/controllerlocation = locate(1, 1, z) + for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) + if(controller.down) + var/turf/below = locate(src.x, src.y, controller.down_target) + for(var/obj/structure/cable/c in below) + if(c.d1 == 12 || c.d2 == 12) + c.Del() +///// Z-Level Stuff del(src) @@ -107,10 +156,10 @@ var/datum/powernet/PN = get_powernet() // find the powernet if(PN && (PN.avail > 0)) // is it powered? - user << "\red [PN.avail]W in power network." + user << "[PN.avail]W in power network." else - user << "\red The cable is not powered." + user << "The cable is not powered." shock(user, 5, 0.2) @@ -154,9 +203,9 @@ /obj/item/weapon/cable_coil name = "cable coil" icon = 'icons/obj/power.dmi' - icon_state = "coil_red" + icon_state = "coil" var/amount = MAXCOIL - item_color = "red" + item_color = COLOR_RED desc = "A coil of power cable." throwforce = 10 w_class = 2.0 @@ -166,11 +215,11 @@ g_amt = 20 flags = TABLEPASS | FPRINT | CONDUCT slot_flags = SLOT_BELT - item_state = "coil_red" + item_state = "coil" attack_verb = list("whipped", "lashed", "disciplined", "flogged") suicide_act(mob/user) - viewers(user) << "\red [user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide." return(OXYLOSS) @@ -185,15 +234,16 @@ /obj/item/weapon/cable_coil/proc/updateicon() if (!item_color) - item_color = pick("red", "yellow", "blue", "green") + item_color = pick(COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_ORANGE, COLOR_WHITE, COLOR_PINK, COLOR_YELLOW, COLOR_CYAN) + color = item_color if(amount == 1) - icon_state = "coil_[item_color]1" + icon_state = "coil1" name = "cable piece" else if(amount == 2) - icon_state = "coil_[item_color]2" + icon_state = "coil2" name = "cable piece" else - icon_state = "coil_[item_color]" + icon_state = "coil" name = "cable coil" /obj/item/weapon/cable_coil/examine() @@ -214,14 +264,14 @@ if(ishuman(M) && !M.restrained() && !M.stat && !M.paralysis && ! M.stunned) if(!istype(usr.loc,/turf)) return if(src.amount <= 14) - usr << "\red You need at least 15 lengths to make restraints!" + usr << "You need at least 15 lengths to make restraints!" return var/obj/item/weapon/handcuffs/cable/B = new /obj/item/weapon/handcuffs/cable(usr.loc) - B.icon_state = "cuff_[item_color]" - usr << "\blue You wind some cable together to make some restraints." + B.color = item_color + usr << "You wind some cable together to make some restraints." src.use(15) else - usr << "\blue You cannot do that." + usr << "\blue You cannot do that." ..() /obj/item/weapon/cable_coil/attackby(obj/item/weapon/W, mob/user) @@ -229,25 +279,25 @@ if( istype(W, /obj/item/weapon/wirecutters) && src.amount > 1) src.amount-- new/obj/item/weapon/cable_coil(user.loc, 1,item_color) - user << "You cut a piece off the cable coil." + user << "You cut a piece off the cable coil." src.updateicon() return else if( istype(W, /obj/item/weapon/cable_coil) ) var/obj/item/weapon/cable_coil/C = W if(C.amount == MAXCOIL) - user << "The coil is too long, you cannot add any more cable to it." + user << "The coil is too long, you cannot add any more cable to it." return if( (C.amount + src.amount <= MAXCOIL) ) C.amount += src.amount - user << "You join the cable coils together." + user << "You join the cable coils together." C.updateicon() del(src) return else - user << "You transfer [MAXCOIL - src.amount ] length\s of cable from one coil to the other." + user << "You transfer [MAXCOIL - src.amount ] length\s of cable from one coil to the other." src.amount -= (MAXCOIL-C.amount) src.updateicon() C.amount = MAXCOIL @@ -272,11 +322,11 @@ return if(get_dist(F,user) > 1) - user << "You can't lay cable at a place that far away." + user << "You can't lay cable at a place that far away." return if(F.intact) // if floor is intact, complain - user << "You can't lay cable there unless the floor tiles are removed." + user << "You can't lay cable there unless the floor tiles are removed." return else @@ -289,31 +339,77 @@ for(var/obj/structure/cable/LC in F) if((LC.d1 == dirn && LC.d2 == 0 ) || ( LC.d2 == dirn && LC.d1 == 0)) - user << "There's already a cable at that position." + user << "There's already a cable at that position." return +///// Z-Level Stuff + // check if the target is open space + if(istype(F, /turf/simulated/floor/open)) + for(var/obj/structure/cable/LC in F) + if((LC.d1 == dirn && LC.d2 == 11 ) || ( LC.d2 == dirn && LC.d1 == 11)) + user << "There's already a cable at that position." + return - var/obj/structure/cable/C = new(F) + var/turf/simulated/floor/open/temp = F + var/obj/structure/cable/C = new(F) + var/obj/structure/cable/D = new(temp.floorbelow) - C.cableColor(item_color) + C.cableColor(item_color) - C.d1 = 0 - C.d2 = dirn - C.add_fingerprint(user) - C.updateicon() + C.d1 = 11 + C.d2 = dirn + C.add_fingerprint(user) + C.updateicon() - C.powernet = new() - powernets += C.powernet - C.powernet.cables += C + C.powernet = new() + powernets += C.powernet + C.powernet.cables += C - C.mergeConnectedNetworks(C.d2) - C.mergeConnectedNetworksOnTurf() + C.mergeConnectedNetworks(C.d2) + C.mergeConnectedNetworksOnTurf() + + D.cableColor(item_color) + + D.d1 = 12 + D.d2 = 0 + D.add_fingerprint(user) + D.updateicon() + + D.powernet = C.powernet + D.powernet.cables += D + + D.mergeConnectedNetworksOnTurf() + + // do the normal stuff + else +///// Z-Level Stuff + + for(var/obj/structure/cable/LC in F) + if((LC.d1 == dirn && LC.d2 == 0 ) || ( LC.d2 == dirn && LC.d1 == 0)) + user << "There's already a cable at that position." + return + + var/obj/structure/cable/C = new(F) + + C.cableColor(item_color) + + C.d1 = 0 + C.d2 = dirn + C.add_fingerprint(user) + C.updateicon() + + C.powernet = new() + powernets += C.powernet + C.powernet.cables += C + + C.mergeConnectedNetworks(C.d2) + C.mergeConnectedNetworksOnTurf() - use(1) - if (C.shock(user, 50)) - if (prob(50)) //fail - new/obj/item/weapon/cable_coil(C.loc, 1, C.cable_color) - del(C) + use(1) + if (C.shock(user, 50)) + if (prob(50)) //fail + new/obj/item/weapon/cable_coil(C.loc, 1, C.cable_color) + del(C) //src.laying = 1 //last = C @@ -332,7 +428,7 @@ return if(get_dist(C, user) > 1) // make sure it's close enough - user << "You can't lay cable at a place that far away." + user << "You can't lay cable at a place that far away." return @@ -343,7 +439,7 @@ if(C.d1 == dirn || C.d2 == dirn) // one end of the clicked cable is pointing towards us if(U.intact) // can't place a cable if the floor is complete - user << "You can't lay cable there unless the floor tiles are removed." + user << "You can't lay cable there unless the floor tiles are removed." return else // cable is pointing at us, we're standing on an open tile @@ -353,7 +449,7 @@ for(var/obj/structure/cable/LC in U) // check to make sure there's not a cable there already if(LC.d1 == fdirn || LC.d2 == fdirn) - user << "There's already a cable at that position." + user << "There's already a cable at that position." return var/obj/structure/cable/NC = new(U) @@ -391,7 +487,7 @@ if(LC == C) // skip the cable we're interacting with continue if((LC.d1 == nd1 && LC.d2 == nd2) || (LC.d1 == nd2 && LC.d2 == nd1) ) // make sure no cable matches either direction - user << "There's already a cable at that position." + user << "There's already a cable at that position." return @@ -484,30 +580,14 @@ obj/structure/cable/proc/cableColor(var/colorC) - var/color_n = "red" + var/color_n = "#DD0000" if(colorC) color_n = colorC cable_color = color_n - switch(colorC) - if("red") - icon = 'icons/obj/power_cond_red.dmi' - if("yellow") - icon = 'icons/obj/power_cond_yellow.dmi' - if("green") - icon = 'icons/obj/power_cond_green.dmi' - if("blue") - icon = 'icons/obj/power_cond_blue.dmi' - if("pink") - icon = 'icons/obj/power_cond_pink.dmi' - if("orange") - icon = 'icons/obj/power_cond_orange.dmi' - if("cyan") - icon = 'icons/obj/power_cond_cyan.dmi' - if("white") - icon = 'icons/obj/power_cond_white.dmi' + color = color_n /obj/item/weapon/cable_coil/cut - item_state = "coil_red2" + item_state = "coil2" /obj/item/weapon/cable_coil/cut/New(loc) ..() @@ -517,36 +597,28 @@ obj/structure/cable/proc/cableColor(var/colorC) updateicon() /obj/item/weapon/cable_coil/yellow - item_color = "yellow" - icon_state = "coil_yellow" + item_color = COLOR_YELLOW /obj/item/weapon/cable_coil/blue - item_color = "blue" - icon_state = "coil_blue" + item_color = COLOR_BLUE /obj/item/weapon/cable_coil/green - item_color = "green" - icon_state = "coil_green" + item_color = COLOR_GREEN /obj/item/weapon/cable_coil/pink - item_color = "pink" - icon_state = "coil_pink" + item_color = COLOR_PINK /obj/item/weapon/cable_coil/orange - item_color = "orange" - icon_state = "coil_orange" + item_color = COLOR_ORANGE /obj/item/weapon/cable_coil/cyan - item_color = "cyan" - icon_state = "coil_cyan" + item_color = COLOR_CYAN /obj/item/weapon/cable_coil/white - item_color = "white" - icon_state = "coil_white" + item_color = COLOR_WHITE /obj/item/weapon/cable_coil/random/New() - item_color = pick("red","yellow","green","blue","pink") - icon_state = "coil_[item_color]" + item_color = pick(COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_WHITE, COLOR_PINK, COLOR_YELLOW, COLOR_CYAN) ..() /obj/item/weapon/cable_coil/attack(mob/M as mob, mob/user as mob) @@ -557,12 +629,12 @@ obj/structure/cable/proc/cableColor(var/colorC) if(S.burn_dam > 0 && use(1)) S.heal_damage(0,15,0,1) if(user != M) - user.visible_message("\red \The [user] repairs some burn damage on their [S.display_name] with \the [src]",\ - "\red You repair some burn damage on your [S.display_name]",\ + user.visible_message("\The [user] repairs some burn damage on [M]'s [S.display_name] with \the [src]",\ + "\The [user] repairs some burn damage on your [S.display_name]",\ "You hear wires being cut.") else - user.visible_message("\red \The [user] repairs some burn damage on their [S.display_name] with \the [src]",\ - "\red You repair some burn damage on your [S.display_name]",\ + user.visible_message("\The [user] repairs some burn damage on their [S.display_name] with \the [src]",\ + "You repair some burn damage on your [S.display_name]",\ "You hear wires being cut.") else user << "Nothing to fix!" diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 986f81d6c84..33441fbe4a3 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -112,7 +112,17 @@ // if unmarked==1, only return those with no powernet /proc/power_list(var/turf/T, var/source, var/d, var/unmarked=0) . = list() - var/fdir = (!d)? 0 : turn(d, 180) // the opposite direction to d (or 0 if d==0) + var/fdir = (!d)? 0 : turn(d, 180) + // the opposite direction to d (or 0 if d==0) +///// Z-Level Stuff + var/Zdir + if(d==11) + Zdir = 11 + else if (d==12) + Zdir = 12 + else + Zdir = 999 +///// Z-Level Stuff // world.log << "d=[d] fdir=[fdir]" for(var/AM in T) if(AM == source) continue //we don't want to return source @@ -129,7 +139,9 @@ var/obj/structure/cable/C = AM if(!unmarked || !C.powernet) - if(C.d1 == fdir || C.d2 == fdir) +///// Z-Level Stuff + if(C.d1 == fdir || C.d2 == fdir || C.d1 == Zdir || C.d2 == Zdir) +///// Z-Level Stuff . += C else if(C.d1 == turn(C.d2, 180)) . += C @@ -140,11 +152,43 @@ . = list() // this will be a list of all connected power objects var/turf/T = loc - if(d1) T = get_step(src, d1) - if(T) . += power_list(T, src, d1, 1) +///// Z-Level Stuff + if(d1) + if(d1 <= 10) + T = get_step(src, d1) + if(T) + . += power_list(T, src, d1, 1) + else if (d1 == 11 || d1 == 12) + var/turf/controllerlocation = locate(1, 1, z) + for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) + if(controller.up && d1 == 12) + T = locate(src.x, src.y, controller.up_target) + if(T) + . += power_list(T, src, 11, 1) + if(controller.down && d1 == 11) + T = locate(src.x, src.y, controller.down_target) + if(T) + . += power_list(T, src, 12, 1) + else if(!d1) + if(T) + . += power_list(T, src, d1, 1) - T = get_step(src, d2) - if(T) . += power_list(T, src, d2, 1) + if(d2 == 11 || d2 == 12) + var/turf/controllerlocation = locate(1, 1, z) + for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) + if(controller.up && d2 == 12) + T = locate(src.x, src.y, controller.up_target) + if(T) + . += power_list(T, src, 11, 1) + if(controller.down && d2 == 11) + T = locate(src.x, src.y, controller.down_target) + if(T) + . += power_list(T, src, 12, 1) + else + T = get_step(src, d2) + if(T) + . += power_list(T, src, d2, 1) +///// Z-Level Stuff return . diff --git a/code/modules/projectiles/targeting.dm b/code/modules/projectiles/targeting.dm index 06f25a7e18b..54ff938b7cb 100644 --- a/code/modules/projectiles/targeting.dm +++ b/code/modules/projectiles/targeting.dm @@ -177,7 +177,7 @@ mob/living/proc/Targeted(var/obj/item/weapon/gun/I) //Self explanitory. target_locked = image("icon" = 'icons/effects/Targeted.dmi', "icon_state" = "locked") update_targeted() - //Adding the buttons to the controler person + //Adding the buttons to the controller person var/mob/living/T = I.loc if(T) if(T.client) diff --git a/code/modules/reagents/Chemistry-Colours.dm b/code/modules/reagents/Chemistry-Colours.dm index e1b43763e81..55e76a07b8d 100644 --- a/code/modules/reagents/Chemistry-Colours.dm +++ b/code/modules/reagents/Chemistry-Colours.dm @@ -1,39 +1,67 @@ -/proc/GetColors(hex) - hex = uppertext(hex) - var/hi1 = text2ascii(hex, 2) - var/lo1 = text2ascii(hex, 3) - var/hi2 = text2ascii(hex, 4) - var/lo2 = text2ascii(hex, 5) - var/hi3 = text2ascii(hex, 6) - var/lo3 = text2ascii(hex, 7) - return list(((hi1>= 65 ? hi1-55 : hi1-48)<<4) | (lo1 >= 65 ? lo1-55 : lo1-48), - ((hi2 >= 65 ? hi2-55 : hi2-48)<<4) | (lo2 >= 65 ? lo2-55 : lo2-48), - ((hi3 >= 65 ? hi3-55 : hi3-48)<<4) | (lo3 >= 65 ? lo3-55 : lo3-48)) - /proc/mix_color_from_reagents(var/list/reagent_list) - if(!reagent_list || !reagent_list.len) return 0 + if(!reagent_list || !length(reagent_list)) + return 0 - var/list/rgbcolor = list(0,0,0) - var/finalcolor = 0 - for(var/datum/reagent/re in reagent_list) // natural color mixing bullshit/algorithm - if(!finalcolor) - rgbcolor = GetColors(re.color) - finalcolor = re.color - else - var/newcolor[3] - var/prergbcolor[3] - prergbcolor = rgbcolor - newcolor = GetColors(re.color) + var/contents = length(reagent_list) + var/list/weight = new /list(contents) + var/list/redcolor = new /list(contents) + var/list/greencolor = new /list(contents) + var/list/bluecolor = new /list(contents) + var/i - rgbcolor[1] = (prergbcolor[1]+newcolor[1])/2 - rgbcolor[2] = (prergbcolor[2]+newcolor[2])/2 - rgbcolor[3] = (prergbcolor[3]+newcolor[3])/2 + //fill the list of weights + for(i=1; i<=contents; i++) + var/datum/reagent/re = reagent_list[i] + var/reagentweight = re.volume + if(istype(re, /datum/reagent/paint)) + reagentweight *= 20 //Paint colours a mixture twenty times as much + weight[i] = reagentweight - finalcolor = rgb(rgbcolor[1], rgbcolor[2], rgbcolor[3]) + //fill the lists of colours + for(i=1; i<=contents; i++) + var/datum/reagent/re = reagent_list[i] + var/hue = re.color + if(length(hue) != 7) + return 0 + redcolor[i]=hex2num(copytext(hue,2,4)) + greencolor[i]=hex2num(copytext(hue,4,6)) + bluecolor[i]=hex2num(copytext(hue,6,8)) + + //mix all the colors + var/red = mixOneColor(weight,redcolor) + var/green = mixOneColor(weight,greencolor) + var/blue = mixOneColor(weight,bluecolor) + + //assemble all the pieces + var/finalcolor = "#[red][green][blue]" return finalcolor -// This isn't a perfect color mixing system, the more reagents that are inside, -// the darker it gets until it becomes absolutely pitch black! I dunno, maybe -// that's pretty realistic? I don't do a whole lot of color-mixing anyway. -// If you add brighter colors to it it'll eventually get lighter, though. \ No newline at end of file +/proc/mixOneColor(var/list/weight, var/list/color) + if (!weight || !color || length(weight)!=length(color)) + return 0 + + var/contents = length(weight) + var/i + + //normalize weights + var/listsum = 0 + for(i=1; i<=contents; i++) + listsum += weight[i] + for(i=1; i<=contents; i++) + weight[i] /= listsum + + //mix them + var/mixedcolor = 0 + for(i=1; i<=contents; i++) + mixedcolor += weight[i]*color[i] + mixedcolor = round(mixedcolor) + + //until someone writes a formal proof for this algorithm, let's keep this in + if(mixedcolor<0x00 || mixedcolor>0xFF) + return 0 + + var/finalcolor = num2hex(mixedcolor) + while(length(finalcolor)<2) + finalcolor = text("0[]",finalcolor) //Takes care of leading zeroes + return finalcolor diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 9db39f296b7..bf8e2338131 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -139,15 +139,15 @@ if(temp) chemicals.Add(list(list("title" = temp.name, "id" = temp.id, "commands" = list("dispense" = temp.id)))) // list in a list because Byond merges the first list... data["chemicals"] = chemicals - + // update the ui if it exists, returns null if no ui is passed/found - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) if (!ui) // the ui does not exist, so we'll create a new() one // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm - ui = new(user, src, ui_key, "chem_dispenser.tmpl", ui_title, 370, 605) + ui = new(user, src, ui_key, "chem_dispenser.tmpl", ui_title, 380, 650) // when the ui is first opened this is the data it will use - ui.set_initial_data(data) + ui.set_initial_data(data) // open the new ui window ui.open() @@ -902,7 +902,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = list("soymilk" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = list("ketchup" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/corn = list("cornoil" = 0), - /obj/item/weapon/reagent_containers/food/snacks/grown/wheat = list("flour" = -5), + ///obj/item/weapon/reagent_containers/food/snacks/grown/wheat = list("flour" = -5), /obj/item/weapon/reagent_containers/food/snacks/grown/ricestalk = list("rice" = -5), /obj/item/weapon/reagent_containers/food/snacks/grown/cherries = list("cherryjelly" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/plastellium = list("plasticide" = 5), diff --git a/code/modules/reagents/Chemistry-Readme.dm b/code/modules/reagents/Chemistry-Readme.dm index 77921d0ab07..ac8792c1e76 100644 --- a/code/modules/reagents/Chemistry-Readme.dm +++ b/code/modules/reagents/Chemistry-Readme.dm @@ -134,7 +134,7 @@ About Reagents: object melting in here ... or something. i dunno. reaction_turf(var/turf/T) - This is called by the holder's reation proc. + This is called by the holder's reaction proc. This version is called when the reagents reacts with a turf. You'll want to put stuff like extra slippery floors for lube or something in here. @@ -144,7 +144,7 @@ About Reagents: This is the place where you put damage for toxins , drowsyness for sleep toxins etc etc. You'll want to call the parents proc by using ..() . - If you dont, the chemical will stay in the mob forever - + If you don't, the chemical will stay in the mob forever - unless you write your own piece of code to slowly remove it. (Should be pretty easy, 1 line of code) diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index c9666d98f00..baf235b3665 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -23,7 +23,7 @@ datum var/list/data = null var/volume = 0 var/nutriment_factor = 0 - var/custom_metabolism = REAGENTS_METABOLISM //Default 0.2 + var/custom_metabolism = REAGENTS_METABOLISM var/overdose = 0 var/overdose_dam = 1 //var/list/viruses = list() @@ -1393,13 +1393,6 @@ datum /////////////////////////////////////////////////////////////////////////////////////////////////////////////// - holywater - name = "Holy Water" - id = "holywater" - description = "This was once water, but has been altered by higher powers." - reagent_state = LIQUID - color = "#535E66" // rgb: 83, 94, 102 - nanites name = "Nanomachines" id = "nanites" @@ -2340,6 +2333,7 @@ datum ..() return +/* We're back to flour bags flour name = "flour" id = "flour" @@ -2357,6 +2351,7 @@ datum src = null if(!istype(T, /turf/space)) new /obj/effect/decal/cleanable/flour(T) +*/ rice name = "Rice" diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index c06117a08bb..fe56d442e0a 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -485,7 +485,7 @@ datum name = "Potassium Chlorophoride" id = "potassium_chlorophoride" result = "potassium_chlorophoride" - required_reagents = list("potassium_chloride" = 1, "plasma" = 1, "chloral_hydrate" = 1) + required_reagents = list("potassium_chloride" = 1, "plasma" = 1, "chloralhydrate" = 1) result_amount = 4 stoxin @@ -1549,7 +1549,7 @@ datum name = "Space Beer" id = "spacebeer" result = "beer" - required_reagents = list("flour" = 10) + required_reagents = list("cornoil" = 10) required_catalysts = list("enzyme" = 5) result_amount = 10 diff --git a/code/modules/reagents/reagent_containers/food.dm b/code/modules/reagents/reagent_containers/food.dm index 53bdeca5f84..07f98a014e6 100644 --- a/code/modules/reagents/reagent_containers/food.dm +++ b/code/modules/reagents/reagent_containers/food.dm @@ -8,5 +8,5 @@ /obj/item/weapon/reagent_containers/food/New() ..() - src.pixel_x = rand(-5.0, 5) //Randomizes postion slightly. - src.pixel_y = rand(-5.0, 5) \ No newline at end of file + src.pixel_x = rand(-10.0, 10) //Randomizes postion + src.pixel_y = rand(-10.0, 10) \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm index fe49ad0262a..6d1635f10d1 100644 --- a/code/modules/reagents/reagent_containers/food/drinks.dm +++ b/code/modules/reagents/reagent_containers/food/drinks.dm @@ -167,6 +167,7 @@ src.pixel_x = rand(-10.0, 10) src.pixel_y = rand(-10.0, 10) +/* Flour is no longer a reagent /obj/item/weapon/reagent_containers/food/drinks/flour name = "flour sack" desc = "A big bag of flour. Good for baking!" @@ -178,6 +179,7 @@ reagents.add_reagent("flour", 30) src.pixel_x = rand(-10.0, 10) src.pixel_y = rand(-10.0, 10) +*/ /obj/item/weapon/reagent_containers/food/drinks/soymilk name = "SoyMilk" diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 4476eb6d4f1..6d774f1d464 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -260,7 +260,7 @@ /obj/item/weapon/reagent_containers/food/snacks/candy name = "candy" - desc = "Nougat love it or hate it." + desc = "Nougat, love it or hate it." icon_state = "candy" trash = /obj/item/trash/candy filling_color = "#7D5F46" @@ -283,7 +283,7 @@ /obj/item/weapon/reagent_containers/food/snacks/candy_corn name = "candy corn" - desc = "It's a handful of candy corn. Can be stored in a detective's hat." + desc = "It's a handful of candy corn. Cannot be stored in a detective's hat, alas." icon_state = "candy_corn" filling_color = "#FFFCB0" @@ -318,7 +318,7 @@ /obj/item/weapon/reagent_containers/food/snacks/chocolatebar name = "Chocolate Bar" - desc = "Such, sweet, fattening food." + desc = "Such sweet, fattening food." icon_state = "chocolatebar" filling_color = "#7D5F46" @@ -331,7 +331,7 @@ /obj/item/weapon/reagent_containers/food/snacks/chocolateegg name = "Chocolate Egg" - desc = "Such, sweet, fattening food." + desc = "Such sweet, fattening food." icon_state = "chocolateegg" filling_color = "#7D5F46" @@ -539,15 +539,16 @@ ..() reagents.add_reagent("nutriment", 2) -/*/obj/item/weapon/reagent_containers/food/snacks/flour //Has been converted into a reagent. Use that instead of the item! +/obj/item/weapon/reagent_containers/food/snacks/flour name = "flour" - desc = "Some flour" + desc = "A small bag filled with some flour." icon_state = "flour" New() ..() - reagents.add_reagent("nutriment", 1)*/ + reagents.add_reagent("nutriment", 1) -/obj/item/weapon/reagent_containers/food/snacks/appendix //yes, this is the same as meat. I might do something different in future +/obj/item/weapon/reagent_containers/food/snacks/appendix +//yes, this is the same as meat. I might do something different in future name = "appendix" desc = "An appendix which looks perfectly healthy." icon = 'icons/obj/surgery.dmi' @@ -748,6 +749,14 @@ reagents.add_reagent("nutriment", 6) bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/cheeseburger + name = "cheeseburger" + desc = "The cheese adds a good flavor." + icon_state = "cheeseburger" + New() + ..() + reagents.add_reagent("nutriment", 2) + /obj/item/weapon/reagent_containers/food/snacks/monkeyburger name = "burger" desc = "The cornerstone of every nutritious breakfast." @@ -790,7 +799,9 @@ New() ..() - reagents.add_reagent("nanites", 2) + reagents.add_reagent("nutriment", 2) + if(prob(5)) + reagents.add_reagent("nanites", 2) bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/roburgerbig @@ -1195,7 +1206,7 @@ /obj/item/weapon/reagent_containers/food/snacks/fries name = "Space Fries" - desc = "AKA: French Fries, Freedom Fries, etc" + desc = "AKA: French Fries, Freedom Fries, etc." icon_state = "fries" trash = /obj/item/trash/plate filling_color = "#EDDD00" @@ -1219,7 +1230,7 @@ /obj/item/weapon/reagent_containers/food/snacks/spagetti name = "Spagetti" - desc = "Now thats a nice pasta!" + desc = "A bundle of raw spaghetti." icon_state = "spagetti" filling_color = "#EDDD00" @@ -1901,7 +1912,7 @@ New() ..() - reagents.add_reagent("nutriment", 40) + reagents.add_reagent("nutriment", 50) bitesize = 10 /obj/item/weapon/reagent_containers/food/snacks/candiedapple @@ -1917,7 +1928,7 @@ /obj/item/weapon/reagent_containers/food/snacks/applepie name = "Apple Pie" - desc = "A pie containing sweet sweet love...or apple." + desc = "A pie containing sweet sweet love... or apple." icon_state = "applepie" filling_color = "#E0EDC5" @@ -1970,7 +1981,7 @@ New() ..() reagents.add_reagent("cherryjelly", 5) -/* + /obj/item/weapon/reagent_containers/food/snacks/boiledslimecore name = "Boiled slime Core" desc = "A boiled red thing." @@ -1979,7 +1990,7 @@ ..() reagents.add_reagent("slimejelly", 5) bitesize = 3 -*/ + /obj/item/weapon/reagent_containers/food/snacks/mint name = "mint" desc = "it is only wafer thin." @@ -2122,7 +2133,7 @@ /obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread name = "xenomeatbread loaf" - desc = "The culinary base of every self-respecting eloquen/tg/entleman. Extra Heretical." + desc = "The culinary base of every self-respecting eloquent gentleman. Extra Heretical." icon_state = "xenomeatbread" slice_path = /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice slices_num = 5 @@ -2489,7 +2500,7 @@ /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita name = "Margherita" - desc = "The most cheezy pizza in galaxy" + desc = "The golden standard of pizzas." icon_state = "pizzamargherita" slice_path = /obj/item/weapon/reagent_containers/food/snacks/margheritaslice slices_num = 6 @@ -2501,14 +2512,14 @@ /obj/item/weapon/reagent_containers/food/snacks/margheritaslice name = "Margherita slice" - desc = "A slice of the most cheezy pizza in galaxy" + desc = "A slice of the classic pizza." icon_state = "pizzamargheritaslice" filling_color = "#BAA14C" bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza name = "Meatpizza" - desc = "" //TODO: + desc = "A pizza with meat topping." icon_state = "meatpizza" slice_path = /obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice slices_num = 6 @@ -2520,7 +2531,7 @@ /obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice name = "Meatpizza slice" - desc = "A slice of " //TODO: + desc = "A slice of a meaty pizza." icon_state = "meatpizzaslice" filling_color = "#BAA14C" bitesize = 2 @@ -2545,7 +2556,7 @@ /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza name = "Vegetable pizza" - desc = "No one of Tomatos Sapiens were harmed during making this pizza" + desc = "No one of Tomato Sapiens were harmed during making this pizza" icon_state = "vegetablepizza" slice_path = /obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice slices_num = 6 @@ -2750,4 +2761,198 @@ ..() reagents.add_reagent("nutriment", 6) reagents.add_reagent("radium", 2) - bitesize = 2 \ No newline at end of file + bitesize = 2 + + + + +/////////////////////////////////////////// +// new old food stuff from bs12 +/////////////////////////////////////////// + +// Flour + egg = dough +/obj/item/weapon/reagent_containers/food/snacks/flour/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/egg)) + new /obj/item/weapon/reagent_containers/food/snacks/dough(src) + user << "You make some dough." + del(W) + del(src) + +// Egg + flour = dough +/obj/item/weapon/reagent_containers/food/snacks/egg/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/flour)) + new /obj/item/weapon/reagent_containers/food/snacks/dough(src) + user << "You make some dough." + del(W) + del(src) + +/obj/item/weapon/reagent_containers/food/snacks/dough + name = "dough" + desc = "A piece of dough." + icon = 'icons/obj/food_ingredients.dmi' + icon_state = "dough" + bitesize = 2 + New() + ..() + reagents.add_reagent("nutriment", 3) + +// Dough + rolling pin = flat dough +/obj/item/weapon/reagent_containers/food/snacks/dough/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W,/obj/item/weapon/kitchen/rollingpin)) + new /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough(src) + user << "You flatten the dough." + del(src) + +// slicable into 3xdoughslices +/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough + name = "flat dough" + desc = "A flattened dough." + icon = 'icons/obj/food_ingredients.dmi' + icon_state = "flat dough" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/doughslice + slices_num = 3 + New() + ..() + reagents.add_reagent("nutriment", 3) + +/obj/item/weapon/reagent_containers/food/snacks/doughslice + name = "dough slice" + desc = "A building block of an impressive dish." + icon = 'icons/obj/food_ingredients.dmi' + icon_state = "doughslice" + bitesize = 2 + New() + ..() + reagents.add_reagent("nutriment", 1) + +/obj/item/weapon/reagent_containers/food/snacks/bun + name = "bun" + desc = "A base for any self-respecting burger." + icon = 'icons/obj/food_ingredients.dmi' + icon_state = "bun" + bitesize = 2 + New() + ..() + reagents.add_reagent("nutriment", 4) + +/obj/item/weapon/reagent_containers/food/snacks/bun/attackby(obj/item/weapon/W as obj, mob/user as mob) + // Bun + meatball = burger + if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/faggot)) + new /obj/item/weapon/reagent_containers/food/snacks/monkeyburger(src) + user << "You make a burger." + del(W) + del(src) + + // Bun + cutlet = hamburger + else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/cutlet)) + new /obj/item/weapon/reagent_containers/food/snacks/monkeyburger(src) + user << "You make a burger." + del(W) + del(src) + + // Bun + sausage = hotdog + else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/sausage)) + new /obj/item/weapon/reagent_containers/food/snacks/hotdog(src) + user << "You make a hotdog." + del(W) + del(src) + +// Burger + cheese wedge = cheeseburger +/obj/item/weapon/reagent_containers/food/snacks/monkeyburger/attackby(obj/item/weapon/reagent_containers/food/snacks/cheesewedge/W as obj, mob/user as mob) + if(istype(W))// && !istype(src,/obj/item/weapon/reagent_containers/food/snacks/cheesewedge)) + new /obj/item/weapon/reagent_containers/food/snacks/cheeseburger(src) + user << "You make a cheeseburger." + del(W) + del(src) + return + else + ..() + +// Human Burger + cheese wedge = cheeseburger +/obj/item/weapon/reagent_containers/food/snacks/human/burger/attackby(obj/item/weapon/reagent_containers/food/snacks/cheesewedge/W as obj, mob/user as mob) + if(istype(W)) + new /obj/item/weapon/reagent_containers/food/snacks/cheeseburger(src) + user << "You make a cheeseburger." + del(W) + del(src) + return + else + ..() + +/obj/item/weapon/reagent_containers/food/snacks/taco + name = "taco" + desc = "Take a bite!" + icon_state = "taco" + bitesize = 3 + New() + ..() + reagents.add_reagent("nutriment", 7) + +/obj/item/weapon/reagent_containers/food/snacks/rawcutlet + name = "raw cutlet" + desc = "A thin piece of raw meat." + icon = 'icons/obj/food_ingredients.dmi' + icon_state = "rawcutlet" + bitesize = 1 + New() + ..() + reagents.add_reagent("nutriment", 1) + +/obj/item/weapon/reagent_containers/food/snacks/cutlet + name = "cutlet" + desc = "A tasty meat slice." + icon = 'icons/obj/food_ingredients.dmi' + icon_state = "cutlet" + bitesize = 2 + New() + ..() + reagents.add_reagent("nutriment", 2) + +/obj/item/weapon/reagent_containers/food/snacks/rawfaggot + name = "raw meatball" + desc = "A raw meatball." + icon = 'icons/obj/food_ingredients.dmi' + icon_state = "rawmeatball" + bitesize = 2 + New() + ..() + reagents.add_reagent("nutriment", 2) + +/obj/item/weapon/reagent_containers/food/snacks/hotdog + name = "hotdog" + desc = "Unrelated to dogs, maybe." + icon_state = "hotdog" + bitesize = 2 + New() + ..() + reagents.add_reagent("nutriment", 6) + +/obj/item/weapon/reagent_containers/food/snacks/flatbread + name = "flatbread" + desc = "Bland but filling." + icon = 'icons/obj/food_ingredients.dmi' + icon_state = "flatbread" + bitesize = 2 + New() + ..() + reagents.add_reagent("nutriment", 3) + +// potato + knife = raw sticks +/obj/item/weapon/reagent_containers/food/snacks/grown/potato/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W,/obj/item/weapon/kitchen/utensil/knife)) + new /obj/item/weapon/reagent_containers/food/snacks/rawsticks(src) + user << "You cut the potato." + del(src) + else + ..() + +/obj/item/weapon/reagent_containers/food/snacks/rawsticks + name = "raw potato sticks" + desc = "Raw fries, not very tasty." + icon = 'icons/obj/food_ingredients.dmi' + icon_state = "rawsticks" + bitesize = 2 + New() + ..() + reagents.add_reagent("nutriment", 3) + diff --git a/code/modules/reagents/reagent_containers/food/snacks/meat.dm b/code/modules/reagents/reagent_containers/food/snacks/meat.dm index 5a4dacbf05c..3728044cc8c 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/meat.dm +++ b/code/modules/reagents/reagent_containers/food/snacks/meat.dm @@ -9,6 +9,15 @@ reagents.add_reagent("nutriment", 3) src.bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/meat/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W,/obj/item/weapon/kitchen/utensil/knife)) + new /obj/item/weapon/reagent_containers/food/snacks/rawcutlet(src) + new /obj/item/weapon/reagent_containers/food/snacks/rawcutlet(src) + new /obj/item/weapon/reagent_containers/food/snacks/rawcutlet(src) + user << "You cut the meat in thin strips." + del(src) + else + ..() /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh name = "synthetic meat" diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 21384ffd59d..82e2cc0b1fd 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -47,11 +47,10 @@ set src in view() ..() if (!(usr in view(2)) && usr!=src.loc) return - usr << "\blue It contains:" if(reagents && reagents.reagent_list.len) - usr << "\blue [src.reagents.total_volume] units of liquid." + usr << "\blue It contains [src.reagents.total_volume] units of liquid." else - usr << "\blue Nothing." + usr << "\blue It is empty." if (!is_open_container()) usr << "\blue Airtight lid seals it completely." @@ -216,7 +215,7 @@ /obj/item/weapon/reagent_containers/glass/beaker/bluespace name = "bluespace beaker" - desc = "A bluespace beaker, powered by experimental bluespace technology and Element Cuban combined with the Compound Pete. Can hold up to 300 units." + desc = "A bluespace beaker, powered by experimental bluespace technology. Can hold up to 300 units." icon_state = "beakerbluespace" g_amt = 5000 volume = 300 diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 7cbd460257d..47e2ca5a7b7 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -11,10 +11,16 @@ throw_speed = 2 throw_range = 10 amount_per_transfer_from_this = 10 + possible_transfer_amounts = list(5,10) //Set to null instead of list, if there is only one. + var/spray_size = 3 + var/list/spray_sizes = list(1,3) volume = 250 - possible_transfer_amounts = null +/obj/item/weapon/reagent_containers/spray/New() + ..() + src.verbs -= /obj/item/weapon/reagent_containers/verb/set_APTFT + /obj/item/weapon/reagent_containers/spray/afterattack(atom/A as mob|obj, mob/user as mob) if(istype(A, /obj/item/weapon/storage) || istype(A, /obj/structure/table) || istype(A, /obj/structure/rack) || istype(A, /obj/structure/closet) \ || istype(A, /obj/item/weapon/reagent_containers) || istype(A, /obj/structure/sink) || istype(A, /obj/structure/janitorialcart)) @@ -40,27 +46,7 @@ user << "\The [src] is empty!" return - var/obj/effect/decal/chempuff/D = new/obj/effect/decal/chempuff(get_turf(src)) - D.create_reagents(amount_per_transfer_from_this) - reagents.trans_to(D, amount_per_transfer_from_this, 1/3) - D.icon += mix_color_from_reagents(D.reagents.reagent_list) - - var/turf/A_turf = get_turf(A)//BS12 - - spawn(0) - for(var/i=0, i<3, i++) - step_towards(D,A) - D.reagents.reaction(get_turf(D)) - for(var/atom/T in get_turf(D)) - D.reagents.reaction(T) - - // When spraying against the wall, also react with the wall, but - // not its contents. BS12 - if(get_dist(D, A_turf) == 1 && A_turf.density) - D.reagents.reaction(A_turf) - sleep(2) - sleep(3) - del(D) + Spray_at(A) playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6) @@ -75,10 +61,37 @@ log_game("[key_name(user)] fired Space lube from \a [src].") return -/obj/item/weapon/reagent_containers/spray/attack_self(var/mob/user) +/obj/item/weapon/reagent_containers/spray/proc/Spray_at(atom/A as mob|obj) + var/obj/effect/decal/chempuff/D = new/obj/effect/decal/chempuff(get_turf(src)) + D.create_reagents(amount_per_transfer_from_this) + reagents.trans_to(D, amount_per_transfer_from_this, 1/spray_size) + D.icon += mix_color_from_reagents(D.reagents.reagent_list) - amount_per_transfer_from_this = (amount_per_transfer_from_this == 10 ? 5 : 10) - user << "You switched [amount_per_transfer_from_this == 10 ? "on" : "off"] the pressure nozzle. You'll now use [amount_per_transfer_from_this] units per spray." + var/turf/A_turf = get_turf(A)//BS12 + + spawn(0) + for(var/i=0, iYou adjusted the pressure nozzle. You'll now use [amount_per_transfer_from_this] units per spray." /obj/item/weapon/reagent_containers/spray/examine() @@ -117,14 +130,30 @@ icon = 'icons/obj/weapons.dmi' icon_state = "pepperspray" item_state = "pepperspray" + possible_transfer_amounts = null volume = 40 - amount_per_transfer_from_this = 10 + var/safety = 1 /obj/item/weapon/reagent_containers/spray/pepper/New() ..() reagents.add_reagent("condensedcapsaicin", 40) +/obj/item/weapon/reagent_containers/spray/pepper/examine() + ..() + if(get_dist(usr,src) <= 1) + usr << "The safety is [safety ? "on" : "off"]." + +/obj/item/weapon/reagent_containers/spray/pepper/attack_self(var/mob/user) + safety = !safety + usr << "You switch the safety [safety ? "on" : "off"]." + +/obj/item/weapon/reagent_containers/spray/pepper/Spray_at(atom/A as mob|obj) + if(safety) + usr << "The safety is on!" + return + ..() + //water flower /obj/item/weapon/reagent_containers/spray/waterflower name = "water flower" @@ -133,15 +162,13 @@ icon_state = "sunflower" item_state = "sunflower" amount_per_transfer_from_this = 1 + possible_transfer_amounts = null volume = 10 /obj/item/weapon/reagent_containers/spray/waterflower/New() ..() reagents.add_reagent("water", 10) -/obj/item/weapon/reagent_containers/spray/waterflower/attack_self(var/mob/user) //Don't allow changing how much the flower sprays - return - //chemsprayer /obj/item/weapon/reagent_containers/spray/chemsprayer name = "chem sprayer" @@ -151,36 +178,13 @@ item_state = "chemsprayer" throwforce = 3 w_class = 3.0 + possible_transfer_amounts = null volume = 600 origin_tech = "combat=3;materials=3;engineering=3" //this is a big copypasta clusterfuck, but it's still better than it used to be! -/obj/item/weapon/reagent_containers/spray/chemsprayer/afterattack(atom/A as mob|obj, mob/user as mob) - if(istype(A, /obj/item/weapon/storage) || istype(A, /obj/structure/table) || istype(A, /obj/structure/rack) || istype(A, /obj/structure/closet) \ - || istype(A, /obj/item/weapon/reagent_containers) || istype(A, /obj/structure/sink)) - return - - if(istype(A, /obj/effect/proc_holder/spell)) - return - - if(istype(A, /obj/structure/reagent_dispensers) && get_dist(src,A) <= 1) //this block copypasted from reagent_containers/glass, for lack of a better solution - if(!A.reagents.total_volume && A.reagents) - user << "\The [A] is empty." - return - - if(reagents.total_volume >= reagents.maximum_volume) - user << "\The [src] is full." - return - - var/trans = A.reagents.trans_to(src, A:amount_per_transfer_from_this) - user << "You fill \the [src] with [trans] units of the contents of \the [A]." - return - - if(reagents.total_volume < amount_per_transfer_from_this) - user << "\The [src] is empty!" - return - +/obj/item/weapon/reagent_containers/spray/chemsprayer/Spray_at(atom/A as mob|obj) var/Sprays[3] for(var/i=1, i<=3, i++) // intialize sprays if(src.reagents.total_volume < 1) break @@ -215,17 +219,6 @@ sleep(2) del(D) - playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6) - - if(reagents.has_reagent("sacid")) - message_admins("[key_name_admin(user)] fired sulphuric acid from a chem sprayer.") - log_game("[key_name(user)] fired sulphuric acid from a chem sprayer.") - if(reagents.has_reagent("pacid")) - message_admins("[key_name_admin(user)] fired Polyacid from a chem sprayer.") - log_game("[key_name(user)] fired Polyacid from a chem sprayer.") - if(reagents.has_reagent("lube")) - message_admins("[key_name_admin(user)] fired Space lube from a chem sprayer.") - log_game("[key_name(user)] fired Space lube from a chem sprayer.") return // Plant-B-Gone diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm index 9bf34ff6c02..d6e30c6656b 100644 --- a/code/modules/recycling/disposal-construction.dm +++ b/code/modules/recycling/disposal-construction.dm @@ -65,9 +65,19 @@ if(10) base_state = "pipe-j2s" dpdir = dir | left | flip +///// Z-Level stuff + if(11) + base_state = "pipe-u" + dpdir = dir + if(12) + base_state = "pipe-d" + dpdir = dir +///// Z-Level stuff - if(ptype<6 || ptype>8) +///// Z-Level stuff + if(ptype<6 || ptype>8 && !(ptype==11 || ptype==12)) +///// Z-Level stuff icon_state = "con[base_state]" else icon_state = base_state @@ -139,6 +149,12 @@ return /obj/machinery/disposal/deliveryChute if(9,10) return /obj/structure/disposalpipe/sortjunction +///// Z-Level stuff + if(11) + return /obj/structure/disposalpipe/up + if(12) + return /obj/structure/disposalpipe/down +///// Z-Level stuff return diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 04eff0de6ea..1daac04fd28 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -873,6 +873,12 @@ C.ptype = 9 if("pipe-j2s") C.ptype = 10 +///// Z-Level stuff + if("pipe-u") + C.ptype = 11 + if("pipe-d") + C.ptype = 12 +///// Z-Level stuff src.transfer_fingerprints_to(C) C.dir = dir C.density = 0 @@ -900,8 +906,113 @@ update() return +///// Z-Level stuff +/obj/structure/disposalpipe/up + icon_state = "pipe-u" + New() + ..() + dpdir = dir + update() + return + nextdir(var/fromdir) + var/nextdir + if(fromdir == 11) + nextdir = dir + else + nextdir = 12 + return nextdir + + transfer(var/obj/structure/disposalholder/H) + var/nextdir = nextdir(H.dir) + H.dir = nextdir + + var/turf/T + var/obj/structure/disposalpipe/P + + if(nextdir == 12) + var/turf/controllerlocation = locate(1, 1, src.z) + for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) + if(controller.up) + T = locate(src.x, src.y, controller.up_target) + if(!T) + H.loc = src.loc + return + else + for(var/obj/structure/disposalpipe/down/F in T) + P = F + + else + T = get_step(src.loc, H.dir) + P = H.findpipe(T) + + if(P) + // find other holder in next loc, if inactive merge it with current + var/obj/structure/disposalholder/H2 = locate() in P + if(H2 && !H2.active) + H.merge(H2) + + H.loc = P + else // if wasn't a pipe, then set loc to turf + H.loc = T + return null + + return P + +/obj/structure/disposalpipe/down + icon_state = "pipe-d" + + New() + ..() + dpdir = dir + update() + return + + nextdir(var/fromdir) + var/nextdir + if(fromdir == 12) + nextdir = dir + else + nextdir = 11 + return nextdir + + transfer(var/obj/structure/disposalholder/H) + var/nextdir = nextdir(H.dir) + H.dir = nextdir + + var/turf/T + var/obj/structure/disposalpipe/P + + if(nextdir == 11) + var/turf/controllerlocation = locate(1, 1, src.z) + for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) + if(controller.down) + T = locate(src.x, src.y, controller.down_target) + if(!T) + H.loc = src.loc + return + else + for(var/obj/structure/disposalpipe/up/F in T) + P = F + + else + T = get_step(src.loc, H.dir) + P = H.findpipe(T) + + if(P) + // find other holder in next loc, if inactive merge it with current + var/obj/structure/disposalholder/H2 = locate() in P + if(H2 && !H2.active) + H.merge(H2) + + H.loc = P + else // if wasn't a pipe, then set loc to turf + H.loc = T + return null + + return P +///// Z-Level stuff //a three-way junction with dir being the dominant direction /obj/structure/disposalpipe/junction diff --git a/code/WorkInProgress/Yinadele/Supermatter.dm b/code/modules/supermatter/supermatter.dm similarity index 91% rename from code/WorkInProgress/Yinadele/Supermatter.dm rename to code/modules/supermatter/supermatter.dm index 7765393bb1d..8547c42fdd2 100644 --- a/code/WorkInProgress/Yinadele/Supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -11,7 +11,7 @@ #define DETONATION_HALLUCINATION 600 -#define WARNING_DELAY 60 //45 seconds between warnings. +#define WARNING_DELAY 30 //seconds between warnings. /obj/machinery/power/supermatter name = "Supermatter" @@ -20,6 +20,7 @@ icon_state = "darkmatter" density = 1 anchored = 0 + luminosity = 4 var/gasefficency = 0.25 @@ -39,9 +40,10 @@ var/explosion_power = 8 var/lastwarning = 0 // Time in 1/10th of seconds since the last sent warning - var/power = 0 + var/oxygen = 0 // Moving this up here for easier debugging. + //Temporary values so that we can optimize this //How much the bullets damage should be multiplied by when it is added to the internal variables var/config_bullet_energy = 2 @@ -93,13 +95,15 @@ if(damage > warning_point) // while the core is still damaged and it's still worth noting its status if((world.timeofday - lastwarning) / 10 >= WARNING_DELAY) - + var/stability = num2text(round((damage / explosion_point) * 100)) + if(damage > emergency_point) - radio.autosay(emergency_alert, "Supermatter Monitor") + + radio.autosay(addtext(emergency_alert, " Stability: ",stability,"%"), "Supermatter Monitor") lastwarning = world.timeofday else if(damage >= damage_archived) // The damage is still going up - radio.autosay(warning_alert, "Supermatter Monitor") + radio.autosay(addtext(warning_alert," Stability: ",stability,"%"), "Supermatter Monitor") lastwarning = world.timeofday - 150 else // Phew, we're safe @@ -134,7 +138,7 @@ damage = max( damage + ( (removed.temperature - 800) / 150 ) , 0 ) //Ok, 100% oxygen atmosphere = best reaction //Maxes out at 100% oxygen pressure - var/oxygen = max(min((removed.oxygen - (removed.nitrogen * NITROGEN_RETARDATION_FACTOR)) / MOLES_CELLSTANDARD, 1), 0) + oxygen = max(min((removed.oxygen - (removed.nitrogen * NITROGEN_RETARDATION_FACTOR)) / MOLES_CELLSTANDARD, 1), 0) var/temp_factor = 100 @@ -173,7 +177,7 @@ env.merge(removed) - for(var/mob/living/carbon/human/l in view(src, round(power ** 0.25))) // you have to be seeing the core to get hallucinations + for(var/mob/living/carbon/human/l in view(src, min(7, round(power ** 0.25)))) // If they can see it without mesons on. Bad on them. if(!istype(l.glasses, /obj/item/clothing/glasses/meson)) l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1,get_dist(l, src)) ) ) ) @@ -187,6 +191,12 @@ /obj/machinery/power/supermatter/bullet_act(var/obj/item/projectile/Proj) + var/turf/L = loc + if(!istype(L)) // We don't run process() when we are in space + return 0 // This stops people from being able to really power up the supermatter + // Then bring it inside to explode instantly upon landing on a valid turf. + + if(Proj.flag != "bullet") power += Proj.damage * config_bullet_energy else diff --git a/code/modules/surgery/braincore.dm b/code/modules/surgery/braincore.dm index b9f3fe24a4f..767cef719a6 100644 --- a/code/modules/surgery/braincore.dm +++ b/code/modules/surgery/braincore.dm @@ -94,8 +94,18 @@ target.attack_log += "\[[time_stamp()]\] Debrained by [user.name] ([user.ckey]) with [tool.name] (INTENT: [uppertext(user.a_intent)])" msg_admin_attack("[user.name] ([user.ckey]) debrained [target.name] ([target.ckey]) with [tool.name] (INTENT: [uppertext(user.a_intent)]) (JMP)") - var/obj/item/brain/B = new(target.loc) - B.transfer_identity(target) + var/mob/living/carbon/human/H + if(istype(target,/mob/living/carbon/human)) + H = target + + var/obj/item/brain/B + if(H && H.species && H.species.flags & IS_SYNTHETIC) + var/obj/item/device/mmi/posibrain/P = new(target.loc) + P.transfer_identity(target) + else + B = new(target.loc) + B.transfer_identity(target) + target.internal_organs -= B target:brain_op_stage = 4.0 diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index fd109b259cb..05371f18c82 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -30,12 +30,12 @@ if(allowed_species) for(var/species in allowed_species) - if(target.dna.mutantrace == species) + if(target.species.name == species) return 1 if(disallowed_species) for(var/species in disallowed_species) - if (target.dna.mutantrace == species) + if(target.species.name == species) return 0 return 1 diff --git a/code/setup.dm b/code/setup.dm index 37b99246f9a..96bc6222087 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -740,6 +740,8 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse #define RAD_ABSORB 2048 #define REQUIRE_LIGHT 4096 +#define IS_SYNTHETIC 8192 + //Language flags. #define WHITELISTED 1 // Language is available if the speaker is whitelisted. #define RESTRICTED 2 // Language can only be accquired by spawning or an admin. @@ -747,3 +749,13 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse //Flags for zone sleeping #define ZONE_ACTIVE 1 #define ZONE_SLEEPING 0 + +//some colors +#define COLOR_RED "#FF0000" +#define COLOR_GREEN "#00FF00" +#define COLOR_BLUE "#0000FF" +#define COLOR_CYAN "#00FFFF" +#define COLOR_PINK "#FF00FF" +#define COLOR_YELLOW "#FFFF00" +#define COLOR_ORANGE "#FF9900" +#define COLOR_WHITE "#FFFFFF" \ No newline at end of file diff --git a/config/example/config.txt b/config/example/config.txt index 7a2638f0207..00eb2f64104 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -121,6 +121,9 @@ VOTE_AUTOTRANSFER_INITIAL 108000 ##autovote delay (deciseconds) before sequential automatic transfer votes are called (default 60 minutes) VOTE_AUTOTRANSFER_INTERVAL 36000 +## Time left (seconds) before round start when automatic gamemote vote is called (default 100). +VOTE_AUTOGAMEMODE_TIMELEFT 100 + ## prevents dead players from voting or starting votes #NO_DEAD_VOTE diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi index 726bf90e3b0..d2b6ba4aef1 100644 Binary files a/icons/mob/belt.dmi and b/icons/mob/belt.dmi differ diff --git a/icons/mob/collar.dmi b/icons/mob/collar.dmi new file mode 100644 index 00000000000..fccfe6dd53b Binary files /dev/null and b/icons/mob/collar.dmi differ diff --git a/icons/mob/eyes.dmi b/icons/mob/eyes.dmi index b121edfd631..b33224f4264 100644 Binary files a/icons/mob/eyes.dmi and b/icons/mob/eyes.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 2e79482b4b2..878b8317bbf 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 1af9e65c5cc..d73abf05c99 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ diff --git a/icons/mob/human_races/r_diona.dmi b/icons/mob/human_races/r_diona.dmi new file mode 100644 index 00000000000..7de9222d9e0 Binary files /dev/null and b/icons/mob/human_races/r_diona.dmi differ diff --git a/icons/mob/human_races/r_machine.dmi b/icons/mob/human_races/r_machine.dmi new file mode 100644 index 00000000000..eecc5dd04f8 Binary files /dev/null and b/icons/mob/human_races/r_machine.dmi differ diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi index 49399082f6e..43432f18f31 100644 Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index 6ce20a48e94..1a7b6030ecf 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 354a0b6fbf8..fc06f3d110a 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi index 80054cc58be..c38e62443f1 100644 Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi index d183cb81488..7db3c3ee819 100644 Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index f3af00ae939..ec7b9bdcc96 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index d1f0b3c3393..39df84a2c55 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index c4c5d20eca3..3fb0917c65e 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 8e99ed4bf4f..cfc752a7a13 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/contraband.dmi b/icons/obj/contraband.dmi index 75f63eb4a99..dea098484e5 100644 Binary files a/icons/obj/contraband.dmi and b/icons/obj/contraband.dmi differ diff --git a/icons/obj/doors/rapid_pdoor.dmi b/icons/obj/doors/rapid_pdoor.dmi index 7d215c2ae66..06cf038c767 100644 Binary files a/icons/obj/doors/rapid_pdoor.dmi and b/icons/obj/doors/rapid_pdoor.dmi differ diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi index d2abe08214a..54610e3fe68 100644 Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 2a48f951e87..626af845c19 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index 5bf7d263f3d..d95c7ca76b1 100644 Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ diff --git a/icons/obj/pipes/disposal.dmi b/icons/obj/pipes/disposal.dmi index 709344a6782..d96b98c8e08 100644 Binary files a/icons/obj/pipes/disposal.dmi and b/icons/obj/pipes/disposal.dmi differ diff --git a/icons/obj/power.dmi b/icons/obj/power.dmi index b0130821d4d..01a6d24aeeb 100644 Binary files a/icons/obj/power.dmi and b/icons/obj/power.dmi differ diff --git a/icons/obj/power_cond_blue.dmi b/icons/obj/power_cond_blue.dmi deleted file mode 100644 index e224fa549c3..00000000000 Binary files a/icons/obj/power_cond_blue.dmi and /dev/null differ diff --git a/icons/obj/power_cond_cyan.dmi b/icons/obj/power_cond_cyan.dmi deleted file mode 100644 index 34d981f55f7..00000000000 Binary files a/icons/obj/power_cond_cyan.dmi and /dev/null differ diff --git a/icons/obj/power_cond_green.dmi b/icons/obj/power_cond_green.dmi deleted file mode 100644 index c8aa279bc29..00000000000 Binary files a/icons/obj/power_cond_green.dmi and /dev/null differ diff --git a/icons/obj/power_cond_orange.dmi b/icons/obj/power_cond_orange.dmi deleted file mode 100644 index e3c3d0aa8c8..00000000000 Binary files a/icons/obj/power_cond_orange.dmi and /dev/null differ diff --git a/icons/obj/power_cond_pink.dmi b/icons/obj/power_cond_pink.dmi deleted file mode 100644 index 931d486e1e2..00000000000 Binary files a/icons/obj/power_cond_pink.dmi and /dev/null differ diff --git a/icons/obj/power_cond_red.dmi b/icons/obj/power_cond_red.dmi deleted file mode 100644 index 962936479ae..00000000000 Binary files a/icons/obj/power_cond_red.dmi and /dev/null differ diff --git a/icons/obj/power_cond_white.dmi b/icons/obj/power_cond_white.dmi index 9036341ee13..bf32a97fa30 100644 Binary files a/icons/obj/power_cond_white.dmi and b/icons/obj/power_cond_white.dmi differ diff --git a/icons/obj/power_cond_yellow.dmi b/icons/obj/power_cond_yellow.dmi deleted file mode 100644 index 7506cc23857..00000000000 Binary files a/icons/obj/power_cond_yellow.dmi and /dev/null differ diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi index c8477d7838a..dba0bf3dfa5 100644 Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ diff --git a/icons/turf/areas.dmi b/icons/turf/areas.dmi index 27d974910bb..cbbc5232d05 100755 Binary files a/icons/turf/areas.dmi and b/icons/turf/areas.dmi differ diff --git a/icons/turf/shuttle.dmi b/icons/turf/shuttle.dmi index 2b193615bfc..c3f58bf3ec2 100644 Binary files a/icons/turf/shuttle.dmi and b/icons/turf/shuttle.dmi differ diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index 3b7c726b027..6c39d9ffa14 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -146,7 +146,7 @@ "acP" = (/obj/machinery/door/window/eastleft,/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/main) "acQ" = (/obj/machinery/atmospherics/unary/vent_scrubber,/turf/simulated/floor{icon_state = "bar"},/area/security/main) "acR" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "bar"},/area/security/main) -"acS" = (/obj/machinery/washing_machine,/turf/simulated/floor{icon_state = "bar"},/area/security/main) +"acS" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table/woodentable,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "acT" = (/turf/simulated/wall/r_wall,/area) "acU" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/security/prison) "acV" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prison) @@ -160,8 +160,8 @@ "add" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "red"},/area/security/range) "ade" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/range) "adf" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/range) -"adg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "bar"},/area/security/main) -"adh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "bar"},/area/security/main) +"adg" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "dark"},/area/security/hos) +"adh" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1},/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = -2; pixel_y = -2},/turf/simulated/floor{icon_state = "dark"},/area/security/main) "adi" = (/obj/structure/closet/secure_closet/injection,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor{icon_state = "dark"},/area/security/prison) "adj" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor{icon_state = "dark"},/area/security/prison) "adk" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/prison) @@ -203,7 +203,7 @@ "adU" = (/obj/machinery/power/apc{dir = 1; name = "Security Office APC"; pixel_x = 0; pixel_y = 24},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/packageWrap,/obj/item/weapon/pen,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/hand_labeler,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/main) "adV" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor{icon_state = "red"; dir = 5},/area/security/main) "adW" = (/turf/simulated/wall/r_wall,/area/security/hos) -"adX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/hos) +"adX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/floor{icon_state = "dark"},/area/security/main) "adY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/security/hos) "adZ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/ld50_syringe/choral{pixel_x = 3; pixel_y = 10},/obj/item/weapon/reagent_containers/ld50_syringe/choral{pixel_x = 3; pixel_y = 6},/obj/item/weapon/reagent_containers/ld50_syringe/choral{pixel_x = 3; pixel_y = 2},/obj/machinery/light/small,/turf/simulated/floor{icon_state = "dark"},/area/security/prison) "aea" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/security/prison) @@ -231,7 +231,7 @@ "aew" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j2s"; sortType = 7},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/main) "aex" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/wall/r_wall,/area/security/hos) "aey" = (/obj/machinery/disposal,/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1475; listening = 1; name = "Station Intercom (Security)"; pixel_x = -30; pixel_y = 0},/obj/structure/disposalpipe/trunk,/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Security's Desk"; departmentType = 5; name = "Head of Security RC"; pixel_x = 0; pixel_y = 30},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) -"aez" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table/woodentable,/turf/simulated/floor{icon_state = "dark"},/area/security/hos) +"aez" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/main) "aeA" = (/obj/structure/table/woodentable,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/reagent_containers/food/drinks/flask/barflask,/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "aeB" = (/obj/structure/closet/secure_closet/hos,/obj/machinery/power/apc{dir = 4; name = "Head of Security Office APC"; pixel_x = 27; pixel_y = 2},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "aeC" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prison) @@ -255,7 +255,7 @@ "aeU" = (/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/main) "aeV" = (/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},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/security/hos) "aeW" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "dark"},/area/security/hos) -"aeX" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) +"aeX" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/main) "aeY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "aeZ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "afa" = (/obj/structure/table/woodentable,/obj/item/weapon/folder/red,/obj/item/weapon/folder/red,/obj/item/weapon/cartridge/detective,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) @@ -285,7 +285,7 @@ "afy" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/security/main) "afz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/security/hos) "afA" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/security/hos) -"afB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/security/hos) +"afB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/security/hos) "afC" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{on = 0; pixel_x = -3; pixel_y = 8},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/security/hos) "afD" = (/obj/machinery/door_control{id = "Prison Gate"; name = "Prison Wing Lockdown"; pixel_x = -28; pixel_y = 7; req_access_txt = "2"},/obj/machinery/door_control{id = "Secure Gate"; name = "Brig Lockdown"; pixel_x = -28; pixel_y = -3; req_access_txt = "2"},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "afE" = (/obj/machinery/computer/secure_data,/turf/simulated/floor{icon_state = "dark"},/area/security/hos) @@ -1438,8 +1438,8 @@ "aBH" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/arrival/station) "aBI" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/arrival/station) "aBJ" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) -"aBK" = (/obj/structure/shuttle/window{tag = "icon-14"; icon_state = "14"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station) -"aBL" = (/obj/structure/shuttle/window{tag = "icon-17"; icon_state = "17"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station) +"aBK" = (/turf/simulated/floor{icon_state = "dark"},/area/security/main) +"aBL" = (/turf/simulated/floor{icon_state = "bar"},/area/security/main) "aBM" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/shuttle/arrival/station) "aBN" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/arrival/station) "aBO" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/camera{c_tag = "Arrivals East"; dir = 8; network = list("SS13")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry) @@ -1895,7 +1895,7 @@ "aKw" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aKx" = (/obj/structure/reagent_dispensers/beerkeg,/obj/machinery/requests_console{announcementConsole = 0; department = "Bar"; departmentType = 2; name = "Bar RC"; pixel_x = 0; pixel_y = 30},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aKy" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/camera{c_tag = "Bar North"; dir = 2},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/table/reinforced,/obj/machinery/chem_dispenser/soda,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) -"aKz" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/flask/barflask,/obj/item/weapon/reagent_containers/food/drinks/flask/barflask,/obj/item/weapon/reagent_containers/food/drinks/flask/vacuumflask,/obj/item/weapon/reagent_containers/food/drinks/flask/vacuumflask,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) +"aKz" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/reinforced,/obj/item/weapon/book/manual/barman_recipes,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aKA" = (/obj/machinery/power/apc{dir = 1; name = "Bar APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/stool/bed/chair/comfy/brown{icon_state = "comfychair_brown"; dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aKB" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aKC" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/stool/bed/chair/comfy/brown{dir = 8},/turf/simulated/floor/carpet,/area/crew_quarters/bar) @@ -1933,7 +1933,7 @@ "aLi" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main) "aLj" = (/obj/structure/table,/obj/machinery/light/small,/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main) "aLk" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/chapel/main) -"aLl" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod1/station) +"aLl" = (/obj/machinery/door/airlock/highsecurity{name = "Tactical Equipment"; req_access_txt = "58"},/turf/simulated/floor{icon_state = "dark"},/area/security/main) "aLm" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/arrival/station) "aLn" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) "aLo" = (/obj/structure/stool/bed/chair/comfy/beige,/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) @@ -1990,7 +1990,7 @@ "aMn" = (/obj/structure/disposalpipe/segment{dir = 4},/mob/living/carbon/monkey{name = "Pun Pun"; icon_state = "punpun1"},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aMo" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aMp" = (/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) -"aMq" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/reinforced,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/obj/item/weapon/lighter/zippo,/obj/item/weapon/book/manual/barman_recipes,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) +"aMq" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/reinforced,/obj/item/weapon/lighter/zippo,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aMr" = (/obj/structure/stool/bed/chair/comfy/brown{icon_state = "comfychair_brown"; dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aMs" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aMt" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 8},/turf/simulated/floor/carpet,/area/crew_quarters/bar) @@ -2518,7 +2518,7 @@ "aWv" = (/obj/structure/table/reinforced,/obj/machinery/light{dir = 1},/obj/machinery/faxmachine{anchored = 0; department = "Internal Affairs"},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) "aWw" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/hand_labeler,/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice) "aWx" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/camera{c_tag = "Chapel South"; dir = 8; network = list("SS13")},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) -"aWy" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod2/station) +"aWy" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/main) "aWz" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/secondary/exit) "aWA" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/hallway/secondary/exit) "aWB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/exit) @@ -2599,13 +2599,13 @@ "aXY" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/starboard) "aXZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/starboard) "aYa" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Library"},/turf/simulated/floor/carpet,/area/library) -"aYb" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station) +"aYb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{icon_state = "dark"},/area/security/main) "aYc" = (/obj/machinery/power/apc{dir = 1; name = "Cryogenic Storage APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep{name = "\improper Cryogenic Storage"}) "aYd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep{name = "\improper Cryogenic Storage"}) "aYe" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/floor/wood,/area/crew_quarters/sleep{name = "Security Wing Dormitories"}) "aYf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j1s"; sortType = 19},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aYg" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) -"aYh" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/mining/station) +"aYh" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "bar"},/area/security/main) "aYi" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/flora/pottedplant{tag = "icon-plant-06"; icon_state = "plant-06"},/turf/simulated/floor{icon_state = "neutral"},/area/crew_quarters/fitness) "aYj" = (/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) "aYk" = (/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/hallway/secondary/exit) @@ -4347,7 +4347,7 @@ "bFE" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bFF" = (/obj/structure/table,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/weapon/pen,/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 0; pixel_y = 30; pixel_z = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bFG" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bFH" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/research/station) +"bFH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/security/main) "bFI" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/surgery) "bFJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bFK" = (/obj/effect/landmark/start{name = "Medical Doctor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) @@ -4942,7 +4942,7 @@ "bRb" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bRc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci) "bRd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/quartermaster/office) -"bRe" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod5/station) +"bRe" = (/obj/machinery/washing_machine,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/security/main) "bRf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/toxins/misc_lab) "bRg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/office) "bRh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/toxins/misc_lab) @@ -5193,7 +5193,7 @@ "bVS" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bVT" = (/obj/machinery/atmospherics/binary/pump,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bVU" = (/obj/machinery/power/apc{dir = 4; name = "Incinerator APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) -"bVV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) +"bVV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/security/main) "bVW" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-y"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/aft) "bVX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Construction Area Maintenance"; req_access_txt = "32"},/turf/simulated/floor/plating,/area/construction) "bVY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/construction) @@ -5238,7 +5238,7 @@ "bWL" = (/turf/simulated/floor/engine,/area/toxins/telesci) "bWM" = (/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor/engine,/area/toxins/telesci) "bWN" = (/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/toxins/xenobiology) -"bWO" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hardsuits"; req_access_txt = "10"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) +"bWO" = (/obj/structure/closet/wardrobe/tactical,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/main) "bWP" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall/r_wall,/area/toxins/telesci) "bWQ" = (/obj/machinery/shieldwallgen{req_access = list(55)},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci) "bWR" = (/obj/machinery/door/window/southright{dir = 1; name = "Test Chamber"; req_access_txt = "47"},/obj/machinery/door/window/southright{name = "Test Chamber"; req_access_txt = "47"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "misclab"; name = "Test Chamber Blast Doors"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci) @@ -5318,7 +5318,7 @@ "bYn" = (/obj/machinery/power/apc{name = "Aft Hall APC"; dir = 8; pixel_x = -25; pixel_y = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "bYo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/hallway/primary/aft) "bYp" = (/turf/simulated/floor,/area/hallway/primary/aft) -"bYq" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) +"bYq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/security/hos) "bYr" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) "bYs" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/atmos) "bYt" = (/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor,/area/atmos) @@ -5406,7 +5406,7 @@ "bZX" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor{icon_state = "arrival"; dir = 8},/area/atmos) "bZY" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; dir = 9; icon_state = "intact-c"; level = 2},/turf/simulated/wall/r_wall,/area/atmos) "bZZ" = (/obj/machinery/camera{c_tag = "Atmospherics Access"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; dir = 6; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos) -"caa" = (/obj/structure/dispenser,/turf/simulated/floor,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) +"caa" = (/obj/structure/shuttle/window{tag = "icon-14"; icon_state = "14"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station) "cab" = (/obj/machinery/space_heater,/obj/structure/sign/atmosplaque{pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/atmos) "cac" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/obj/structure/closet/fireaxecabinet{pixel_y = -32},/obj/machinery/space_heater,/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/atmos) "cad" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/space_heater,/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/atmos) @@ -5524,12 +5524,12 @@ "ccl" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "ccm" = (/obj/machinery/camera{c_tag = "Engineering EVA South"; dir = 4; network = list("SS13")},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig,/turf/simulated/floor,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) "ccn" = (/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/machinery/door/airlock/engineering{name = "Engineering Secure Storage"; req_access_txt = "11"},/turf/simulated/floor/plating,/area/engine/storage_hard) -"cco" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/machinery/door/airlock/maintenance_hatch{name = "Port SMES"; req_access_txt = "11"},/turf/simulated/floor,/area/engine/engine_smes) +"cco" = (/obj/structure/shuttle/window{tag = "icon-17"; icon_state = "17"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station) "ccp" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/aft) -"ccq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance_hatch{frequency = 1233; icon_state = "door_closed"; id_tag = "engine_airlock_exterior"; locked = 0; name = "Engine Access"; req_access_txt = "10"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine{name = "Engine Room"}) -"ccr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) -"ccs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance_hatch{name = "Starboard SMES"; req_access_txt = "11"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/engine_smes) -"cct" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance_hatch{icon_state = "door_closed"; id_tag = "engine_airlock_interior"; locked = 0; name = "Engine Access"; req_access_txt = "10"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) +"ccq" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod1/station) +"ccr" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod2/station) +"ccs" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station) +"cct" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/mining/station) "ccu" = (/turf/simulated/wall/r_wall,/area/crew_quarters/sleep_male/toilet_male{name = "\improper Engineering Washroom"}) "ccv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/power/apc{dir = 2; name = "Engineering Washroom APC"; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 8; icon_state = "whiteyellowcorner"},/area/crew_quarters/sleep_male/toilet_male{name = "\improper Engineering Washroom"}) "ccw" = (/obj/machinery/camera{c_tag = "Atmospherics West"; dir = 4; network = list("SS13")},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor,/area/atmos) @@ -5569,15 +5569,15 @@ "cde" = (/turf/simulated/wall/r_wall,/area/engine/break_room) "cdf" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/aft) "cdg" = (/obj/structure/toilet{dir = 8},/obj/structure/window/reinforced/tinted{dir = 1},/obj/structure/window/reinforced/tinted{dir = 1},/obj/structure/window/reinforced/tinted{dir = 1},/obj/structure/window/reinforced/tinted{dir = 1},/obj/machinery/light/small{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "whiteyellowcorner"},/area/crew_quarters/sleep_male/toilet_male{name = "\improper Engineering Washroom"}) -"cdh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) +"cdh" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/research/station) "cdi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/machinery/door/window/westright{dir = 4; name = "Engineering Toilet"; opacity = 1},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor{dir = 2; icon_state = "whiteyellowcorner"},/area/crew_quarters/sleep_male/toilet_male{name = "\improper Engineering Washroom"}) "cdj" = (/obj/machinery/door/airlock/engineering{name = "Engineering Washroom"; req_access_txt = "11"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/crew_quarters/sleep_male/toilet_male{name = "\improper Engineering Washroom"}) "cdk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/genetics_cloning) "cdl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{dir = 8; icon_state = "yellowcorner"},/area/engine/break_room) "cdm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/engine/storage_hard) -"cdn" = (/obj/machinery/power/smes,/obj/structure/cable,/obj/structure/cable,/turf/simulated/floor,/area/engine/engine_smes) -"cdo" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 1; dir = 2; on = 1; req_access_txt = "56"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"cdp" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Main"; req_access_txt = "10"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/chiefs_office) +"cdn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light{dir = 1},/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor,/area/engine/engineering) +"cdo" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) +"cdp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor,/area/engine/engineering) "cdq" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor,/area/atmos) "cdr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor,/area/atmos) "cds" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/atmos) @@ -5619,23 +5619,23 @@ "cec" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "solar_xeno_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "ced" = (/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/maintenance/aft) "cee" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/aft) -"cef" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"cef" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/engine/engineering) "ceg" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/obj/structure/table/reinforced,/obj/item/weapon/rcd,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "ceh" = (/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},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cei" = (/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 = "EngineVent"; name = "Engine Ventillatory Control"; pixel_x = 0; pixel_y = 24; req_access_txt = "11"},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cej" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cek" = (/obj/machinery/computer/atmos_alert,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cel" = (/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) +"cel" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/engine/engineering) "cem" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 2; icon_state = "caution"},/area/engine/break_room) "cen" = (/obj/machinery/shieldgen,/turf/simulated/floor/plating,/area/engine/storage_hard) "ceo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{dir = 2; icon_state = "caution"},/area/engine/break_room) "cep" = (/obj/machinery/camera{c_tag = "Engineering Foyer Southwest"; dir = 4; network = list("SS13")},/turf/simulated/floor{dir = 10; icon_state = "caution"},/area/engine/break_room) "ceq" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/camera{c_tag = "Engineering Lobby"; dir = 4; network = list("SS13")},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft) "cer" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/obj/machinery/meter,/obj/structure/disposalpipe/junction{dir = 8},/turf/simulated/floor,/area/atmos) -"ces" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"ces" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "warningcorner"; dir = 1},/area/engine/engineering) "cet" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) -"ceu" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/machinery/light_switch{pixel_y = -25},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/machinery/camera/xray{c_tag = "Engineering Core Airlock"; dir = 1},/turf/simulated/floor,/area/engine) -"cev" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Storage"; req_access_txt = "10"; req_one_access_txt = "11;24"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/storage) +"ceu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/power/terminal,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "warning"},/area/engine/engineering) +"cev" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) "cew" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft) "cex" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 6},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/atmos) "cey" = (/obj/machinery/atmospherics/unary/vent_pump,/turf/simulated/floor,/area/atmos) @@ -5664,7 +5664,7 @@ "ceV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) "ceW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "solar_xeno_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "10;13"},/turf/simulated/floor/plating/airless,/area/solar/starboard) "ceX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft) -"ceY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"ceY" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hardsuits"; req_access_txt = "10"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) "ceZ" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/space/rig/elite,/obj/item/clothing/shoes/magboots,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/elite,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cfa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) "cfb" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/junction{icon_state = "pipe-y"; dir = 1},/turf/simulated/floor,/area/hallway/primary/aft) @@ -5674,12 +5674,12 @@ "cff" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/break_room) "cfg" = (/turf/simulated/floor/plating,/area/engine/storage_hard) "cfh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/break_room) -"cfi" = (/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Storage"; req_access_txt = "10"; req_one_access_txt = "11;24"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/storage) -"cfj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{dir = 10; icon_state = "caution"},/area/engine/break_room) +"cfi" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "warningcorner"; dir = 2},/area/engine/engineering) +"cfj" = (/obj/structure/disposalpipe/segment,/obj/machinery/power/terminal,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "warning"},/area/engine/engineering) "cfk" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/hallway/primary/aft) "cfl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "caution"},/area/engine/break_room) "cfm" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor,/area/hallway/primary/aft) -"cfn" = (/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Storage"; req_access_txt = "10"; req_one_access_txt = "11;24"},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/storage) +"cfn" = (/obj/machinery/power/terminal,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "warning"},/area/engine/engineering) "cfo" = (/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/atmos) "cfp" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"},/area/crew_quarters/sleep/engi) "cfq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"},/area/crew_quarters/sleep/engi) @@ -5710,7 +5710,7 @@ "cfP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cfQ" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = 30},/obj/machinery/camera{c_tag = "Xenobiology Module North"; dir = 2; network = list("SS13","Research"); pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cfR" = (/obj/machinery/embedded_controller/radio/access_controller{exterior_door_tag = "xeno_airlock_exterior"; id_tag = "xeno_airlock_control"; interior_door_tag = "xeno_airlock_interior"; name = "Xenobiology Access Console"; pixel_x = 8; pixel_y = 22},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light_switch{pixel_x = -6; pixel_y = 26},/turf/simulated/floor{dir = 4; icon_state = "whitegreencorner"},/area/toxins/xenobiology) -"cfS" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 6; icon_state = "caution"},/area/engine/break_room) +"cfS" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) "cfT" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Xenobiology APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 1; icon_state = "whitegreencorner"},/area/toxins/xenobiology) "cfU" = (/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cfV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/solar/starboard) @@ -5722,12 +5722,12 @@ "cgb" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room) "cgc" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room) "cgd" = (/obj/machinery/computer/station_alert,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cge" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 10; icon_state = "caution"},/area/engine/break_room) -"cgf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"cge" = (/obj/machinery/camera{c_tag = "Engineering SMES"; dir = 1; network = list("SS13")},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) +"cgf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/engine/engineering) "cgg" = (/obj/structure/table/reinforced,/obj/machinery/computer/skills{icon_state = "medlaptop"},/obj/item/weapon/lighter/zippo,/obj/item/weapon/storage/fancy/cigarettes,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cgh" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"},/area/crew_quarters/sleep/engi) "cgi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/engineering{name = "Engineering Dormitories"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/crew_quarters/sleep/engi) -"cgj" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Foyer"; req_one_access_txt = "11;24"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/break_room) +"cgj" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/engine/engineering) "cgk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/break_room) "cgl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor,/area/engine/break_room) "cgm" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/stamp/ce,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/device/megaphone,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) @@ -5741,7 +5741,7 @@ "cgu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/aft) "cgv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cgw" = (/obj/machinery/camera{c_tag = "Engineering Secure Storage"; dir = 4; network = list("SS13")},/obj/machinery/shieldgen,/turf/simulated/floor/plating,/area/engine/storage_hard) -"cgx" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Foyer"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/break_room) +"cgx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/engine/engineering) "cgy" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/aft) "cgz" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 4; icon_state = "caution"},/area/engine/break_room) "cgA" = (/obj/structure/closet/toolcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/engine/break_room) @@ -5782,7 +5782,7 @@ "chj" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "chk" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "chl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"chm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"chm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) "chn" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"},/area/crew_quarters/sleep/engi) "cho" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/break_room) "chp" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/engine/break_room) @@ -5790,7 +5790,7 @@ "chr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/break_room) "chs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/engine/break_room) "cht" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/hallway/primary/aft) -"chu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/engine/break_room) +"chu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/simulated/floor,/area/engine/engineering) "chv" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/engine/break_room) "chw" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/light,/turf/simulated/floor,/area/hallway/primary/aft) "chx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/hallway/primary/aft) @@ -5826,26 +5826,26 @@ "cib" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cic" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cid" = (/obj/machinery/power/apc{dir = 4; name = "CE Office APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cie" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hardsuits"; req_access_txt = "10"; req_one_access_txt = "11;24"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) -"cif" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) +"cie" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) +"cif" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"},/turf/simulated/floor,/area/engine/engineering) "cig" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor,/area/engine/break_room) "cih" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor,/area/engine/break_room) "cii" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/break_room) "cij" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/break_room) -"cik" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor,/area/engine/break_room) +"cik" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/turf/simulated/floor,/area/engine/engineering) "cil" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Engineering Desk"; req_access_txt = "32"},/turf/simulated/floor,/area/engine/break_room) "cim" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/aft) "cin" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/hallway/primary/aft) -"cio" = (/obj/structure/stool/bed/chair/office/light,/obj/effect/landmark/start{name = "Chief Engineer"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"cio" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/engine/engineering) "cip" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/hallway/primary/aft) "ciq" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) "cir" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) -"cis" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) +"cis" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/engine/engineering) "cit" = (/turf/simulated/wall/r_wall,/area/crew_quarters/sleep/engi) "ciu" = (/turf/simulated/wall,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) "civ" = (/obj/machinery/camera{c_tag = "Atmospherics South West"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; icon_state = "intact-r"; level = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/atmos) -"ciw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) -"cix" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) +"ciw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engine Control Room"; req_one_access_txt = "11"},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/engine/engineering) +"cix" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/engine/engineering) "ciy" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/engine/break_room) "ciz" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; icon_state = "intact-c"; level = 2},/turf/simulated/floor,/area/atmos) "ciA" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; frequency = 1439; icon_state = "off"; id_tag = null; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/table,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/machinery/light,/obj/structure/reagent_dispensers/virusfood{pixel_x = -30},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/medical/virology) @@ -5865,11 +5865,11 @@ "ciO" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/starboard) "ciP" = (/turf/simulated/floor/plating/airless,/area/solar/starboard) "ciQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/aft) -"ciR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/chiefs_office) -"ciS" = (/obj/machinery/power/monitor,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 4; icon_state = "caution"},/area/engine/break_room) -"ciT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/chiefs_office) -"ciU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/chiefs_office) -"ciV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"ciR" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"ciS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/maintenance_hatch{icon_state = "door_closed"; id_tag = "engine_airlock_exterior"; locked = 0; name = "Engine Access"; req_access_txt = "10"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/engineering) +"ciT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/engine/engineering) +"ciU" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/engine/engineering) +"ciV" = (/obj/structure/dispenser{plasmatanks = 0},/turf/simulated/floor,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) "ciW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/engine/break_room) "ciX" = (/obj/structure/table/reinforced{icon_state = "table"},/obj/item/weapon/folder/yellow,/turf/simulated/floor,/area/engine/break_room) "ciY" = (/obj/structure/table/reinforced{icon_state = "table"},/obj/item/clothing/glasses/welding,/turf/simulated/floor,/area/engine/break_room) @@ -5965,17 +5965,17 @@ "ckK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/aft) "ckL" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera/xray{c_tag = "Engineering Washroom"},/turf/simulated/floor{dir = 2; icon_state = "whiteyellowcorner"},/area/crew_quarters/sleep_male/toilet_male{name = "\improper Engineering Washroom"}) "ckM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "whiteyellowcorner"},/area/crew_quarters/sleep_male/toilet_male{name = "\improper Engineering Washroom"}) -"ckN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/engine/break_room) +"ckN" = (/turf/simulated/wall/r_wall,/area/engine/engine_airlock) "ckO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "caution"},/area/engine/break_room) -"ckP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/engine/break_room) +"ckP" = (/obj/machinery/power/apc{dir = 1; name = "Engine Room Airlock APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/engine/engine_airlock) "ckQ" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor{dir = 4; icon_state = "caution"},/area/engine/break_room) "ckR" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor,/area/engine/break_room) "ckS" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/closet/wardrobe/engineering_yellow,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi) "ckT" = (/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/chiefs_office) "ckU" = (/turf/simulated/wall/r_wall,/area/engine/engineering) -"ckV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) -"ckW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/engine/engineering) -"ckX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"ckV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/engine/engine_airlock) +"ckW" = (/obj/machinery/light_switch{pixel_x = 0; pixel_y = 27},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/engine/engine_airlock) +"ckX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/floor,/area/engine/engine_monitoring) "ckY" = (/obj/structure/closet/wardrobe/engineering_yellow,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/engine/break_room) "ckZ" = (/obj/machinery/computer/security/engineering,/turf/simulated/floor{dir = 4; icon_state = "caution"},/area/engine/break_room) "cla" = (/obj/machinery/door/airlock/engineering{name = "Engineering Washroom"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/crew_quarters/sleep/engi) @@ -6042,7 +6042,7 @@ "cmj" = (/obj/structure/closet/wardrobe/black,/obj/machinery/camera{c_tag = "Aft Port Solar Access"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/aft) "cmk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft) "cml" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/engine/break_room) -"cmm" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Main"; req_access_txt = "10"; req_one_access_txt = "11;24"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/chiefs_office) +"cmm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/engine/engine_monitoring) "cmn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/engine/break_room) "cmo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor{dir = 2; icon_state = "caution"},/area/engine/break_room) "cmp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/newscaster{pixel_y = -30},/turf/simulated/floor{dir = 2; icon_state = "caution"},/area/engine/break_room) @@ -6076,9 +6076,9 @@ "cmR" = (/turf/simulated/wall/r_wall,/area/engine/storage) "cmS" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/engine/storage) "cmT" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "caution"},/area/engine/break_room) -"cmU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable,/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/storage) -"cmV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/storage) -"cmW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/storage) +"cmU" = (/obj/machinery/vending/coffee,/turf/simulated/floor,/area/engine/engine_monitoring) +"cmV" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/simulated/floor,/area/engine/engine_monitoring) +"cmW" = (/obj/structure/closet/radiation,/turf/simulated/floor,/area/engine/engine_monitoring) "cmX" = (/obj/machinery/camera{c_tag = "Engineering West"; dir = 4; network = list("SS13")},/turf/simulated/floor,/area/engine/engineering) "cmY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/engine/engineering) "cmZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) @@ -6115,7 +6115,7 @@ "cnE" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/vending/tool,/turf/simulated/floor,/area/engine/storage) "cnF" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "misclab"; name = "Test Chamber Blast Doors"; opacity = 0},/obj/machinery/door/window/southright{tag = "icon-left (WEST)"; name = "Test Chamber"; icon_state = "left"; dir = 8; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/floor/engine,/area/toxins/telesci) "cnG" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/turf/simulated/floor,/area/engine/storage) -"cnH" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/engine/storage) +"cnH" = (/turf/simulated/wall/r_wall,/area/engine/engine_monitoring) "cnI" = (/obj/machinery/light{dir = 1},/obj/structure/closet/secure_closet/engineering_personal,/turf/simulated/floor,/area/engine/engineering) "cnJ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/engine/engineering) "cnK" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) @@ -6162,16 +6162,16 @@ "coz" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Storage APC"; pixel_x = -26; pixel_y = 3},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/engine/storage) "coA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/engine/storage) "coB" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/engine/storage) -"coC" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) +"coC" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor,/area/engine/engine_monitoring) "coD" = (/obj/structure/table,/obj/item/device/radio/off{pixel_y = 6},/obj/item/device/radio/off{pixel_x = 6; pixel_y = 4},/obj/item/device/radio/off{pixel_x = -6; pixel_y = 4},/obj/item/device/radio/off,/turf/simulated/floor,/area/engine/storage) "coE" = (/turf/simulated/floor,/area/engine/storage) "coF" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Engineering"; departmentType = 4; name = "Engineering RC"; pixel_x = 30; pixel_y = 0},/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/engine/storage) "coG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor,/area/engine/engineering) "coH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) "coI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/engine/engineering) -"coJ" = (/obj/machinery/camera{c_tag = "Engineering East"},/obj/machinery/computer/security/telescreen{desc = "Used for watching the singularity chamber."; dir = 8; layer = 4; name = "Supermatter Engine Telescreen"; network = list("Supermatter"); pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) +"coJ" = (/obj/structure/closet/emcloset,/turf/simulated/floor,/area/engine/engine_monitoring) "coK" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/simulated/floor,/area/engine/engineering) -"coL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/engine/engineering) +"coL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/engine_monitoring) "coM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Engineering APC"; pixel_y = 24},/turf/simulated/floor,/area/engine/engineering) "coN" = (/obj/machinery/light{dir = 1},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/engine/engineering) "coO" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal,/turf/simulated/floor,/area/engine/engineering) @@ -6183,9 +6183,9 @@ "coU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/aft) "coV" = (/obj/machinery/shield_capacitor,/turf/simulated/floor/plating,/area/engine/storage_hard) "coW" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/shield_capacitor,/turf/simulated/floor/plating,/area/engine/storage_hard) -"coX" = (/obj/machinery/power/terminal,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/engine/engine_smes) -"coY" = (/obj/machinery/power/terminal,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/engine/engine_smes) -"coZ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/power/terminal,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/engine/engine_smes) +"coX" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor,/area/engine/engine_monitoring) +"coY" = (/obj/machinery/light_switch{pixel_x = 27; pixel_y = 0},/turf/simulated/floor,/area/engine/engine_monitoring) +"coZ" = (/obj/machinery/power/apc{dir = 8; name = "Engine Monitoring Room APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/engine/engine_monitoring) "cpa" = (/turf/simulated/wall,/area/engine/storage) "cpb" = (/obj/structure/closet/secure_closet/engineering_welding,/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/turf/simulated/floor,/area/engine/storage) "cpc" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/engine/storage) @@ -6199,12 +6199,12 @@ "cpk" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) "cpl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) "cpm" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor,/area/engine/engineering) -"cpn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/engine/engineering) -"cpo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/engineering) +"cpn" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/engine/engine_monitoring) +"cpo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/engine/engine_monitoring) "cpp" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor,/area/engine/engineering) "cpq" = (/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/turf/simulated/floor,/area/engine/engineering) "cpr" = (/obj/machinery/light/small{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cps" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/power/terminal,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/engine/engine_smes) +"cps" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/engine/engine_monitoring) "cpt" = (/obj/structure/closet/secure_closet/engineering_electrical,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/engine/storage) "cpu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/engine/storage) "cpv" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/engine/storage) @@ -6215,12 +6215,12 @@ "cpA" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/closet/secure_closet/engineering_personal,/turf/simulated/floor,/area/engine/engineering) "cpB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor,/area/engine/engineering) "cpC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor,/area/engine/engineering) -"cpD" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/engine/engineering) -"cpE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/engine/engineering) +"cpD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/engine/engine_airlock) +"cpE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/machinery/camera{c_tag = "Engine Room Airlock"; dir = 4; network = list("SS13","Supermatter"); pixel_y = 0},/turf/simulated/floor,/area/engine/engine_airlock) "cpF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/engine/engineering) "cpG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/engine/engineering) "cpH" = (/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"; pixel_x = 0},/turf/simulated/floor,/area/engine/engineering) -"cpI" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/engine/engineering) +"cpI" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor,/area/engine/engine_airlock) "cpJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet/wardrobe/engineering_yellow,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi) "cpK" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -30; pixel_y = 0},/obj/machinery/camera{c_tag = "Chief Engineer's Office Southwest"; dir = 4; network = list("SS13")},/turf/simulated/floor{dir = 10; icon_state = "caution"},/area/engine/break_room) "cpL" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/medical/virology) @@ -6230,12 +6230,12 @@ "cpP" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/lattice,/turf/space,/area) "cpQ" = (/obj/machinery/shield_gen,/turf/simulated/floor/plating,/area/engine/storage_hard) "cpR" = (/obj/machinery/light,/obj/machinery/power/port_gen,/turf/simulated/floor/plating,/area/engine/storage_hard) -"cpS" = (/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/plating,/area/engine/storage_hard) +"cpS" = (/obj/structure/closet/emcloset,/turf/simulated/floor,/area/engine/engine_airlock) "cpT" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab) "cpU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/aft) -"cpV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/storage) -"cpW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/storage) -"cpX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/storage) +"cpV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/engine/engine_airlock) +"cpW" = (/obj/machinery/shower{icon_state = "shower"; dir = 4},/turf/simulated/floor,/area/engine/engine_airlock) +"cpX" = (/obj/structure/table/reinforced,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor,/area/engine/engine_monitoring) "cpY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor,/area/engine/engineering) "cpZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) "cqa" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/engine/engineering) @@ -6244,23 +6244,23 @@ "cqd" = (/obj/structure/closet/crate/radiation{desc = "A crate with a radiation sign on it. For the love of god, use protection."; name = "Radiation Suit Crate"; req_access_txt = "56"},/turf/simulated/floor/plating,/area/engine/storage_hard) "cqe" = (/obj/machinery/camera{c_tag = "Misc Research Chamber"; dir = 8; network = list("SS13","Research")},/turf/simulated/floor/engine,/area/toxins/misc_lab) "cqf" = (/obj/machinery/door/poddoor{desc = "By gods, release the hounds!"; id = "xenobioout6"; name = "Containment Release"},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cqg" = (/obj/machinery/light{dir = 1},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/engine/storage_hard) +"cqg" = (/turf/simulated/floor,/area/engine/engine_monitoring) "cqh" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor/plating,/area/engine/storage_hard) "cqi" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area/engine/storage_hard) "cqj" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/shieldwallgen,/turf/simulated/floor/plating,/area/engine/storage_hard) "cqk" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 4; name = "Engineering Hard Storage"; pixel_x = 26; pixel_y = 0},/turf/simulated/floor/plating,/area/engine/storage_hard) "cql" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/engine/engineering) -"cqm" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/engine/engineering) +"cqm" = (/obj/structure/stool/bed/chair/office/dark,/turf/simulated/floor,/area/engine/engine_monitoring) "cqn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"cqo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/engine/engineering) -"cqp" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"cqq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor,/area/engine/engineering) -"cqr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor,/area/engine/engineering) -"cqs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"cqt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"cqu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/engine/engineering) -"cqv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor,/area/engine/engineering) -"cqw" = (/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},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "caution"; dir = 5},/area/engine/break_room) +"cqo" = (/obj/structure/table/reinforced,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor,/area/engine/engine_monitoring) +"cqp" = (/obj/structure/stool/bed/chair/office/dark,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engine_monitoring) +"cqq" = (/obj/machinery/computer/station_alert,/turf/simulated/floor,/area/engine/engine_monitoring) +"cqr" = (/obj/structure/cable,/obj/machinery/power/monitor{name = "Main Power Grid Monitoring"},/turf/simulated/floor,/area/engine/engine_monitoring) +"cqs" = (/obj/machinery/computer/security/engineering,/turf/simulated/floor,/area/engine/engine_monitoring) +"cqt" = (/obj/machinery/light,/obj/structure/table/reinforced,/obj/machinery/door_control{desc = "A remote control-switch for the engine control room blast doors."; id = "EngineBlast"; name = "Engine Room Blast Doors"; pixel_x = 0; pixel_y = 0; req_access_txt = "10"},/obj/machinery/camera{c_tag = "Engine Monitoring Room"; dir = 1},/turf/simulated/floor,/area/engine/engine_monitoring) +"cqu" = (/obj/machinery/computer/general_air_control{frequency = 1441; name = "Engine Pressure Monitor"; sensors = list("engine_sensor" = "Engine Chamber")},/turf/simulated/floor,/area/engine/engine_monitoring) +"cqv" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/monitor{name = "Engine Power Monitoring"},/turf/simulated/floor,/area/engine/engine_monitoring) +"cqw" = (/obj/machinery/computer/security/engineering{name = "Engine Room Cameras"; network = list("Supermatter")},/turf/simulated/floor,/area/engine/engine_monitoring) "cqx" = (/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics"; req_access_txt = "24"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/atmos) "cqy" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) "cqz" = (/obj/structure/closet/secure_closet/engineering_welding,/obj/machinery/camera{c_tag = "Engineering Foyer Northwest"; dir = 4; network = list("SS13")},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -30; pixel_y = 0},/turf/simulated/floor{dir = 9; icon_state = "caution"},/area/engine/break_room) @@ -6273,20 +6273,20 @@ "cqG" = (/obj/machinery/shieldwallgen,/turf/simulated/floor/plating,/area/engine/storage_hard) "cqH" = (/turf/simulated/wall,/area/engine/storage_hard) "cqI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/engine/engineering) -"cqJ" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/engineering) +"cqJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/engine/engine_airlock) "cqK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Engineering Southwest"; dir = 1; network = list("SS13")},/turf/simulated/floor,/area/engine/engineering) -"cqL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/engine/engineering) +"cqL" = (/obj/structure/table,/obj/item/weapon/book/manual/supermatter_engine,/turf/simulated/floor,/area/engine/engine_airlock) "cqM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"cqN" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"cqO" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"cqP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor,/area/engine/engineering) -"cqQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"cqR" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"cqS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"cqT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor,/area/engine/engineering) -"cqU" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/engine/engineering) -"cqV" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/engine/engineering) -"cqW" = (/obj/machinery/camera{c_tag = "Engineering Southeast"; dir = 1; network = list("SS13")},/turf/simulated/floor,/area/engine/engineering) +"cqN" = (/obj/structure/closet/radiation,/obj/item/clothing/glasses/meson,/turf/simulated/floor,/area/engine/engine_airlock) +"cqO" = (/turf/simulated/wall/r_wall,/area/engine/engine_room) +"cqP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance_hatch{icon_state = "door_closed"; id_tag = "engine_airlock_interior"; locked = 0; name = "Engine Access"; req_access_txt = "10"},/turf/simulated/floor/plating,/area/engine/engine_room) +"cqQ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/engine/engine_room) +"cqR" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; dir = 4; icon_state = "pdoor0"; id = "EngineBlast"; layer = 2.7; name = "Engine Monitoring Room Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engine_room) +"cqS" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; dir = 4; icon_state = "pdoor0"; id = "EngineBlast"; layer = 2.7; name = "Engine Monitoring Room Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engine_room) +"cqT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; dir = 4; icon_state = "pdoor0"; id = "EngineBlast"; layer = 2.7; name = "Engine Monitoring Room Blast Doors"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engine_room) +"cqU" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Main"; req_access_txt = "10"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/chiefs_office) +"cqV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/obj/structure/cable,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/engine/storage) +"cqW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/engine/storage) "cqX" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/atmos) "cqY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) "cqZ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/aft) @@ -6299,122 +6299,122 @@ "crg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"},/area/crew_quarters/sleep/engi) "crh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/engine/break_room) "cri" = (/obj/structure/bookcase/manuals/engineering,/turf/simulated/floor{dir = 5; icon_state = "caution"},/area/engine/break_room) -"crj" = (/turf/simulated/wall/r_wall,/area/engine/engine_smes) +"crj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable,/obj/structure/cable,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/engine/storage) "crk" = (/obj/structure/table,/obj/item/weapon/book/manual/engineering_construction,/obj/machinery/light{dir = 1},/obj/item/weapon/book/manual/evaguide{pixel_x = -2; pixel_y = 7},/turf/simulated/floor{dir = 1; icon_state = "caution"},/area/engine/break_room) -"crl" = (/turf/simulated/wall/r_wall,/area/engine{name = "Engine Room"}) +"crl" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Storage"; req_access_txt = "10"; req_one_access_txt = "11;24"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/storage) "crm" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "crn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cro" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/junction{icon_state = "pipe-y"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/aft) "crp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/engine,/area/toxins/misc_lab) "crq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/turf/simulated/floor/plating,/area/atmos) -"crr" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) +"crr" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/storage) "crs" = (/obj/machinery/recharge_station,/turf/simulated/floor,/area/atmos) "crt" = (/obj/structure/sign/securearea{name = "ENGINEERING ACCESS"; pixel_x = -32},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cru" = (/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/simulated/floor,/area/crew_quarters/sleep/engi) "crv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/engine/break_room) "crw" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowcorner"},/area/crew_quarters/sleep_male/toilet_male{name = "\improper Engineering Washroom"}) -"crx" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/engine/engine_smes) +"crx" = (/obj/machinery/camera{c_tag = "Engineering East"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) "cry" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engine/break_room) -"crz" = (/obj/machinery/shower{icon_state = "shower"; dir = 4},/turf/simulated/floor,/area/engine{name = "Engine Room"}) -"crA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/engine{name = "Engine Room"}) -"crB" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/engine{name = "Engine Room"}) +"crz" = (/obj/structure/dispenser{oxygentanks = 0},/turf/simulated/floor/plating,/area/engine/storage_hard) +"crA" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/engine/storage_hard) +"crB" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/engine/storage_hard) "crC" = (/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab) "crD" = (/obj/structure/closet/toolcloset,/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/engine/break_room) "crE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/engine,/area/toxins/misc_lab) "crF" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/table,/obj/item/device/radio/electropack,/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/floor/engine,/area/toxins/misc_lab) "crG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet/wardrobe/engineering_yellow,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi) "crH" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/flora/pottedplant{tag = "icon-plant-20"; icon_state = "plant-20"},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi) -"crI" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor,/area/engine/engine_smes) -"crJ" = (/obj/machinery/light,/turf/simulated/floor,/area/engine/engine_smes) -"crK" = (/obj/structure/closet/radiation,/obj/machinery/light,/turf/simulated/floor,/area/engine{name = "Engine Room"}) -"crL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor,/area/engine{name = "Engine Room"}) +"crI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/engineering) +"crJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/engine/engineering) +"crK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/engine/engineering) +"crL" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/engine/engineering) "crM" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/window{dir = 2},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/rd,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi) -"crN" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 5; dir = 1; opacity = 1; req_access_txt = "56"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine{name = "Engine Room"}) +"crN" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) "crO" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/unary/vent_pump,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet/wardrobe/engineering_yellow,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi) "crP" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/storage/secure/safe{pixel_y = 25},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi) -"crQ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/engine{name = "Engine Room"}) +"crQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hardsuits"; req_access_txt = "10"; req_one_access_txt = "11;24"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) "crR" = (/obj/effect/landmark/start{name = "Scientist"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab) -"crS" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/engine{name = "Engine Room"}) -"crT" = (/turf/simulated/floor/plating,/area/engine) -"crU" = (/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"crV" = (/obj/machinery/power/rad_collector,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"crW" = (/obj/machinery/light{dir = 1},/obj/machinery/power/rad_collector,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"crX" = (/obj/machinery/power/rad_collector,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"crY" = (/obj/machinery/power/apc{dir = 1; name = "Engine Room APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"crZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csa" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "yellow"; icon_state = "manifold-y"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csb" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "yellow"; dir = 1; icon_state = "manifold-y"; level = 2},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csc" = (/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csd" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"cse" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-c"; level = 2; pipe_color = "cyan"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csf" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csh" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "cyan"; dir = 1; icon_state = "manifold-c"; level = 2},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csi" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold4w{pipe_color = "blue"; icon_state = "manifold4w-b"; level = 2},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) +"crS" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) +"crT" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) +"crU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Storage"; req_access_txt = "10"; req_one_access_txt = "11;24"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/storage) +"crV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Storage"; req_access_txt = "10"; req_one_access_txt = "11;24"},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/storage) +"crW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/engine/storage) +"crX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/engine/storage) +"crY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/engine/storage) +"crZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) +"csa" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva{name = "Engineering EVA Storage"}) +"csb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"csc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Foyer"; req_one_access_txt = "11;24"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/break_room) +"csd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/engine/break_room) +"cse" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{dir = 1; icon_state = "blackcorner"},/area/engine/break_room) +"csf" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/engine/break_room) +"csg" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/engine/break_room) +"csh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"csi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"csj" = (/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Foyer"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/break_room) "csk" = (/obj/structure/table,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/cable_coil,/obj/item/weapon/cable_coil,/obj/item/clothing/glasses/welding,/obj/item/weapon/book/manual/supermatter_engine,/turf/simulated/floor,/area/engine/storage) "csl" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/clothing/glasses/meson{pixel_y = 4},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 1},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/clothing/glasses/welding/superior,/obj/structure/disposalpipe/segment{dir = 4},/obj/item/weapon/book/manual/supermatter_engine,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "csm" = (/obj/structure/table,/obj/item/weapon/book/manual/engineering_guide{pixel_x = 3; pixel_y = 2},/obj/item/weapon/book/manual/atmospipes,/obj/structure/disposalpipe/segment,/obj/item/weapon/book/manual/supermatter_engine,/turf/simulated/floor{dir = 9; icon_state = "caution"},/area/engine/break_room) -"csn" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; dir = 9; icon_state = "intact-c"; level = 2},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"cso" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csp" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csq" = (/obj/machinery/power/emitter{anchored = 1; state = 2},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csr" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine{name = "Engine Room"}) -"css" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 6},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"cst" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 10},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csu" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csv" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csw" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/machinery/atmospherics/binary/pump{dir = 2; icon_state = "intact_on"; layer = 2; name = "Engine Inpump"; on = 1},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine{name = "Engine Room"}) -"csx" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine{name = "Engine Room"}) -"csy" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csz" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "green"; icon_state = "intact-g"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csA" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; icon_state = "intact-c"},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) +"csn" = (/obj/structure/stool/bed/chair/office/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/landmark/start{name = "Chief Engineer"},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"cso" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"csp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "caution"},/area/engine/break_room) +"csq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor,/area/engine/break_room) +"csr" = (/obj/machinery/computer/station_alert,/turf/simulated/floor{dir = 4; icon_state = "caution"},/area/engine/break_room) +"css" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"cst" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{dir = 1; icon_state = "blackcorner"},/area/engine/break_room) +"csu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"csv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"csw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"csx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"csy" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Main"; req_access_txt = "10"; req_one_access_txt = "11;24"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/chiefs_office) +"csz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/engine/engineering) +"csA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/engine/engineering) "csB" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/storage/secure/safe{pixel_y = 25},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi) -"csC" = (/obj/machinery/atmospherics/trinary/filter{dir = 8; filter_type = 1; icon_state = "intact_on"; name = "Gas filter (Engine 2)"; on = 1; req_access = null; target_pressure = 4500},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine{name = "Engine Room"}) +"csC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/engine/engineering) "csD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/primary/aft) "csE" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/engine/engineering) -"csF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/machinery/camera{c_tag = "Engineering Core West"; dir = 4; network = list("SS13","Supermatter")},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csG" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine{name = "Engine Room"}) -"csH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{dir = 2; id = "EngineShutter"; name = "Engine Shutters"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; icon_state = "intact-c"; level = 2},/obj/machinery/door/poddoor/shutters{dir = 2; id = "EngineShutter"; name = "Engine Shutters"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{dir = 2; id = "EngineShutter"; name = "Engine Shutters"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/machinery/door/poddoor/shutters{dir = 2; id = "EngineShutter"; name = "Engine Shutters"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{dir = 2; id = "EngineShutter"; name = "Engine Shutters"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csM" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csN" = (/obj/machinery/atmospherics/unary/vent_scrubber,/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/engine/engineering) -"csP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 10},/obj/machinery/camera{c_tag = "Engineering Core East"; dir = 8; network = list("SS13","Supermatter")},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csQ" = (/obj/machinery/door_control{id = "EngineVent"; name = "Engine Ventillatory Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csR" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; locked = 1},/turf/simulated/floor/engine,/area/engine{name = "Engine Room"}) -"csS" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 140; on = 1; pressure_checks = 0},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/engine{name = "Engine Room"}) -"csT" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine{name = "Engine Room"}) -"csU" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 4000; icon_state = "in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/engine{name = "Engine Room"}) -"csV" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; locked = 1},/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/floor/engine,/area/engine{name = "Engine Room"}) -"csW" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_on"; name = "Engine Outpump"; on = 1},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csX" = (/obj/machinery/atmospherics/trinary/filter{dir = 1; filter_type = 0; icon_state = "intact_on"; name = "Gas filter (Engine 1)"; on = 1; pressure_resistance = 103; req_access = null; target_pressure = 4500},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csY" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 9},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"csZ" = (/obj/machinery/door_control{id = "EngineShutter"; name = "Shutters Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"cta" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"ctb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"ctc" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"ctd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{id = "EngineShutter"; name = "Engine Shutters"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"cte" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine{name = "Engine Room"}) -"ctf" = (/obj/machinery/power/supermatter{layer = 4},/obj/machinery/mass_driver{id = "enginecore"},/turf/simulated/floor/greengrid,/area/engine{name = "Engine Room"}) -"ctg" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine{name = "Engine Room"}) -"cth" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{dir = 8; id = "EngineShutter"; name = "Engine Shutters"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"cti" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine{name = "Engine Room"}) -"ctj" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; state = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"ctk" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"ctl" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"ctm" = (/obj/machinery/light,/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"ctn" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -30; pixel_y = 0; req_access_txt = "0"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cto" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor/shutters{id = "EngineShutter"; name = "Engine Shutters"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"ctp" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 10},/area/engine{name = "Engine Room"}) -"ctq" = (/turf/simulated/floor/engine,/area/engine{name = "Engine Room"}) -"ctr" = (/obj/machinery/camera{c_tag = "Engineering Core South"; dir = 1; network = list("SS13","Supermatter")},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/engine{name = "Engine Room"}) -"cts" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor/shutters{dir = 8; id = "EngineShutter"; name = "Engine Shutters"},/turf/simulated/floor/plating,/area/engine{name = "Engine Room"}) -"ctt" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine{name = "Engine Room"}) -"ctu" = (/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "EngineVent"; name = "Engine Core Vent"; p_open = 0},/turf/simulated/floor/engine,/area/engine{name = "Engine Room"}) +"csF" = (/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/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "caution"; dir = 5},/area/engine/break_room) +"csG" = (/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},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "caution"},/area/engine/break_room) +"csH" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod5/station) +"csI" = (/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},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"csJ" = (/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/engine/break_room) +"csK" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor,/area/hallway/primary/aft) +"csL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"csM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor/plating,/area/hallway/primary/aft) +"csN" = (/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "EngineVent"; name = "Engine Core Vent"; p_open = 0},/turf/simulated/floor/engine,/area/engine/engine_room) +"csO" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/plating,/area/engine/engine_room) +"csP" = (/turf/simulated/floor/engine,/area/engine/engine_room) +"csQ" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 10},/area/engine/engine_room) +"csR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor/shutters{dir = 8; id = "EngineShutter"; name = "Engine Shutters"},/turf/simulated/floor/plating,/area/engine/engine_room) +"csS" = (/obj/machinery/camera{c_tag = "Engineering Core South"; dir = 1; network = list("SS13","Supermatter")},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/engine/engine_room) +"csT" = (/obj/machinery/light,/turf/simulated/floor/plating,/area/engine/engine_room) +"csU" = (/turf/simulated/floor/plating,/area/engine/engine_room) +"csV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor/shutters{dir = 4; id = "EngineShutter"; name = "Engine Shutters"},/turf/simulated/floor/plating,/area/engine/engine_room) +"csW" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 5; dir = 1; opacity = 1; req_access_txt = "56"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engine_room) +"csX" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine/engine_room) +"csY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/engine/engine_room) +"csZ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/binary/pump{dir = 2; icon_state = "intact_off"; layer = 2; name = "Engine Filter Outpump"; on = 0},/turf/simulated/floor/plating,/area/engine/engine_room) +"cta" = (/obj/machinery/atmospherics/binary/pump{dir = 2; icon_state = "intact_off"; layer = 2; name = "Engine Filter Outpump"; on = 0},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine/engine_room) +"ctb" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; state = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/engine_room) +"ctc" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/binary/pump{dir = 2; icon_state = "intact_off"; layer = 2; name = "Engine Filter Outpump"; on = 0},/turf/simulated/floor/plating,/area/engine/engine_room) +"ctd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{dir = 8; id = "EngineShutter"; name = "Engine Shutters"},/turf/simulated/floor/plating,/area/engine/engine_room) +"cte" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engine_room) +"ctf" = (/obj/machinery/power/supermatter{layer = 4},/obj/machinery/mass_driver{id = "enginecore"},/turf/simulated/floor/greengrid,/area/engine/engine_room) +"ctg" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine/engine_room) +"cth" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{dir = 4; id = "EngineShutter"; name = "Engine Shutters"},/turf/simulated/floor/plating,/area/engine/engine_room) +"cti" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engine_room) +"ctj" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engine_room) +"ctk" = (/obj/machinery/door_control{id = "EngineVent"; name = "Engine Ventillatory Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/machinery/door_control{desc = "A remote control-switch for the engine control room blast doors."; id = "EngineBlast"; name = "Monitoring Room Blast Doors"; pixel_x = -25; pixel_y = 10; req_access_txt = "10"},/obj/machinery/door_control{id = "EngineShutter"; name = "Engine Shutters Control"; pixel_x = -25; pixel_y = -10; req_access_txt = "10"},/turf/simulated/floor/plating,/area/engine/engine_room) +"ctl" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; locked = 1},/turf/simulated/floor/engine,/area/engine/engine_room) +"ctm" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "engine_sensor"; output = 63},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/engine/engine_room) +"ctn" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 140; on = 1; pressure_checks = 0},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/engine/engine_room) +"cto" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; locked = 1},/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/floor/engine,/area/engine/engine_room) +"ctp" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 4000; icon_state = "in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/engine/engine_room) +"ctq" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_on"; name = "Engine Outpump"; on = 1},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine/engine_room) +"ctr" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "yellow"; icon_state = "manifold-y"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine/engine_room) +"cts" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 9},/turf/simulated/floor/plating,/area/engine/engine_room) +"ctt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine/engine_room) +"ctu" = (/obj/machinery/atmospherics/trinary/filter{dir = 1; filter_type = 0; icon_state = "intact_on"; name = "Gas filter (Engine 1)"; on = 1; pressure_resistance = 103; req_access = null; target_pressure = 4500},/turf/simulated/floor/plating,/area/engine/engine_room) "ctv" = (/turf/space,/area/syndicate_station/southwest) "ctw" = (/turf/space,/area/syndicate_station/southeast) "ctx" = (/turf/space,/area/syndicate_station/south) @@ -6528,9 +6528,9 @@ "cvB" = (/turf/simulated/floor/holofloor{icon_state = "asteroid5"; dir = 2},/area/holodeck/source_desert) "cvC" = (/turf/simulated/floor/holofloor/grass,/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/holofloor{icon_state = "wood_siding6"; dir = 2},/area/holodeck/source_picnicarea) "cvD" = (/turf/simulated/floor/holofloor/grass,/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/holofloor{icon_state = "wood_siding10"; dir = 2},/area/holodeck/source_picnicarea) -"cvE" = (/obj/machinery/power/apc{cell_type = 15000; dir = 1; name = "Engineering Foyer APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{dir = 1; icon_state = "caution"},/area/engine/break_room) -"cvF" = (/turf/simulated/floor{dir = 4; icon_state = "caution"},/area/engine/break_room) -"cvG" = (/obj/structure/closet/crate,/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "caution"; dir = 5},/area/engine/break_room) +"cvE" = (/obj/structure/noticeboard{pixel_y = 28},/turf/simulated/floor{dir = 1; icon_state = "caution"},/area/engine/break_room) +"cvF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 10},/obj/machinery/camera{c_tag = "Engineering Core East"; dir = 8; network = list("SS13","Supermatter")},/turf/simulated/floor/plating,/area/engine/engine_room) +"cvG" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/power/apc{cell_type = 15000; dir = 1; name = "Engineering Foyer APC"; pixel_x = 0; pixel_y = 25},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "caution"; dir = 5},/area/engine/break_room) "cvH" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/source_emptycourt) "cvI" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/source_emptycourt) "cvJ" = (/turf/simulated/floor/holofloor{icon_state = "carpet2-0"; dir = 4},/area/holodeck/source_theatre) @@ -6586,7 +6586,7 @@ "cwH" = (/turf/simulated/floor/holofloor{icon_state = "carpet1-0"; dir = 4},/area/holodeck/source_theatre) "cwI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Lobby"; req_one_access_txt = "0"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "cwJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Lobby"; req_one_access_txt = "0"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/hallway/primary/aft) -"cwK" = (/obj/machinery/atmospherics/tvalve/digital{dir = 8},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine{name = "Engine Room"}) +"cwK" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/machinery/meter,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/engine/engine_room) "cwL" = (/turf/simulated/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/source_emptycourt) "cwM" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_emptycourt) "cwN" = (/turf/simulated/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/source_emptycourt) @@ -6809,18 +6809,18 @@ "cAW" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/simulated/floor/plating/airless,/area/centcom/evac) "cAX" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/centcom/evac) "cAY" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/centcom/evac) -"cAZ" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"cAZ" = (/obj/machinery/atmospherics/unary/vent_scrubber,/turf/simulated/floor/plating,/area/engine/engine_room) "cBa" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/centcom/evac) "cBb" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area) "cBc" = (/turf/simulated/shuttle/plating,/area/centcom/evac) "cBd" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/centcom/evac) -"cBe" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) -"cBf" = (/obj/structure/stool,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cBg" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 30; pixel_y = 0; req_access_txt = "0"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cBh" = (/obj/machinery/door/airlock/external{name = "Salvage Shuttle Dock"},/turf/unsimulated/floor,/area/centcom/evac) -"cBi" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cBj" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cBk" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"cBe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/machinery/camera{c_tag = "Engineering Core West"; dir = 4; network = list("SS13","Supermatter")},/turf/simulated/floor/plating,/area/engine/engine_room) +"cBf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{dir = 2; id = "EngineShutter"; name = "Engine Shutters"},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/engine/engine_room) +"cBg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{dir = 2; id = "EngineShutter"; name = "Engine Shutters"},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/engine/engine_room) +"cBh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/machinery/door/poddoor/shutters{dir = 2; id = "EngineShutter"; name = "Engine Shutters"},/turf/simulated/floor/plating,/area/engine/engine_room) +"cBi" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{dir = 2; id = "EngineShutter"; name = "Engine Shutters"},/turf/simulated/floor/plating,/area/engine/engine_room) +"cBj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; icon_state = "intact-c"; level = 2},/obj/machinery/door/poddoor/shutters{dir = 2; id = "EngineShutter"; name = "Engine Shutters"},/turf/simulated/floor/plating,/area/engine/engine_room) +"cBk" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) "cBl" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_f10"; layer = 2},/area/centcom/evac) "cBm" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area) "cBn" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area) @@ -6831,10 +6831,10 @@ "cBs" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area) "cBt" = (/turf/unsimulated/wall,/area/syndicate_mothership) "cBu" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/centcom/evac) -"cBv" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/centcom/evac) -"cBw" = (/obj/structure/closet/emcloset,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cBx" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/plating,/area/centcom/evac) -"cBy" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/centcom/evac) +"cBv" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/machinery/atmospherics/binary/pump{dir = 2; icon_state = "intact_on"; layer = 2; name = "Engine Inpump"; on = 1},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) +"cBw" = (/obj/machinery/atmospherics/trinary/filter{dir = 8; filter_type = 1; icon_state = "intact_on"; name = "Gas filter (Engine 2)"; on = 1; req_access = null; target_pressure = 4500},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) +"cBx" = (/obj/machinery/atmospherics/tvalve/digital{dir = 8},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) +"cBy" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/floor/plating,/area/engine/engine_room) "cBz" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area) "cBA" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod1/transit) "cBB" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/escape_pod1/transit) @@ -6862,12 +6862,12 @@ "cBX" = (/turf/space/transit/north/shuttlespace_ns13,/area/shuttle/escape_pod2/transit) "cBY" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod2/transit) "cBZ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area) -"cCa" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) -"cCb" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"cCc" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"cCd" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"cCe" = (/obj/structure/closet/secure_closet/personal/patient,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) -"cCf" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) +"cCa" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) +"cCb" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "yellow"; dir = 1; icon_state = "manifold-y"; level = 2},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplatecorner"},/area/engine/engine_room) +"cCc" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engine_room) +"cCd" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/simulated/floor/plating{dir = 1; icon_state = "warnplatecorner"},/area/engine/engine_room) +"cCe" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/engine/engine_room) +"cCf" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 10},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/engine/engine_room) "cCg" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod1/transit) "cCh" = (/turf/space/transit/north/shuttlespace_ns5,/area/shuttle/escape_pod1/transit) "cCi" = (/turf/space/transit/north/shuttlespace_ns1,/area/shuttle/escape_pod2/transit) @@ -6877,32 +6877,32 @@ "cCm" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area) "cCn" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area) "cCo" = (/obj/structure/flora/bush,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) -"cCp" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cCq" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cCr" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cCs" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"cCp" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/engine/engine_room) +"cCq" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-c"; level = 2; pipe_color = "cyan"},/turf/simulated/floor/plating,/area/engine/engine_room) +"cCr" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 1; dir = 8; layer = 2.5; on = 1; req_access_txt = "56"},/turf/simulated/floor/plating,/area/engine/engine_room) +"cCs" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 10},/turf/simulated/floor/plating,/area/engine/engine_room) "cCt" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape_pod1/transit) "cCu" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area) "cCv" = (/turf/space/transit/north/shuttlespace_ns15,/area/shuttle/escape_pod2/transit) "cCw" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod2/transit) -"cCx" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cCy" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"cCx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engine_room) +"cCy" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 6},/turf/simulated/floor/plating,/area/engine/engine_room) "cCz" = (/turf/space,/area/shuttle/escape_pod3/centcom) -"cCA" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cCB" = (/obj/structure/table,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"cCA" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "green"; icon_state = "intact-g"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine/engine_room) +"cCB" = (/obj/machinery/power/emitter{anchored = 1; state = 2},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engine_room) "cCC" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership) -"cCD" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"cCD" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; icon_state = "intact-c"},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine/engine_room) "cCE" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/syndicate_station/start) "cCF" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start) "cCG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "cCH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "cCI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "cCJ" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/syndicate_station/start) -"cCK" = (/obj/structure/shuttle/window{tag = "icon-15"; icon_state = "15"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) -"cCL" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cCM" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cCN" = (/obj/structure/shuttle/window{tag = "icon-16"; icon_state = "16"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) -"cCO" = (/obj/structure/table,/obj/item/weapon/stamp/captain,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"cCK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plating,/area/engine/engine_room) +"cCL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/engine/engine_room) +"cCM" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/engine/engine_room) +"cCN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; dir = 6; icon_state = "intact-c"; initialize_directions = 6; level = 2},/turf/simulated/floor/plating,/area/engine/engine_room) +"cCO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/turf/simulated/floor/plating,/area/engine/engine_room) "cCP" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area) "cCQ" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cCR" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) @@ -6913,9 +6913,9 @@ "cCW" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) "cCX" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership) "cCY" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership) -"cCZ" = (/obj/structure/table,/obj/item/weapon/storage/lockbox,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cDa" = (/obj/structure/grille,/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/centcom/evac) -"cDb" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"cCZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "cyan"; dir = 1; icon_state = "manifold-c"; level = 2},/turf/simulated/floor/plating,/area/engine/engine_room) +"cDa" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/engine/engine_room) +"cDb" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "cyan"; icon_state = "manifold-c"; level = 2},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/engine/engine_room) "cDc" = (/turf/space,/area/shuttle/escape_pod5/centcom) "cDd" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area) "cDe" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) @@ -6924,8 +6924,8 @@ "cDh" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership) "cDi" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership) "cDj" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership) -"cDk" = (/obj/machinery/computer/shuttle,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cDl" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"cDk" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "cyan"; dir = 1; icon_state = "manifold-c"; level = 2},/turf/simulated/floor/plating,/area/engine/engine_room) +"cDl" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_off"; layer = 2; name = "Engine Coolant Pump"; on = 0},/obj/machinery/light_switch{pixel_x = 0; pixel_y = 27},/turf/simulated/floor/plating,/area/engine/engine_room) "cDm" = (/obj/machinery/door/airlock/hatch{name = "Infirmary"; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac) "cDn" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 10},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cDo" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) @@ -6936,7 +6936,7 @@ "cDt" = (/obj/structure/sign/double/map/right{pixel_y = 32},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "cDu" = (/obj/structure/table,/obj/machinery/microwave,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/syndicate_mothership) "cDv" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/syndicate_mothership) -"cDw" = (/obj/structure/table,/obj/item/device/radio/off,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"cDw" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor/plating,/area/engine/engine_room) "cDx" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_station/start) "cDy" = (/obj/machinery/door/window{dir = 1; name = "Cockpit"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cDz" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_station/start) @@ -6945,10 +6945,10 @@ "cDC" = (/obj/machinery/door/airlock/centcom{name = "Kitchen"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "cDD" = (/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/syndicate_mothership) "cDE" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/syndicate_mothership) -"cDF" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swallc1"},/area/centcom/evac) -"cDG" = (/obj/machinery/computer/crew,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cDH" = (/obj/structure/stool/bed/chair{dir = 4; name = "Defense"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"cDI" = (/obj/machinery/computer/communications,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"cDF" = (/obj/machinery/power/rad_collector,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/engine/engine_room) +"cDG" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; dir = 6; icon_state = "intact-c"; initialize_directions = 6; level = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engine_room) +"cDH" = (/obj/machinery/light{dir = 1},/obj/machinery/power/rad_collector,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/engine/engine_room) +"cDI" = (/obj/machinery/power/apc{dir = 1; name = "Engine Room APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/engine/engine_room) "cDJ" = (/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cDK" = (/obj/machinery/vending/cigarette{pixel_x = 0; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cDL" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_surround"; dir = 8},/area/syndicate_mothership) @@ -6959,28 +6959,28 @@ "cDQ" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "cDR" = (/obj/structure/closet/crate/freezer,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/syndicate_mothership) "cDS" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/centcom/evac) -"cDT" = (/obj/machinery/door/airlock/hatch{name = "Cockpit"; req_access_txt = "109"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) +"cDT" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/engine/engine_room) "cDU" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"cDV" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"cDW" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/obj/item/device/flash,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) +"cDV" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/engine/engine_room) +"cDW" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -30; pixel_y = 0; req_access_txt = "0"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "cDX" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "cDY" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "cDZ" = (/obj/machinery/door/airlock/centcom{name = "Restroom"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "cEa" = (/obj/structure/urinal{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "cEb" = (/obj/structure/urinal{pixel_y = 32},/obj/effect/decal/cleanable/vomit,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"cEc" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) -"cEd" = (/obj/machinery/sleeper,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) +"cEc" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"cEd" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) "cEe" = (/obj/structure/closet/syndicate/personal,/obj/item/clothing/tie/storage/brown_vest,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cEf" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cEg" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "synd_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "cEh" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) "cEi" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "cEj" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"cEk" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 4; icon_state = "right"; name = "Security Desk"; req_access_txt = "103"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"cEl" = (/obj/machinery/computer/secure_data,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"cEm" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -30; pixel_y = 0; req_access_txt = "0"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) -"cEn" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"cEo" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) +"cEk" = (/obj/structure/stool,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"cEl" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 30; pixel_y = 0; req_access_txt = "0"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"cEm" = (/obj/machinery/door/airlock/external{name = "Salvage Shuttle Dock"},/turf/unsimulated/floor,/area/centcom/evac) +"cEn" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"cEo" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "cEp" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cEq" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cEr" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_closed"; id_tag = "synd_outer"; locked = 0; name = "Ship External Access"; req_access = null; req_access_txt = "0"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "smindicate"; name = "Outer Airlock"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) @@ -6989,9 +6989,9 @@ "cEu" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 5},/area/syndicate_mothership) "cEv" = (/obj/machinery/door/airlock/centcom{name = "Barracks"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "cEw" = (/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"cEx" = (/obj/structure/shuttle/window{tag = "icon-9"; icon_state = "9"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) -"cEy" = (/obj/structure/shuttle/window{tag = "icon-14"; icon_state = "14"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) -"cEz" = (/obj/structure/shuttle/window{tag = "icon-17"; icon_state = "17"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) +"cEx" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"cEy" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_floor_f9"},/area/centcom/evac) +"cEz" = (/obj/structure/closet/emcloset,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "cEA" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) "cEB" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cEC" = (/obj/structure/table,/obj/machinery/computer/pod/old/syndicate{id = "smindicate"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) @@ -7206,8 +7206,8 @@ "cID" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/living) "cIE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/living) "cIF" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/supply/dock) -"cIG" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "wall_floor"},/area/supply/dock) -"cIH" = (/turf/simulated/shuttle/wall{dir = 8; icon_state = "wall_floor"},/area/supply/dock) +"cIG" = (/turf/simulated/shuttle/wall{dir = 8; icon_state = "swall_floor_f6"},/area/supply/dock) +"cIH" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "swall_floor_f10"},/area/supply/dock) "cII" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/supply/dock) "cIJ" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/living) "cIK" = (/obj/machinery/door/airlock/centcom{name = "Living Quarters"; opacity = 1; req_access_txt = "105"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/living) @@ -7523,7 +7523,7 @@ "cOI" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/specops/centcom) "cOJ" = (/obj/structure/closet/secure_closet/medical2,/turf/unsimulated/floor{tag = "icon-escapecorner (EAST)"; icon_state = "escapecorner"; dir = 4},/area/centcom/holding) "cOK" = (/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/ferry) -"cOL" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/extinguisher,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"cOL" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_floor_f5"},/area/centcom/evac) "cOM" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cON" = (/obj/machinery/computer/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cOO" = (/turf/unsimulated/beach/sand{tag = "icon-beachcorner"; icon_state = "beachcorner"},/area/centcom/ferry) @@ -7534,14 +7534,14 @@ "cOT" = (/turf/unsimulated/floor{dir = 4; icon_state = "whitegreen"},/area/centcom/holding) "cOU" = (/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/holding) "cOV" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/escape/centcom) -"cOW" = (/obj/machinery/computer/atmos_alert,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"cOX" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) +"cOW" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area) +"cOX" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area) "cOY" = (/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cOZ" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) -"cPa" = (/obj/machinery/computer/security,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"cPa" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/shuttle/escape/centcom) "cPb" = (/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/area/centcom/ferry) "cPc" = (/turf/unsimulated/floor{tag = "icon-whitehall (EAST)"; icon_state = "whitehall"; dir = 4},/area/centcom/holding) -"cPd" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"cPd" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 30},/obj/item/weapon/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cPe" = (/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access_txt = "45"},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "cPf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/centcom/holding) "cPg" = (/turf/unsimulated/wall{desc = "Why it no open!"; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/ferry) @@ -7552,22 +7552,22 @@ "cPl" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control) "cPm" = (/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/control) "cPn" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control) -"cPo" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/shuttle/escape/centcom) +"cPo" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "swall_floor_f10"},/area/shuttle/escape/centcom) "cPp" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/escape/centcom) -"cPq" = (/obj/machinery/status_display,/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/escape/centcom) +"cPq" = (/obj/structure/closet/crate/freezer/rations,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cPr" = (/obj/machinery/door/airlock/glass_command{name = "Escape Shuttle Cockpit"; req_access_txt = "19"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cPs" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/shuttle/escape/centcom) "cPt" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/transport1/centcom) "cPu" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/transport1/centcom) "cPv" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/transport1/centcom) -"cPw" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/centcom/evac) +"cPw" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/plating,/area/centcom/evac) "cPx" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/shuttle/transport1/centcom) "cPy" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/turf/space,/area/shuttle/transport1/centcom) "cPz" = (/turf/unsimulated/floor{dir = 2; icon_state = "whitegreencorner"},/area/centcom/holding) "cPA" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"cPB" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/transport1/centcom) +"cPB" = (/obj/structure/shuttle/window{tag = "icon-8"; icon_state = "8"},/obj/structure/grille,/obj/machinery/status_display,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) "cPC" = (/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) -"cPD" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/shuttle/transport1/centcom) +"cPD" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_floor_f5"},/area/shuttle/escape/centcom) "cPE" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/shuttle/transport1/centcom) "cPF" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "cPG" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/shuttle/transport1/centcom) @@ -7582,11 +7582,11 @@ "cPP" = (/turf/unsimulated/floor{dir = 4; icon_state = "whitegreencorner"},/area/centcom/holding) "cPQ" = (/obj/structure/table,/obj/item/weapon/retractor{pixel_x = 0; pixel_y = 6},/obj/item/weapon/scalpel,/turf/unsimulated/floor{dir = 2; icon_state = "whitehall"; tag = "icon-whitehall (SOUTHEAST)"},/area/centcom/holding) "cPR" = (/obj/structure/table,/obj/item/weapon/cautery{pixel_y = 4},/obj/item/weapon/hemostat{pixel_y = 4},/turf/unsimulated/floor{dir = 2; icon_state = "whitehall"; tag = "icon-whitehall (SOUTHEAST)"},/area/centcom/holding) -"cPS" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"cPS" = (/obj/structure/closet/hydrant{pixel_y = 30},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cPT" = (/obj/structure/table,/obj/item/weapon/FixOVein{pixel_x = -6; pixel_y = 1},/turf/unsimulated/floor{tag = "icon-whitecorner"; name = "plating"; icon_state = "whitecorner"},/area/centcom/holding) "cPU" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/transport1/centcom) -"cPV" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/shuttle/transport1/centcom) -"cPW" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/shuttle/transport1/centcom) +"cPV" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "swall_floor_f10"},/area/shuttle/transport1/centcom) +"cPW" = (/turf/simulated/shuttle/wall{dir = 8; icon_state = "swall_floor_f6"},/area/shuttle/transport1/centcom) "cPX" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "cPY" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/transport1/centcom) "cPZ" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/shuttle/transport1/centcom) @@ -7629,7 +7629,7 @@ "cQK" = (/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/obj/item/weapon/storage/belt/inflatable,/turf/unsimulated/floor{tag = "icon-siding4"; name = "plating"; icon_state = "siding4"},/area/centcom/holding) "cQL" = (/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/turf/unsimulated/floor{tag = "icon-siding8"; name = "plating"; icon_state = "siding8"},/area/centcom/holding) "cQM" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) -"cQN" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 28; req_access_txt = "0"},/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"cQN" = (/obj/structure/stool/bed/chair{dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cQO" = (/obj/structure/sign/nosmoking_2{pixel_x = 28; pixel_y = 0},/turf/unsimulated/floor{dir = 4; icon_state = "whitegreencorner"},/area/centcom/holding) "cQP" = (/obj/item/weapon/beach_ball,/turf/unsimulated/beach/sand{tag = "icon-desert_dug"; icon_state = "desert_dug"},/area/centcom/ferry) "cQQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control) @@ -7643,22 +7643,22 @@ "cQY" = (/obj/structure/stool/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 8},/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding) "cQZ" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/meatsteak,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding) "cRa" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/mushroomsoup,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding) -"cRb" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"cRb" = (/obj/machinery/status_display{pixel_y = 30},/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) "cRc" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; layer = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "cRd" = (/obj/machinery/atmospherics/pipe/manifold4w{layer = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "cRe" = (/obj/machinery/atmospherics/pipe/manifold{layer = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding) "cRf" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"; layer = 1},/turf/unsimulated/floor{dir = 8; icon_state = "whitegreencorner"},/area/centcom/holding) -"cRg" = (/obj/structure/stool/bed/roller,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"cRg" = (/obj/machinery/door/airlock/glass_security{name = "Escape Shuttle Cell"; req_access_txt = "2"},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) "cRh" = (/obj/structure/stool/bed/roller,/turf/unsimulated/floor{dir = 4; icon_state = "whitegreenfull"},/area/centcom/holding) -"cRi" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 30; pixel_y = 0},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) +"cRi" = (/obj/structure/stool/bed/roller,/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cRj" = (/turf/unsimulated/wall,/area/tdome) "cRk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome) "cRl" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome) "cRm" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome) "cRn" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome) "cRo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome) -"cRp" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"cRq" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = -30; pixel_y = 0},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) +"cRp" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_floor_f5"},/area/shuttle/transport1/centcom) +"cRq" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_floor_f9"},/area/shuttle/transport1/centcom) "cRr" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome) "cRs" = (/turf/unsimulated/floor{icon_state = "floor"},/area/tdome) "cRt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome) @@ -7682,9 +7682,9 @@ "cRL" = (/obj/machinery/sleeper,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cRM" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cRN" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/bloodsoup,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding) -"cRO" = (/obj/machinery/door/airlock/glass_security{name = "Escape Shuttle Cell"; req_access_txt = "2"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) +"cRO" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = -28},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cRP" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) -"cRQ" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 30; pixel_y = 0},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"cRQ" = (/obj/structure/stool/bed/roller,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cRR" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = 29; req_access_txt = "0"},/turf/unsimulated/floor{dir = 4; icon_state = "whitegreencorner"},/area/centcom/holding) "cRS" = (/obj/item/weapon/storage/belt/inflatable,/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/area/centcom/ferry) "cRT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome) @@ -7692,14 +7692,14 @@ "cRV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) "cRW" = (/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) "cRX" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) -"cRY" = (/obj/structure/shuttle/window{tag = "icon-17"; icon_state = "17"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) +"cRY" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cRZ" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Arrivals Medbay"; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding) "cSa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) -"cSb" = (/obj/machinery/computer/card,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) +"cSb" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "cSc" = (/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/tdome) "cSd" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/tdome) "cSe" = (/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{tag = "icon-siding2"; name = "plating"; icon_state = "siding2"},/area/centcom/holding) -"cSf" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/shuttle/escape/centcom) +"cSf" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/closet/walllocker/emerglocker{pixel_x = -28},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cSg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/holding) "cSh" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/holding) "cSi" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/holding) @@ -7822,7 +7822,7 @@ "cUv" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cUw" = (/obj/machinery/librarycomp,/obj/structure/table/woodentable,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cUx" = (/obj/machinery/vending/magivend,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"cUy" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 30; pixel_y = 0},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) +"cUy" = (/obj/machinery/computer/security,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cUz" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding) "cUA" = (/obj/machinery/door/airlock/glass{name = "Arrivals Processing"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding) "cUB" = (/obj/machinery/door/airlock/external{name = "Arrivals Airlock"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/evac) @@ -7840,7 +7840,7 @@ "cUN" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/stew,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding) "cUO" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding) "cUP" = (/obj/machinery/door/airlock/glass{name = "Arrivals Processing"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac) -"cUQ" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/blue,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"cUQ" = (/obj/structure/stool/bed/chair{dir = 8},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cUR" = (/obj/structure/closet/athletic_mixed,/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/area/centcom/ferry) "cUS" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area) "cUT" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area) @@ -7849,7 +7849,7 @@ "cUW" = (/obj/structure/table/woodentable,/obj/item/weapon/spacecash/c1,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cUX" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Clothing Storage"},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/area/centcom/ferry) "cUY" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Clothing Storage"},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/area/centcom/ferry) -"cUZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) +"cUZ" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cVa" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area) "cVb" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/vox/station) "cVc" = (/turf/simulated/shuttle/wall{icon_state = "pwall"; dir = 1},/area) @@ -7863,13 +7863,13 @@ "cVk" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area) "cVl" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/wizard_station) "cVm" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/wizard_station) -"cVn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) -"cVo" = (/obj/structure/closet/emcloset{anchored = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"cVn" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/extinguisher,/obj/item/weapon/crowbar,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"cVo" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) "cVp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) "cVq" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "greencorner"; dir = 4},/area/centcom/control) "cVr" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) "cVs" = (/turf/unsimulated/floor{dir = 5; heat_capacity = 1; icon_state = "warning"},/area/centcom/evac) -"cVt" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/blue,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"cVt" = (/turf/simulated/shuttle/wall{icon_state = "swallc4"},/area/shuttle/escape/centcom) "cVu" = (/obj/machinery/computer/station_alert,/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station) "cVv" = (/obj/machinery/computer/vox_station,/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station) "cVw" = (/obj/machinery/computer/vox_stealth,/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station) @@ -10304,25 +10304,25 @@ "dQh" = (/obj/structure/cable,/obj/machinery/shieldwallgen{req_access = list(55)},/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab) "dQi" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab) "dQj" = (/obj/machinery/computer/security/nuclear,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"dQk" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"dQl" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area) +"dQk" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) +"dQl" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "dQm" = (/obj/machinery/portable_atmospherics/pump,/turf/simulated/shuttle/plating,/area/centcom/evac) -"dQn" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area) -"dQo" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area) +"dQn" = (/obj/structure/shuttle/window{tag = "icon-15"; icon_state = "15"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) +"dQo" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "dQp" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/shuttle/plating,/area/centcom/evac) "dQq" = (/obj/machinery/vending/engineering,/turf/simulated/shuttle/plating,/area/centcom/evac) -"dQr" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area) -"dQs" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area) -"dQt" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area) -"dQu" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area) -"dQv" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area) +"dQr" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) +"dQs" = (/obj/structure/closet/secure_closet/personal/patient,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) +"dQt" = (/obj/structure/shuttle/window{tag = "icon-16"; icon_state = "16"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) +"dQu" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) +"dQv" = (/obj/structure/grille,/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/centcom/evac) "dQw" = (/obj/structure/holostool,/turf/simulated/floor/holofloor{icon_state = "carpet11-12"; dir = 4},/area/holodeck/source_theatre) -"dQx" = (/obj/machinery/computer/station_alert,/turf/simulated/floor,/area/engine/break_room) +"dQx" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "swallc1"},/area/centcom/evac) "dQy" = (/obj/structure/holostool,/turf/simulated/floor/holofloor{icon_state = "carpet15-15"; dir = 4},/area/holodeck/source_theatre) "dQz" = (/obj/structure/holostool,/turf/simulated/floor/holofloor{icon_state = "carpet5-1"; dir = 4},/area/holodeck/source_theatre) "dQA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/break_room) "dQB" = (/obj/structure/holostool,/turf/simulated/floor/holofloor{icon_state = "carpet9-4"; dir = 4},/area/holodeck/source_theatre) -"dQC" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/break_room) +"dQC" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "dQD" = (/obj/structure/holostool,/turf/simulated/floor/holofloor{icon_state = "carpet13-5"; dir = 4},/area/holodeck/source_theatre) "dQE" = (/obj/structure/holostool,/turf/simulated/floor/holofloor{icon_state = "carpet13-0"; dir = 4},/area/holodeck/source_meetinghall) "dQF" = (/obj/structure/holostool,/turf/simulated/floor/holofloor{icon_state = "carpet9-0"; dir = 4},/area/holodeck/source_meetinghall) @@ -10334,7 +10334,7 @@ "dQL" = (/obj/structure/holostool,/turf/simulated/floor/holofloor{icon_state = "carpet10-0"; dir = 4},/area/holodeck/source_meetinghall) "dQM" = (/obj/structure/holostool,/turf/simulated/floor/holofloor{icon_state = "carpet6-0"; dir = 4},/area/holodeck/source_meetinghall) "dQN" = (/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "xeno_airlock_interior"; locked = 1; name = "Xenobiology Internal Airlock"; req_access_txt = "55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"dQO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/primary/aft) +"dQO" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "dQP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "dQQ" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) "dQR" = (/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/engine,/area/toxins/misc_lab) @@ -10356,20 +10356,18 @@ "dRh" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/unsimulated/floor{dir = 10; icon_state = "carpetside"},/area/centcom/ferry) "dRi" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/unsimulated/floor{dir = 2; icon_state = "carpetside"},/area/centcom/ferry) "dRj" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/unsimulated/floor{dir = 6; icon_state = "carpetside"},/area/centcom/ferry) -"dRk" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = -32; req_access_txt = "0"},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) -"dRl" = (/obj/structure/stool/bed/chair{dir = 1},/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) +"dRk" = (/turf/simulated/shuttle/wall{icon_state = "swallc3"},/area/shuttle/escape/centcom) +"dRl" = (/obj/machinery/computer/crew,/obj/machinery/status_display{pixel_y = 30},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "dRm" = (/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/control) "dRn" = (/obj/machinery/atm{pixel_x = -26},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control) -"dRo" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area) -"dRp" = (/obj/structure/closet/walllocker/emerglocker,/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/escape/centcom) -"dRq" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area) +"dRo" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"dRp" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/extinguisher,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) +"dRq" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "dRr" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/ferry) "dRs" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry) -"dRt" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/extinguisher,/obj/item/weapon/crowbar,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"dRu" = (/obj/structure/table,/obj/machinery/chem_dispenser/soda,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"dRv" = (/obj/structure/table,/obj/item/weapon/storage/box/cups,/obj/item/weapon/storage/box/cups,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"dRt" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "wall_space"},/area/shuttle/escape/centcom) +"dRu" = (/obj/machinery/door/airlock/centcom{name = "Holding Cell"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "dRw" = (/obj/machinery/door/airlock/external{name = "Transport Airlock"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/ferry) -"dRx" = (/obj/structure/stool/bed/chair{dir = 8},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 30; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "dRy" = (/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/centcom/control) "dRz" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{tag = "icon-red (EAST)"; icon_state = "red"; dir = 4},/area/centcom/control) "dRA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control) @@ -10382,17 +10380,12 @@ "dRH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor,/area/centcom/control) "dRI" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Arrivals Processing"; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "dRJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor,/area/centcom/control) -"dRK" = (/obj{anchored = 1; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/escape/centcom) "dRL" = (/obj/structure/stool/bed/chair/office/dark,/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_x = -12; pixel_y = -25; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) -"dRM" = (/obj/structure/table,/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"dRN" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "dRO" = (/obj/machinery/computer/communications,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) -"dRP" = (/obj/structure/table,/obj/item/device/megaphone,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "dRQ" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/centcom/control) "dRR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/unsimulated/floor,/area/centcom/control) "dRS" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "CentComPort"; name = "Security Doors"; opacity = 0},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "dRT" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{tag = "icon-red (EAST)"; icon_state = "red"; dir = 4},/area/centcom/control) -"dRU" = (/obj/machinery/computer/rdconsole,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "dRV" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/computer/skills{icon_state = "medlaptop"; pixel_x = 3; pixel_y = 4},/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "dRW" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/door/window/southright{name = "Arrivals Processing"; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "dRX" = (/obj/machinery/computer/secure_data,/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/centcom/control) @@ -10474,22 +10467,50 @@ "dTv" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/bridge) "dTw" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) "dTx" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters) -"dTy" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area) -"dTz" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area) -"dTA" = (/obj/machinery/status_display,/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/shuttle/escape/centcom) -"dTB" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/shuttle/escape/centcom) -"dTC" = (/obj/structure/shuttle/window{tag = "icon-14"; icon_state = "14"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) -"dTD" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) -"dTE" = (/obj/structure/shuttle/window{tag = "icon-15"; icon_state = "15"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) -"dTF" = (/obj/structure/shuttle/window{tag = "icon-8"; icon_state = "8"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) -"dTG" = (/obj/structure/shuttle/window{tag = "icon-16"; icon_state = "16"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) -"dTH" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) -"dTI" = (/obj/structure/shuttle/window{tag = "icon-9"; icon_state = "9"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) -"dTJ" = (/obj/structure/shuttle/window{tag = "icon-14"; icon_state = "14"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) -"dTK" = (/obj/structure/shuttle/window{tag = "icon-17"; icon_state = "17"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) -"dTL" = (/obj/structure/shuttle/window{tag = "icon-9"; icon_state = "9"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) -"dTM" = (/obj/structure/shuttle/window{tag = "icon-13"; icon_state = "13"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) -"dTN" = (/obj/structure/shuttle/window{tag = "icon-12"; icon_state = "12"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) +"dTy" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"dTz" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"dTA" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"dTB" = (/obj/structure/table,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"dTC" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"dTD" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"dTE" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"dTF" = (/obj/structure/shuttle/window{tag = "icon-9"; icon_state = "9"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) +"dTG" = (/obj/structure/shuttle/window{tag = "icon-14"; icon_state = "14"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) +"dTH" = (/obj/structure/shuttle/window{tag = "icon-17"; icon_state = "17"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) +"dTI" = (/obj/structure/table,/obj/item/weapon/stamp/captain,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"dTJ" = (/obj/structure/table,/obj/item/weapon/storage/lockbox,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"dTK" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"dTL" = (/obj/machinery/computer/shuttle,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"dTM" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"dTN" = (/obj/structure/table,/obj/item/device/radio/off,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"dTO" = (/obj/machinery/computer/crew,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"dTP" = (/obj/structure/stool/bed/chair{dir = 4; name = "Defense"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"dTQ" = (/obj/machinery/computer/communications,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"dTR" = (/obj/machinery/door/airlock/hatch{name = "Cockpit"; req_access_txt = "109"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) +"dTS" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/centcom/evac) +"dTT" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) +"dTU" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/obj/item/device/flash,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) +"dTV" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) +"dTW" = (/obj/machinery/sleeper,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) +"dTX" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 4; icon_state = "right"; name = "Security Desk"; req_access_txt = "103"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) +"dTY" = (/obj/machinery/computer/secure_data,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) +"dTZ" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -30; pixel_y = 0; req_access_txt = "0"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) +"dUa" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) +"dUb" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) +"dUc" = (/obj/machinery/computer/card,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) +"dUd" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) +"dUo" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area) +"dUq" = (/obj/structure/shuttle/window{tag = "icon-17"; icon_state = "17"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) +"dUr" = (/obj/structure/shuttle/window{tag = "icon-14"; icon_state = "14"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) +"dUs" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) +"dUu" = (/obj/structure/shuttle/window{tag = "icon-15"; icon_state = "15"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) +"dUv" = (/obj/structure/shuttle/window{tag = "icon-8"; icon_state = "8"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) +"dUw" = (/obj/structure/shuttle/window{tag = "icon-16"; icon_state = "16"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) +"dUx" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) +"dUy" = (/obj/structure/shuttle/window{tag = "icon-9"; icon_state = "9"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) +"dUz" = (/obj/structure/shuttle/window{tag = "icon-14"; icon_state = "14"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) +"dUA" = (/obj/structure/shuttle/window{tag = "icon-17"; icon_state = "17"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) +"dUB" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/shuttle/escape/centcom) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10553,17 +10574,17 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagaafaafaaiaaWaaXaaYaaZabaabbabcabdabeaaxabfabgaaiaafaaaaaaaaaaafaaVabhabiabjaaVaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaiabkablaaDabmabnaboaaDabqabeabmaaPabraaiaafaaaaaaaaaaafaaVabsabtabuaaVaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaiabvaaiabwabxabyabpabAabBabCabDaaPabEaaiaafaaaaaaaaaaafaaVabFabuabGaaVaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaafaaiabHaaPabIabJaaPabKabLabMabMabNaaPabOaaiaafaafaagaafaafabPabuabsabuabPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaacaacaacaacaacaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaiabHaaPabIabQaaPabRabSaaaaaaaaaaaPabTabTabTabTabTaafaafabUabsabuabsabVaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaacaacaacaacaacaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaiabWaaPabXabYaaiabZacaaaiaaaaaaabTabTacbaccacdabTabTaafaaVabsabsabuaaVaceaceaceaceaceaceacfaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagaaiacgachaciacjackaclacmaaPaaaabTabTapeacoacoacoapVabTabTaaVacqabsacraaVaceacsactacuacvacwacfaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaiacxacyaczacAacBacCacDaaPaaaabTacEacFacGacoacHacIacJabTacKacLacMacNacOaceacsacPacQacRacSacfaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTaaiaaiaaiaaiacUacVacWacXaaPaaPaaPaaPaaaabTacYacFacZacoacHacIadaabTadbadcaddadeadfaceacsactadgadhacSacfaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTadiadjadkadladmadnadoadpaaradqadraaPaaaabTadsacFadtacoacHacIaduabTadvadwadxadyadzaceaceaceadAadBaceacfaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTadCadDadEadDadFadGaczadHadIadJadJaaPaaaabTabTadKadLacoadMadNabTabTadOadPadxadQaaVaceadRadSadTadUadVadWadWadXadYadWadWaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTadZaeaaebaecaedaeeaefaegaaJaehaeiaaPaaaaaaabTaejaekacoaelaemabTaenaaVaeoaepaeqaaVaeraesaetaeuaevaewaexaeyaezaeAaeBadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTaaiaaiaaiaaiacUaeCaeDaeEaeFaeFaeFaeFaeFaeFabTabTaeGaeHaeIabTabTaeJaeKaeLaeMaeNaeOaePaeQaeRaeSaeTaeUaeVaeWaeXaeYaeZafaafbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcaaaaaaaaaafcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafdafeaffafgafhadHaeFafiafjafjafjafjaenafkaflafmafnafoaenafpaeSafqafrafsaftafuafvafvafwafxafyafzafAafBafCafDafEafFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaafaaiabHaaPabIabJaaPabKabLabMabMabNaaPabOaaiaafaafaagaafaafabPabuabsabuabPaafaagaaaaaaaafaagaagaagaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaacaacaacaacaacaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaiabHaaPabIabQaaPabRabSaaaaaaaaaaaPabTabTabTabTabTaafaafabUabsabuabsabVaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaacaacaacaacaacaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaiabWaaPabXabYaaiabZacaaaiaaaaaaabTabTacbaccacdabTabTaafaaVabsabsabuaaVaceaceaceaceaceaceacfacfacfacfacfacfaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagaaiacgachaciacjackaclacmaaPaaaabTabTapeacoacoacoapVabTabTaaVacqabsacraaVaceacsactacuacvacwacfbWObWObWObWOacfaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaiacxacyaczacAacBacCacDaaPaaaabTacEacFacGacoacHacIacJabTacKacLacMacNacOaceacsacPacQacRaBLaLlaBKaBKaBKaBKacfaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTaaiaaiaaiaaiacUacVacWacXaaPaaPaaPaaPaaaabTacYacFacZacoacHacIadaabTadbadcaddadeadfaceacsactaYhbFHbRebVVaYbaBKaBKaWyacfaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTadiadjadkadladmadnadoadpaaradqadraaPaaaabTadsacFadtacoacHacIaduabTadvadwadxadyadzaceaceaceadAadBaceacfadhadXaezaeXacfaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTadCadDadEadDadFadGaczadHadIadJadJaaPaaaabTabTadKadLacoadMadNabTabTadOadPadxadQaaVaceadRadSadTadUadVadWadWafBadYadWadWaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTadZaeaaebaecaedaeeaefaegaaJaehaeiaaPaaaaaaabTaejaekacoaelaemabTaenaaVaeoaepaeqaaVaeraesaetaeuaevaewaexaeyacSaeAaeBadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTaaiaaiaaiaaiacUaeCaeDaeEaeFaeFaeFaeFaeFaeFabTabTaeGaeHaeIabTabTaeJaeKaeLaeMaeNaeOaePaeQaeRaeSaeTaeUaeVaeWadgaeYaeZafaafbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcaaaaaaaaaafcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafdafeaffafgafhadHaeFafiafjafjafjafjaenafkaflafmafnafoaenafpaeSafqafrafsaftafuafvafvafwafxafyafzafAbYqafCafDafEafFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafGafHafIafJadoafKaeFafLafMafNafOafNafPafQafRafSafTafUafVafWafXafYafZagaagbagcagdageagfaggagcaghagiagjagkaglagmadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcaaaaaaafcaaaaaaafcafcafcafcafcafcafcaaaaaaafcaaaaaaafcaaaaaaaaaaaaaaaaaiagnaaxagoagpagqagraeFagsagtafNaguagvaenagwagxagyagzagAaenagBagCagDagEagFagGagHagIagJagKagJagHagLagMagNagOagPagQagRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcaaaafcafcafcafcafcafcafcafcafcaaaafcafcafcafcaaaaaaaaaaaaaaaaaiagSagTagUagVagWadHaeFagXagYagZahaagXabTahbahcahdaheahfaenagBagCagDahgahhahiahjahkahkahlahkahmahnahoahpahqahqahrahsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10588,7 +10609,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafaolaolaolaolaolaafaoWaafaolaolaolaolaolaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxaqxaqyaqzaqAaqBaqCaqDaqEaqEaqEaqEaqEaqEaqEaqFaqGaqHaqGaqIaqJaqKaqLaqMaqNaqLaqOaleapiapiapiapiapiapiaqPaqQaqRaqSaqTaqUaqVajhalNaqWaqXalNaaaaaaaaaalOalOalOaaaaaaaaaaaaaaaaaaaaaalPaafaoMaoNaoNaoNaoNaoOaoPaoQaoRaoRaoRaoRaoSaafalPaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqYaqZaqYaaaaaaaaaaaaaaaaaaaaaalPaafaoTaoUaoUaoUaoUaoVaoWaoXaoYaoYaoYaoYaoZaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxapaaraapxarbarbarcardarbarbarbarearearearfargarearearhariarjarkalNarlalNarmalNalNarnajhajhajhajhajharoaqQacnarqarqarqarrarsartaruarvalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafapvapvapvapvapvaafaoPaafapvapvapvapvapvaafalPaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafarwarxarwaaaaaaaaaaaaaaaaaaaaaalPaafapwapwapwapwapwaafaoWaafapwapwapwapwapwaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapxaryapbapxarEatVatXatWaWtatYarbaWvarGarHarIarJarKarLarMapEarNarOarParQarRarRarRarRarRarSarRarRarRarRarUarVarWarXarYarZasaaWsascasdasealNaafasfasgasgashasgasgasiaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaaaaoPaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasjaLlaslaaaasmaWyasoaaaaafaspaqYaspaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaaaaoWaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxapxapxapxapbapxarEarAatXatWassasrarbaWwarIarIarIarJasuasvaswasxasyalNaszasAasBasBasBasBasCasDasHasIasHasHasHasHasIasHasGasKasLasMasNasOasPasPasPasQasRasRasRasRasRasQasPaaaaaaaaaaaaalPaafaojaojaojaojaojaafaoPaafaojaojaojaojaojaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasjccqaslaaaasmccrasoaaaaafaspaqYaspaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaaaaoWaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxapxapxapxapbapxarEarAatXatWassasrarbaWwarIarIarIarJasuasvaswasxasyalNaszasAasBasBasBasBasCasDasHasIasHasHasHasHasIasHasGasKasLasMasNasOasPasPasPasQasRasRasRasRasRasQasPaaaaaaaaaaaaalPaafaojaojaojaojaojaafaoPaafaojaojaojaojaojaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasTasUasTasSasVasWasVasSaafaspasXasYaaaaaaaaaaaaaaaaaaaaaalPaafaolaolaolaolaolaafaoWaafaolaolaolaolaolaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafapxasZataapxapbapxauParAatXatWauOauNarbatearIatfatfarJatgasvapAapEathalNatiatjatkatlatmatnatoatpasEatuatvatwatraYcasJatqattatzatAatBatCatDatEatFasPatGasRasRasRasRasRasQasPaafaaaaaaaaaalQaafaoMaoNaoNaoNaoNaoOaoPaoQaoRaoRaoRaoRaoSaafalPaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHasTatIasTatHasVatJasVatHatKatLatMatNatOatOatPatKatKaafaaaalPaafaoTaoUaoUaoUaoUaoVaoWaoXaoYaoYaoYaoYaoZaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafapxatQatRatSatTatUbBqavDavCavBauQaYearbauaaubaucaucaudaueasvapAapEarNalNatiatjaufaugatmatnauhauiasEaukaujatsatsaYdatxatyarTaupauqaurausautauuauvauwauxasRasRasRasRasRauyasPasPasPaaaaaaalQaaaapvapvapvapvapvaafaoPaafapvapvapvapvapvaaaampaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHauzauAauBatHauCauDauEatHaqYaqYauFauGauHauIauJauKatKaaaaaaampaaaapwapwapwapwapwaafaoWaafapwapwapwapwapwaaaalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagapxauLapaapxauMapxarBarAarDarCasqarEarbauRauSauTauTauUauVauWauXauYauZavaavbavcaufatlatmatnavdauiasEasEasEasFasFaTFasEasEarTavgavhaviaviavjavkavlavmavnasRasRasRasRasRavoavpavqavraaaaaaalQaaaaafaaaaafaafaaaaaaaoPaaaaaaaafaaaaaaaafaaaalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10599,48 +10620,48 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafatHayUayVayUayWaxTaxTayXayUayVayUayYaxSaxVayZatKaxfatKatKazaatOatOatOatOatPatKazbazcazdazeazbapxapxawoawpawqapxapxapxapaaryaygaaaaafaaaaafaaaaafaaaaafaaaaygaykaylazfazgazhaziazjaylaymapaaxrazkazkazlazmaznazoazpazqazrazsaztaztaxrayzapEazualNayBatjaufatlatmatnauhazvazwazxazyazzazAazBazBazCazBasPazDazEazFaYiazHazIasPazJasRasRasRasRasRazKasPaafaaaaaaaaaaaaaaaaafaafaaaaafazLazMazNazOazPaafaaaaaaaafaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafazQasSazRavtazSazTazUazVazWazSavtazXazYasSazZaAaatKaAbaAcaAcaAcaAcaAcaAcavzaAdaAeazbaAfaAgaAhazbaAiapaapaapaapaapaapaapaapaaAjaygaafaAkaAkaAkaAkaAkaAkaAkaafaygaykaylaAlaAmaAnaAoaAlaylaymaApaxraxraxraxraAqaAraypaAsaAraAtaxraxraxraxrayzapEaAualNayBatjaufatlatmatnavdaAvazBazBazBazBazBazBaAwaAxaAyazBasPasPasPasPaAzasPasPazKasRasRasRasRasRazKasPaaaaaaaaaaaaaaeaaaaaaaaaaaaaafaAAaABaACaADaAAaafaaaaaaaafaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxRayVaAEaAFaAFaAFaAFaAGayVaxRaAHasSaAIaAJaAKaAKaAKaAKaAKaAKaAKaAKawiaALaAeazbaAMaANaAOazbaAPaAQaAPaAPaAPaAPaAPaAPaAPaAPaARaaaaAkaASaATaAUaAVaAWaAkaaaaygaykaylaAlaAXaAYaAZaAlaylaymapxaxraBaaBbazlaBcaBdazoazpaBdaBeazsaBfaBfaxrayzapEayAalNaBgasAavLatlavMaBhavdaAvazBaBiaAxaBjaBjazBaAwaBkaAyazBaBlaBmaBnaBoaBpaBqaafaBraBsaBsaBsaBsaBsaBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaAAaBuaBvaBwaAAaafaaaaaaaBxaByaByaByaByaBzaBAaByaByaByaByaBBaBBaByaBCaBDaBEaBFaBGaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaBHaBIaBJaBIaBIaBKaBLaBIaBIaBJaBMaBNasSayWaBOaBPaBQaBRaBSaBTaBUaBVaAKawiaBWatKazbazbaBXaBYaARaBZaCaaCbaCcaCdaCeaCfaCgaChaCiaARaafaAkaCjaCkaClaCmaCnaAkaafaygaykaylaCoaCpaCqaCpaCraylaymaCsaxrayoaypaCtaCuaAraCvaAsaAraCwaCxaypaCyaxrayzapEayAalNayBawHawIaCzaVdatnaCAaCBazBaCCaAxaAxaAxazCaCDaCEaCFazBaCGaCHaCIaCJaYfaBqaaaaafaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaAAaCLaCMaCNaAAaBqaCOaCPaCQaCRaCSaCSaCSaCSaCSaCSaCTaCUaCUaCVaCWaCXaCUaCUaCYaCZaDaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaBHaBIaBJaBIaBIcaaccoaBIaBIaBJaBMaBNasSayWaBOaBPaBQaBRaBSaBTaBUaBVaAKawiaBWatKazbazbaBXaBYaARaBZaCaaCbaCcaCdaCeaCfaCgaChaCiaARaafaAkaCjaCkaClaCmaCnaAkaafaygaykaylaCoaCpaCqaCpaCraylaymaCsaxrayoaypaCtaCuaAraCvaAsaAraCwaCxaypaCyaxrayzapEayAalNayBawHawIaCzaVdatnaCAaCBazBaCCaAxaAxaAxazCaCDaCEaCFazBaCGaCHaCIaCJaYfaBqaaaaafaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaAAaCLaCMaCNaAAaBqaCOaCPaCQaCRaCSaCSaCSaCSaCSaCSaCTaCUaCUaCVaCWaCXaCUaCUaCYaCZaDaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBHaBMaBIaDbaDcaDcaDdaDeaDfaDgaDhaDcaDcaDiaDjayUayWaDkaAKaDlaDmaDnaDoaDnaDpaDqaDraDsaqYaDtaDuaDvaAcaDwaDxaDyaDzaDzaDzaDAaDzaDzaDBaCaaARaaaaAkaDCaDDaDEaCmaDFaAkaaaaygaykaylaDGaDHaDIaDJaDKaylaymaDLaxraxraxraxraDMaAraypaDNaBdaDOaDPaypaDQaxraDRasxaDSalNayBaDTaDUaDUaDUaDUaDVaDWaDXaDYaDZaEaaEaaEaaEbaEaaEcaEdaEeaEfaEgaEhaEiaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaCOaCPaBqaBqaBqaCOaEjaEkaBqaBqaAAaAAaElaEmaAAaEnaEoaEpaEqaEraEsaEsaEsaEsaEsaEnaEtaEuaEuaEvaEwaExaEuaEyaEzaEAaEyaEyaEyaEyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaEBaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSayWaEHaAKaEIaEJaEKaELaEMaENaAKaEOaEPaAcaEQaAcaERaqYaAPaESaDBaDzaDzaDzaDzaDzaDzaETaEUaEVaEWaEXaEYaEZaFaaFbaFcaAkaafaygaFdaFeaFfaFgaFhaFiaFjaFeaFkaFlaxraFmaypazlaFnaBdazoaFoaAraCwaFpaypaFqaxraFraFsaFtalNaFuarsarsarsaFvaFwaFxaFyaFzaFAaFBaFzaFCaFzaFDaFzaFEaFFaFGaFHaFIaBoaFJaFKaFLaFMaFMaFKaYgaFOaFOaFOaFOaFOaFPaFQaFOaFRaFSaFTaFUaFVaFWaFXaFYaFZaGaaGaaGaaGbaGcaGdaGeaEsaGfaGgaGhaEsaEuaGiaEuaGjaGkaGlaGmaGnaGoaGpaGqaGraGsaGtaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYbaDcaDcaBJaDcaEEaDcaEEaGxaEEaDcaEEaDcaEFaEGazSayWaGyaAKaGzaGAaGBaGCaGBaBPaBPaGDaGEaGFaGGaGHaGGaGGaGIaGJaGKaGLaGLaGLaGMaGLaGLaGNaGOaARaaaaGPaAkaGQaGRaGQaAkaAkaaaaygaGSaylaGTaGUaGVaGWaGXaGYaGZaHaaxraHbaypaCxaCuaAraypaAsaAraCwaHcaypaHdaxraHeaHfaHgalNaHhalNalNalNaHialNaHjaHkazBaHlaAxazBaHmazBaHnazBaHoaHpaHqaHraHsaHtaHuaHvaHwaHxaHyaHzaHAaHyaHyaHBaByaHvaHCaHvaHDaHvaHvaHEaHFaHGaHHaHHaHIaHJaHKaHLaHHaHMaHNaHOaHPaHQaHRaHSaHTaEsaHUaHVaEuaHWaHXaHYaHZaGnaIaaIbaGqaIcaEyaEyaEyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaIdaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSaIeaIfaIgaIhaIiaIiaIiaIfaIjaIkaIfaIlaImaInaIoauKauKaAPaGOaIpaCaaIqaGOaGOaIraIsaItaIuaARaaaaIvaaaaIwaIxaIwaaaaafaaaaygaGSaylaIyaIzaIAaIBaICaylaIDapaaxraIEaypazlaIFaIGazoaIHaIIaIJaIKaILaIMaxraINaIOaIPaIQaIRaISaaaaaaaITaIUaIVaIWazBaIXaAxaAxaAxaCEaAxaAxaAxaIYaBoaIZaBoaJaaJbaBoaJcaBoaJdaJeaJfaJgaJhaJiaJjaJkaJlaJjaJmaJjaJjaJjaJjaJnaJjaJjaJoaJjaJjaJjaJjaJpaJqaHPaJraJsaJtaJuaJvaEsaJwaJxaJyaJzaJAaJBaHZaJCaIaaIbaGqaIbaJDaJEaJFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaJIaBIaDbaDcaDcaDcaJJaDcaDcaJKaDcaDcaDiaJLaJMayWaxTaJNaJOaJOaJOaJOaJOaJOaJOaJPaJQatKatKaJRatKatKaAPaJSaJTaJUaJVaJVaJVaJVaJWaJXaJYaARaJZaKaaKbaKcaKdaKeaKbaKbaKfaygaKgaylaylaylaKhaKiaylaylaKjaKkaxraxraxraxraKlaKmaCxaCxaKnaKoaxraxraxraxraIOaIOaIOaIOaKpaKqaKraKsaITaKtaIVaKuazBazBazBazBazBazBazBazBazBaIYaKvaKwaKxaKyaKzaKAaKBaKCaJdaKDaKEaKFaKGaKHaJjaKIaKJaKKaKLaKKaKMaKNaKOaKPaKQaKRaKSaKTaKUaKVaJjaKWaKXaKYaJraKZaJtaJuaLaaEsaLbaLcaLdavfauoaveaunaEuaEyaLhaGqaIbaLiaLjaLkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaBIaBJaBIaBIaBKaBLaBIaBIaBJaJIaLmasSaLnaxTawXaLoaLoaLpaLoaLqatHaLraLsaJQaLtaLuaLvaLwaLxaLyaLzaLAaLzaLzaLzaLzaLzaLzaLzaLBaLCaLDaLEaLFaLFaLGaLHaLFaLFaLFaLIaLJaLKaLLaLFaLMaLNaLOaLPaLQaIOaLRaLSaIOaIPaLTaLTaLTaLTaLTaLTaLUaLVaLWaLXaLYaLZaMaaMbaMcaIOaIOaIOaMdaMeaMfaMeaMgaMhaMiaMjaIOaMkaIOaBoaMlaMmaMnaMoaMpaMpaMqaMraMsaMtaJdaMuaMvaMwaMwaMxaJjaMyaMzaMAaMBaMAaMAaMCaMDaMEaMDaMFaMGaMHaMIaMDaJjaJpaMJaMKaMKaMLaMMaMKaMNaEsaMOaMPaEuaMQaMRaHZavTaEuaMSaMTaMUaIbaEyaEyaEyaaaaafaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXayVaMVaAFaAFaAFaAFaMWayVawXaAHasSaAIaMXaMYaMZavSaNbaNbaNcatHaNdaLsaNeaNfaLuaNgaNhaNiaNjaNkaNlaLzaLzaLzaLzaLzaLzaLzaLBaNmaNnaLzaLzaLzaNoaNpaLzaLzaLzaLzaNqaLzaLzaLzaNraNmaLuaLPaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaNsaNtaNuaNvaNwaNxaNyaNzaNAaIOaIOaIOaLPaIOaIOaIOaIOaIOaIOaIOaIOaNBaIOaBoaNCaNDaMpaNEaMpaMpaNFaNGaMsaNHaJdaNIaNJaNKaNLaNMaJjaNNaNOaNPaNQaNRaNSaJjaNTaNUaNTaJjaJjaJjaJoaJjaJjaJpaJqaNVaHPaHPaNWaHPaNXaEsaEuaEuaEuaEuaEuaEuavQaEuaIbaIbaGqaIbaNZaOaaEyaaaaafaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafazQasSaMYavtazSaObaOcaOdaOeazSavtaOfaOgasSayWaxTaMYaOhaOiaNbaNbaNcatHaOjaLsaJQaNfaLuaOkaOlaOmaOmaOmaOnaOoaOpaOmaOqaOmaOmaOraOsaOtaOuaOmaOvaOwaOxaOyaOzaOAaOBaOCaODaOEaOEaOFaOGaNmaLuaLPaIOaOHaIOaOIaOIaOIaOIaOIaOIaOIaOIaOJaOKaOIaOIaOIaOIaOLaOIaOIaOIaOIaOIaOMaONaOIaOIaOIaOIaOIaOIaOIaIOaIOaIOaBoaOOaOPaOQaOQaOQaORaOSaNGaMsaOTaJdaJdaJdaJdaJdaOUaJjaOVaOWaOXaOYaNPaNPaJjaOZaPaaPbaPcaPbaPbaPdaPeaJjaJpaJqaPfaPfaPgaPhaPiaPiaPjaEsaPkaPlaPmaEyaskaVbasbaIbaIbaGqaIbaEyaPsaEyaPtaPtaPtaPuaPvaPwaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafatHaxRayVaJMayWaxTaxTayXaJMayVaJMaPxawYaPyaxTaxRaPzaPzaLpaPzaLqatHaPAaLsaJQaPBaPBaPCaPDaPBaPEaPEaPEaPEaPEaPFaPGaPEaPEaPEaPEaPEaPHaPIaPJaPIaPKaPLaPMaLzaLAaPNaPOaPPaPQaLAaLzaPRaPSaPSaIOaIOaIPaPTaKraKraPUaPUaPUaPUaPVaPWaPXaPYaPZaQaaQaaQbaQcaQaaQdaQeaQfaPWaQgaPUaPUaPUaPUaKraKraQhaINaIOaIOaBoaQiaQjaQkaQkaQkaQkaQlaQmaQnaQoaQparFaQraQsaQtaQuaJdaJdaQvaQwaQxaQyaQzaJjaQAaQBaQCaQCaQCaQCaQDaQEaJjaQFaJqaQGaHPaPgaPhaHPaHPaQHaEsaQIaQJaQKaEyaQLarpaPraSoaPoarzaIbaQQaQRaEyaQSaQTaPtaQUaQVaQWaafaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXaQXaxTaQYaPyaxTaxTaQZaQYaxTaQXaPyaxTaxTaxTaRaaRbaRbaRbaRbaRbaRbaRbaRcaRdaPBaReaRfaRgaRhaRiaRjaRkaRlaRmaRnaRoaRpaRqaRraRsaRtaRuaRvaRwaRxaPKaRyaPMaPMaRzaPMaRAaPSaPSaRBaRCaPSaPSaPSaRDaIOaIPaREaaaaaaaaaaaaaaaaaaaaaaPWaRFaRGaRHaRIaRJaRKaRJaRLaRMaRNaROaPWaaaaaaaaaaaaaaaaaaaaaaRPaINaIOaRQaRRaRSaRTaQoaQoaQoaQoaQoaRUaRVaQoaQoaQoaQraMpaRWaRXaRYaRZaSaaSbaScaSdaSeaJdaPbaSfaSgaSgaSgaSgaShaSiaJjaJpaJqaSjaSjaPgaPhaSkaSkaSlaEsaEsaSmaEsaEyaLhatZaulaulaulaumaTJaEyaEyaEyaSpaSqaSraSsaStaSuaafaafaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaxRaSvaSwaSvaSvaSvaSvaSvaSvaSwaSvaSvaSxaxTaxTaSyaxTaxTaSzaxTaSAaSBaSCaSDaSEaPBaReaSFaSGaPEaSHaRnaRnaRnaRnaRnaRoaSIaRnaRnaRnaRtaPHaSJaSKaSLaPKaRyaPMaSMaSNaSOaSPaPSaSQaSRaSSaSTaSUaSVaIOaIOaIPaREaaaaaaaaaaaaaPWaPWaPWaPWaSWaSXaSYaSZaTaaTbaTcaTdaTeaTfaTgaPWaPWaPWaPWaaaaaaaaaaaaaRPaINaIOaIOaThaQoaTiaTjaTkaQoaTlaTmaCIaTnaToaTkaQoaQraMpaTpaRXaTqaTraTsaTtaTuaTvaRXaTwaTxaTyaSgaTzaTAaSgaTBaPbaJjaJpaJqaQGaHPaPgaPhaHPaHPaHPaTCaTDaHPaTEaEyasnastaSoaSoaSoarzaIbaIbaEyaTKaSsaSsaSsaSsaStaTLaTMaTMaTNaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasSaTOaTPaTPaTPaTPaTPaTPaTPazYasSatHaTQaTRaTSaTSaTSaTTaTSaTSaTSaTUaTSaTUaPBaReaTVaTWaPEaTXaRnaRnaTYaTZaUaaUbaTYaRnaRnaRnaUcaPHaUdaUeaUfaPKaUgaPMaUhaUiaUjaUkaPSaUlaSUaSUaSSaSUaUmaIOaIOaIPaKqaPVaUnaUoaPWaPWaUpaUqaUraUsaUtaUtaUuaUvaUtaUuaUvaUtaUwaUxaUyaUzaUAaPWaPWaUoaUnaUBaUCaINaIOaIOaBoaUDaTiaToaTkaQoaUEaUFaQoaUGaUHaTkaQoaQraMpaUIaRXaUJaUKaULaUMaUNaUOaRXaUPaUQaURaSgaUSaUTaSgaUUaUVaJjaJpaJqaUWaUWaPgaPhaUXaHPaHPaUYaHPaUZaVaaEyaIbaTGaTHaSoaTGaPqaQqaVfaEyaVgaSsaSsaSsaSsaSsaVhaViaVjaVkaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaafaVmazTaxVaxTaVnaVoaVpaVqaVraVsaVtaVuaVvaVwaVxaVyaVzaVAaPEaVBaRnaRnaTYaUaaVCaVDaTYaRnaRnaRnaRtaPHaPKaPKaVEaPKaVFaVGaVGaVGaVGaVHaVIaVJaSSaSSaSSaSSaUmaIOaIOaIPaLTaLTaVKaVLaVMaPWaVNaTbaUtaVOaUtaUtaUtaUtaVPaUtaVQaUtaVRaVSaVSaVTaVUaPWaVVaVLaVWaVXaLTaINaIOaIOaThaQoaRTaQoaQoaQoaVYaVZaQoaUGaWaaTkaQoaQraMpaWbaRXaWcaWdaWeaWfaWgaUOaWhaJdaPbaURaWiaSgaSgaSgaUUaPbaJjaWjaJqaEsaEsaWkaPhaWlaWmaHPaWnaWoaKZaWpaWqaMTaPnaPpaWuaPnaNYaMTaWxaWqaNaaWzaSsaSsaSsaWAaWBaWCaTMaWDaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaWEaWFaWGayWaWHaWIaWJaWKaWLaWMaWNaWOaWPaWKaWQaWRaWSaWTaWUaPEaWVaRnaWWaWXaWYaWYaWZaWYaWYaWYaXaaXbaXcaXdaXeaXfaXgaXhaReaReaXiaPBaXjaPSaXkaXlaXmaXnaXnaXoaIOaIOaIOaIOaIOaXpaXqaXraXsaXtaXuaUtaXvaXwaXxaXyaXzaXAaXBaXCaXDaXEaXFaXtaXGaXHaXIaXJaXKaXLaXMaXNaXOaIOaXPaBoaRSaTiaXQaTkaQoaXRaXSaQoaUGaToaTkaQoaQraXTaRWaRXaWcaRXaXUaRXaXVaUOaXWaJdaQAaURaSgaSgaSgaSgaUUaQEaJjaXXaXYaXZaYaaQOaQPaPgaPgaPgaPgaPgaPgaZIaEyaIbaTGaTHaSoaTGaTHaIbaGqaEyaSnaSsaSsaSsaSsaYkaYlaYmaafaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaYnavtaYnaxTaYoaTUaYpaYqaYraYraYraYraYsaYtaTSaYuaYvaYwaYxaYyaYyaYyaYzaYyaYAaYBaYCaYDaYEaYEaYFaRtaYGaYHaYIaYJaYKaYLaYMaYMaYNaYOaYPaYQaYRaYSaYSaYSaYTaPSaYUaIOaYVaYWaYXaYYaYZaZaaZbaZcaZdaZeaZfaPWaPWaPWaPWaPWaPWaZgaZhaZiaZjaXwaZkaZlaPWaZaaYZaZmaZnaYWaZoaIOaIOaThaQoaZpaQoaQoaQoaFHaQoaQoaZqaQoaZraZraZraZraZsaZtaZuaRXaRXaRXaZvaZwaZxaJdaZyaZzaSgaZAaZAaZBaZzaZCaJjaZDaZEaZFaZGaPgaPgaPgaPgaZHaPgaPgaPgaZIawKaIbaPoaPraSoaPoaPraIbaGqawKaYjaSsaSsaZJaSsaSsaZKaYmaafaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaZLaZMaWGayWaZNaZOaZPaZQaZRaZSaZTaYraZUaZVaTSaZWaZXaYwaYxaZYaZZbaababaYybacbadbaeaPEbafbagbahbaiaPEbajbakbalbalbalbalbambalbalbanbaobaobaobapbaobaqbarbasbatbaubavbawbawbawbawbaxbaybazbaybaAbaBbaBbaBbaBbaBbaBbaBbaBbaCbaDbaDbaEbaDbaDbaDbaDbaDbaDbaDaZoaIOaIOaBobaFbaGaBlbaHaQobaIaQobaJbaKbaLaZrbaMbaNbaOaJdaJdaJdbaPbaQbaQbaQaJdaJdaJdbaRaSgaSgaLeaFNbaUbaVaGwaJjbaXaZEbaYaEsbaZbbabbbaWmbbcbbabbdaWmbbeaEybbfaQMaQNbbgaQMaQNaIbbbhaEybbibbjbbkaSsaSsbblbbmaYmaafaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaafaxRbbnaPybboaTUbbpbbpbbqbbrbbsbbqbbtbbpaTSbbubbvbbwbbxbbybbybbzbbAbbybbBbadbbCaPEbafbagbbDbbEaPEbbFbakbalbbGbbHbbHbbHbbIbalbbJbbKbbLbbMbarbarbarbaraIOaIObbNbbObbPbbQbbRbbSbbTbbUbbVbbWbaAbaBbbXbbYbbZbcabcbbccbcdbaCbaDbcebcfbcgbchbcibcjbckbdsbaDbcmbcnbcnaBoaBoaBoaBoaBobcoaThbcobcpaBoaBoaRRaBoaBoaBobcqbcrbcrbcrbcrbcrbcrbcsbcrbcqazGbctbctaCKaZFaZFaZFaZFbcqbaXbcvbaYaEsaEsaEsaEsaEsbcwaEsaEsaEsaEsaEyaxDbcAawKavUawKbcybcAaEyaEybcBaSsbcCaSsaSsaWAbcDbcEaTMaWDaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazQasSbcFaAFaWGatHatHatHatHatHatHbcGbboaTUaTSaTSaTSaTSaTSaTSaTSaTSaTSbcHaReaYwaYxaZYbcIbcJbcKaYybcLbcMbcNaPEbafbagbcObcPaPEbbFbakbalbbHbcQbcQbbHbcQbalbbJbcRbcSbcSbcTbcUbcVbarbcWaIOaYVbcXbcYbcZbdabdbbdbbdabdcbddbaAbaBbdebdfbdgbdhbdibdjbdkbdlbdmbdnbdobclbdpbdqbdrbclaLgbaDaZobdtaIOaNsbdubdvaZFaZFaZFaZFaZFaZFaZFbdwaZFaZFaZFaZFbdxaZFaZFaZFaZFaZFaZFaZFaZFbdyaZFaZFaZFaZFaZFaZFaZFaZFbdzbdAbdBbdCbdDbdCbdEbdCbdFbdGbdHbdCbdIbdCbdJbdKbdCbdCbdCbdCbdCbdCbdLbdMbdNbdObcCaSsaSsaSsaVkbdPaVjaVkaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaaaaafbdRazTaxVbdSbdTbdUbdUbdUbdUbdUbdUbdVbdWaPBaXiaReaYwaYxaYyaYybdXbdYaYyaPEaPEbdZaPEbafbeabcObebaPEbbFbakbalbecbedbbHbcQbeebalbbJbefbcSbcSbcSbegbehbarbeiaIOaYVbejbekbelbembenbeobepbdcbeqbaAbaBberbesbetbetbetbeubevbaBbewbexbclbclbdpbeybdrbclaLfbaDbeAaIOaIOaNsbdubdvaZFaZFaZFaZFaZFaZFaZFbeBaZFaZFaZFaZFaZFaZFbeCbdCbdCbdCbdCbdCbdCbeDbdCbdCbdCbdCbdCbdCbdCbeEbeFbeGbeHaZFaZFaZFaZFaZFaZEaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbeIbdzbeJaSsaSsbcCaSsaSsbeKbeLaTMaTMaTNaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaWEaWFbeMayWbeNbeObePbePbeQbePbePbePbeRaPBaPBaPBaPBaYwaYxaZYbeSbeTbeUaYybeVbeWbeXaPEaPEaPEaPEbeYaPEbbFbakbalbeZbbHbcQbfabfbbalbbJbarbfcbcSbcSbfdbfebarbffaIOaYVbfgbfhbelbembfibfjbepbdcbfkbaAbflbfmbfnbetbfobetbdfbfpbfqbewbfrbfsbftbfubfubfvbclbfwbaDaZobfxaIOaNsbdubdvaZFbfyaZFbfzbfAbfAbfAbfBbfAbfAbfAbfCaZFaZFaZFaZFbfDaZFbfybfEbfFbfGaZFaZFaZFbfHbfIbfJbfKbfLbfMbfNaZFaZFaZFaZFaZFbfObfPbfDaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbdzbfQbfRbfSbfTbfUbfVbbmbfWaafaaaaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaYnavtaYnaxTbfXbePbfYbfZbgabgabgbbgcbgdbgebgebgebgebgfbggbghbghbgibgjbghbgkbgkbglbgkbgmbgnbgnbgobgnbgpbgqbgrbgsbgtbgtbgubgvbgrbgwbgxbgybcSbcSbfdbgzbgAbffaIOaYVbgBbgCbgDbdabdabdabdabdcbgEbaAbaBbgFbgGbgHbgIbgJbgGbgKbaBbewbgLbgMbgNbgObgPbgQbgRbgSbaDbgTaHfaHfbgUbgUbgUbgUbgUbgUbgUbgVbgWbgWbgXbgYbgZbgVbhabhabhabhabhabhabhbbhbbhbbhcbhbbhbbhbbhdbhebfObhfbhgbhhbhibhjaZFaZFbhkbhkbhlbhlbhlbhlbhlbhmbhnbhnbhobhnaZFbhnbhobhnbhnbhpbhqbhqbhqbhqbhrbhgaPtaPtaPtaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaZLaZMbeMayWbhsbePbhtbePbhubhvbePbePbePaRebhwbhxbhxbhyaYyaZYbhzbcJbhAaYybhBbhCbhDbhEbhFbhGbhHbhIbhJbhHbhKbhLbhMbhNbhMbhMbhObhPbhQbhRbhSbcSbcSbhTbhUbhVbffaIObhWbgBbhXbhYbhZbiabibbicbidbaAbaAbaBbiebifbigbihbiibijbikbaBbewbilbimbinbiobipbgQbclbiqbaDaZoaIObirbgUbisbitbiubivbRIbixbiybizbizbiAbiBbiBbSBbhabiDbiEbiFbiGbhabiHbiIbiJbiKbiLbiMbiNbiObiPbiObiObiObiQbiRbiSbiTbiSbiUbiUbhlbiVbiWbiXbhlbiYbiZbiYbhlbhmbhnbhpbhqbjabjbbjabhqbjcbjdbhqbjebjfbjgbhgaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaaaaaaaMYbbnaPybjhbePbjibePbjjbjkbjlbSjbePbjnaRebjoaRebjpaYyaYyaYyaYyaYyaYybjqbjrbjsaRebjtbalbalbalbjubalbalbalbjvbalbalbalbalbjwbjxbjybjzbcSbcSbfdbjAbgAbffaIObjBbgBbjCbhYbaAbaAbaAbaAbjDbaAbjEbjFbjGbjHbbXbjIbbXbjJbjKbjLbjMbilbjNbclbjObjPbgQbjQbjRbjSbjTbjUbjVbgUbjWbjXbjYbjZbkabkbbkcbkdbizbkebizbizbkfbkgbkhbkibkjbkkbhabklbkmbknbkmbkobkpbhbbkqbkrbksbktbhgbkubkvbkwbkxbkybkzbkAbkBbkCbkDbkCbkEbkFbkGbkHbhlbkIbkJbkKbhqbkLbkMbkNbkObkPbkQbhqbkRbkSbkTbhgaaaaaaaaaaaeaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazQasSbcFaAFaZMaTPaTPaTPbkUaTPbkVayWaxTaxTbePbkWbkXbkYbkZblablbblcbldbldbldbldbleblfblfblfbhHbhHbhHblgblhblhblhblibalbljblkbllblmblnbloblpblqblrblsbltblublvblwblxblyblzblAblBblBblCbjUblDblEblFblGblHblIblJblKblLblMblNbjLbjLbjLbjLblObjLbjLbjLbjLblPblQblRblSblTblUblVblWblXblYblZaIOaIObgUbmabmbbmcbjZbmdbmebkcbmfbmgbmhbmgbmgbmibmjbmkbmlbmmbmnbhabmobkmbmpbkmbkobmqbhbbjgbmrbmsbmtbhgbkubmubmvbmwbmwbmxbmybmzbmAbmAbmAbmBbmCbmDbmEbmFbmGbmHbmIbmJbmKbmLbkPbmMbmNbmObhqbmPbkSbmsbhgaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaEBaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSayWaEHaAKaEIaEJaEKaELaEMaENaAKaEOaEPaAcaEQaAcaERaqYaAPaESaDBaDzaDzaDzaDzaDzaDzaETaEUaEVaEWaEXaEYaEZaFaaFbaFcaAkaafaygaFdaFeaFfaFgaFhaFiaFjaFeaFkaFlaxraFmaypazlaFnaBdazoaFoaAraCwaFpaypaFqaxraFraFsaFtalNaFuarsarsarsaFvaFwaFxaFyaFzaFAaFBaFzaFCaFzaFDaFzaFEaFFaFGaFHaFIaBoaFJaFKaFLaFMaFMaFKaYgaFOaFOaFOaFOaFOaFPaFQaFOaFRaFSaFTaFUaFVaFWaFXaFYaFZaGaaGaaGaaGbaGcaGdaGeaEsaGfaGgaGhaEsaEuaGiaEuaGjaGkaGlaGmaGnaGoaGpaGqaGraGsaGtaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccsaDcaDcaBJaDcaEEaDcaEEaGxaEEaDcaEEaDcaEFaEGazSayWaGyaAKaGzaGAaGBaGCaGBaBPaBPaGDaGEaGFaGGaGHaGGaGGaGIaGJaGKaGLaGLaGLaGMaGLaGLaGNaGOaARaaaaGPaAkaGQaGRaGQaAkaAkaaaaygaGSaylaGTaGUaGVaGWaGXaGYaGZaHaaxraHbaypaCxaCuaAraypaAsaAraCwaHcaypaHdaxraHeaHfaHgalNaHhalNalNalNaHialNaHjaHkazBaHlaAxazBaHmazBaHnazBaHoaHpaHqaHraHsaHtaHuaHvaHwaHxaHyaHzaHAaHyaHyaHBaByaHvaHCaHvaHDaHvaHvaHEaHFaHGaHHaHHaHIaHJaHKaHLaHHaHMaHNaHOaHPaHQaHRaHSaHTaEsaHUaHVaEuaHWaHXaHYaHZaGnaIaaIbaGqaIcaEyaEyaEyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaIdaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSaIeaIfaIgaIhaIiaIiaIiaIfaIjaIkaIfaIlaImaInaIoauKauKaAPaGOaIpaCaaIqaGOaGOaIraIsaItaIuaARaaaaIvaaaaIwaIxaIwaaaaafaaaaygaGSaylaIyaIzaIAaIBaICaylaIDapaaxraIEaypazlaIFaIGazoaIHaIIaIJaIKaILaIMaxraINaIOaIPaIQaIRaISaaaaaaaITaIUaIVaIWazBaIXaAxaAxaAxaCEaAxaAxaAxaIYaBoaIZaBoaJaaJbaBoaJcaBoaJdaJeaJfaJgaJhaJiaJjaJkaJlaJjaJmaJjaJjaJjaJjaJnaJjaJjaJoaJjaJjaJjaJjaJpaJqaHPaJraJsaJtaJuaJvaEsaJwaJxaJyaJzaJAaJBaHZaJCaIaaIbaGqaIbaJDaJEaJFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaJIaBIaDbaDcaDcaDcaJJaDcaDcaJKaDcaDcaDiaJLaJMayWaxTaJNaJOaJOaJOaJOaJOaJOaJOaJPaJQatKatKaJRatKatKaAPaJSaJTaJUaJVaJVaJVaJVaJWaJXaJYaARaJZaKaaKbaKcaKdaKeaKbaKbaKfaygaKgaylaylaylaKhaKiaylaylaKjaKkaxraxraxraxraKlaKmaCxaCxaKnaKoaxraxraxraxraIOaIOaIOaIOaKpaKqaKraKsaITaKtaIVaKuazBazBazBazBazBazBazBazBazBaIYaKvaKwaKxaKyaKzaKAaKBaKCaJdaKDaKEaKFaKGaKHaJjaKIaKJaKKaKLaKKaKMaKNaKOaKPaKQaKRaKSaKTaKUaKVaJjaKWaKXaKYaJraKZaJtaJuaLaaEsaLbaLcaLdavfauoaveaunaEuaEyaLhaGqaIbaLiaLjaLkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaBIaBJaBIaBIcaaccoaBIaBIaBJaJIaLmasSaLnaxTawXaLoaLoaLpaLoaLqatHaLraLsaJQaLtaLuaLvaLwaLxaLyaLzaLAaLzaLzaLzaLzaLzaLzaLzaLBaLCaLDaLEaLFaLFaLGaLHaLFaLFaLFaLIaLJaLKaLLaLFaLMaLNaLOaLPaLQaIOaLRaLSaIOaIPaLTaLTaLTaLTaLTaLTaLUaLVaLWaLXaLYaLZaMaaMbaMcaIOaIOaIOaMdaMeaMfaMeaMgaMhaMiaMjaIOaMkaIOaBoaMlaMmaMnaMoaMpaMpaMqaMraMsaMtaJdaMuaMvaMwaMwaMxaJjaMyaMzaMAaMBaMAaMAaMCaMDaMEaMDaMFaMGaMHaMIaMDaJjaJpaMJaMKaMKaMLaMMaMKaMNaEsaMOaMPaEuaMQaMRaHZavTaEuaMSaMTaMUaIbaEyaEyaEyaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXayVaMVaAFaAFaAFaAFaMWayVawXaAHasSaAIaMXaMYaMZavSaNbaNbaNcatHaNdaLsaNeaNfaLuaNgaNhaNiaNjaNkaNlaLzaLzaLzaLzaLzaLzaLzaLBaNmaNnaLzaLzaLzaNoaNpaLzaLzaLzaLzaNqaLzaLzaLzaNraNmaLuaLPaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaNsaNtaNuaNvaNwaNxaNyaNzaNAaIOaIOaIOaLPaIOaIOaIOaIOaIOaIOaIOaIOaNBaIOaBoaNCaNDaMpaNEaMpaMpaNFaNGaMsaNHaJdaNIaNJaNKaNLaNMaJjaNNaNOaNPaNQaNRaNSaJjaNTaNUaNTaJjaJjaJjaJoaJjaJjaJpaJqaNVaHPaHPaNWaHPaNXaEsaEuaEuaEuaEuaEuaEuavQaEuaIbaIbaGqaIbaNZaOaaEyaaaaafaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafazQasSaMYavtazSaObaOcaOdaOeazSavtaOfaOgasSayWaxTaMYaOhaOiaNbaNbaNcatHaOjaLsaJQaNfaLuaOkaOlaOmaOmaOmaOnaOoaOpaOmaOqaOmaOmaOraOsaOtaOuaOmaOvaOwaOxaOyaOzaOAaOBaOCaODaOEaOEaOFaOGaNmaLuaLPaIOaOHaIOaOIaOIaOIaOIaOIaOIaOIaOIaOJaOKaOIaOIaOIaOIaOLaOIaOIaOIaOIaOIaOMaONaOIaOIaOIaOIaOIaOIaOIaIOaIOaIOaBoaOOaOPaOQaOQaOQaORaOSaNGaMsaOTaJdaJdaJdaJdaJdaOUaJjaOVaOWaOXaOYaNPaNPaJjaOZaPaaPbaPcaPbaPbaPdaPeaJjaJpaJqaPfaPfaPgaPhaPiaPiaPjaEsaPkaPlaPmaEyaskaVbasbaIbaIbaGqaIbaEyaPsaEyaPtaPtaPtaPuaPvaPwaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafatHaxRayVaJMayWaxTaxTayXaJMayVaJMaPxawYaPyaxTaxRaPzaPzaLpaPzaLqatHaPAaLsaJQaPBaPBaPCaPDaPBaPEaPEaPEaPEaPEaPFaPGaPEaPEaPEaPEaPEaPHaPIaPJaPIaPKaPLaPMaLzaLAaPNaPOaPPaPQaLAaLzaPRaPSaPSaIOaIOaIPaPTaKraKraPUaPUaPUaPUaPVaPWaPXaPYaPZaQaaQaaQbaQcaQaaQdaQeaQfaPWaQgaPUaPUaPUaPUaKraKraQhaINaIOaIOaBoaQiaQjaQkaQkaQkaQkaQlaQmaQnaQoaQparFaQraQsaQtaQuaJdaJdaQvaQwaQxaQyaQzaJjaQAaQBaQCaQCaQCaQCaQDaQEaJjaQFaJqaQGaHPaPgaPhaHPaHPaQHaEsaQIaQJaQKaEyaQLarpaPraSoaPoarzaIbaQQaQRaEyaQSaQTaPtaQUaQVaQWaafaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXaQXaxTaQYaPyaxTaxTaQZaQYaxTaQXaPyaxTaxTaxTaRaaRbaRbaRbaRbaRbaRbaRbaRcaRdaPBaReaRfaRgaRhaRiaRjaRkaRlaRmaRnaRoaRpaRqaRraRsaRtaRuaRvaRwaRxaPKaRyaPMaPMaRzaPMaRAaPSaPSaRBaRCaPSaPSaPSaRDaIOaIPaREaaaaaaaaaaaaaaaaaaaaaaPWaRFaRGaRHaRIaRJaRKaRJaRLaRMaRNaROaPWaaaaaaaaaaaaaaaaaaaaaaRPaINaIOaRQaRRaRSaRTaQoaQoaQoaQoaQoaRUaRVaQoaQoaQoaQraMpaRWaRXaRYaRZaSaaSbaScaSdaSeaJdaPbaSfaSgaSgaSgaSgaShaSiaJjaJpaJqaSjaSjaPgaPhaSkaSkaSlaEsaEsaSmaEsaEyaLhatZaulaulaulaumaTJaEyaEyaEyaSpaSqaSraSsaStaSuaafaafaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaxRaSvaSwaSvaSvaSvaSvaSvaSvaSwaSvaSvaSxaxTaxTaSyaxTaxTaSzaxTaSAaSBaSCaSDaSEaPBaReaSFaSGaPEaSHaRnaRnaRnaRnaRnaRoaSIaRnaRnaRnaRtaPHaSJaSKaSLaPKaRyaPMaSMaSNaSOaSPaPSaSQaSRaSSaSTaSUaSVaIOaIOaIPaREaaaaaaaaaaaaaPWaPWaPWaPWaSWaSXaSYaSZaTaaTbaTcaTdaTeaTfaTgaPWaPWaPWaPWaaaaaaaaaaaaaRPaINaIOaIOaThaQoaTiaTjaTkaQoaTlaTmaCIaTnaToaTkaQoaQraMpaTpaRXaTqaTraTsaTtaTuaTvaRXaTwaTxaTyaSgaTzaTAaSgaTBaPbaJjaJpaJqaQGaHPaPgaPhaHPaHPaHPaTCaTDaHPaTEaEyasnastaSoaSoaSoarzaIbaIbaEyaTKaSsaSsaSsaSsaStaTLaTMaTMaTNaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasSaTOaTPaTPaTPaTPaTPaTPaTPazYasSatHaTQaTRaTSaTSaTSaTTaTSaTSaTSaTUaTSaTUaPBaReaTVaTWaPEaTXaRnaRnaTYaTZaUaaUbaTYaRnaRnaRnaUcaPHaUdaUeaUfaPKaUgaPMaUhaUiaUjaUkaPSaUlaSUaSUaSSaSUaUmaIOaIOaIPaKqaPVaUnaUoaPWaPWaUpaUqaUraUsaUtaUtaUuaUvaUtaUuaUvaUtaUwaUxaUyaUzaUAaPWaPWaUoaUnaUBaUCaINaIOaIOaBoaUDaTiaToaTkaQoaUEaUFaQoaUGaUHaTkaQoaQraMpaUIaRXaUJaUKaULaUMaUNaUOaRXaUPaUQaURaSgaUSaUTaSgaUUaUVaJjaJpaJqaUWaUWaPgaPhaUXaHPaHPaUYaHPaUZaVaaEyaIbaTGaTHaSoaTGaPqaQqaVfaEyaVgaSsaSsaSsaSsaSsaVhaViaVjaVkaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaafaVmazTaxVaxTaVnaVoaVpaVqaVraVsaVtaVuaVvaVwaVxaVyaVzaVAaPEaVBaRnaRnaTYaUaaVCaVDaTYaRnaRnaRnaRtaPHaPKaPKaVEaPKaVFaVGaVGaVGaVGaVHaVIaVJaSSaSSaSSaSSaUmaIOaIOaIPaLTaLTaVKaVLaVMaPWaVNaTbaUtaVOaUtaUtaUtaUtaVPaUtaVQaUtaVRaVSaVSaVTaVUaPWaVVaVLaVWaVXaLTaINaIOaIOaThaQoaRTaQoaQoaQoaVYaVZaQoaUGaWaaTkaQoaQraMpaWbaRXaWcaWdaWeaWfaWgaUOaWhaJdaPbaURaWiaSgaSgaSgaUUaPbaJjaWjaJqaEsaEsaWkaPhaWlaWmaHPaWnaWoaKZaWpaWqaMTaPnaPpaWuaPnaNYaMTaWxaWqaNaaWzaSsaSsaSsaWAaWBaWCaTMaWDaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaWEaWFaWGayWaWHaWIaWJaWKaWLaWMaWNaWOaWPaWKaWQaWRaWSaWTaWUaPEaWVaRnaWWaWXaWYaWYaWZaWYaWYaWYaXaaXbaXcaXdaXeaXfaXgaXhaReaReaXiaPBaXjaPSaXkaXlaXmaXnaXnaXoaIOaIOaIOaIOaIOaXpaXqaXraXsaXtaXuaUtaXvaXwaXxaXyaXzaXAaXBaXCaXDaXEaXFaXtaXGaXHaXIaXJaXKaXLaXMaXNaXOaIOaXPaBoaRSaTiaXQaTkaQoaXRaXSaQoaUGaToaTkaQoaQraXTaRWaRXaWcaRXaXUaRXaXVaUOaXWaJdaQAaURaSgaSgaSgaSgaUUaQEaJjaXXaXYaXZaYaaQOaQPaPgaPgaPgaPgaPgaPgaZIaEyaIbaTGaTHaSoaTGaTHaIbaGqaEyaSnaSsaSsaSsaSsaYkaYlaYmaafaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaYnavtaYnaxTaYoaTUaYpaYqaYraYraYraYraYsaYtaTSaYuaYvaYwaYxaYyaYyaYyaYzaYyaYAaYBaYCaYDaYEaYEaYFaRtaYGaYHaYIaYJaYKaYLaYMaYMaYNaYOaYPaYQaYRaYSaYSaYSaYTaPSaYUaIOaYVaYWaYXaYYaYZaZaaZbaZcaZdaZeaZfaPWaPWaPWaPWaPWaPWaZgaZhaZiaZjaXwaZkaZlaPWaZaaYZaZmaZnaYWaZoaIOaIOaThaQoaZpaQoaQoaQoaFHaQoaQoaZqaQoaZraZraZraZraZsaZtaZuaRXaRXaRXaZvaZwaZxaJdaZyaZzaSgaZAaZAaZBaZzaZCaJjaZDaZEaZFaZGaPgaPgaPgaPgaZHaPgaPgaPgaZIawKaIbaPoaPraSoaPoaPraIbaGqawKaYjaSsaSsaZJaSsaSsaZKaYmaafaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaZLaZMaWGayWaZNaZOaZPaZQaZRaZSaZTaYraZUaZVaTSaZWaZXaYwaYxaZYaZZbaababaYybacbadbaeaPEbafbagbahbaiaPEbajbakbalbalbalbalbambalbalbanbaobaobaobapbaobaqbarbasbatbaubavbawbawbawbawbaxbaybazbaybaAbaBbaBbaBbaBbaBbaBbaBbaBbaCbaDbaDbaEbaDbaDbaDbaDbaDbaDbaDaZoaIOaIOaBobaFbaGaBlbaHaQobaIaQobaJbaKbaLaZrbaMbaNbaOaJdaJdaJdbaPbaQbaQbaQaJdaJdaJdbaRaSgaSgaLeaFNbaUbaVaGwaJjbaXaZEbaYaEsbaZbbabbbaWmbbcbbabbdaWmbbeaEybbfaQMaQNbbgaQMaQNaIbbbhaEybbibbjbbkaSsaSsbblbbmaYmaafaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaafaxRbbnaPybboaTUbbpbbpbbqbbrbbsbbqbbtbbpaTSbbubbvbbwbbxbbybbybbzbbAbbybbBbadbbCaPEbafbagbbDbbEaPEbbFbakbalbbGbbHbbHbbHbbIbalbbJbbKbbLbbMbarbarbarbaraIOaIObbNbbObbPbbQbbRbbSbbTbbUbbVbbWbaAbaBbbXbbYbbZbcabcbbccbcdbaCbaDbcebcfbcgbchbcibcjbckbdsbaDbcmbcnbcnaBoaBoaBoaBoaBobcoaThbcobcpaBoaBoaRRaBoaBoaBobcqbcrbcrbcrbcrbcrbcrbcsbcrbcqazGbctbctaCKaZFaZFaZFaZFbcqbaXbcvbaYaEsaEsaEsaEsaEsbcwaEsaEsaEsaEsaEyaxDbcAawKavUawKbcybcAaEyaEybcBaSsbcCaSsaSsaWAbcDbcEaTMaWDaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazQasSbcFaAFaWGatHatHatHatHatHatHbcGbboaTUaTSaTSaTSaTSaTSaTSaTSaTSaTSbcHaReaYwaYxaZYbcIbcJbcKaYybcLbcMbcNaPEbafbagbcObcPaPEbbFbakbalbbHbcQbcQbbHbcQbalbbJbcRbcSbcSbcTbcUbcVbarbcWaIOaYVbcXbcYbcZbdabdbbdbbdabdcbddbaAbaBbdebdfbdgbdhbdibdjbdkbdlbdmbdnbdobclbdpbdqbdrbclaLgbaDaZobdtaIOaNsbdubdvaZFaZFaZFaZFaZFaZFaZFbdwaZFaZFaZFaZFbdxaZFaZFaZFaZFaZFaZFaZFaZFbdyaZFaZFaZFaZFaZFaZFaZFaZFbdzbdAbdBbdCbdDbdCbdEbdCbdFbdGbdHbdCbdIbdCbdJbdKbdCbdCbdCbdCbdCbdCbdLbdMbdNbdObcCaSsaSsaSsaVkbdPaVjaVkaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaaaaafbdRazTaxVbdSbdTbdUbdUbdUbdUbdUbdUbdVbdWaPBaXiaReaYwaYxaYyaYybdXbdYaYyaPEaPEbdZaPEbafbeabcObebaPEbbFbakbalbecbedbbHbcQbeebalbbJbefbcSbcSbcSbegbehbarbeiaIOaYVbejbekbelbembenbeobepbdcbeqbaAbaBberbesbetbetbetbeubevbaBbewbexbclbclbdpbeybdrbclaLfbaDbeAaIOaIOaNsbdubdvaZFaZFaZFaZFaZFaZFaZFbeBaZFaZFaZFaZFaZFaZFbeCbdCbdCbdCbdCbdCbdCbeDbdCbdCbdCbdCbdCbdCbdCbeEbeFbeGbeHaZFaZFaZFaZFaZFaZEaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbeIbdzbeJaSsaSsbcCaSsaSsbeKbeLaTMaTMaTNaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaWEaWFbeMayWbeNbeObePbePbeQbePbePbePbeRaPBaPBaPBaPBaYwaYxaZYbeSbeTbeUaYybeVbeWbeXaPEaPEaPEaPEbeYaPEbbFbakbalbeZbbHbcQbfabfbbalbbJbarbfcbcSbcSbfdbfebarbffaIOaYVbfgbfhbelbembfibfjbepbdcbfkbaAbflbfmbfnbetbfobetbdfbfpbfqbewbfrbfsbftbfubfubfvbclbfwbaDaZobfxaIOaNsbdubdvaZFbfyaZFbfzbfAbfAbfAbfBbfAbfAbfAbfCaZFaZFaZFaZFbfDaZFbfybfEbfFbfGaZFaZFaZFbfHbfIbfJbfKbfLbfMbfNaZFaZFaZFaZFaZFbfObfPbfDaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbdzbfQbfRbfSbfTbfUbfVbbmbfWaafaaaaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaYnavtaYnaxTbfXbePbfYbfZbgabgabgbbgcbgdbgebgebgebgebgfbggbghbghbgibgjbghbgkbgkbglbgkbgmbgnbgnbgobgnbgpbgqbgrbgsbgtbgtbgubgvbgrbgwbgxbgybcSbcSbfdbgzbgAbffaIOaYVbgBbgCbgDbdabdabdabdabdcbgEbaAbaBbgFbgGbgHbgIbgJbgGbgKbaBbewbgLbgMbgNbgObgPbgQbgRbgSbaDbgTaHfaHfbgUbgUbgUbgUbgUbgUbgUbgVbgWbgWbgXbgYbgZbgVbhabhabhabhabhabhabhbbhbbhbbhcbhbbhbbhbbhdbhebfObhfbhgbhhbhibhjaZFaZFbhkbhkbhlbhlbhlbhlbhlbhmbhnbhnbhobhnaZFbhnbhobhnbhnbhpbhqbhqbhqbhqbhrbhgaPtaPtaPtaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaZLaZMbeMayWbhsbePbhtbePbhubhvbePbePbePaRebhwbhxbhxbhyaYyaZYbhzbcJbhAaYybhBbhCbhDbhEbhFbhGbhHbhIbhJbhHbhKbhLbhMbhNbhMbhMbhObhPbhQbhRbhSbcSbcSbhTbhUbhVbffaIObhWbgBbhXbhYbhZbiabibbicbidbaAbaAbaBbiebifbigbihbiibijbikbaBbewbilbimbinbiobipbgQbclbiqbaDaZoaIObirbgUbisbitbiubivbRIbixbiybizbizbiAbiBbiBbSBbhabiDbiEbiFbiGbhabiHbiIbiJbiKbiLbiMbiNbiObiPbiObiObiObiQbiRbiSbiTbiSbiUbiUbhlbiVbiWbiXbhlbiYbiZbiYbhlbhmbhnbhpbhqbjabjbbjabhqbjcbjdbhqbjebjfbjgbhgaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaaaaaaaMYbbnaPybjhbePbjibePbjjbjkbjlbSjbePbjnaRebjoaRebjpaYyaYyaYyaYyaYyaYybjqbjrbjsaRebjtbalbalbalbjubalbalbalbjvbalbalbalbalbjwbjxbjybjzbcSbcSbfdbjAbgAbffaIObjBbgBbjCbhYbaAbaAbaAbaAbjDbaAbjEbjFbjGbjHbbXbjIbbXbjJbjKbjLbjMbilbjNbclbjObjPbgQbjQbjRbjSbjTbjUbjVbgUbjWbjXbjYbjZbkabkbbkcbkdbizbkebizbizbkfbkgbkhbkibkjbkkbhabklbkmbknbkmbkobkpbhbbkqbkrbksbktbhgbkubkvbkwbkxbkybkzbkAbkBbkCbkDbkCbkEbkFbkGbkHbhlbkIbkJbkKbhqbkLbkMbkNbkObkPbkQbhqbkRbkSbkTbhgaaaaaaaaaaaeaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazQasSbcFaAFaZMaTPaTPaTPbkUaTPbkVayWaxTaxTbePbkWbkXbkYbkZblablbblcbldbldbldbldbleblfblfblfbhHbhHbhHblgblhblhblhblibalbljblkbllblmblnbloblpblqblrblsbltblublvblwblxblyblzblAblBblBblCbjUblDblEblFblGblHblIblJblKblLblMblNbjLbjLbjLbjLblObjLbjLbjLbjLblPblQblRblSblTblUblVblWblXblYblZaIOaIObgUbmabmbbmcbjZbmdbmebkcbmfbmgbmhbmgbmgbmibmjbmkbmlbmmbmnbhabmobkmbmpbkmbkobmqbhbbjgbmrbmsbmtbhgbkubmubmvbmwbmwbmxbmybmzbmAbmAbmAbmBbmCbmDbmEbmFbmGbmHbmIbmJbmKbmLbkPbmMbmNbmObhqbmPbkSbmsbhgaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmQbmRavtaYnawYawYawYaPyaxTaxTbePbmSbmTbkZbmUbePbePbePaPBbmVbmWbmXbmYbmXbmXbmXbmYbmXaPBaPBbalbalbalbmZbalblpblpbnablpblpblpblpblpbnbbncbndbnebnfbngbngbngbnhbnibnjbnkbnlbnmbnnbnobnpbnpbnqbnrbnsbntbnubnvbnwbnxbnybnzbnAbnBbnCbnzbnDbnxbnEbilbnFbnGbnFbaDbaDbaDbnHbewbnIaIOaIObgUbnJbnKbnLbjZbnMbnNbkcbkebizbnObnPbnQbnRbhabnSbnTbnUbnVbhabmobnWbkmbkmbkobkpbhbbhgbhgbhgbhgbhgbkubkvbnXbnYbnZboabobbocbodboebofbofbogbkCbohbhlboibojbokbhqbolbombonboobopboqbhqbmPbkSborbhgaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaabmQavtavtaYnaxSaxSaxSbosaxSaxSbePbotboubovbkZbePaaaaaaaaaaafaafbowbowbowbowbowbowbowaaaaaaboxboybozboAboBblpblpblpblpblpblpblpblpboCbjzbcSboDboEboFbarbarboGblvbarbarboHboIboJboKboLboMboMboNboMboOboPboMabRboQboRbnzboSbnBboSbnzboTboQbnEboUboVbfuboWboXboYboZbpabpbbpcaIObpdbpebpfbpgbnLbjZbphbixbpibkebizbpjbpkbizbplbhabkhbpmbpnbpobhabppbpqbprbpsbptbpsbpubpvbpvbpvbpvbpvbpwbkvbpxbkxbkxboabpybpzbpAbpBbpCbpCbpDbpEbpFbhlbpGbojbpHbhqbpIbpJbpKboobkPbpLbhqbkRbkSbpMbhgaaaaaaaaaaaaaafbpNbpObFHbpObFHbpObpQaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaabmQavtavtaYnaxSaxSaxSbosaxSaxSbePbotboubovbkZbePaaaaaaaaaaafaafbowbowbowbowbowbowbowaaaaaaboxboybozboAboBblpblpblpblpblpblpblpblpboCbjzbcSboDboEboFbarbarboGblvbarbarboHboIboJboKboLboMboMboNboMboOboPboMabRboQboRbnzboSbnBboSbnzboTboQbnEboUboVbfuboWboXboYboZbpabpbbpcaIObpdbpebpfbpgbnLbjZbphbixbpibkebizbpjbpkbizbplbhabkhbpmbpnbpobhabppbpqbprbpsbptbpsbpubpvbpvbpvbpvbpvbpwbkvbpxbkxbkxboabpybpzbpAbpBbpCbpCbpDbpEbpFbhlbpGbojbpHbhqbpIbpJbpKboobkPbpLbhqbkRbkSbpMbhgaaaaaaaaaaaaaafbpNbpOcdhbpOcdhbpObpQaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxRaYnaYnbpRaTPbpSazQasSbpTbpSbePbpUbpVbpWbpXbePaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaabpYbpZblpbqabqbbqbbqbbqbbqbbqcbqbbqbbqbbqdbqebqfbqgbqhbqibarbqjbfdbqkbqlbRdbffbqnbqoboKboKboMbqpbqqbqrbqsbqtboMbqubqvbqwbqxbqybqzbqybqAbqBbqCbqDboUbqEbfubqFbaDbqGbnFbqHbqIbpcaIOaIObgUbqJbqKbnLbqLbqMbixbqNbqObqPbqQbqRbizbqSbqTbqUbqVbqWbqXbhabhbbqYbhbbhbbqZbqZbqZbqZbqZbqZbqZbqZbkubkvbnXbnYbnZbrabrbbrcbrdbrebrebrebpDbkCbrfbrgbrhbkJbribhqbrjbrkbrlbrmbkPbrnbhqbmPbmrbhgbhgaaaaaaaaaaaaaafbrobrpbrqbrrbrrbrsbroaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbrubrvbrwbrxblpblpblpbrybrybrybryboAblpblpblpbnbbrzbcSbrAbrBbrCbrDbrEbfdbcSbrFbRgbffbqnbrHbrIbrJbrKbrLbrMbrNbrObrPboMabRbrQbrRbnzbqybrSbqybnzbrTbrUbnEbrVbrWbrXbrYbaDbrZbnFbsabqIbpcaIObsbbgUbscbsdbnLbsebsfbixbsgbkebizbshbsibqPbsjbhabskbslbsmbsnbhabsobspbsqbsrbssbstbsubsvbswbsxbsybszbiQbiRbsAbsBbsCbsDbsEbkBbsFbrebrebrebsGbkCbsHbhlbsIbsIbsJbhqbsKbsLbsMbsNbkPbsObhqbmPbsPbhgaaaaaaaaaaaaaaaaafbsQbsRbrqbrrbrqbsSbFHaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbrubrvbrwbrxblpblpblpbrybrybrybryboAblpblpblpbnbbrzbcSbrAbrBbrCbrDbrEbfdbcSbrFbRgbffbqnbrHbrIbrJbrKbrLbrMbrNbrObrPboMabRbrQbrRbnzbqybrSbqybnzbrTbrUbnEbrVbrWbrXbrYbaDbrZbnFbsabqIbpcaIObsbbgUbscbsdbnLbsebsfbixbsgbkebizbshbsibqPbsjbhabskbslbsmbsnbhabsobspbsqbsrbssbstbsubsvbswbsxbsybszbiQbiRbsAbsBbsCbsDbsEbkBbsFbrebrebrebsGbkCbsHbhlbsIbsIbsJbhqbsKbsLbsMbsNbkPbsObhqbmPbsPbhgaaaaaaaaaaaaaaaaafbsQbsRbrqbrrbrqbsScdhaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbsTbsUbsTbsVbsWblpblpblpblpblpblpboAblpbsXbalbalbsYbcSbcSbsZbtabtbbtcbfdbcSbcSbtdaIObqnbtebtfbtgbthbtibtjbtkbtlbtmboMabRbrUbrUbtnbtobtpbnzbtqbtrbtsbttbtubtvbtvbtvbtvbtvbtvbtwbtxbtyaHfbtzbtAbtBbtCbtDbtEbixbixbtFbkebizbizbizbizbtGbtHbizbtIbizbtJbtKbtLbtMbizbtNbtObtPbtQbtRbtSbtTbtUbqZbtVbtWbtXbtXbtYbtZbuabkBbubbkCbkCbucbudbkCbuebkBbufbugbuhbuibujbukbulbumbunbhqbhqbuobhgbhgbupbuqbuqbuqburbkIbrobrrbrqbrrbrrbrsbroaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaeaaaaaaaaabowbowbowbowbowbowbowbusbutbusbuublpblpblpbrybrybrybryboAblpbuvbuwbalbuxbcSbcSbsZbuybuzbtcbuAbuBbqfbuCbuDbuEbpcbuFbtgbuGbuHbuIbuJbuKbuLbuMbuNbuObuPbuQbuRbrSbuRbtrbuSbuTbuTbtubuUbuVbuWbuXbuYbuZbvabvbbvcaIObvdbvebvfbvgbvhbvibvjbvkbvlbvmbvlbvnbvlbvlbvobvpbvlbvpbvlbvlbvlbvqbvrbvsbvtbtObvubtQbvvbvvbvwbvxbqZbkubkvbvybvzbvAbvBbvBbkBbvCbvDbvEbkBbvFbkCbvGbvHbvIbvJbvKbvLbvMbvNbvObvPbvQbsIbkJbvRbvSbvTbvUbvVbvVbvVbvVbvWbvXbpObFHbvYbFHbpObvZaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaeaaaaaaaaabowbowbowbowbowbowbowbusbutbusbuublpblpblpbrybrybrybryboAblpbuvbuwbalbuxbcSbcSbsZbuybuzbtcbuAbuBbqfbuCbuDbuEbpcbuFbtgbuGbuHbuIbuJbuKbuLbuMbuNbuObuPbuQbuRbrSbuRbtrbuSbuTbuTbtubuUbuVbuWbuXbuYbuZbvabvbbvcaIObvdbvebvfbvgbvhbvibvjbvkbvlbvmbvlbvnbvlbvlbvobvpbvlbvpbvlbvlbvlbvqbvrbvsbvtbtObvubtQbvvbvvbvwbvxbqZbkubkvbvybvzbvAbvBbvBbkBbvCbvDbvEbkBbvFbkCbvGbvHbvIbvJbvKbvLbvMbvNbvObvPbvQbsIbkJbvRbvSbvTbvUbvVbvVbvVbvVbvWbvXbpOcdhbvYcdhbpObvZaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbwabrvbwbbwcblpblpblpblpblpblpblpboAblpbuvbwdbalbwebegbcSbwfbqfbwgbqfbwhbcSbrFbRdbffaIObpcbuFbtgboMbwibwjbwkbwlbwmboNbwnbwobwpbwqbtsbwrbwsbwtbwubwvbwwbtubwxbwybwzbwAbwBbwBbwCbwDbwEaIObvdbwFbvfbwGbizbwHbwIbwJbwKbwLbwKbwMbwKbwNbwObtLbwPbtLbtLbwQbwRbHfbHfbPJbPIbOJbwWbtQbwXbwYbtTbwZbqZbxabkvbiSbxbbxcbxbbxbbkBbkBbkBbkBbkBbxdbxebxfbxgbxhbxibxjbxkbxkbxlbxmbojbxnbxobxpbvRbojbvTbxqbojbxrbojbxsbkIbupbuqburbxtbkIaaaaaaaafaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbusbutbusbxubxvblpblpbxwbxxbxybxxbxzbxxbxAbxBbgrbxCbxDblybxEblybQKblzbxDbxFbxGbRgbffaIObxHbxIbxJboMbxKbxLbxMbxNbxOboNbxPbxQbxRbxSbxTbxUbxVbxWbxXbxYbxZbyabybbycbycbydbyebyfbygbtxbyhaIObyibgVbqNbyjbizbykbylbymbynbyobypbyqbyrbymbynbysbysbynbymbytbgWbHfcbhcckcckcdacdkbtQbywbyxbyybyzbqZbyAbyBbyCbyDbyEbxkbxkbyFbyGbxkbyHbyIbyJbyKbyLbxkbyMbyNbyObyPbyQbyRbySbySbySbySbySbyTbyUbyVbupburbkIbojbvVbyWbyXbyYbyZbzabzbaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbzcbzdbzcbzebzfbzgbzgbzgbzgbzgbzhbziblpbuvbzjbalbzkbzlbzmbznbzoboEbzpbzqbzrbarbarbzsaIObztbzubtgboMbzvbzwbzxbwjbzyboNbzzbzAbzBbzCbzDbzEbzFbzGbzHbzIbzJbtubzKbzLbzMbzNbyebyfbygbtxbzOaIObzPbzQbzRbzSbizbykbzTbymbzUbzVbzWbzXbzYbymbzZbAabAabAbbymbAcbizbHfcawcckccjcciccYccWbAibAjbAjbAkbAlbAmbAnbAobApbAqbvMbvMbArbvMbAsbvMbvNbvMbvMbvMbvMbAtbAubAvbAwbAxbAybAzbAAbABbACbySbADbAEbAFaafaafbkIbAGbvVbyXbyXbvWbAHbAIbAJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbAKbALbAMbalbalbANbrvbrvbrvbAObalbalbAPbAQbARbalbASbASbASbATbASbAUbAVbAWbAXbAYbAUbffaIObAZbBaaUnboMbuMbBbbBcbBcbBdbBebBfbBgbBhbBfbBibBjbBkbBlbBmbBmbBmbBnbtvbtvbtvbtvbtvbtvbtvbtxbBoaXNbBpbEabEabQRbQSbQTbymbymbBubBvbBwbBxbBxbBybBzbBAbBBbBzbBCbAcbizbHfbVCbUqbYTbVDbUpbQWbBJbBGbBGbBKbBLbBMbBNbBObBObBObBObBObBPbBObBObBQbBRbBSbBTbBTbBUbBVbvRbBWbAwbBXbBYbBZbCabCbbCcbySbADbAEbCdaaaaaabkIbCebCfbkIbvWbkIbkIbvWbkIaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabCgaafaaaaaaaaaaaabASbChbCibCjbCkbAUbClbCmbCnbCobAUbffaIObCpbCqbCrbCqbCsbCtbCubCvbCwbCxaXNbCyaXNbCzbCAbCBbCCbCDbCEaIOaMibCFaMjaNsbCubCGbCHaIObCIbCJbzOaIObCKbEabPUbQQbPSbPTbCPbCQbCRbCSbCTbBxbBxbCUbBzbCVbCWbCXbBCbAcbCYbHfbPRbPQbPMbPLbPKbDebDfbDgbDhbqZbqZbxabDibBObDjbDkbDlbDmbDnbDobDpbBQbDqbDrbDsbBTbBTbDtbvRbBWbDubDvbDwbDxbDybDzbDAbySbADbDBbyVbyVbyVbyVbyVbkIbkIaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabASbDCbDDbDEbDFbDGbDHbDIbDJbDKbAUbffbDLbDMaIOaIOaIOaIOaNsbCubCGbDNaIOaIObDOaIOaIObDPbDQbDRaIOaIOaIOaIObCFaIOaNsbCubCGbDSaXNbDTbDUbDVbDWbDXbHgbIkbHhbImbIlbEdbEebEfbEgbEhbEibzYbymbEjbEkbElbEmbymbAcbizbHfbHfbHfbHfbHfbqZbqZbqZbqZbqZbqZbEnbEobEpbBObEqbErbEsbEtbEubEvbEwbBQbExbEybEzbEzbBTbEAbEBbECbEDbEEbEFbDzbEGbEHbEIbySbADbAEbyVbEJbEKbEKbyVaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbELbEMbEMbENbEObEObEPbEPbEPbEPbEQaafaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaabERbESaYhbESbEUaaaaaaaaabASbASbEVbEWbDEbEWbEXbEYbEZbFabFbbAUbFcbffbFdbFebuDbFfbuDbFgbFhbFibuEaIObFjbFkbjUbjUbFlaXNaXNaXNaXNaXNaXNbFmbFnbFobFpbFqbFrbFsbFtbFubFvbFwbFrbFxbFBbFAbFzbFybEabEabynbFCbynbymbymbymbymbymbymbymbymbAcbizbFDbFEbFFbzTbFGbEcbIrbIpbIqbIobInbFMbFNbFObBObFPbFQbDlbFRbFSbFTbFUbBQbFVbEybEzbEzbBTbFWbFXbFYbFZbGabGbbGcbGdbGebGfbGgbGhbGibGibGibGibGjbAFaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbGkbGlbGmbGlbEObEPbEPbGnbGobGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaabERbEScctbESbEUaaaaaaaaabASbASbEVbEWbDEbEWbEXbEYbEZbFabFbbAUbFcbffbFdbFebuDbFfbuDbFgbFhbFibuEaIObFjbFkbjUbjUbFlaXNaXNaXNaXNaXNaXNbFmbFnbFobFpbFqbFrbFsbFtbFubFvbFwbFrbFxbFBbFAbFzbFybEabEabynbFCbynbymbymbymbymbymbymbymbymbAcbizbFDbFEbFFbzTbFGbEcbIrbIpbIqbIobInbFMbFNbFObBObFPbFQbDlbFRbFSbFTbFUbBQbFVbEybEzbEzbBTbFWbFXbFYbFZbGabGbbGcbGdbGebGfbGgbGhbGibGibGibGibGjbAFaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbGkbGlbGmbGlbEObEPbEPbGnbGobGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGpbGqbGrbGqbGpbGsbGtbGubASbGvbEWbGwbGxbGybGzbGAbGAbGBbGCbAUbGDbGDbGEbGDaUnaUnaUnaUnbGFbGFbGFbGFbGFbGFbGFbGFbGGbcnbcnbGHbGHbGHbGHbGIbGJbGHbGHbGHbGHbGKbGLbGMaIUbGNbGObDZbDcbDbbDYbDdbEbbEabGVbGWbGXbynbGYbGYbGZbHabHbbHcbynbHdbizbizbizbizbizbAcbCNbCObCZbDabETbEcbHibHjbIGbIGbIGbIGbIGbIGbIGbIGbIGbBQbHlbHmbHnbHnbBTbHobHpbHqbHrbHrbHrbHrbHsbHtbHubHvbHrbHrbHrbHrbAEbHwbHxaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagbHybGlbGlbHzbEPbEPbGnbGnbHAbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYhbHBbHCbHBaYhbHDbHEbHFbASbHGbHHbEWbHIbHJbAUbHKbHLbHMbHNbAUbHObHObHPbGDaaaaaaaaaaaabGFbHQbHRbHSbHTbHUbHVbGFbHWbHXbHYbGHbHZbIabIbbIcbIdbIebIfbIgbIhbIibIjbFIbGRbGQbEabEabGPbFLbFKbFJbGSbEabIsbItbIubIvbBxbBxbBxbBxbBxbIwbIxbIybtLbtLbtLbtLbwQbAcbGTbCObCZbDabHebGUbICbHjbIGbWLbWLbWLbKXbWMbWLbWLbWLbBQbIKbILbIMbIMbBTbINbIObBWbIPbIQbIRbISbITbIUbIVbIWbIXbIYbIZbHrbyVbJabyVbJbbJbbJbbJbbJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabJcbEPbHybEPbEPbGnbGnbGnbGnbGnbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacctbHBbHCbHBcctbHDbHEbHFbASbHGbHHbEWbHIbHJbAUbHKbHLbHMbHNbAUbHObHObHPbGDaaaaaaaaaaaabGFbHQbHRbHSbHTbHUbHVbGFbHWbHXbHYbGHbHZbIabIbbIcbIdbIebIfbIgbIhbIibIjbFIbGRbGQbEabEabGPbFLbFKbFJbGSbEabIsbItbIubIvbBxbBxbBxbBxbBxbIwbIxbIybtLbtLbtLbtLbwQbAcbGTbCObCZbDabHebGUbICbHjbIGbWLbWLbWLbKXbWMbWLbWLbWLbBQbIKbILbIMbIMbBTbINbIObBWbIPbIQbIRbISbITbIUbIVbIWbIXbIYbIZbHrbyVbJabyVbJbbJbbJbbJbbJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabJcbEPbHybEPbEPbGnbGnbGnbGnbGnbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGpbHBbHBbHBbJdbJebEWbEWbJfbJgbEWbEWbJhbJibAUbAUbAUbJjbAUbAUbJkbJlbJmbJnaaabJobJpbJqbJrbJsbHVbJtbJubJvbJwbJxbJybJzbJAbJBbJCbJDbJEbJFbJGbJHbJIbGHbGHbJJbJKbLObMTbMSbMVbMUbMXbMWbNibMYbLWbLVbJWbJXbJYbymbJZbKabBxbBxbKbbKcbJMbJMbJMbJMbJMbKebLRbLSbTobLUbLQbLQbLQbLPbKibKjbIGdPxdPwbWLdPubWLbWLbWLdPvbBQbKobEybKpbKpbBTbBVbKqbKrbKsbKtbKtbKtbKtbKubKvbKwbKxbKybKzbHrbKAbKBbKCbKDbKEbKFbKGbKHaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbEObEPbKIbKJbKJbGnbGnbGnbGnbGnbGnbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYhbHCbHCbHCaYhbKKbKLbKMbKNbKObEWbKPbKQbKRbKSbKTbKTbKUbKTbKTbKVbKWbQxbKYaaabKZbLabLbbLcbLdbHVbLebLfbLgbLhbGFbLibLjbLkbGHbLlbLmbLnbLobLpbLqbLrbLsbLtbLubLvbNjbNqbNpbNnbIzbOubOtbOsbOrbNlbEabLGbLHbLIbymbLJbLKbBxbBxbLLbLMbJMbOIbOGbOHbOzbkebOybtLbOCbOFbOAbOBbNkbEcbHibLXbIGbWLdPybWLbWLbWLbWLbWLbWLbBQbQDbEybMbbMbbBTbMcbMdbBWbMebKvbKvbMfbMgbMhbMibMjbMkbMlbMmbMnbMobMpbMqbMrbMsbMtbKGbMuaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabEPbEPbMvbGnbGnbGnbGnbGnbGnbGnbGnbGnbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacctbHCbHCbHCcctbKKbKLbKMbKNbKObEWbKPbKQbKRbKSbKTbKTbKUbKTbKTbKVbKWbQxbKYaaabKZbLabLbbLcbLdbHVbLebLfbLgbLhbGFbLibLjbLkbGHbLlbLmbLnbLobLpbLqbLrbLsbLtbLubLvbNjbNqbNpbNnbIzbOubOtbOsbOrbNlbEabLGbLHbLIbymbLJbLKbBxbBxbLLbLMbJMbOIbOGbOHbOzbkebOybtLbOCbOFbOAbOBbNkbEcbHibLXbIGbWLdPybWLbWLbWLbWLbWLbWLbBQbQDbEybMbbMbbBTbMcbMdbBWbMebKvbKvbMfbMgbMhbMibMjbMkbMlbMmbMnbMobMpbMqbMrbMsbMtbKGbMuaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabEPbEPbMvbGnbGnbGnbGnbGnbGnbGnbGnbGnbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaabGpbMwbMxbMybGpbMzbGtbGubASbASbMAbMAbMAbASbASbGDbGDbGDbGDbMBbGDbGDcbrbKYaaabKZbMDbMEbMFbMGbMHbMIbMJbMGbMGbMKbMLbMMbMNbGHbGHbGHbGHbGHbGHbMObGHbGHbMPbMQbMRbIzbKdbJVbKdbIzbJSbJRbJUbJTbJQbEabMZbNabNbbymbNcbNdbNebNfbNgbNhbJMbJNbJObJPbIBbNmbJLbNobIAbwUbwUbwUbwUbwUbHibHjbIGbIGbWPbWLbWLbWLbWLbIGbIGbBQbNtbNubMbbMbbBTbNvbMdbBWbIPbNwbNxbNybNzbNAbNBbNCbKvbNDbNEbHrbNFbNGbNHbJbbNIbNJbNKbNLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbEPbGnbGnbGnbGnbGnbGnbNMbGnbNNbGnbGnbGnbGnbGnbEPbEPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNObESbNPbESbNQaaaaafaaaaaabASbNRbNSbNTbASaaaaaaaaabGDbNUbNVbJkbGDcbrbKYaaabKZbNWbNXbNYbNZbHVbOabObbOcbOdbGFbOebOfbOgbOhbOibOibOibOibOibOibOibOibOkbOlbOmbOnbOobOpbOqbKfbKgbLwbKfbKhbKgbKfbOvbOwbOxbOvbOvbOxbOvbOvbOwbOvbLEbLFbLCbLDbLBbODbOEbkfbLzbLAbLxbLybLNbwUbOKbHjbIGbWQbPvbMabXTbWRbMCbMabWQbBTbOSbOTbDsbBTbBTbOUbMdbOVbJbbJbbHrbHrbHrbHrbHvbHrbOWbKvbOXbHrbOYbJabyVbJbbOZbPabPbbJbaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabEPbPcbPcbPcbPcbPcbPcbPdbGnbPebPcbNNbGnbGnbGnbGnbEPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaafaaaaaaaaabGDbPfbPgbPhbGDcbrbPiaaabPjbJpbPkbPlbPmbHVbHVbPnbPobPpbPqbPrbPsbPtbPubPubPubPubPubPubPubPubPwbPxbPybPybPzbPAbPBbPCbPDbPEbPFbPGbPGbPEbPGbPGbPFbPGbPGbPGbPGbPGbPGbPFbPHbwSbyubyvbAdbAebPNbPObPPbAfbAgbAhbBrbwVbwUbHibHjbIGbONbOMbOLbIIbIIbOPbOObOQbBTbBTbQdbBTbBTbQebQfbMdbojbQgaafbQhbQibQjbQkbQlbQkbQmbQnbQobHrbQpbHwbQqbJbbQrbQsbQsbQtaagaagaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQubGlbGlbGlbGlbGlbGlbGlbQvbGobGnbGnbGnbGnbQwbGobEPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10655,45 +10676,45 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbXfbYYbYZbZabYZbZbbZcbZdbZebZfbZgbTBcbrbZhbSFbZibSGbZjbZkbZlbZmbSFcqcbXsbSNbZobZpbTccqbbTcbZrbZsbZtbTcbZubZvbZwbZxbZybZzbZAbZBbZCbSZbZDbZEbZFbVoaafbVpbZGbZHbZIbTeaafaaaaaaaaaaaaaaaaaaaaabZJbVubZKbZLbZJaafaafaafaafaafaafaaabGKbZMbZNbZObGKaaaaafaaaaaaaafaaaaaaaaaaaabZPbZQcjWcjVcjBcjecmrcjZcjYcjYcpTcnFcnqdPHbIEcqebHkbYUbZTbZUbZVbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanmanmanmanmacTbVPbVPbVPbVPbVPbTBbTBbTBbTBbTBbTBbTBcbrbJkbSFbSFbSFbSFbSFbSFbSFbSFbZWbXsbSNbZXbZYbZZcrqcabcaccadcaecafcagcahbWkbWlcaicajcakcalcambSZbZDcancaocapbWwbUecaqbYIbYIbTeaafaaaaaaaaaaafaafaafaaabVucarcascatbVubVubVubVubVubVubVuaafbGKbGKbGKbGKbGKaaaaafaaaaaaaafaaaaaaaaaaaacaucavdPIcaxdPYdPXdPJdPWbTqbTqdQadPZbIEbIEbIEdQTbHkbYUcaycazcaAbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaBcaCcaCcaDcaEbGDbJkcaFbKTbKTbKTcaGcpUcaGcaGbKTcaHbKTcrocaJdPEcaJcaJcaKcaJcaJcaLbGDcaMbXsbSNcaNcaOcaPbQGbQGbQGbQGbQGbQGbQGcaQbWkbWlbTVcaRcaScaTcaUbSZbZDbZEcaVbVoaafbTebTebTebTebTeaafaaabVubVubVubVubVubVubVucaWcaXcaYcaZcbacbbcbccbdcbebVuaafaafaafaafaafaafaafcbfaafaafaafaafaafaafaafcbgbXRdPGcbidPTdPSdPSdPWbTqdPPdPVcrpbIEbIEbIEdQSbHkbYUcbjcbkcblbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRecbncbocbpbJkcbqbJkcbrbJkcbtbJkcbscbxbGDbGDcbucbvcbvcbwbGDdPNcbwcbxcbxcbybJkcbzbGDbZWbXsbSNcbAcbBbSZcrsbQGaaaaaaaaaaaabQNcbDbWkbWlbXAcbEcakbXzcbFcbGcbHcbIcbJbYGbUdbUecbKcbLcbMbTeaafaaabVucbNcbOcbPcbQbVucbRcbScaXcbTcaZbXKcbUbXKcbVbXKbVuaaaaaaaaaaafaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaabXRcbWdPOcbYbHkdQidQdcrCdQUdQedQhcrEbIEdQVdQWcrFbHkcbZccaccbcccccdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccecaCcaCcaDcbtbGDccfcbrcbxcbxcbxcbxccgcbxccgcqzckcdQxcqwcrycsmcrkcricbxccpbJkcbzbGDdPLbXsbSNcitcitcrucitcitcitcitcitcitbQGccwccxbWlbXAcbEccybXzcbFcczbZDbZEccAbVoaafbVpccBccCccDbTeaafaaabVuccEccFccGcaZbVuccHcaZccIccJcaZccKccLccMccNccObVuaaaaaaaaaaafaaaaaaaaabXRbXRbXRbXRbXRbXRbXRbXRbXRccPdPMccRbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkaafccSccTccSaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanmanmanmanmacTcbxccUccgccgccgccgccVccgccgcyVccXdQCcyWdQAcgqcdccyXcdecdecdecdfbGDcwIdQOcwJcitckScjccjccrOcrPcrPcrPcsBbQGcdqcdrbWlbXAcbEcakbXzcdscdtcducdvcdwcapbWwbUecdxcbLcbLbTeaafcdycdzcdAcdBcdBcdCcdDcdEcdFcdGcdHcdIcdJcdKcdLcdMcdNbVuaaaaaaaaaaafaaaaaaaaabXRcdOcdPcdQcdRcdScdTcdUcdVcdWdQPcdYcdZceaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafcebceccebaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalQalPalPalQalPalPalPampalPalPalPalQalQaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafcedceecefcegcehceicejcekcelcrDcdbcdbcvudQAcgqcdbcvFcvEcvGcdeceqdQbcesbXsbSNcitcrHcjccjccrGcrMcrMcrMcrMbQGcodcmQbWlbXAceycezbSZceAceBbZDceCceDbVoaafbTebTebTebTebTeaafaaabVuceEceFceGceHceGceIceJceKceLceGceMceNceGceIceObVuaafaafaafaafaafaafaafbXRcePceQcePceRceSbZQceTcdVceUdQNceUbXRbXRaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafaaaceWaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaalQaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaceXceeceYceZcfccfdciocgdckVcgAcffclIcgzcrhcgqcdbcdbcfhcdbcgxbYpcgpcfkcgrcfmchCchAchBchAchnchAchAchAchAchgcgBchDcfscftcfubTVcaRcfvcfwcfxcfycfzbYGbUdbUecfAcfBcfBbTeaafaaabVucfCbXKcfDbVucfEcfFceNcfGcfHcfIcfJccNcfKcfLcfMbVuaaaaaaaaaaafaaaaaaaaabXRcePcePcePcfNcfOcdTcfPcfQcfRcgocfTcfUbXRaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacfVaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaacfWcfXcfYaaacfWcfXcfYaaacfWcfXcfYaafcfZaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaceXcdXccrccQccZcslcgmcggcgfcgecgccgbcfScflcfjcgkcglchucgncgjcfecfbceVcfacetcgicghcrgcfqcfrcfpcfpcfpcfpcfocexcgCcercgEcgCcgFcgGcgHcgIcgJcgKcgLbVoaafbVpcgMcgNcgObTeaafaafbVucgPbXKcfDbVucgQbXKbXMcgRcgScgTceJcgUcgTcgUceJbVuaaaaaaaaaaafaaaaaaaaabXRcdVcdVcdVcdVcgVbZQcgWcgXcgYcclchachbbXRaaaaaaaaaaaaaaachcchcchcchdaafaafaafaafcfVaafaafaafaafaafampchcchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaacfWchecfYaaacfWchecfYaaacfWchecfYaafaafaafaafaaaaaaaaaaaaaaaaaaaafaafaafceXchfckachhchichjchkchlchmciWchochpchqchrchochochsckPciSchvcgychxbLjchycgDcitcmPcjQcjccpJclbclbclbclbbQGcjgbSZchEchFbTcchGbZrchHchIbRXchJchKcapbWwbUechLcfBcfBbTeaafaaabVucgPbXKcfDbVuchMbXKbXMbXKchNcgTbXKbXMcgTbXMchObVuaaaaaaaaaaafaaaaaaaaabXRcdOcdPcdQchPchQcdTchRchSchTcgvbZQchVbXRaaaaaaaaaaaaaaachcaaaaafaaaaafaaaaaaaaachWaaaaafaafaaaaaaaaaaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaalPaafcfWchecfYaaacfWchecfYaafcfWchecfYaafaaaaaaaafaafaaaaaaaaaaaaaaaaafaaaaaachXchYccgchZciacibciccidccgciycdbcfhccXcigcihcdbciicijcikcilcgucinclPcipcjOcitckScjQcjccjUcjrcjrcjrcjsbQGcivbSZchEcizbSZbSZbSZbTbbZzcizbZEcaVbVoaafbTebTebTebTebTeaafaaabVucgPbXKcfDbVuciAciBciCciDciEciFciGciHciFciHciGbVuaafaafaafaafaafaafaafbXRcePcePcePciIceSbZQciJciKciLcgsbZQciNbXRbXRbXRbXRaaaaaachcaaaciOciOciOciOciOaafciPaafciOciOciOciOciOaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacfWchecfYaafcfWchecfYaaacfWchecfYaaaaaaaaaaaaaaaaafaaaaafaaaaafaafaaaaaabGDciQccgccgciRckTciTciUciVckYcdbcfhcihciXciYciZcjacjbckZchvcimbYpbSNbYpciqcitcitclacitcitcitcitcitcitbQGclVcjhcjicjjcjkcjlcjkcjjcjmcjjcjnchFcjoaafaafaafaafaafaafaafaaacjpcpLcpNcpMbZJbVucjtcjucjvbVubVucjwbVubVubVucjwbZJaaaaaaaaaaaaaaaaaaaaabXRcePcePcePchPcjxcdTcjycjzcjAchUcjCcjCcjDcjEcjFbXRaafaafchcaafcjGcjHcjHcjHcjHcjIciPcjJcjKcjKcjKcjKcjLaafchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalPaafaaacfWchecfYaafcfWchecfYaaacfWchecfYaafaaaaaaaaaaaaaafaafcjMcjNcjNcjNcjNbGDbGDciQcdeckbckccjPckOckOckOckNcdbcfhcihcjRcjSciZcjTcjbckQcdechzchwcsDchtcgZccuckLckMckdckeccuaaaaaaaaabQGckfckgckhckickjckkcklckmbSZcknckockpckqaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafbVuckrckscktbVuaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaabXRcdVcdVcdVcdVckubZQciJckvckwcgsbZQbZQckxbZQckybXRaaaaaachcaafckzckzckzckzckzaaaciPaaackzckzckzckzckzaafchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaaaaafaafckAaafaafaafckAaafaaaaafckAaafaaaaaaaaaaaaaaackBckCckDckEckFckGckHckIckJckKcdecpKcmTcmTcmpcmocjdcmqcmwckRcihdPzciXciZcjacjbcmxcdeckUckUcsOckWckXccucrwcmycmzcmAccuaaaaaaaaaacTclccldcleclfclgclhclgclfclgcliclgclicljaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaclkaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabXRcdOcdPcdQcllchQcdTclmbZSclnciMcloclpclqclrclsbXRaaaaaachcaaaaafaaaaafaafaafaaaciPaaaaafaaaaafaaaaafaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafcltclucluclvclwclwclwclwclwclwclwclwclwclwclwclwclwclwclxclyclzclAclBclCclDclEclFbJkciQcbxcdecdecdecdecbxclUcdecmlcrvclIclIclIclIclJcjbcdbcmmclNclOcsEclQclRccuclSclTclGclMccuaaaaaaaaaaaaaafclWaafclXaafclWaafclXaafclYaafclYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabXRcePceQcePcmaceSbZQbZRbZScmbcmJbZQcmccdVcdVcdVbXRaaaaaachcaaaciOciOciOciOciOaafciPaafciOciOciOciOciOaafchcaaaaaaaaaaaaaaaaaaaaaaaacmdaaaaaaaaacmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaaaaafaafcmeaafaaaaafcmeaafaaaaafcmeaafaaaaaaaaaaaaaaackBckCcmfcmgcmhcmicjNcmjbJkbSAcmkcmkcmkcmkcmkcmkcewcdecepcmncemcemcemcemcemceocdlcdpcmscmscnKcmucmvcdjcddccvcdicdgccuaaaaaaaaaaaabTecmBbVpcmBbTecmBbVpcmBbTecmCbVpcmDbTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXRcePcePcePcllcmEcmFcmGcmHcmIcmJbZQcmJbZQcmKbZQbYQaafaafchcaafcjGcjHcjHcjHcjHcjIciPcjJcjKcjKcjKcjKcjLaafchcaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalPaafaafcfWcmLcfYaaacfWcmLcfYaaacfWcmLcfYaafaaaaaaaaaaaaaafaafcmMcjNcjNcjNcjNbGDcbyccpcmNcmOcbtbJkbJkcgtbJkcmRcmScevcmUcmVcmVcmVcmVcmWcmRckUcmXclNcmYcmZcnackUccuccuccuccuccuaaaaaaaaaaaabTecnbcnccndbTecnecnfcngbTecnhcnicnjbTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbgbXRcnkcnlcnlcnmcnncnocnncnpcbXcnrcnscntcdTcnucnvaaaaaachcaafckzckzckzckzckzaaaciPaafckzckzckzckzckzaaachcaaacmdaaaaaacmdaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaacmdaaaaaacmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfWcmLcfYaafcfWcmLcfYaaacfWcmLcfYaaaaaaaaaaafaaaaafaafaafaaacnwbPhbPgbGDcnxcnycnycnzbGDbGDbGDbGDbJkcmRcmRcnAcnBcnCcnDcnEcchcnGcnHcnIclNcnJcnKcmZcnLckUaafaafaafaafaafaaaaaaaaaaaabTecnMcnNcnMbTecnOcnPcnObTecnQcnRcnSbTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclkaaabXRcnTcnUcnVcnWcnXcnUcnYcnZcnXcnUcoabXRaaaaaachdaaaaafaaaaafaaaaafaaacobaaaaafaaaaafaafaafaafchcaaacmdcmdcmdcmdaaacmdcmdcmdcmdcmdcmdcmdcmdcmdaaacmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsHcbncbocbpbJkcbqbJkcbrbJkcbtbJkcbscbxbGDbGDcbucbvcbvcbwbGDdPNcbwcbxcbxcbybJkcbzbGDbZWbXsbSNcbAcbBbSZcrsbQGaaaaaaaaaaaabQNcbDbWkbWlbXAcbEcakbXzcbFcbGcbHcbIcbJbYGbUdbUecbKcbLcbMbTeaafaaabVucbNcbOcbPcbQbVucbRcbScaXcbTcaZbXKcbUbXKcbVbXKbVuaaaaaaaaaaafaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaabXRcbWdPOcbYbHkdQidQdcrCdQUdQedQhcrEbIEdQVdQWcrFbHkcbZccaccbcccccdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccecaCcaCcaDcbtbGDccfcbrcbxcbxcbxcbxccgcbxccgcqzckccsGcsFcrycsmcrkcricbxccpbJkcbzbGDdPLbXsbSNcitcitcrucitcitcitcitcitcitbQGccwccxbWlbXAcbEccybXzcbFcczbZDbZEccAbVoaafbVpccBccCccDbTeaafaaabVuccEccFccGcaZbVuccHcaZccIccJcaZccKccLccMccNccObVuaaaaaaaaaaafaaaaaaaaabXRbXRbXRbXRbXRbXRbXRbXRbXRccPdPMccRbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkaafccSccTccSaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanmanmanmanmacTcbxccUccgccgccgccgccVccgccgcyVccXclIcyWdQAcgqcdccyXcdecdecdecdfbGDcwIcsMcwJcitckScjccjccrOcrPcrPcrPcsBbQGcdqcdrbWlbXAcbEcakbXzcdscdtcducdvcdwcapbWwbUecdxcbLcbLbTeaafcdycdzcdAcdBcdBcdCcdDcdEcdFcdGcdHcdIcdJcdKcdLcdMcdNbVuaaaaaaaaaaafaaaaaaaaabXRcdOcdPcdQcdRcdScdTcdUcdVcdWdQPcdYcdZceaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafcebceccebaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalQalPalPalQalPalPalPampalPalPalPalQalQaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafcedceecsLcegcehceicejcekcsIcrDcdbcdbcvudQAcgqcdbcsJcvEcvGcdeceqdQbcsKbXsbSNcitcrHcjccjccrGcrMcrMcrMcrMbQGcodcmQbWlbXAceycezbSZceAceBbZDceCceDbVoaafbTebTebTebTebTeaafaaabVuceEceFceGceHceGceIceJceKceLceGceMceNceGceIceObVuaafaafaafaafaafaafaafbXRcePceQcePceRceSbZQceTcdVceUdQNceUbXRbXRaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafaaaceWaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaalQaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaceXceecsiceZcfccfdcsncgdcsocgAcffclIcgzcrhcgqcdbcdbcdbcfhcsjbYpcgpcfkcgrcfmchCchAchBchAchnchAchAchAchAchgcgBchDcfscftcfubTVcaRcfvcfwcfxcfycfzbYGbUdbUecfAcfBcfBbTeaafaaabVucfCbXKcfDbVucfEcfFceNcfGcfHcfIcfJccNcfKcfLcfMbVuaaaaaaaaaaafaaaaaaaaabXRcePcePcePcfNcfOcdTcfPcfQcfRcgocfTcfUbXRaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacfVaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaacfWcfXcfYaaacfWcfXcfYaaacfWcfXcfYaafcfZaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaceXcdXcsbccQccZcslcgmcggcshcsgcgccgbcsfcflcsecgkcglcgncsdcsccfecfbceVcfacetcgicghcrgcfqcfrcfpcfpcfpcfpcfocexcgCcercgEcgCcgFcgGcgHcgIcgJcgKcgLbVoaafbVpcgMcgNcgObTeaafaafbVucgPbXKcfDbVucgQbXKbXMcgRcgScgTceJcgUcgTcgUceJbVuaaaaaaaaaaafaaaaaaaaabXRcdVcdVcdVcdVcgVbZQcgWcgXcgYcclchachbbXRaaaaaaaaaaaaaaachcchcchcchdaafaafaafaafcfVaafaafaafaafaafampchcchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaacfWchecfYaaacfWchecfYaaacfWchecfYaafaafaafaafaaaaaaaaaaaaaaaaaaaafaafaafceXchfckachhchichjchkchlcssciWchochpchqchrchochochscsqcsrchvcgychxbLjchycgDcitcmPcjQcjccpJclbclbclbclbbQGcjgbSZchEchFbTcchGbZrchHchIbRXchJchKcapbWwbUechLcfBcfBbTeaafaaabVucgPbXKcfDbVuchMbXKbXMbXKchNcgTbXKbXMcgTbXMchObVuaaaaaaaaaaafaaaaaaaaabXRcdOcdPcdQchPchQcdTchRchSchTcgvbZQchVbXRaaaaaaaaaaaaaaachcaaaaafaaaaafaaaaaaaaachWaaaaafaafaaaaaaaaaaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaalPaafcfWchecfYaaacfWchecfYaafcfWchecfYaafaaaaaaaafaafaaaaaaaaaaaaaaaaafaaaaaachXchYccgchZciacibciccidccgciycdbcfhccXcigcihcdbciicijcspcilcgucinclPcipcjOcitckScjQcjccjUcjrcjrcjrcjsbQGcivbSZchEcizbSZbSZbSZbTbbZzcizbZEcaVbVoaafbTebTebTebTebTeaafaaabVucgPbXKcfDbVuciAciBciCciDciEciFciGciHciFciHciGbVuaafaafaafaafaafaafaafbXRcePcePcePciIceSbZQciJciKciLcgsbZQciNbXRbXRbXRbXRaaaaaachcaaaciOciOciOciOciOaafciPaafciOciOciOciOciOaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacfWchecfYaafcfWchecfYaaacfWchecfYaaaaaaaaaaaaaaaaafaaaaafaaaaafaafaaaaaabGDciQccgccgcsuckTcswcsvcsxckYcdbcfhcihciXciYciZcjacjbckZchvcimbYpbSNbYpciqcitcitclacitcitcitcitcitcitbQGclVcjhcjicjjcjkcjlcjkcjjcjmcjjcjnchFcjoaafaafaafaafaafaafaafaaacjpcpLcpNcpMbZJbVucjtcjucjvbVubVucjwbVubVubVucjwbZJaaaaaaaaaaaaaaaaaaaaabXRcePcePcePchPcjxcdTcjycjzcjAchUcjCcjCcjDcjEcjFbXRaafaafchcaafcjGcjHcjHcjHcjHcjIciPcjJcjKcjKcjKcjKcjLaafchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalPaafaaacfWchecfYaafcfWchecfYaaacfWchecfYaafaaaaaaaaaaaaaafaafcjMcjNcjNcjNcjNbGDbGDciQcdeckbckccjPckOckOckOcstcdbcfhcihcjRcjSciZcjTcjbckQcdechzchwcsDchtcgZccuckLckMckdckeccuaaaaaaaaabQGckfckgckhckickjckkcklckmbSZcknckockpckqaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafbVuckrckscktbVuaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaabXRcdVcdVcdVcdVckubZQciJckvckwcgsbZQbZQckxbZQckybXRaaaaaachcaafckzckzckzckzckzaaaciPaaackzckzckzckzckzaafchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaaaaafaafckAaafaafaafckAaafaaaaafckAaafaaaaaaaaaaaaaaackBckCckDckEckFckGckHckIckJckKcdecpKcmTcmTcmpcmocjdcmqcmwckRcihdPzciXciZcjacjbcmxcdeckUckUcszcsAcsCccucrwcmycmzcmAccuaaaaaaaaaacTclccldcleclfclgclhclgclfclgcliclgclicljaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaclkaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabXRcdOcdPcdQcllchQcdTclmbZSclnciMcloclpclqclrclsbXRaaaaaachcaaaaafaaaaafaafaafaaaciPaaaaafaaaaafaaaaafaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafcltclucluclvclwclwclwclwclwclwclwclwclwclwclwclwclwclwclxclyclzclAclBclCclDclEclFbJkciQcbxcdecdecdecdecbxclUcdecmlcrvclIclIclIclIclJcjbcdbcsyclNclOcsEclQclRccuclSclTclGclMccuaaaaaaaaaaaaaafclWaafclXaafclWaafclXaafclYaafclYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabXRcePceQcePcmaceSbZQbZRbZScmbcmJbZQcmccdVcdVcdVbXRaaaaaachcaaaciOciOciOciOciOaafciPaafciOciOciOciOciOaafchcaaaaaaaaaaaaaaaaaaaaaaaacmdaaaaaaaaacmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaaaaafaafcmeaafaaaaafcmeaafaaaaafcmeaafaaaaaaaaaaaaaaackBckCcmfcmgcmhcmicjNcmjbJkbSAcmkcmkcmkcmkcmkcmkcewcdecepcmncemcemcemcemcemceocdlcqUcmscmscnKcmucmvcdjcddccvcdicdgccuaaaaaaaaaaaabTecmBbVpcmBbTecmBbVpcmBbTecmCbVpcmDbTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXRcePcePcePcllcmEcmFcmGcmHcmIcmJbZQcmJbZQcmKbZQbYQaafaafchcaafcjGcjHcjHcjHcjHcjIciPcjJcjKcjKcjKcjKcjLaafchcaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalPaafaafcfWcmLcfYaaacfWcmLcfYaaacfWcmLcfYaafaaaaaaaaaaaaaafaafcmMcjNcjNcjNcjNbGDcbyccpcmNcmOcbtbJkbJkcgtbJkcmRcmScrlcrjcqVcqVcqVcqVcqWcmRckUcmXclNcmYcmZcnackUccuccuccuccuccuaaaaaaaaaaaabTecnbcnccndbTecnecnfcngbTecnhcnicnjbTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbgbXRcnkcnlcnlcnmcnncnocnncnpcbXcnrcnscntcdTcnucnvaaaaaachcaafckzckzckzckzckzaaaciPaafckzckzckzckzckzaaachcaaacmdaaaaaacmdaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaacmdaaaaaacmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfWcmLcfYaafcfWcmLcfYaaacfWcmLcfYaaaaaaaaaaafaaaaafaafaafaaacnwbPhbPgbGDcnxcnycnycnzbGDbGDbGDbGDbJkcmRcmRcnAcnBcnCcnDcnEcchcnGcrrcnIclNcnJcnKcmZcnLckUaafaafaafaafaafaaaaaaaaaaaabTecnMcnNcnMbTecnOcnPcnObTecnQcnRcnSbTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclkaaabXRcnTcnUcnVcnWcnXcnUcnYcnZcnXcnUcoabXRaaaaaachdaaaaafaaaaafaaaaafaaacobaaaaafaaaaafaafaafaafchcaaacmdcmdcmdcmdaaacmdcmdcmdcmdcmdcmdcmdcmdcmdaaacmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafcfWcmLcfYaaacfWcmLcfYaaacfWcmLcfYaafaaaaaaaaaaaaaafaafaaaaaacocbJkbJkbMBbJkbJkbJkbJkbJkbJkbJkbJkcbtcmRcmRcoecofcogcohcohcoicojcmRcokclNclNcmYcmZcnackUckUckUckUckUckUckUckUaaaaaabTecnMcolcnMbTecnOcomcnObTecnSconcnSbTeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacooaafbXRcopcoqcorcdVcoscotcoucdVcovcowcoxbXRaaaaaachcaaaciOciOciOciOciOaafcfVaafciOciOciOciOciOaafchcaaacmdcmdcmdcmdaaacmdcmdcmdcmdcmdcmdcmdcmdcmdaaacmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafcfWcmLcfYaaacfWcmLcfYaafcfWcmLcfYaafaafaafaaaaafaafaaaaafaaabSybPfcoybGDcnxcnycnycnzcbxcjXcjXcjXcjXcjXcmRcozcoAcoBcskcoDcoEcoFcmRcokclNclNcoGcoHcoIcoJcoKcoLcoMcmtcoNcoOckUaaaaaabTebTebTebTebTebTebTebTebTebTebTebTebTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaabXRcoPcePcePcdVcoPcePcePcdVcoPcePcePbXRaafaafchcaafcjGcjHcjHcjHcjHcoQcoRcoQcjKcjKcjKcjKcjLaafchcaaacmdcmdcmdcmdaaacmdcmdcmdcmdcmdcmdcmdcmdcmdaaacmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaampaafcfWcoScfYaaacfWcoScfYaaacfWcoScfYaafalPaafaafaafaaaaaaaaaaafbGDcoTcoUbGDaafaafaaaaafcjXcqhcqgcfgcpScqdcpacpbcpccpdcpecpfcpgcphcmRcokclNcpiclNcmZcpjcpkcplcpmcpncpocppcpqckUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXRcprcePcePcdVcprcePcePcdVcprcePcePbXRaaaaaachcaafckzckzckzckzckzaaacfVaaackzckzckzckzckzaaachcaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaaaaafaaaaaaaaaaafaafaafaaaaaaaafaafaaaalPaafaafaaaaaaaaaaaaaaaaafaaaaaaaafaaaaafaafaafcjXcqhcqicfgcfgcfgcpacptcpucpvcpwcpxcpycpzcnHcpAcpBcpCcpDcpEcpFcpGcpHcpIcifcieciscirciuaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXRcpOcePcePcdVcpOcePcePcdVcpOcePcePbXRaaeaaachcaaaaaaaafaafaafaaaaaacfVaafaaaaaaaafaafaaaaaachcaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalPalQalQampalPalPalPalPalQalPalPalQcpPaafaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaafcjXcqjcqGcfgcfgcqkcqHcpacficfncpVcpWcpWcpXcmRcpYcnaclNcpZclNclNcqacmYcnacixciwcjqcjfciuciubSCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbgbXRbXRbXRbXRbXRbXRbXRbXRcqfcqfcqfcbgaaaaaachcchcchcchcchcaaaaaaaaacfVaaaaaaaaachcchcchcchdchcaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjXcgwcencfgcfgcgacdmcaIcqlcqmcqncqncqncqncqocqpcqqcqrcqscqtcqtcqucqvcpjbWObVVcqybSDbUWbTCbSCckUckUckUcqBcqCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqDcqDcqDaaaaaaaaaaaaaaaaaaaaaaaaaaachcaafcqEaafchcaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFaaaaaaaaacqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjXclHclHcfgcfgcfgcfgccnclNcqIcqJcqKcqLcqMcqNcqOcqPcqQcqRcqScqTcqUcqVcqWbYqbYjbXobSDbSDbSDcracrbcrccrdcrecqCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaaaaafaaachcaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcjXclKclLcfgcoVcoVcoWcjXckUckUckUckUckUcrjccocrjcrlcrlccqcrlcrlcrjccscrjbSCbZqbYrcqybSDbYSbZnckUckUckUckUcrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcchcchcchcchcaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFaaaaaacqFaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaacqFaaaaaacqFaaaaaeaaaaaaaafaafamqcjXclLclLcpRcpQcpQcpQcjXaafaaaaaaaaackUcoZcrxcpscrlcrzcrAcrBcrlcoXcrxcoYbSCccmcbCcbmcaabSCbSCaaaaafaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaacmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFaaacqFcqFcqFcqFcqFcqFcqFcqFcqFaaacqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaafcjXcjXcjXcjXcjXcjXcjXcjXaafaafaafaaackUcrIcrJcdncrlcrKcrLceucrlcrIcrJcrIbSCbSCbSCbSCbSCbSCaafaaaaaaaafaafaafaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFaaacqFcqFcqFcqFcqFcqFcqFcqFcqFaaacqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaafaafaafaafaaaaaaaafaafaaaaaaaaaaaacrQcrlcrlcrlcrlcrlcrlcctcrlcrlcrlcrlcrlcrlcrSaaaaaaaafaafaafaafaafaafaaaaafaafaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFaaacqFcqFcqFcqFcqFcqFcqFcqFcqFaaacqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaacrlcrTcrUcrVcrWcrXcrYcrZcdocrXcrWcrVcdocsccrlaaaaafaafaaaaafaaaaaaaaaaaaaaaaagaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcrlcsdcsecsfcsgcsgcshcsicsjcdhcdhcoCcsncsocrlaafaafaafaaaaaaaaaaaaaaaaaaaafaafaafaafaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcrlcrZcsccsccsccsccsAcsqcszcsscstcsccsccsucrlaafaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaeaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrlcsvcspcspcsbcsxcswcsrcwKcsCcsycspcstcrZcrlaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcrlcsFcsccsccsGcsHcsIcsJcsKcsLcsMcsNcsXcsPcrlaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrlcsQcsccsccsGcsRcsScsTcsUcsVcsWcsacsYcsZcrlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrlctactbctccsGctdctectfctgcthctictjctbctkcrlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaacqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrlctlcscctmcrNctoctpctqctrctscttctmcscctlcrlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcrlcrlcrlcrlcrlcrlcrlctucrlcrlcrlcrlcrlcrlcrlaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaafcrlctqcrlaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaacrlctucrlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafcfWcmLcfYaaacfWcmLcfYaafcfWcmLcfYaafaafaafaaaaafaafaaaaafaaabSybPfcoybGDcnxcnycnycnzcbxcjXcjXcjXcjXcjXcmRcozcoAcoBcskcoDcoEcoFcmRcokclNclNcoGcoHcoIcrxcoKcmscoMcmtcoNcoOckUaaaaaabTebTebTebTebTebTebTebTebTebTebTebTebTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaabXRcoPcePcePcdVcoPcePcePcdVcoPcePcePbXRaafaafchcaafcjGcjHcjHcjHcjHcoQcoRcoQcjKcjKcjKcjKcjLaafchcaaacmdcmdcmdcmdaaacmdcmdcmdcmdcmdcmdcmdcmdcmdaaacmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaampaafcfWcoScfYaaacfWcoScfYaaacfWcoScfYaafalPaafaafaafaaaaaaaaaaafbGDcoTcoUbGDaafaafaaaaafcjXcqhcrAcrBcfgcrzcpacpbcpccpdcpecpfcpgcphcmRcokclNcpiclNcmZcpjcpkcplcpmcrJcrIcppcpqckUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXRcprcePcePcdVcprcePcePcdVcprcePcePbXRaaaaaachcaafckzckzckzckzckzaaacfVaaackzckzckzckzckzaaachcaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaaaaafaaaaaaaaaaafaafaafaaaaaaaafaafaaaalPaafaafaaaaaaaaaaaaaaaaafaaaaaaaafaaaaafaafaafcjXcqhcqicfgcfgcqdcpacptcpucpvcpwcpxcpycpzcrrcpAcpBcpCcrLcrKcpFcpGcpHcrNcrScrQcrTcirciuaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXRcpOcePcePcdVcpOcePcePcdVcpOcePcePbXRaaeaaachcaaaaaaaafaafaafaaaaaacfVaafaaaaaaaafaafaaaaaachcaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalPalQalQampalPalPalPalPalQalPalPalQcpPaafaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaafcjXcqjcqGcfgcfgcqkcqHcpacrUcrVcrYcrWcrWcrXcmRcpYcnaclNclNcnaclNcqacmYcpZcsacrZcjqcjfciuciubSCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbgbXRbXRbXRbXRbXRbXRbXRbXRcqfcqfcqfcbgaaaaaachcchcchcchcchcaaaaaaaaacfVaaaaaaaaachcchcchcchdchcaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjXcgwcencfgcfgcgacdmcaIcqlcelcqncqncqncefcdncdocdpclNclNcficfncfjceucesceYcevcqybSDbUWbTCbSCckUckUckUcqBcqCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqDcqDcqDaaaaaaaaaaaaaaaaaaaaaaaaaaachcaafcqEaafchcaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFaaaaaaaaacqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjXclHclHcfgcfgcfgcfgccnclNcqIcikcqMchucifcqKcqMcieciechuchmcgxcgjcgfcgecfSbYjbXobSDbSDbSDcracrbcrccrdcrecqCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcaaaaafaaachcaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcjXclKclLcfgcoVcoVcoWcjXckUcqBckUciocisciwcixciRckUcqBciTciSckUciUckUckUbSCbZqbYrcqybSDbYSbZnckUckUckUckUcrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachcchcchcchcchcaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFaaaaaacqFaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaacqFaaaaaacqFaaaaaeaaaaaaaafaafamqcjXclLclLcpRcpQcpQcpQcjXaafcnHcmUcmVckXcmmcoCcoJcmWcnHckWckVckPckNaafaafbSCccmcbCcbmciVbSCbSCaaaaafaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaacmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFaaacqFcqFcqFcqFcqFcqFcqFcqFcqFaaacqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaafcjXcjXcjXcjXcjXcjXcjXcjXaafcnHcoZcpncpocpscoLcoXcoYcnHcpEcpDcpIckNaafaaabSCbSCbSCbSCbSCbSCaafaaaaaaaafaafaafaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFaaacqFcqFcqFcqFcqFcqFcqFcqFcqFaaacqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaafaafaafaafaaaaaaaafaaaaafaafcnHcqocqpcqgcqgcqgcqmcpXcnHcpWcpVcpSckNaafaaaaaaaaaaaaaaaaafaafaafaafaafaafaaaaafaafaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFaaacqFcqFcqFcqFcqFcqFcqFcqFcqFaaacqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcnHcqqcqrcqscqtcqucqvcqwcnHcqLcqJcqNckNaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaagaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqQcqOcqOcqOcqOcqOcqScqTcqRcqOcqOcqPcqOcqOcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqOcDVcDTcDIcDFcDHcDFcCxcDFcDHcDFcDGcDlcDwcqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaeaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcqOcDacCLcCLcCLcCLcCNcCMcCZcCOcCOcDbcDkcCrcqOaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqOcCKcsUcsUcsUcsUcCDcCBcCAcCycCscCxcCqcCrcqOaafaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqOcCccBycBycCbcCacBvcBkcBxcBwcCdcCecCfcCpcqOaaaaafaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqOcBecsUcsUcticBfcBjcBicBhcBgcwKcAZctucvFcqOaafcbfaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaacqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqOctkcsUcsUctictlctnctmctpctoctqctrctscttcqOaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcqOctccsYctjcticthctgctfctectdctactbcsYcsZcqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaafaafcqOcsOcsUcsTcsWcsVcsQcsPcsScsRcsXcsTcsUcsOcqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcqQcqOcqOcqOcqOcqOcqOcsNcqOcqOcqOcqOcqOcqOcqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaafaafaaaaafaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqFcqFcqFcqFcqFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactwctwctwctwctwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10756,31 +10777,31 @@ ctKcurcuwcuzcuucuBcupcutcuxcuscuAcuvcuCcuqcuycuocupcuBcuAcuwcuzcutcuvcuucuqcusct ctBcuucuscuCcutcuycuwcupcuAcuBcuqcuxcuocuzcuvcurcuwcuycuqcuscuCcupcuxcutcuzcuBctFcuDcuEcuFcuGcuKcuHcuIcubctNctOctPctQctRctSctTcuDcuEctTcuDcuEcuFcuIcuJctNctOctPctQctRctSctTcuDctVcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcuMcvkcuMcuMcuMcuOcvlcvmcvlcvmcvlcuOcvecvecvecvecvecuOcuTcuTcuTcuTcuTcuOcuUcuUcuUcuUcuUcuOcuVcuVcuVcuVcuVcuOcvhcvicvicvicvjcuZ ctJcutcuBcuocupcuvcuscuwcuqcuycuzcuAcurcuCcuxcuucuscuvcuzcuBcuocuwcuAcupcuCcuyctEcuIcuJctNctOctPctQctRcuhctTcuDcuEcuFcuGcuKcuHcuIcuJctQctRctSctTctRctSctTcuDcuEcuFcuGcuKcuHcuIcubcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcuMcuMcvncvocuMcuOcvpcvpcvpcvpcvpcuOcvqcvqcvqcvqcvrcuOcuTcuTcuTcuTcuTcuOcuUcuUcuUcuUcuUcuOcuVcuVcuVcuVcuVcuOcvhcvicvicvicvjcuZ ctMcupcuycurcuwcuxcuBcuscuzcuvcuCcuqcuucuocuAcutcuBcuxcuCcuycurcuscuqcuwcuocuvctAcuDcuEcuFcuGcuKcuHcuIcubctNctOctPctQctRctSctTcuDcuEcuFcuGcuKcuHcuIcuJctNctOctPctQctRctSctTcuDctVcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcvscuMcuMcuMcuMcuOcvtdPBcvvdPBcvwcuOcvxcvycvzcvAcvxcuOcuTcuTcvfcuTcuTcuOcuUcuUcuUcuUcuUcuOcuVcuVcuVcuVcuVcuOcvhcvicvicvicvjcuZ -ctzcuwcuvcuucuscuAcuycuBcuCcuxcuocuzcutcurcuqcupcuycuAcuocuvcuucuBcuzcuscurcuxctGctPctQctRctSctTcuDcuEctWcuGcuKcuHcuIcuJctNctOctPctQctNctOctPctQcuEcuFcuGcuKcuHcuIcuJctNctOctPcufcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcuMcvscuMcuMcvBcuOcvCdPBcvvdPBcvDcuOcvxdQcdQydQwcvxcuOcuTcuTcvfcuTcuTcuOcuUcuUcuUcuUcuUcuOcuVcuVcuVcuVcuVcuOcvHcvicvicvicvIcuZ -ctCcuscuxcutcuBcuqcuvcuycuocuAcurcuCcupcuucuzcuwcuvcuqcurcuxcutcuycuCcuBcuucuActDcuKcuHcuIcuJctNctOctPcufctRctSctTcuDcuEcuFcuGcuKcuFctTctPctOcuEctSctQctRctSctTcuDcuEcuFcuGcuKctZcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcuMcvacvscuMcvncuOcvpcvpcvpcvpcvpcuOcvJdQcdQydQwcvJcuOcuTcuTcuTcuTcuTcuOcuUcuUcuUcuUcuUcuOcuVcuVcuVcuVcuVcuOcvHcvicvicvicvIcuZ -ctFcuBcuAcupcuycuzcuxcuvcALdQldQndQodQrdQsdQtdQvdQudRocCndRqcupcuvcuocuycutcuqctLcuJctNctOctPctQctRctScuicuDcuEcuFcuGcuKcuHcuIcuJcvVcvWcvXcvYcvZcwactTcuDcuEcuFcuGcuKcuHcuIcuJcuccujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcuMcuMcuMcvscuMcuOcwbcwccwbcwccwbcuOcwddQcdQydQwcwdcuOcuTcuTcuTcuTcuTcuOcuUcuUcuUcuUcuUcuOcuVcuVcuVcuVcuVcuOcvHcvicvicvicvIcuZ -ctEcuycuqcuwcuvcuCcuAcuxcvMcwPcwfcwgcwhcwicwjcwkcwlcwOcwPdTycuwcuxcurcuvcupcuzctIcuFcuGcuKcuHcuIcuJctNcudctPctQctRctSctTcuDcuEcuFcwacwncwocwpcwqcwrctOctPctQctRctSctTcuDcuEcuFctXcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcuMcwscuMcuMcvscuOcvccvdcvccvdcvccuOcwddQcdQydQwcwdcuOcuTcvfcuTcvfcuTcuOcuUcuUcuUcuUcuUcuOcuVcvgcuVcvgcuVcuOcvHcvicvicvicvIcuZ -ctAcuvcuzcuscuxcuocuqcypdTzcwkcwlcwucwvcwwcwhcwgcwxcwycwkcvTcxccuAcuucuxcuwcuCctyctQctRctSctTcuDcuEcuFctXcuKcuHcuIcuJctNctOctPctQcwAcwBcwCcwDcwEcwFcuEcuKcuHcuIcuJctNctOctPctQcugcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcvncuMcwGcuMcvacuOcuPcuQcuPcuQcuPcuOcwHdQzdQDdQBcwHcuOcuTcuTcuTcuTcuTcuOcuUcuUcuUcuUcuUcuOcuVcuVcuVcuVcuVcuOcwLcwMcwMcwMcwNcuZ -ctGcuxcuCcuBcuAcurcuzcyIcwkcwgcwxcwOcwfcwPcwvcwucwQcwjcwgcwxcxxcuqcutcuAcuscuoctHcuEcuFcuGcuKcuHcuIcuJcucctOctPctQctRctSctTcuDcuEcwScwTcwUcwVcwBcwWctNctOctPctQctRctSctTcuDcuEctWcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwXcwYcwYcwYcwYcwYcwZcwYcwYcwYcwYcwYcwZcwYcwYcwYcwYcwYcwZcxacxacxacxacxacwZcxacxacxacxacxacwZcxacxacxacxacxacwZcxacxacxacxacxacxb -ctDcuAcuocuycuqcuucyUcyRcwgcwucwQcwycwlcwkcwfcwOcwicwhcwucwQcxPcyRcupcuqcuBcurctKctOctPctQctRctSctTcuDctVcuFcuGcuKcuHcuIcuJctNctOcxdcwAcxecvWcvXcvYcuEcuFcuGcuKcuHcuIcuJctNctOcuecujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxfcxgcxhcxfcxgcuOcxicxicxicxicxicuOcxjcxjcxjcxjcxjcuOcxkcxkcxlcxmcxmcuOcxncxocxpcxncxqcuOcxrcxscxscxscxtcuOcxucxvcxvcxvcxwcuZ -ctLcuqcurcuvcuzcutcyYcwxcwucwOcwicwjcwxcwgcwlcwycwwcwvcwOcwicwjcyUcuwcuzcuycuuctBctSctTcuDcuEcuFcuGcuKctZcuIcuJctNctOctPctQctRctSctPcuFcuGcuKcuHcuDcuHcuIcuJctNctOctPctQctRctScuicujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxgcxhcxfcxgcxhcuOcxicxycxicxicxicuOcxjcxzcxAcxBcxjcuOcxCcxCcxDcxEcxEcuOcxqcxFcxGcxHcxIcuOcxJcxKcxKcxKcxLcuOcxMcxNcxNcxNcxOcuZ -ctIcuzcuucuxcuCcupczicyYcwOcwycwwcwhcwQcwucwxcwjcwPcwfcwycwwcxZcyYcuscuCcuvcutctJcuGcuKcuHcuIcuJctNctOcuectQctRctSctTcuDcuEcuFcuGcvVcvWcvXcvYcvZcwactPctQctRctSctTcuDcuEcuFcuGctYcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxhcxfcxgcxhcxfcuOcxicxicxicxQcxicuOcxjcxRcxRcxRcxjcuOcxCcxScxScxScxEcuOcxncxTcxncxocxncuOcxJcxKcxKcxKcxLcuOcxMcxNcxNcxNcxOcuZ -ctycuCcutcuAcuocuwcuuczicwycwjcwPcwvcwicwOcwQcwhcwkcwlcwjcwPcypcurcuBcuocuxcupctMcuHcuIcuJctNctOctPctQcugctSctTcuDcuEcuFcuGcuKcuHcwacxVcxWcxXcxYcwrctRctSctTcuDcuEcuFcuGcuKcuHcuacujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxfcxgcxhcxfcxgcuOcxicxicxicxicxicuOcxjcxjcxjcxjcxjcuOcxCcxDcxDcxDcxEcuOcxocxncxqcxGcxqcuOcxJcxKcxKcxKcxLcuOcxMcxNcxNcxNcxOcuZ -ctHcuocupcuqcurcuscutczncwjcwhcwkcwfcwwcwycwicwvcwgcwxcwhcwkcyIcuucuycurcuAcuwctzctTcuDcuEcuFcuGcuKcuHcuacuJctNctOctPctQctRctSctTcwAcyacybcyccydcwFcuIcuJctNctOctPctQctRctSctTctUcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxgcxhcxfcxgcxhcuOcxicxicxicyecxicuOcxjdQMdQKdQLcxjcuOcyicyjcyjcyjcykcuOcxncxpcxncylcxpcuOcymcyncyncyncyocuOcxMcxNcxNcxNcxOcuZ -ctKcurcuwcuzcuucuBcupcwtcwhcwvcwgcwlcwPcwjcwwcwfcwucwQcwvcwgcyRcutcuvcuucuqcusctCcuKcuHcuIcuJctNctOctPcufctRctSctTcuDcuEcuFcuGcuKcwScyqcyrcyscyacwWctQctRctSctTcuDcuEcuFcuGcuKctZcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxhcxfcxgcxhcxfcuOcxicytcxicxicxicuOcxjdQJdQHdQIcxjcuOcyxcyycyycyycyzcuOcxqcyAcyBcyCcxocuOcyDcyEcyEcyEcyFcuOcyGcxNcxNcxNcyHcuZ -ctBcuucuscuCcutcuycuwcwzcwvcwfcwucwxcwkcwhcwPcwlcwOcwicwfcwucyUcupcuxcutcuzcuBctFctPctQctRctSctTcuDcuEctWcuGcuKcuHcuIcuJctNctOctPcxdcwAcxecvWcvXcvYcuFcuGcuKcuHcuIcuJctNctOctPcufcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxfcxgcxhcxfcxgcuOcxicxicxicxicxycuOcxjdQJdQHdQIcxjcuOcyJcxDcyKcxDcyLcuOcyAcyMcyNcyOcyCcuOcyPcxKcxKcxKcyQcuOcyGcxNcxNcxNcyHcuZ -ctJcutcuBcuocupcuvcuscwRcwfcwlcwOcwQcwgcwvcwkcwxcwycwwcwlcwOcyYcuwcuAcupcuCcuyctEcuFcuGcuKcuHcuIcuJctNcudctPctQctRctSctTcuDcuEcuFcuGcuKcuHcuIcuJctNctOctPctQctRctSctTcuDcuEcuFctXcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxgcxhcxfcxgcxhcuOcyScxicxicxicxicuOcxjdQJdQHdQIcxjcuOcyJcyTcyTcyTcyLcuOcyMcyNcyNcyNcyOcuOcyPcxKcxKcxKcyQcuOcyGcxNcxNcxNcyHcuZ -ctMcupcuycurcuwcuxcuBcxccwlcwxcwycwicwucwfcwgcwQcwjcwPcwxcwyczicuscuqcuwcuocuvctActRctSctTcuDcuEcuFcuGctYcuHcuIcuJctNctOctPctQctRctSctTcuDcuEcuFcuGcuKcuHcuIcuJctNctOctPctQctRcuhcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxhcxfcxgcxhcxfcuOcxicyecxicytcxicuOcxjdQGdQEdQFcxjcuOcyJcyJcxDcyLcyLcuOcyNcyNcyNcyNcyNcuOcyPcxKcxKcxKcyQcuOcyGcxNcxNcxNcyHcuZ -ctzcuwcuvcuucuscuAcuycxxcwxcwQcwjcwwcwOcwlcwucwicwhcwkcwQcwjczncuBcuzcuscurcuxctGcuJctNctOctPctQctRctScuicuDcuEcuFcuGcuKcuHcuIcuJctNctOctPctQctRctSctTcuDcuEcuFcuGcuKcuHcuIcuJcuccujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxfcxgcxhcxfcxgcuOcxicxicxicxicyScuOcxjcxjcxjcxjcxjcuOcyZcyZczaczbczbcuOcyNcyNcyNcyNcyNcuOczcczdczdczdczecuOczfczgczgczgczhcuZ -ctCcuscuxcutcuBcuqcuvcxPcwQcwicwhcwPcwycwxcwOcwwcwvcwgcwicwhcwtcuycuCcuBcuucuActDcuHcuIcuJctNctOctPctQcugctSctTcuDcuEcuFcuGcuKcuHcuIcuJctNctOctPctQctRctSctTcuDcuEcuFcuGcuKcuHcuacujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczjczkczkczkczkczkczlczkczkczkczkczkczlczkczkczkczkczkczlczkczkczkczkczkczlczkczkczkczkczkczlczkczkczkczkczkczlczkczkczkczkczkczm -ctFcuBcuAcupcuycuzcuxcxUcwicwwcwvcwkcwjcwQcwycwPcwfcwucwwcwvcwzcuvcuocuycutcuqctLctSctTcuDcuEcuFcuGcuKctZcuIcuJctNctOctPctQctRctSctTcuDcuEcuFcuGcuKcuHcuIcuJctNctOctPctQctRctScuicujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctEcuycuqcuwcuvcuCcuAcxZcwwcwPcwfcwgcwhcwicwjcwkcwlcwOcwPcwfcwRcuxcurcuvcupcuzctIcuEcuFcuGcuKcuHcuIcuJcucctOctPctQctRctSctTcuDcuEcuFcuGcuKcuHcuIcuJctNctOctPctQctRctSctTcuDcuEctWcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctAcuvcuzcuscuxcuocyIcypcwPcwkcwlcwucwvcwwcwhcwgcwxcwycwkcwlcxccypcuucuxcuwcuCctyctQctRctSctTcuDcuEcuFctXctYctZcuacubcuccudcuecufcugcuhcuictUctVctWctXctYctZcuacubcuccudcuecufcugcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctGcuxcuCcuBcuAcurcyRcwfcwkcwgcwxcwOcwfcwPcwvcwucwQcwjcwgcwxcwOcyIcutcuAcuscuoctHcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctDcuAcuocuycuqcuucyUcyRcwgcwucwQcwycwlcwkcwfcwOcwicwhcwucwQcxPcyRcupcuqcuBcurctKcujctyctzctActBctCctDctEctFctyctGctHctIctJctKctLctMctEctDctHctActBctFctIctCctKctGctMcujaaaaaaczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctLcuqcurcuvcuzcutcuocyUcwucwOcwicwjcwxcwgcwlcwycwwcwvcwOcwicxUcuCcuwcuzcuycuuctBcujctHcuocupcuqcurcuscutcuucuvcuwcuxcuycuzcuAcuBcuCcutcuscuxcupcuqcuucuycurcuAcuwctzcujaaaaaaczocuBcuucuAcuBcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuBcuucuAczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctIcuzcuucuxcuCcupcurcyYcxxcwPcwycwucwvcwjcwgcwfcwicwkcwyczncxZcuocuscuCcuvcutctJcujctKcurcuwcuzcuucuBcupcutcuxcuscuAcuvcuCcuqcuycuocupcuBcuAcuwcuzcutcuvcuucuqcusctCcujaaaaaaczocuBcuucuAcuBcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuBcuucuAczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctycuCcutcuAcuocuwcuucurcxPcwzcxUcxxcyIcxZcxccyRczncwRcxUcwtcuAcurcuBcuocuxcupctMcujctBcuucuscuCcutcuycuwcupcuAcuBcuqcuxcuocuzcuvcurcuwcuycuqcuscuCcupcuxcutcuzcuBctFcujaaaaaaczocuBcuucuAcuBcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuBcuucuAczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctzcuwcuvcuucuscuAcuycuBcuCcuxcyYcBqcvPcOWdUocwzcuycuAcuocuvcuucuBcuzcuscurcuxctGctPctQctRctSctTcuDcuEctWcuGcuKcuHcuIcuJctNctOctPctQctNctOctPctQcuEcuFcuGcuKcuHcuIcuJctNctOctPcufcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcuMcvscuMcuMcvBcuOcvCdPBcvvdPBcvDcuOcvxdQcdQydQwcvxcuOcuTcuTcvfcuTcuTcuOcuUcuUcuUcuUcuUcuOcuVcuVcuVcuVcuVcuOcvHcvicvicvicvIcuZ +ctCcuscuxcutcuBcuqcuvcuycuocypcALcwxcwkcwwcwlcBrcxUcuqcurcuxcutcuycuCcuBcuucuActDcuKcuHcuIcuJctNctOctPcufctRctSctTcuDcuEcuFcuGcuKcuFctTctPctOcuEctSctQctRctSctTcuDcuEcuFcuGcuKctZcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcuMcvacvscuMcvncuOcvpcvpcvpcvpcvpcuOcvJdQcdQydQwcvJcuOcuTcuTcuTcuTcuTcuOcuUcuUcuUcuUcuUcuOcuVcuVcuVcuVcuVcuOcvHcvicvicvicvIcuZ +ctFcuBcuAcupcuycuzcuxcuvcurcyIcwwcwQcwgcwPcwxcwucxZcuzcuucuAcupcuvcuocuycutcuqctLcuJctNctOctPctQctRctScuicuDcuEcuFcuGcuKcuHcuIcuJcvVcvWcvXcvYcvZcwactTcuDcuEcuFcuGcuKcuHcuIcuJcuccujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcuMcuMcuMcvscuMcuOcwbcwccwbcwccwbcuOcwddQcdQydQwcwdcuOcuTcuTcuTcuTcuTcuOcuUcuUcuUcuUcuUcuOcuVcuVcuVcuVcuVcuOcvHcvicvicvicvIcuZ +ctEcuycuqcuwcuvcuCcuAcuxcuucwtcwfcwgcwhcwicwjcwkcyRcuBcutcuqcuwcuxcurcuvcupcuzctIcuFcuGcuKcuHcuIcuJctNcudctPctQctRctSctTcuDcuEcuFcwacwncwocwpcwqcwrctOctPctQctRctSctTcuDcuEcuFctXcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcuMcwscuMcuMcvscuOcvccvdcvccvdcvccuOcwddQcdQydQwcwdcuOcuTcvfcuTcvfcuTcuOcuUcuUcuUcuUcuUcuOcuVcvgcuVcvgcuVcuOcvHcvicvicvicvIcuZ +ctAcuvcuzcuscuxcuocuqcuAcutcwzcwlcwucwvcwwcwhcwgcvQcxPcupcuzcuscuAcuucuxcuwcuCctyctQctRctSctTcuDcuEcuFctXcuKcuHcuIcuJctNctOctPctQcwAcwBcwCcwDcwEcwFcuEcuKcuHcuIcuJctNctOctPctQcugcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcvncuMcwGcuMcvacuOcuPcuQcuPcuQcuPcuOcwHdQzdQDdQBcwHcuOcuTcuTcuTcuTcuTcuOcuUcuUcuUcuUcuUcuOcuVcuVcuVcuVcuVcuOcwLcwMcwMcwMcwNcuZ +ctGcuxcuCcuBcuAcurcuzcuqcwzcvOcwxcwOcwfcwPcwvcwucwQcOXcwRcuCcuBcuqcutcuAcuscuoctHcuEcuFcuGcuKcuHcuIcuJcucctOctPctQctRctSctTcuDcuEcwScwTcwUcwVcwBcwWctNctOctPctQctRctSctTcuDcuEctWcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwXcwYcwYcwYcwYcwYcwZcwYcwYcwYcwYcwYcwZcwYcwYcwYcwYcwYcwZcxacxacxacxacxacwZcxacxacxacxacxacwZcxacxacxacxacxacwZcxacxacxacxacxacxb +ctDcuAcuocuycuqcuucuCcuzcwRcwucwQcwycwlcwkcwfcwOcwicwhcxccuocuycuzcupcuqcuBcurctKctOctPctQctRctSctTcuDctVcuFcuGcuKcuHcuIcuJctNctOcxdcwAcxecvWcvXcvYcuEcuFcuGcuKcuHcuIcuJctNctOcuecujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxfcxgcxhcxfcxgcuOcxicxicxicxicxicuOcxjcxjcxjcxjcxjcuOcxkcxkcxlcxmcxmcuOcxncxocxpcxncxqcuOcxrcxscxscxscxtcuOcxucxvcxvcxvcxwcuZ +ctLcuqcurcuvcuzcutcuocuCcxccwOcwicwjcwxcwgcwlcwycwwcwvcxxcurcuvcuCcuwcuzcuycuuctBctSctTcuDcuEcuFcuGcuKctZcuIcuJctNctOctPctQctRctSctPcuFcuGcuKcuHcuDcuHcuIcuJctNctOctPctQctRctScuicujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxgcxhcxfcxgcxhcuOcxicxycxicxicxicuOcxjcxzcxAcxBcxjcuOcxCcxCcxDcxEcxEcuOcxqcxFcxGcxHcxIcuOcxJcxKcxKcxKcxLcuOcxMcxNcxNcxNcxOcuZ +ctIcuzcuucuxcuCcupcurcuocxxcwycwwcwhcwQcwucwxcwjcwPcwfcxPcuucuxcuocuscuCcuvcutctJcuGcuKcuHcuIcuJctNctOcuectQctRctSctTcuDcuEcuFcuGcvVcvWcvXcvYcvZcwactPctQctRctSctTcuDcuEcuFcuGctYcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxhcxfcxgcxhcxfcuOcxicxicxicxQcxicuOcxjcxRcxRcxRcxjcuOcxCcxScxScxScxEcuOcxncxTcxncxocxncuOcxJcxKcxKcxKcxLcuOcxMcxNcxNcxNcxOcuZ +ctycuCcutcuAcuocuwcuucurcxPcwjcwPcwvcwicwOcwQcwhcwkcwlcxUcutcuAcurcuBcuocuxcupctMcuHcuIcuJctNctOctPctQcugctSctTcuDcuEcuFcuGcuKcuHcwacxVcxWcxXcxYcwrctRctSctTcuDcuEcuFcuGcuKcuHcuacujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxfcxgcxhcxfcxgcuOcxicxicxicxicxicuOcxjcxjcxjcxjcxjcuOcxCcxDcxDcxDcxEcuOcxocxncxqcxGcxqcuOcxJcxKcxKcxKcxLcuOcxMcxNcxNcxNcxOcuZ +ctHcuocupcuqcurcuscutcuucxUcwhcwkcwfcwwcwycwicwvcwgcwxcxZcupcuqcuucuycurcuAcuwctzctTcuDcuEcuFcuGcuKcuHcuacuJctNctOctPctQctRctSctTcwAcyacybcyccydcwFcuIcuJctNctOctPctQctRctSctTctUcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxgcxhcxfcxgcxhcuOcxicxicxicyecxicuOcxjdQMdQKdQLcxjcuOcyicyjcyjcyjcykcuOcxncxpcxncylcxpcuOcymcyncyncyncyocuOcxMcxNcxNcxNcxOcuZ +ctKcurcuwcuzcuucuBcupcutcxZcwvcwgcwlcwPcwjcwwcwfcwucwQcypcuwcuzcutcuvcuucuqcusctCcuKcuHcuIcuJctNctOctPcufctRctSctTcuDcuEcuFcuGcuKcwScyqcyrcyscyacwWctQctRctSctTcuDcuEcuFcuGcuKctZcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxhcxfcxgcxhcxfcuOcxicytcxicxicxicuOcxjdQJdQHdQIcxjcuOcyxcyycyycyycyzcuOcxqcyAcyBcyCcxocuOcyDcyEcyEcyEcyFcuOcyGcxNcxNcxNcyHcuZ +ctBcuucuscuCcutcuycuwcupcypcwfcwucwxcwkcwhcwPcwlcwOcwicyIcuscuCcupcuxcutcuzcuBctFctPctQctRctSctTcuDcuEctWcuGcuKcuHcuIcuJctNctOctPcxdcwAcxecvWcvXcvYcuFcuGcuKcuHcuIcuJctNctOctPcufcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxfcxgcxhcxfcxgcuOcxicxicxicxicxycuOcxjdQJdQHdQIcxjcuOcyJcxDcyKcxDcyLcuOcyAcyMcyNcyOcyCcuOcyPcxKcxKcxKcyQcuOcyGcxNcxNcxNcyHcuZ +ctJcutcuBcuocupcuvcuscuwcyIcwlcwOcwQcwgcwvcwkcwxcwycwwcyRcuBcuocuwcuAcupcuCcuyctEcuFcuGcuKcuHcuIcuJctNcudctPctQctRctSctTcuDcuEcuFcuGcuKcuHcuIcuJctNctOctPctQctRctSctTcuDcuEcuFctXcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxgcxhcxfcxgcxhcuOcyScxicxicxicxicuOcxjdQJdQHdQIcxjcuOcyJcyTcyTcyTcyLcuOcyMcyNcyNcyNcyOcuOcyPcxKcxKcxKcyQcuOcyGcxNcxNcxNcyHcuZ +ctMcupcuycurcuwcuxcuBcuscyRcwxcwycwicwucwfcwgcwQcwjcwPcyUcuycurcuscuqcuwcuocuvctActRctSctTcuDcuEcuFcuGctYcuHcuIcuJctNctOctPctQctRctSctTcuDcuEcuFcuGcuKcuHcuIcuJctNctOctPctQctRcuhcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxhcxfcxgcxhcxfcuOcxicyecxicytcxicuOcxjdQGdQEdQFcxjcuOcyJcyJcxDcyLcyLcuOcyNcyNcyNcyNcyNcuOcyPcxKcxKcxKcyQcuOcyGcxNcxNcxNcyHcuZ +ctzcuwcuvcuucuscuAcuycuBcyUcwQcwjcwwcwOcwlcwucwicwhcwkcyYcuvcuucuBcuzcuscurcuxctGcuJctNctOctPctQctRctScuicuDcuEcuFcuGcuKcuHcuIcuJctNctOctPctQctRctSctTcuDcuEcuFcuGcuKcuHcuIcuJcuccujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuLcxfcxgcxhcxfcxgcuOcxicxicxicxicyScuOcxjcxjcxjcxjcxjcuOcyZcyZczaczbczbcuOcyNcyNcyNcyNcyNcuOczcczdczdczdczecuOczfczgczgczgczhcuZ +ctCcuscuxcutcuBcuqcuvcuycyYcwicwhcwPcwycwxcwOcwwcwvcwgczicuxcutcuycuCcuBcuucuActDcuHcuIcuJctNctOctPctQcugctSctTcuDcuEcuFcuGcuKcuHcuIcuJctNctOctPctQctRctSctTcuDcuEcuFcuGcuKcuHcuacujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczjczkczkczkczkczkczlczkczkczkczkczkczlczkczkczkczkczkczlczkczkczkczkczkczlczkczkczkczkczkczlczkczkczkczkczkczlczkczkczkczkczkczm +ctFcuBcuAcupcuycuzcuxcuvczicwwcwvcwkcwjcwQcwycwPcwfcwuczncuAcupcuvcuocuycutcuqctLctSctTcuDcuEcuFcuGcuKctZcuIcuJctNctOctPctQctRctSctTcuDcuEcuFcuGcuKcuHcuIcuJctNctOctPctQctRctScuicujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctEcuycuqcuwcuvcuCcuAcuxczncwPcwfcwgcwhcwicwjcwkcwlcwOcwtcuqcuwcuxcurcuvcupcuzctIcuEcuFcuGcuKcuHcuIcuJcucctOctPctQctRctSctTcuDcuEcuFcuGcuKcuHcuIcuJctNctOctPctQctRctSctTcuDcuEctWcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctAcuvcuzcuscuxcuocuqcuAcwtcwkcwlcwucwvcwwcwhcwgcwxcwycwzcuzcuscuAcuucuxcuwcuCctyctQctRctSctTcuDcuEcuFctXctYctZcuacubcuccudcuecufcugcuhcuictUctVctWctXctYctZcuacubcuccudcuecufcugcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctGcuxcuCcuBcuAcurcuzcuqcwzcwgcwxcwOcwfcwPcwvcwucwQcwjcwRcuCcuBcuqcutcuAcuscuoctHcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctDcuAcuocuycuqcuucuCcuzcwRcwucwQcwycwlcwkcwfcwOcwicwhcxccuocuycuzcupcuqcuBcurctKcujctyctzctActBctCctDctEctFctyctGctHctIctJctKctLctMctEctDctHctActBctFctIctCctKctGctMcujaaaaaaczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctLcuqcurcuvcuzcutcuocuCcxccwOcwicwjcwxcwgcwlcwycwwcwvcxxcurcuvcuCcuwcuzcuycuuctBcujctHcuocupcuqcurcuscutcuucuvcuwcuxcuycuzcuAcuBcuCcutcuscuxcupcuqcuucuycurcuAcuwctzcujaaaaaaczocuBcuucuAcuBcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuBcuucuAczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctIcuzcuucuxcuCcupcurcuocxxcwtcwycwucwvcwjcwgcyIczicwzcxPcuucuxcuocuscuCcuvcutctJcujctKcurcuwcuzcuucuBcupcutcuxcuscuAcuvcuCcuqcuycuocupcuBcuAcuwcuzcutcuvcuucuqcusctCcujaaaaaaczocuBcuucuAcuBcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuBcuucuAczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctycuCcutcuAcuocuwcuucurcuycwzcxUcxxcyIcxZcxccyRcuucuwcuvcutcuAcurcuBcuocuxcupctMcujctBcuucuscuCcutcuycuwcupcuAcuBcuqcuxcuocuzcuvcurcuwcuycuqcuscuCcupcuxcutcuzcuBctFcujaaaaaaczocuBcuucuAcuBcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuBcuucuAczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ctHcuocupcuqcurcuscutcuucuvcuwcuxcuycuzcuAcuBcuCcutcuscuxcupcuqcuucuycurcuAcuwctzcujctJcutcuBcuocupcuvcuscuwcuqcuycuzcuAcurcuCcuxcuucuscuvcuzcuBcuocuwcuAcupcuCcuyctEcujaaaaaaczocuBcuucuAcuBcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuBcuucuAczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczpczqczqczqczqczqczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ctKcurcuwcuzcuucuBcupcutcuxcuscuAcuvcuCcuqcuycuocupcuBcuAcuwcuzcutcuvcuucuqcusctCcujctMcupcuycurcuwcuxcuBcuscuzcuvcuCcuqcuucuocuAcutcuBcuxcuCcuycurcuscuqcuwcuocuvctAcujaaaaaaczocuBcuucuAcuBcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuucuAcuBcuBcuucuAczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczscztczuczvczwczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ctBcuucuscuCcutcuycuwcupcuAcuBcuqcuxcuocuzcuvcurcuwcuycuqcuscuCcupcuxcutcuzcuBctFcujctzcuwcuvcuucuscuAcuycuBcuCcuxcuocuzcutcurcuqcupcuycuAcuocuvcuucuBcuzcuscurcuxctGcujaaaaaaczocuycutcuqcuycuycutcuqcuycutczxcuycutcuqczycutcuqcuycutcuqcuycuycutcuqczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczzczAczAczAczzczrczrczrczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10793,26 +10814,26 @@ ctEcuqcuwcuxcurcuvcupcuzcuvcuqcuwcuxcurcuvcupcuzcuvcupcuzcuqcuwcuxcurcuvcupcuzct ctAcuzcuscuAcuucuxcuwcuCcuxcuzcuscuAcuucuxcuwcuCcuxcuwcuCcuzcuscuAcuucuxcuwcuCctycujctLcuqcurcuvcuzcutcuocuCcAzczXczTczUcAoczRczWcApcAncAmcAEcurcuvcuCcuwcuzcuycuuctBcujaaaaaaczocuocuxczDczZczZczLczDczZczLczDczZczLczDczZczLczDczZczLczDczZczZcuxcupczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqczzcAFczNcAGczzcAscAdcAhcAhcAgcAhcAdcAicAjcAkcAkczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacACcACcACaaacADcADcADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ctGcuCcuBcuqcutcuAcuscuocuAcuCcuBcuqcutcuAcuscuocuAcuscuocuCcuBcuqcutcuAcuscuoctHcujctIcuzcuucuxcuCcupcurcuocAEcuycuuczScAtcAlcAoczUcutcuqcAHcuucuxcuocuscuCcuvcutctJcujaaaaaaczocurcuAczKcAqcAqcAaczKcAqcAaczKcAqcAaczKcAqcAaczKcAqcAaczKcAqcAqcuAcuwczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqcAIczzcAJczzcAKcAccAdcAhcAhcAgcAhcAdcAhcAkcAkcAkczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacACcACcACaaacADcADcADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ctDcuocuycuzcupcuqcuBcurcuqcuocuycuzcupcuqcuBcurcuqcuBcurcuocuycuzcupcuqcuBcurctKcujctycuCcutcuAcuocvOcvMcALcAMcANcvPcAmczTczXcAtczScupcuzcAOcutcuAcurcuBcuocuxcupctMcujaaaaaaczocuucuqcAbcAvcAvczxcAbcAvczxcAbcAvczxcAbcAvczxcAbcAvczxcAbcAvcAvcuqcusczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczqaaacAIcAPcAKaaacAccAdcAhcAhcAgcAhcAdcAicAjcAkcAkczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAQcARcAScATcAUcACcACcACaaacADcADcADcAQcARcAScATcAUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctLcurcuvcuCcuwcuzcuycuucuzcurcuvcuCcuwcuzcuycuucuzcuycuucurcuvcuCcuwcuzcuycuuctBcujctHcuocupcuqcurcAzczPcAnczUczSczVczQcAncApczTcAmcuwcuCcvKcupcuqcuucuycurcuAcuwctzcujaaaaaaczocutczBcArcAAcAAczBcArcAAczBcArcAAczBcArcAAczBcArcAAczBcArcAAcAAczBcuBczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczrczrczrczrczrczrczrczrczrczrczrczrczrczrczrczrczrczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcAWcAWcAWcAXcAYcBhcAYcAYcAYcBhcAYcBacAWcAWcAWcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctIcuucuxcuocuscuCcuvcutcuCcuucuxcuocuscuCcuvcutcuCcuvcutcuucuxcuocuscuCcuvcutctJcujctKcurcuwcuzcuucAEczVczPczScAmczRczWczPczUcAnczQcvTcvTcvTcvTcBbcutcuvcuucuqcusctCcujaaaaaaczocupczJczyczDczDczJczyczDczJczyczDczJczyczDczJczyczDczJczyczDczDczJcuyczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVdQmcBxcBdcBvcBwcBecBkcBicBjcBecBwcBycBldQpdQqcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctycutcuAcurcuycupcuvcuBcuqcurcBmcBncANcwmcBocuxcBpcBqcvMcBrcBscurcuBcuocuxcupctMcujctBcuucuscuCcutcAHczRczVcAmczQcAlcAoczVczSczPczWczXczTczQcAlcwecupcuxcutcuzcuBctFcujaaaaaaczocuwcuoczCczKczKczZcuvcuwczZczCczKczZczCczKczZcuvcuwczZczCczKczKcuocuvczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcBccBccBuctncAZcBecAZcBfcAZcBecAZcBgcBucBccBccAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctHcuxcuqcuucuocuAcurcuCcupcuucBzcBAcBBcBCcBDcuucBEcBFcBGcBHcBIcuucuycurcuAcuwctzcujctJcutcuBcuocupcAOcAlczRczQczWczXcAtczRcAmczVcAocApcAnczWczXcBJcuwcuAcupcuCcuyctEcujaaaaaaczocuscurcuxaaacuscurcuxcuscAqczLcAbcAqczLcAbcAqcuxcuscurcuxaaacuscurcuxczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcBKcBKcBLcBKcBKcBKcBMcBNcBKcBKcBKcBMcBKcBKcBKcBKcBKcBKcBMcBKcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOcBlcBccBPcBecBecBecBecBecBecBecBecBecBPcBccBdcBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctKcuAcuzcutcurcuqcuucuocuwcutcBIcBRcBScBTcBUcutcBVcBWcBXcBYcBZcutcuvcuucuqcusctCcujctMcupcuycurcuwcvKczXcAlczWcAocApczTcAlczQczRcAtczUczPcAocApczHcuscuqcuwcuocuvctAcujaaaaaaczocuBcuucuAaaacuBcuucuAcuBcAvcAacArcAvcAacArcAvcuAcuBcuucuAaaacuBcuucuAczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBLcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBMcBKcBKcBKcBKcBKcBMcBKcBKcBKcBKcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOcAYcBacCMcAZcBecAZcCLcCLcAZcBecCDcAXcAYcBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctBcuqcuCcupcuucuzcutcurcuscupcBZcCgcChcBBcBpcupcBzcCicCjcCkcClcupcuxcutcuzcuBctFcujctzcuwcuvcuucAzcCmcApczXcAocAtczUcAnczXczWcAlczTczSczVcAtczUcCncwmcBbcuscurcuxctGcujaaaaaaczocuBcuucuAaaacuBcuucuAcuBcAvcAacArcAvcAacArcAvcuAcuBcuucuAaaacuBcuucuAczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcCocBKcBKcBKcBKcBKcBLcBKcBKcBNcBMcBKcBKcBMcBKcBKcBMcBNcBKcBMcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcCBcBfcBecCAcCBcCBcCxcBecCDcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctJcuzcuocuwcutcuCcupcuucuBcuwcClcBCcCtcBScCucuwcBIcCvcBHcCwcBDcuwcuAcupcuCcuyctEcujctCcuscuxcutcAEczQczUcApcAtczTczSczPcApcAoczXcAncAmczRczTczSczPcApcwecuBcuucuActDcujaaaaaaczocuBcuucuAaaacuBcuucuAcuBcAvcAacArcAvcAacArcAvcuAcuBcuucuAaaacuBcuucuAczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBLcBKcBKcBMcBNcBKcBKcBMcBKcBNcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDccDccDccDccAVcCycAZcBecCAcCBcCBcCxcBecBwcAVcCzcCzcCzcCzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctMcuCcurcuscupcuocuwcutcuycuscBDcBzcBUcClcBmcuscBZcBscBEcBIcBUcuscuqcuwcuocuvctAcujctFcuBcuAcupcAHczWczSczUczTcAncAmczVczUcAtcApczPczQcAlcAncAmczVczUcBJcuycutcuqctLcujaaaaaaczocuycutcuqaaacuycutcuqcuycAAczxczycAAczxczycAAcuqcuycutcuqaaacuycutcuqczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBLcBKcBKcBKcBKcBKcBNcBKcBMcBNcBKcBMcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDccDccDccDccBhcBecBecBecAZcCscCscAZcBecBecBhcCzcCzcCzcCzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctzcuocuucuBcuzcuscurcuxcuscuocuucuBcuzcuscurcuxcuscurcuxcuocuucuBcuzcuscurcuxctGcujctEcuycuqcuwcAOcAocAmczScAnczPczQczRczSczTczUczVczWczXczPczQczRczSczHcuvcupcuzctIcujaaaaaaczocuvcupcuzaaacuvcupcuzcuvcupczBczCczDczBczCcupcuzcuvcupcuzaaacuvcupcuzczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcCCcCCcCCcCCcCCcCCcCCcBKcBKcBKcBKcBKcBKcBKcBMcBKcBKcCocBNcBKcBKcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDccDccDccDccAVcBwcCqcBecBecBecBecBecBecCrcAVcCzcCzcCzcCzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctCcuxcutcuycuCcuBcuucuAcuBcuxcutcuycuCcuBcuucuAcuBcuucuAcuxcutcuycuCcuBcuucuActDcujctAcuvcuzcuscvKcAtczQcAmczPczVczWcAlcAmcAnczSczRcAocApczVczWcAlcAmczIcuxcuwcuCctycujaaaaaaczocuxcuwcuCaaacuxcuwcuCcuxcuwcuCcuxcuwcuCcuxcuwcuCcuxcuwcuCaaacuxcuwcuCczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcCEcCFcCGcCHcCHcCHcCIcCFcCJcBKcBKcBKcBKcCocBKcBKcBLcBKcBLcBKcBMcBKcBMcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAXcAYcAYcAYcDFcBecAZcBecBecCpcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctFcupcupcuvcuocuycutcuqcuycupcupcuvcuocuycutcuqcuycutcuqcupcupcuvcuocuycutcuqctLcujctGcuxcuCcuBcCPczTczWczQczVczRcAoczXczQczPcAmcAlcAtczUczRcAoczXczQczYcuAcuscuoctHcujaaaaaaczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcCFcCQcCRdQjcCTcCUcCVcCVcCFcCWcBKcBKcCCcCCcCCcCCcCCcCCcCCcCCcCXcCYcCCcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcCecCecCfcCNcBecAZcBecBecAZcDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctEcuwcuwcuxcurcuvcupcuzcuvcuwcuwcuxcurcuvcupcuzcuvcupcuzcuwcuwcuxcurcuvcupcuzctIcujctDcuAcuocuycDdcAncAoczWczRcAlcAtcApczWczVczQczXczTczScAlcAtcApczWcvUcuqcuBcurctKcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcCFcDecCRcCRcDfcCRcCRcCRcCFcCWcBKcDgcDhcDicDicDjcBtcBtcBtcBtcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrrcCacCacCacCKcBecCbcCccCdcCccAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctAcuscuscuAcuucuxcuwcuCcuxcuscuscuAcuucuxcuwcuCcuxcuwcuCcuscuscuAcuucuxcuwcuCctycujctLcuqcurcuvcBbczPcAtcAocAlczXcurczUcAoczRczWcApcuucAmczXczTczUcAocAucuzcuycuuctBcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcCFcDncCRcCRcCRcDocCRcDpcCFcCWcCocDgcDqcDrcDrcDrcDscDtcBtcDucDvcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcEdcEccCacDmcBedQkcEocEncSbcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctGcuBcuBcuqcutcuAcuscuocuAcuBcuBcuqcutcuAcuscuocuAcuscuocuBcuBcuqcutcuAcuscuoctHcujctIcuzcuucuxcweczVczTcAtczXczPcuycAlcAmczUczRczQcurczVcApcAnczScAtcAzcuCcuvcutctJcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcDxcCFcCFcCFcDycCFcCFcCFcDzcBKcBKcDAcDqcDrcDrcDBcDrcDrcDCcDDcDDcDEcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcEmcCacCacCNcBecCccDVcDVcElcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctDcuycuycuzcupcuqcuBcurcuqcuycuycuzcupcuqcuBcurcuqcuBcurcuycuycuzcupcuqcuBcurctKcujctycuCcutcuAcBJczRcAnczTcApczVcuvcuBcuqcuxcuscuzcuuczRczUczPcAmczTcAEcuocuxcupctMcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcCFcDJcCRcDKcCFcDLcCCcCCcCCcDMcDNcDrcDOcDPcDQcDrcBtcDDcDRcDRcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcEdcEccCacCKcBecEkcDVcDVcDWcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -ctLctJctFctHctMctActCctzctLctEctIctDctKctyczoczoczoczoczoctFctHctzctDctMctyctEctBcujctHcuocupcuqczicxccwtczncxUcwRcxZcxPcyRcypcxxcyUcwtcxccxZcwzcyIczncxPcurcuAcuwctzcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcCFcCRcCRcCRcCFcDhcDicDicDicDjcBtcDrcDOcDUcDQcDrcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOcDScDScAYcPwcDTcAYcAYcDScDScBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cuBcuzcuucuxcuCcupcurcuocuBcutcuycuscuAcuvcuwcuqcurcupcuycuucuxcuocuscuCcuvcutcuqcujctKcurcuwcuzcuucuBcupcutcuxcuscuAcuvcuCcuqcuycuocupcuBcuAcuwcuzcutcuvcuucuqcusctCcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcCEcCFcCFcCFcCFcCFcCRcCRcCRcCFcDqcDXcDXcDXcDXcDYcDrcDrcDrcDrcDrcDZcEacEbcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOcBacDGcCxcBecDHcDIcAXcBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cuycutcuAcurcuBcuocurcuBcuocutcuAcurcuBcuocutcuAcurcuBcuocutcuAcurcuBcuocuxcupcuzcujctBcuucuscuCcutcuycuwcupcuAcuBcuqcuxcuocuzcuvcurcuwcuycuqcuscuCcupcuxcutcuzcuBctFcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcCFcEecCRcCRcEfcCFcCRcCRcCRcCFcDNcEgcEhcDicDjcBtcDrcDrcDrcDrcDrcBtcEicEicEjcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcCBcAZcCLcAZcDwcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cuvcupcuqcuucuycurcuucuycurcupcuqcuucuycurcupcuqcuucuycurcupcuqcuucuycurcuAcuwcuCcujctJcutcuBcuocupcuvcuscuwcuqcuycuzcuAcurcuCcuxcuucuscuvcuzcuBcuocuwcuAcupcuCcuyctEcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcCFcEecCRcEpcEqcCFcCRcCRcCRcCFcCFcErcEscEtcEucBtcBtcBtcBtcBtcEvcBtcEwcEicEjcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcCZcCOcDkcDbcDlcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cuxcuwcuzcutcuvcuucutcuvcuucuwcuzcutcuvcuucuwcuzcutcuvcuucuwcuzcutcuvcuucuqcuscuocujctMcupcuycurcuwcuxcuBcuscuzcuvcuCcuqcuucuocuAcutcuBcuxcuCcuycurcuscuqcuwcuocuvctAcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcEAcBKcCFcEecCRcEpcEBcCFcCRcCRcCRcCFcECcCRcCRcCFcEDcEEcEucBtcEFcEGcEHcBtcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOcEycExcExcExcEzcBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctLcurcuvcuCcuwcuzcuycuucuzcurcuvcuCcuwcuzcuycuucuzcuycuucurcuvcuCcuwcuzcuycuuctBcujctHcuocupcuqcurcAzczPcAnczUczSczVczQcAncApczTcAmcuwcuCcvKcupcuqcuucuycurcuAcuwctzcujaaaaaaczocutczBcArcAAcAAczBcArcAAczBcArcAAczBcArcAAczBcArcAAczBcArcAAcAAczBcuBczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczrczrczrczrczrczrczrczrczrczrczrczrczrczrczrczrczrczraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcAWcAWcAWcAXcAYcEmcAYcAYcAYcEmcAYcBacAWcAWcAWcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctIcuucuxcuocuscuCcuvcutcuCcuucuxcuocuscuCcuvcutcuCcuvcutcuucuxcuocuscuCcuvcutctJcujctKcurcuwcuzcuucAEczVczPczScAmczRczWczPczUcAnczQcvTcvTcvTcvTcBbcutcuvcuucuqcusctCcujaaaaaaczocupczJczyczDczDczJczyczDczJczyczDczJczyczDczJczyczDczJczyczDczDczJcuyczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVdQmcPwcBdcEycEzcEdcExcEncEocEdcEzcOLcBldQpdQqcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctycutcuAcurcuycupcuvcuBcuqcurcBmcBncANcwmcBocuxcBpcBqcvMcBrcBscurcuBcuocuxcupctMcujctBcuucuscuCcutcAHczRczVcAmczQcAlcAoczVczSczPczWczXczTczQcAlcwecupcuxcutcuzcuBctFcujaaaaaaczocuwcuoczCczKczKczZcuvcuwczZczCczKczZczCczKczZcuvcuwczZczCczKczKcuocuvczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVcBccBccBucDWcEccEdcEccEkcEccEdcEccElcBucBccBccAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctHcuxcuqcuucuocuAcurcuCcupcuucBzcBAcBBcBCcBDcuucBEcBFcBGcBHcBIcuucuycurcuAcuwctzcujctJcutcuBcuocupcAOcAlczRczQczWczXcAtczRcAmczVcAocApcAnczWczXcBJcuwcuAcupcuCcuyctEcujaaaaaaczocuscurcuxaaacuscurcuxcuscAqczLcAbcAqczLcAbcAqcuxcuscurcuxaaacuscurcuxczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcBKcBKcBLcBKcBKcBKcBMcBNcBKcBKcBKcBMcBKcBKcBKcBKcBKcBKcBMcBKcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOcBlcBccBPcEdcEdcEdcEdcEdcEdcEdcEdcEdcBPcBccBdcBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctKcuAcuzcutcurcuqcuucuocuwcutcBIcBRcBScBTcBUcutcBVcBWcBXcBYcBZcutcuvcuucuqcusctCcujctMcupcuycurcuwcvKczXcAlczWcAocApczTcAlczQczRcAtczUczPcAocApczHcuscuqcuwcuocuvctAcujaaaaaaczocuBcuucuAaaacuBcuucuAcuBcAvcAacArcAvcAacArcAvcuAcuBcuucuAaaacuBcuucuAczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBLcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBMcBKcBKcBKcBKcBKcBMcBKcBKcBKcBKcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOcAYcBadTEcEccEdcEcdTDdTDcEccEddTCcAXcAYcBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctBcuqcuCcupcuucuzcutcurcuscupcBZcCgcChcBBcBpcupcBzcCicCjcCkcClcupcuxcutcuzcuBctFcujctzcuwcuvcuucAzcCmcApczXcAocAtczUcAnczXczWcAlczTczSczVcAtczUcCncwmcBbcuscurcuxctGcujaaaaaaczocuBcuucuAaaacuBcuucuAcuBcAvcAacArcAvcAacArcAvcuAcuBcuucuAaaacuBcuucuAczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcCocBKcBKcBKcBKcBKcBLcBKcBKcBNcBMcBKcBKcBMcBKcBKcBMcBNcBKcBMcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVdTBcEkcEddTAdTBdTBdTycEddTCcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctJcuzcuocuwcutcuCcupcuucuBcuwcClcBCcCtcBScCucuwcBIcCvcBHcCwcBDcuwcuAcupcuCcuyctEcujctCcuscuxcutcAEczQczUcApcAtczTczSczPcApcAoczXcAncAmczRczTczSczPcApcwecuBcuucuActDcujaaaaaaczocuBcuucuAaaacuBcuucuAcuBcAvcAacArcAvcAacArcAvcuAcuBcuucuAaaacuBcuucuAczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBLcBKcBKcBMcBNcBKcBKcBMcBKcBNcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDccDccDccDccAVdTzcEccEddTAdTBdTBdTycEdcEzcAVcCzcCzcCzcCzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctMcuCcurcuscupcuocuwcutcuycuscBDcBzcBUcClcBmcuscBZcBscBEcBIcBUcuscuqcuwcuocuvctAcujctFcuBcuAcupcAHczWczSczUczTcAncAmczVczUcAtcApczPczQcAlcAncAmczVczUcBJcuycutcuqctLcujaaaaaaczocuycutcuqaaacuycutcuqcuycAAczxczycAAczxczycAAcuqcuycutcuqaaacuycutcuqczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBKcBLcBKcBKcBKcBKcBKcBNcBKcBMcBNcBKcBMcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDccDccDccDccEmcEdcEdcEdcEcdRqdRqcEccEdcEdcEmcCzcCzcCzcCzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctzcuocuucuBcuzcuscurcuxcuscuocuucuBcuzcuscurcuxcuscurcuxcuocuucuBcuzcuscurcuxctGcujctEcuycuqcuwcAOcAocAmczScAnczPczQczRczSczTczUczVczWczXczPczQczRczSczHcuvcupcuzctIcujaaaaaaczocuvcupcuzaaacuvcupcuzcuvcupczBczCczDczBczCcupcuzcuvcupcuzaaacuvcupcuzczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcCCcCCcCCcCCcCCcCCcCCcBKcBKcBKcBKcBKcBKcBKcBMcBKcBKcCocBNcBKcBKcBKcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDccDccDccDccAVcEzdQOcEdcEdcEdcEdcEdcEddRocAVcCzcCzcCzcCzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctCcuxcutcuycuCcuBcuucuAcuBcuxcutcuycuCcuBcuucuAcuBcuucuAcuxcutcuycuCcuBcuucuActDcujctAcuvcuzcuscvKcAtczQcAmczPczVczWcAlcAmcAnczSczRcAocApczVczWcAlcAmczIcuxcuwcuCctycujaaaaaaczocuxcuwcuCaaacuxcuwcuCcuxcuwcuCcuxcuwcuCcuxcuwcuCcuxcuwcuCaaacuxcuwcuCczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcCEcCFcCGcCHcCHcCHcCIcCFcCJcBKcBKcBKcBKcCocBKcBKcBLcBKcBLcBKcBMcBKcBMcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAXcAYcAYcAYdQxcEdcEccEdcEddQCcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctFcupcupcuvcuocuycutcuqcuycupcupcuvcuocuycutcuqcuycutcuqcupcupcuvcuocuycutcuqctLcujctGcuxcuCcuBcCPczTczWczQczVczRcAoczXczQczPcAmcAlcAtczUczRcAoczXczQczYcuAcuscuoctHcujaaaaaaczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoczoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcCFcCQcCRdQjcCTcCUcCVcCVcCFcCWcBKcBKcCCcCCcCCcCCcCCcCCcCCcCCcCXcCYcCCcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVdQsdQsdQudQtcEdcEccEdcEdcEcdQvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctEcuwcuwcuxcurcuvcupcuzcuvcuwcuwcuxcurcuvcupcuzcuvcupcuzcuwcuwcuxcurcuvcupcuzctIcujctDcuAcuocuycDdcAncAoczWczRcAlcAtcApczWczVczQczXczTczScAlcAtcApczWcvUcuqcuBcurctKcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcCFcDecCRcCRcDfcCRcCRcCRcCFcCWcBKcDgcDhcDicDicDjcBtcBtcBtcBtcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadQkcSbcSbcSbdQncEddQldQodQrdQocAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctAcuscuscuAcuucuxcuwcuCcuxcuscuscuAcuucuxcuwcuCcuxcuwcuCcuscuscuAcuucuxcuwcuCctycujctLcuqcurcuvcBbczPcAtcAocAlczXcurczUcAoczRczWcApcuucAmczXczTczUcAocAucuzcuycuuctBcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcCFcDncCRcCRcCRcDocCRcDpcCFcCWcCocDgcDqcDrcDrcDrcDscDtcBtcDucDvcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVdTWdTVcSbcDmcEddUddUbdUadUccAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctGcuBcuBcuqcutcuAcuscuocuAcuBcuBcuqcutcuAcuscuocuAcuscuocuBcuBcuqcutcuAcuscuoctHcujctIcuzcuucuxcweczVczTcAtczXczPcuycAlcAmczUczRczQcurczVcApcAnczScAtcAzcuCcuvcutctJcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcDxcCFcCFcCFcDycCFcCFcCFcDzcBKcBKcDAcDqcDrcDrcDBcDrcDrcDCcDDcDDcDEcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVdTZcSbcSbdQtcEddQodTTdTTdTYcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctDcuycuycuzcupcuqcuBcurcuqcuycuycuzcupcuqcuBcurcuqcuBcurcuycuycuzcupcuqcuBcurctKcujctycuCcutcuAcBJczRcAnczTcApczVcuvcuBcuqcuxcuscuzcuuczRczUczPcAmczTcAEcuocuxcupctMcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcCFcDJcCRcDKcCFcDLcCCcCCcCCcDMcDNcDrcDOcDPcDQcDrcBtcDDcDRcDRcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVdTWdTVcSbdQncEddTXdTTdTTdTUcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ctLctJctFctHctMctActCctzctLctEctIctDctKctyczoczoczoczoczoctFctHctzctDctMctyctEctBcujctHcuocupcuqczicxccwtczncxUcwRcxZcxPcyRcypcxxcyUcwtcxccxZcwzcyIczncxPcurcuAcuwctzcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcBKcBKcBKcBKcBKcCFcCRcCRcCRcCFcDhcDicDicDicDjcBtcDrcDOcDUcDQcDrcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOcDScDScAYdTSdTRcAYcAYcDScDScBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cuBcuzcuucuxcuCcupcurcuocuBcutcuycuscuAcuvcuwcuqcurcupcuycuucuxcuocuscuCcuvcutcuqcujctKcurcuwcuzcuucuBcupcutcuxcuscuAcuvcuCcuqcuycuocupcuBcuAcuwcuzcutcuvcuucuqcusctCcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcCEcCFcCFcCFcCFcCFcCRcCRcCRcCFcDqcDXcDXcDXcDXcDYcDrcDrcDrcDrcDrcDZcEacEbcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOcBadTOdTycEddTPdTQcAXcBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cuycutcuAcurcuBcuocurcuBcuocutcuAcurcuBcuocutcuAcurcuBcuocutcuAcurcuBcuocuxcupcuzcujctBcuucuscuCcutcuycuwcupcuAcuBcuqcuxcuocuzcuvcurcuwcuycuqcuscuCcupcuxcutcuzcuBctFcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcCFcEecCRcCRcEfcCFcCRcCRcCRcCFcDNcEgcEhcDicDjcBtcDrcDrcDrcDrcDrcBtcEicEicEjcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVdTBcEcdTDcEcdTNcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cuvcupcuqcuucuycurcuucuycurcupcuqcuucuycurcupcuqcuucuycurcupcuqcuucuycurcuAcuwcuCcujctJcutcuBcuocupcuvcuscuwcuqcuycuzcuAcurcuCcuxcuucuscuvcuzcuBcuocuwcuAcupcuCcuyctEcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcCFcEecCRcEpcEqcCFcCRcCRcCRcCFcCFcErcEscEtcEucBtcBtcBtcBtcBtcEvcBtcEwcEicEjcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAVdTJdTIdTLdTKdTMcAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cuxcuwcuzcutcuvcuucutcuvcuucuwcuzcutcuvcuucuwcuzcutcuvcuucuwcuzcutcuvcuucuqcuscuocujctMcupcuycurcuwcuxcuBcuscuzcuvcuCcuqcuucuocuAcutcuBcuxcuCcuycurcuscuqcuwcuocuvctAcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcEAcBKcCFcEecCRcEpcEBcCFcCRcCRcCRcCFcECcCRcCRcCFcEDcEEcEucBtcEFcEGcEHcBtcBtcBtcBtcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBOdTGdTFdTFdTFdTHcBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa cuAcuscuCcupcuxcutcupcuxcutcuscuCcupcuxcutcuscuCcupcuxcutcuscuCcupcuxcutcuzcuBcurcujctzcuwcuvcuucuscuAcuycuBcuCcuxcuocuzcutcurcuqcupcuycuAcuocuvcuucuBcuzcuscurcuxctGcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcCFcEecCRcCRcCRcEIcCRcCRcEJcEKcCRcCRcELcCFcCWcBKcDgcEMcENcEGcEOcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa cuqcuBcuocuwcuAcupcuwcuAcupcuBcuocuwcuAcupcuBcuocuwcuAcupcuBcuocuwcuAcupcuCcuycuucujctCctLctKctActIctJctHctyctCctBctFctzctGctEctMctDctHctJctFctKctActyctzctIctEctBctDcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcBKcCFcEecCRcCRcCRcEPcCRcCRcCRcEQcCRcERcEScCFcETcBKcDgcDqcEFcEUcEOcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa cuzcuycurcuscuqcuwcuscuqcuwcuycurcuscuqcuwcuycurcuscuqcuwcuycurcuscuqcuwcuocuvcutcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujcujaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBtcBKcCEcCFcCFcCFcCFcCFcCFcEVcCRcCRcCFcCFcCFcCFcCFcCFcCJcDgcDNcEFcEGcEOcBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10875,7 +10896,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacHocGdcGdcHUcHVcHVcHVcGdcGncHWcHXcHYcGncGwcGncHZcIacGdcGbcGrcGrcGrcGrcGrcGrcGrcIbcGrcGrcGrcGXcGXcGXcIccHJcIdcIdcHJcHJcHJcHJcIecGFcHbcHscHtcHtcHtcHtcHtcHMcGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcHocGdcHHcHHcHHcHHcGdcGncHXcIfcHXcGncGdcHpcGdcGdcHfcGbcGrcIgcIhcIicGrcIjcIkcIkcIkcIlcGrcGXcGXcGXcGXcHJcHJcHJcHJcImcHJcHJcHRcGFcHbcHscHtcHtcHtcHtcHtcIncGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcHocGdcIocIpcIqcGdcGncGncGncGncGncGdcGdcGdcHfcGbcGbcGrcIrcIscItcIucIkcIkcIkcIkcIvcGrcGXcGXcGXcIccIwcHJcHJcHJcIxcHJcHJcIycGFcHbcHscHtcHtcHtcHtcHtcHscGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGbcHocGdcGdcGdcGdcGdcGdcGdcGdcGdcGdcHfcGbcGbcGbcGbcGrcGrcIzcIAcGrcGrcGrcIzcIBcIAcGrcGXcGXcGXcGrcICcIDcIDcIDcIDcIDcIEcGrcGFcHbcIFcIGcHtcHtcHtcIHcIIcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGbcHocGdcGdcGdcGdcGdcGdcGdcGdcGdcGdcHfcGbcGbcGbcGbcGrcGrcIzcIAcGrcGrcGrcIzcIBcIAcGrcGXcGXcGXcGrcICcIDcIDcIDcIDcIDcIEcGrcGFcHbcIFcIHcHtcHtcHtcIGcIIcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGrcIJcIJcIJcIJcIJcIJcIJcIJcIJcGrcGrcIKcGrcGrcIJcIJcIJcIJcIJcIJcIJcGrcGFcHbcILcIMcINcINcINcIMcIOcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcIPcIPcIPcIPcIPcFYcFYcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIRcIRcIRcIRcIRcIRcIRcGrcIScITcIScGrcIRcIRcIRcIRcIRcIRcIRcIRcGFcHbcHbcIUcIVcIVcIVcIWcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcIZcJacJbcIPcJccJccIQcJdcJecIQcJfcJgcJhcJfcJicIQcJfcJjcIQcJfcJkcIQcJlcJmcIQcJfcJjcIQcJncIRdRcdRbdRadQZcJqcGrcIScITcIScGrcJrcJscJtcJucJucIRaaaaaacGFcHbcHbcHbcHbcHbcHbcHbcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10893,32 +10914,32 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcIPcFYcFYcMMcFYcJEcKXcKXcMNcMOcMOcMPcMkcIPcIPcMQcMRcMScMTcMUcMVcMQaaaaaaaaacIRcJJcJJcLccIRcIRcMWcMXcJJcMYcMZcIRcIRcJIcJJcJJcIRaaaaaaaaaaaaaaacIRcNacNbcIRcKjcNccKjcKjcNdcNecNfcNfcNfcNgcIRcJQcJQcKmcKmcJQcJQcNhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcNicNjcNjcLtcIPcLtcMCcMCcNkcNlcNlcNmcMCcNncNocMQcNpcNqcNrcNscNtcMQaaaaaaaaacIRcJJcJJcLccIRcIRcKvcKwcKwcKwcKycIRcIRcJIcJJcJJcIRaaaaaaaaaaaaaaacIRcNbcNbcIRcNucNucNucKjcNdcNfcNfcNfcNfcNvcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcNicLtcLtcLtcIPcLtcLtcLtcLtcLucLucMCcMCcMCcNzcMQcNAcNrcNrcNrcNrcMQaaaaaaaaacIRcJJcJJcLMcJpcJpcJpcJpcJpcJpcJpcJpcJpcLVcJJcJJcIRaaaaaaaaaaaaaaacIRcNBcNbcIRcNucNCcNucKjcNdcNdcNdcNdcNdcNdcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcNDcNDcNEcNFcIPcNGcNGcNGcLtcLtcLtcNHcNIcNJcNKcMQcNrcNrcNrcNrcNLcMQcIRcIRcIRcIRcIRcIRcIRcIRcIRcJJcJJcJJcJJcJJcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaacIRcNNcNbcIRcKNcKjcKjcKjcNdaaaaaaaaaaaaaaacIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcNDcNDcNEcNFcIPcNGcNGcNGcLtcLtcLtcNHcNIcNJcNKcMQcNrcNrcNrcNrcNLcMQcIRcIRcIRcIRcIRcIRdRucIRcIRcJJcJJcJJcJJcJJcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaacIRcNNcNbcIRcKNcKjcKjcKjcNdaaaaaaaaaaaaaaacIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcNOcNOcIPcIPcIPcIPcMQcNrcNPcNQcNRcNScMQdRydRYdRYdRydRHdRXcJJdRzcIRcIRcIRcOacIRcIRcwZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRcNdaaaaaaaaaaaaaaacNUcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNVcNWcNWcNVaaaaaaaaacMQcNrcNXcNYcNZcNYcMQdRydRZdRZdRydRJdRCcJJdRzcIRcJocLVcJJcLMcOhcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcJQcJQcOccOccJQcJQcObaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOdcOecOecOecOecOfcOfcOecOecOgaaacMQcNrcNrcNrcNrcNrcMQdRydRYdRYdRydRRdRCcJJdRzcIRcJIcJJcJJcJJcLccIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcOicJQcJQcJQcJQcOjcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOkcOlcOmcOncOocOpcOpcOqcOqcOecOgcMQcMQcMQcMQcMQcMQcMQdRydRydRydRydRBdRCcJJdRzcIRdRAcORdRAdRDdRAcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOkcOlcOvcOpcOpcOpcOpcOpcOpcOwcOxaaaaaaaaaaaaaaaaaacIRdREdRydREdRydRHdRCcJJdRFdRGcJIcJJdRIcJJcMvcNdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOBdTCdTLdTLdTNdTMdTLdTLcRYcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOkcOlcOGcOHcOHcOHcOHcOHcOHcOecOIaaaaaaaaaaaaaaaaaacIRdREdRydREdRydRJdRCcJJdRFdRGcKacJJcLxdRLcMXcNdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadRKcOLdRPcOMcONdROcOMdRNdRMcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOQcOecOecOecOecOecOecOecOecOIaaaaaaaaaaaaaaaaaaaaacIRdREdRydREdRydRRdRQcMEdRTcOydRAdRSdRVdRWdRAcNdaaaaaaaaaaaaaaaaaaaaaaaaaaacOBcOVcOWcOXcOYcOYcOYcOYcOZdRUcOVcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOydRncJJcJJdRmcLccNdcNdcNdaaaaaaaaaaaaaaaaaaaaacOVcOVcPdcOXcOYdRldRkcOYcOZcPacOVcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPicPicPicPicPicPicPicPicPicPicPicPicPjcPhcPicPidRsdRrdRrdRrdRrdRrcOycPkcMscPlcJJcJJcPmcLccMscPkcNdaaaaaaaaaaaaaaaaaacOBcPodTBcPqdRpcPrcPpcPpcPrdRpcPqdTBcPscOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPicPtcPucPvcPtcPucPudTJdTIdTKcPucPxcPycPhcPicPidRwdRrdRrdRrdRrdRrcOycPkcLvcPlcJJcJJcJJcLccLvcPkcNdcNdcNdcNdcNdcNdaaaaaacOVdRtcRbcRbcOYdRvdRucOYcRbcRbdRtcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPtcPBcPCcPDcPEcPFcPFcPFcPFcPFcPFcPGcPHcPhcPicPidRsdRrdRrdRrdRrdRrcOycPkcLvcPlcJJcJJcJJcPncLvcPkcPKcPKcPKcPKcPKcNdaaaaaacOVcPLcOYcOYcOYcOYcOYcOYcOYcOYdRxcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPidTHcPCcPNcPCcPOcPCcPCcPCcPCcPCcPCcPCcPOcPicPicPicOycOycOycOycQccWbcOycPkcLvcPlcJJcJJcJJcVqcWacKwcRVcRVcRVcRVcRXcVZcRVcRXcOVcPLcOYcOYcPScPScPScPScOYcOYcPMdTGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPUcPVcPCcPWcPEcPXcPXcPXcPXcPXcPXcPYcPZcPhcPicPicOydhjdhJdPFdPtdPtcOydKhdKjdiycJJcJJcJJcJJcUPcQhcQhcQhcQhcQhcUGcUBcUDcUBcQkcOYcOYcOYcVocUZcVncVocOYcOYcPMdTEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPicPUcPucQmcPUcPucPudTJdTIdTKcPucQncPycPhcPicPicOydPQdPUdQfdPtdPtdQgdQQdQXcJJcJJcJJcJJcJJcUPcQhcQhcQhcQhcQhcUGcSacRVcRXcOVcVtcOYcOYcRbcRbcRbcRbcOYcOYcPMcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPicPicPicPicPicPicPicPicPicPicPicPicPjcPhcPicPicOydRhdRidRjdPtdPtdQgdQQdQXcJJcJJcJJcJJdRfdRgcRVdRecQhcQhcQwdRdcNdaaaaaadTGcVtcOYcOYcOYcOYcOYcOYcOYcOYcPMcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycOycOycOycOycOycQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcVCcVCcVCcQAcQAcQzcVBcLfcVxcJJcJJcJJcPncQQcPkcVMcQhcUGcVOcVNcNdaaaaaadTFcVtcOYcOYcPScPScPScPScOYcOYcPMdTGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycUXcUYcUYcUYcURcUVcQLcQAcQAcQAcQAcQAcQAcQAcQAcQAcQAcQAcQAcQAcQAcQAcQAcQzcPkcLvcPlcJJcJJcJJcVqcVpcRVcVrcQhcQhcQScVscNdaaaaaadTEcVtcOYcOYcVocUZcVncVocOYcOYcPMdTEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcPbcPbcPbcPbcUJcQTcUHcUKcQYcQAcQWcUOcUNcQYcQAcQAcQAcQAcQAcQAcQAcQAcQzcPkcLvcPIcJJcJJcJJcJJcUPcQhcQhcQhcQhcQhcUGcSacRVcRXcOVcUQcOYcOYcRbcRbcRbcRbcOYcOYcPMcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcQxcPbcPbcPbcQVcQTcUfcUicQYcQAcQWcSAcSzcQYcQAcQAcSecSecSecSecSecSecQzcShcSgcSrcSicUzcUzcUzcUAcUzcUzcQhcQhcQhcUGcUBcUDcUBcQkcOYcOYcOYcOYcOYcOYcOYcOYcOYcUycOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcRScPbcPbcPbcQVcQLcQAcQAcQAcQAcQAcQAcQAcQAcQAcQCcRUcRUcRUcRUcRUcRUcQzcQzcQzcQzcQzcRZcRZcQzcQzcQzcQzcSacRVcRVcRVcRVcRVcRXcOVdTCcRYcRCdTDdTAdTDcROdTDcROdTDcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcPbcREcPbcRGcQVcQTcRNcRFcQYcQAcQWcRAcRzcQYcQAcQCcRycQBcQBcQBcQBcQBcQzcRBcRBcRBcRDcOtcOtcRRcRhcRhcQzcPKcPKcPKcPKcNdaaaaaacOVcRLcRMcPAcRQcOVcRPcRWcRPcRWcRPcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycQRcPbcPbcQPcPbcQVcQTcQUcQXcQYcQAcQWcRacQZcQYcQAcQCcQBcQBcQBcQBcQBcQBcQzcRfcRecRdcRccOtcOtcOtcRhcRhcQzcNdcNdcNdcNdcNdaaacOBcOVcRgcPAcPAcRpcOVcRqcRWcRWcRWcRicOVcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcPbcPbcPbcPbcQKcQLcQAcQAcQAcQAcQAcQAcQAcQAcQAcQCcQBcQBcQDcQFcQEcQGcQzcQIcQHcQJcOtcPzcQpcOtcOtcQOcQzaaaaaaaaaaaaaaaaaaaaacOVcRLcRMcPAcQNcSfcQMcRWcQMcRWcQMcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcQycPbcQxcOOcQvcQucQtcQtcQtcRjcRjcRjcRkcRlcQscRncRocRjcRjcRjcQzcQzcQzcQrcQqcQqcPzcQocQlcQpcQecQicQzaaaaaaaaaaaaaaaaaaaaacSncSocSpcSpcSpcSpcSpcQjcQjcQjcSocSqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcPbcPbcOOcOPcOKcOUcOUcOUcOUcRjcRrcRscRtcRucRvcRwcRxcRscRrcRjcQzcQzcQzcQzcQzcQzcPPcQgcQfcPJcQecQicQzaaaaaaaaaaaaaaaaaaaaaaaacSncSscSscSscSscSscSscSscSscSqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOdcOecOecOecOecOfcOfcOecOecOgaaacMQcNrcNrcNrcNrcNrcMQdRydRYdRYdRydRRdRCcJJdRzcIRcJIcJJcJJcJJcLccIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOBdUrdUqcOFaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcOicJQcJQcJQcJQcOjcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOkcOlcOmcOncOocOpcOpcOqcOqcOecOgcMQcMQcMQcMQcMQcMQcMQdRydRydRydRydRBdRCcJJdRzcIRdRAcORdRAdRDdRAcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOBcVtcONdROdRkcOFaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOkcOlcOvcOpcOpcOpcOpcOpcOpcOwcOxaaaaaaaaaaaaaaaaaacIRdREdRydREdRydRHdRCcJJdRFdRGcJIcJJdRIcJJcMvcNdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOVdRpcOMcOMdRlcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOkcOlcOGcOHcOHcOHcOHcOHcOHcOecOIaaaaaaaaaaaaaaaaaacIRdREdRydREdRydRJdRCcJJdRFdRGcKacJJcLxdRLcMXcNdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadUscOYcOYcOYcOMdUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOQcOecOecOecOecOecOecOecOecOIaaaaaaaaaaaaaaaaaaaaacIRdREdRydREdRydRRdRQcMEdRTcOydRAdRSdRVdRWdRAcNdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOVcROcOYcOZcUycOVdRtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOydRncJJcJJdRmcLccNdcNdcNdaaaaaaaaaaaaaaaaaaaaacOBdUBcPrcPrcSocPpdUBcPpcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPicPicPicPicPicPicPicPicPicPicPicPicPjcPhcPicPidRsdRrdRrdRrdRrdRrcOycPkcMscPlcJJcJJcPmcLccMscPkcNdaaaaaaaaaaaaaaaaaaaaacOVcVncOYcOYdUscRPcRbcRPcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPicPtcPucPvcPtcPucPudUzdUydUAcPucPxcPycPhcPicPidRwdRrdRrdRrdRrdRrcOycPkcLvcPlcJJcJJcJJcLccLvcPkcNdcNdcNdcNdcNdcNdaaaaaacOVcSfcOYcOYcRgcRWcRWcVocOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPtcRqcPCcRpcPEcPFcPFcPFcPFcPFcPFcPGcPHcPhcPicPidRsdRrdRrdRrdRrdRrcOycPkcLvcPlcJJcJJcJJcPncLvcPkcPKcPKcPKcPKcPKcNdaaaaaadUscPLcOYcOYdUscQMcQMcQMcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPidUxcPCcPNcPCcPOcPCcPCcPCcPCcPCcPCcPCcPOcPicPicPicOycOycOycOycQccWbcOycPkcLvcPlcJJcJJcJJcVqcWacKwcRVcRVcRVcRVcRXcVZcRVcRXcOVcPLcOYcOYcPDcPpcPpcPpcPsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPUcPVcPCcPWcPEcPXcPXcPXcPXcPXcPXcPYcPZcPhcPicPicOydhjdhJdPFdPtdPtcOydKhdKjdiycJJcJJcJJcJJcUPcQhcQhcQhcQhcQhcUGcUBcUDcUBcQkcOYcOYcOYcOYcPScPScPMdUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPicPUcPucQmcPUcPucPudUzdUydUAcPucQncPycPhcPicPicOydPQdPUdQfdPtdPtdQgdQQdQXcJJcJJcJJcJJcJJcUPcQhcQhcQhcQhcQhcUGcSacRVcRXcOVcQNcOYcPMdUwcPLcOYcUZcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPicPicPicPicPicPicPicPicPicPicPicPicPjcPhcPicPicOydRhdRidRjdPtdPtdQgdQQdQXcJJcJJcJJcJJdRfdRgcRVdRecQhcQhcQwdRdcNdaaaaaadUwcPLcOYcPMdUvcPLcOYcPMdUwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycOycOycOycOycOycQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcVCcVCcVCcQAcQAcQzcVBcLfcVxcJJcJJcJJcPncQQcPkcVMcQhcUGcVOcVNcNdaaaaaadUvcPLcOYcPMcPBcPLcOYcPMdUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycUXcUYcUYcUYcURcUVcQLcQAcQAcQAcQAcQAcQAcQAcQAcQAcQAcQAcQAcQAcQAcQAcQAcQzcPkcLvcPlcJJcJJcJJcVqcVpcRVcVrcQhcQhcQScVscNdaaaaaadUucPLcOYcPMdUvcPLcOYcPMdUuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcPbcPbcPbcPbcUJcQTcUHcUKcQYcQAcQWcUOcUNcQYcQAcQAcQAcQAcQAcQAcQAcQAcQzcPkcLvcPIcJJcJJcJJcJJcUPcQhcQhcQhcQhcQhcUGcSacRVcRXcOVcSfcOYcPMdUucPLcOYcUQcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcQxcPbcPbcPbcQVcQTcUfcUicQYcQAcQWcSAcSzcQYcQAcQAcSecSecSecSecSecSecQzcShcSgcSrcSicUzcUzcUzcUAcUzcUzcQhcQhcQhcUGcUBcUDcUBcQkcOYcOYcOYcOYcOYcOYcPMdUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcRScPbcPbcPbcQVcQLcQAcQAcQAcQAcQAcQAcQAcQAcQAcQCcRUcRUcRUcRUcRUcRUcQzcQzcQzcQzcQzcRZcRZcQzcQzcQzcQzcSacRVcRVcRVcRVcRVcRXcOVdUrdUqcRCdUscPocOYcRYcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcPbcREcPbcRGcQVcQTcRNcRFcQYcQAcQWcRAcRzcQYcQAcQCcRycQBcQBcQBcQBcQBcQzcRBcRBcRBcRDcOtcOtcRRcRhcRhcQzcPKcPKcPKcPKcNdaaaaaacOVcRLcRMcPAcRQcOVcROcRYcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycQRcPbcPbcQPcPbcQVcQTcQUcQXcQYcQAcQWcRacQZcQYcQAcQCcQBcQBcQBcQBcQBcQBcQzcRfcRecRdcRccOtcOtcOtcRhcRhcQzcNdcNdcNdcNdcNdaaaaaadUscPAcPAcPAcRicOVcPqcPqcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcPbcPbcPbcPbcQKcQLcQAcQAcQAcQAcQAcQAcQAcQAcQAcQCcQBcQBcQDcQFcQEcQGcQzcQIcQHcQJcOtcPzcQpcOtcOtcQOcQzaaaaaaaaaaaaaaaaaaaaacOVcRLcRMcPAcPdcPacQjcQjcPsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcQycPbcQxcOOcQvcQucQtcQtcQtcRjcRjcRjcRkcRlcQscRncRocRjcRjcRjcQzcQzcQzcQrcQqcQqcPzcQocQlcQpcQecQicQzaaaaaaaaaaaaaaaaaaaaacSncSocSpcSpcSpcPscSscSscSqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcPbcPbcOOcOPcOKcOUcOUcOUcOUcRjcRrcRscRtcRucRvcRwcRxcRscRrcRjcQzcQzcQzcQzcQzcQzcPPcQgcQfcPJcQecQicQzaaaaaaaaaaaaaaaaaaaaaaaacSncSscSscSscSqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycQdcPbcOOcOPcOKcOKcOUcOUcOUcOUcRjcRscRHcRIcRucRvcRwcRJcRKcRscRjcPTcPRcPQcQbcQacQzcOtcPPcPJcOtcOtcPzcPfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycPbcOOcOPcOKcOKcOKcOUcOUcOUcOUcRjcRTcRscRTcRucRvcRwcRTcRscRTcRjcPccOtcOtcOtcOtcPecOtcOtcOtcOtcOtcOTcOSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycOOcOPcOKcOKcOKcOKcOKcOKcOKcOKcRjcSccRscRscRucRvcRwcRscRscSdcRjcOJcOEcODcOCcOAcQzcOtcOtcOtcOtcOtcOzcOuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/nano/css/shared.css b/nano/css/shared.css index a2c74ef939e..d044cf019f2 100644 --- a/nano/css/shared.css +++ b/nano/css/shared.css @@ -13,7 +13,7 @@ hr { } .link, .linkOn, .linkOff, .selected, .disabled { float: left; - min-width: 40px; + min-width: 15px; height: 16px; text-align: center; color: #ffffff; @@ -174,6 +174,14 @@ h4 { .dark { color: #272727; } +.noticePlaceholder { + position: relative; + font-size: 12px; + font-style: italic; + font-weight: bold; + padding: 3px 4px 3px 4px; + margin: 4px 0 4px 0; +} .notice { position: relative; background: url(uiNoticeBackground.jpg) 50% 50%; diff --git a/nano/templates/apc.tmpl b/nano/templates/apc.tmpl new file mode 100644 index 00000000000..82dc2175a1a --- /dev/null +++ b/nano/templates/apc.tmpl @@ -0,0 +1,175 @@ +
+ {{if siliconUser}} +
+ Interface Lock: +
+
+ {{:~link('Engaged', 'locked', {'toggleaccess' : 1}, locked ? 'selected' : null)}}{{:~link('Disengaged', 'unlocked', {'toggleaccess' : 1}, malfStatus >= 2 ? 'linkOff' : (locked ? null : 'selected'))}} +
+
+ {{else}} + {{if locked}} + Swipe an ID card to unlock this interface. + {{else}} + Swipe an ID card to lock this interface. + {{/if}} + {{/if}} +
+ +
+ +

Power Status

+ +
+
+ Main Breaker: +
+
+ {{if locked && !siliconUser}} + {{if isOperating}} + On + {{else}} + Off + {{/if}} + {{else}} + {{:~link('On', 'power', {'breaker' : 1}, isOperating ? 'selected' : null)}}{{:~link('Off', 'close', {'breaker' : 1}, isOperating ? null : 'selected')}} + {{/if}} +
+
+ +
+
+ External Power: +
+
+ {{if externalPower == 2}} + Good + {{else externalPower == 1}} + Low + {{else}} + None + {{/if}} +
+
+ +
+
+ Power Cell: +
+ {{if powerCellStatus == null}} +
+ Power cell removed. +
+ {{else}} + + {{:~displayBar(powerCellStatus, 0, 100, powerCellStatus >= 50 ? 'good' : powerCellStatus >= 25 ? 'average' : 'bad')}} +
+ {{:~round(powerCellStatus*10)/10}}% +
+ {{/if}} +
+ + {{if powerCellStatus != null}} +
+
+ Charge Mode: +
+
+ {{if locked && !siliconUser}} + {{if chargeMode}} + Auto + {{else}} + Off + {{/if}} + {{else}} + {{:~link('Auto', 'refresh', {'cmode' : 1}, chargeMode ? 'selected' : null)}}{{:~link('Off', 'close', {'cmode' : 1}, chargeMode ? null : 'selected')}} + {{/if}} +   + {{if chargingStatus > 1}} + [Fully Charged] + {{else chargingStatus == 1}} + [Charging] + {{else}} + [Not Charging] + {{/if}} +
+
+ {{/if}} + + +

Power Channels

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

System Overrides

+ +
+ {{:~link('Overload Lighting Circuit', 'lightbulb', {'overload' : 1})}} + {{if malfStatus == 1}} + {{:~link('Override Programming', 'script', {'malfhack' : 1})}} + {{else malfStatus > 1}} +
APC Hacked
+ {{/if}} +
+ {{/if}} + +
+ \ No newline at end of file diff --git a/nano/templates/canister.tmpl b/nano/templates/canister.tmpl new file mode 100644 index 00000000000..3bd69a4a9bb --- /dev/null +++ b/nano/templates/canister.tmpl @@ -0,0 +1,83 @@ +

Tank Status

+
+
+ Tank Label: +
+
+
{{:name}}
{{:~link('Relabel', 'pencil', {'relabel' : 1}, (canLabel) ? null : 'disabled')}} +
+
+ +
+
+ Tank Pressure: +
+
+ {{:tankPressure}} kPa +
+
+ +
+
+ Port Status: +
+
+ {{:portConnected ? 'Connected' : 'Disconnected'}} +
+
+ +

Holding Tank Status

+{{if hasHoldingTank}} +
+
+ Tank Label: +
+
+
{{:holdingTank.name}}
{{:~link('Eject', 'eject', {'remove_tank' : 1})}} +
+
+ +
+
+ Tank Pressure: +
+
+ {{:holdingTank.tankPressure}} kPa +
+
+{{else}} +
No holding tank inserted.
+
 
+{{/if}} + + +

Release Valve Status

+
+
+ Release Pressure: +
+
+ {{:~displayBar(releasePressure, minReleasePressure, maxReleasePressure)}} +
+ {{:~link('-', null, {'pressure_adj' : -1000}, (releasePressure > minReleasePressure) ? null : 'disabled')}} + {{:~link('-', null, {'pressure_adj' : -100}, (releasePressure > minReleasePressure) ? null : 'disabled')}} + {{:~link('-', null, {'pressure_adj' : -10}, (releasePressure > minReleasePressure) ? null : 'disabled')}} + {{:~link('-', null, {'pressure_adj' : -1}, (releasePressure > minReleasePressure) ? null : 'disabled')}} +
 {{:releasePressure}} kPa 
+ {{:~link('+', null, {'pressure_adj' : 1}, (releasePressure < maxReleasePressure) ? null : 'disabled')}} + {{:~link('+', null, {'pressure_adj' : 10}, (releasePressure < maxReleasePressure) ? null : 'disabled')}} + {{:~link('+', null, {'pressure_adj' : 100}, (releasePressure < maxReleasePressure) ? null : 'disabled')}} + {{:~link('+', null, {'pressure_adj' : 1000}, (releasePressure < maxReleasePressure) ? null : 'disabled')}} +
+
+
+ +
+
+ Release Valve: +
+
+ {{:~link('Open', 'unlocked', {'toggle' : 1}, valveOpen ? 'selected' : null)}}{{:~link('Close', 'locked', {'toggle' : 1}, valveOpen ? null : 'selected')}} +
+
+ diff --git a/nano/templates/freezer.tmpl b/nano/templates/freezer.tmpl new file mode 100644 index 00000000000..9e1c13edaee --- /dev/null +++ b/nano/templates/freezer.tmpl @@ -0,0 +1,49 @@ +
+
+ Status: +
+
+ {{:~link('On', 'power', {'toggleStatus' : 1}, on ? 'selected' : null)}}{{:~link('Off', 'close', {'toggleStatus' : 1}, on ? null : 'selected')}} +
+
+ +
+
+ Gas Pressure: +
+
+ {{:gasPressure}} kPa +
+
+ +

Gas Temperature

+
+
+ Current: +
+
+ {{:~displayBar(gasTemperature, minGasTemperature, maxGasTemperature, gasTemperatureClass)}} +
+ {{:gasTemperature}} K +
+
+
+ +
+
+ Target: +
+
+ {{:~displayBar(targetGasTemperature, minGasTemperature, maxGasTemperature)}} +
+ {{:~link('-', null, {'temp' : -100}, (targetGasTemperature > minGasTemperature) ? null : 'disabled')}} + {{:~link('-', null, {'temp' : -10}, (targetGasTemperature > minGasTemperature) ? null : 'disabled')}} + {{:~link('-', null, {'temp' : -1}, (targetGasTemperature > minGasTemperature) ? null : 'disabled')}} +
 {{:targetGasTemperature}} K 
+ {{:~link('+', null, {'temp' : 1}, (targetGasTemperature < maxGasTemperature) ? null : 'disabled')}} + {{:~link('+', null, {'temp' : 10}, (targetGasTemperature < maxGasTemperature) ? null : 'disabled')}} + {{:~link('+', null, {'temp' : 100}, (targetGasTemperature < maxGasTemperature) ? null : 'disabled')}} +
+
+
+ diff --git a/nano/templates/smes.tmpl b/nano/templates/smes.tmpl index c4431cd805c..760228e4cd5 100644 --- a/nano/templates/smes.tmpl +++ b/nano/templates/smes.tmpl @@ -34,8 +34,8 @@ {{:~displayBar(chargeLevel, 0, chargeMax)}}
{{:~link('MIN', null, {'input' : 'min'}, (chargeLevel > 0) ? null : 'disabled')}} - {{:~link('MAX', null, {'input' : 'max'}, (chargeLevel < chargeMax) ? null : 'disabled')}} {{:~link('SET', null, {'input' : 'set'}, null)}} + {{:~link('MAX', null, {'input' : 'max'}, (chargeLevel < chargeMax) ? null : 'disabled')}}
 {{:chargeLevel}} W 
@@ -59,8 +59,8 @@ {{:~displayBar(outputLevel, 0, outputMax)}}
{{:~link('MIN', null, {'output' : 'min'}, (outputLevel > 0) ? null : 'disabled')}} - {{:~link('MAX', null, {'output' : 'max'}, (outputLevel < outputMax) ? null : 'disabled')}} {{:~link('SET', null, {'output' : 'set'}, null)}} + {{:~link('MAX', null, {'output' : 'max'}, (outputLevel < outputMax) ? null : 'disabled')}}
 {{:outputLevel}} W 
diff --git a/nano/templates/tanks.tmpl b/nano/templates/tanks.tmpl new file mode 100644 index 00000000000..af7ab874f64 --- /dev/null +++ b/nano/templates/tanks.tmpl @@ -0,0 +1,47 @@ +{{if maskConnected}} +
This tank is connected to a mask.
+{{else}} +
This tank is NOT connected to a mask.
+{{/if}} + +
+
+ Tank Pressure: +
+
+ {{:~displayBar(tankPressure, 0, 1013, (tankPressure > 200) ? 'good' : (tankPressure > 100) ? 'average' : 'bad'))}} +
+ {{:tankPressure}} kPa +
+
+
+ +
 
+ +
+
+ Mask Release Pressure: +
+
+ {{:~displayBar(releasePressure, 0, maxReleasePressure, (releasePressure >= 23) ? null : ((releasePressure >= 17) ? 'average' : 'bad'))}} +
+ {{:~link('-', null, {'dist_p' : -10}, (releasePressure > 0) ? null : 'disabled')}} + {{:~link('-', null, {'dist_p' : -1}, (releasePressure > 0) ? null : 'disabled')}} +
 {{:releasePressure}} kPa 
+ {{:~link('+', null, {'dist_p' : 1}, (releasePressure < maxReleasePressure) ? null : 'disabled')}} + {{:~link('+', null, {'dist_p' : 10}, (releasePressure < maxReleasePressure) ? null : 'disabled')}} + {{:~link('Max', null, {'dist_p' : 'max'}, (releasePressure < maxReleasePressure) ? null : 'disabled')}} + {{:~link('Reset', null, {'dist_p' : 'reset'}, (releasePressure != defaultReleasePressure) ? null : 'disabled')}} +
+
+
+ +
+
+ Mask Release Valve: +
+
+ {{:~link('Open', 'unlocked', {'stat' : 1}, (!maskConnected) ? 'disabled' : (valveOpen ? 'selected' : null))}}{{:~link('Close', 'locked', {'stat' : 1}, valveOpen ? null : 'selected')}} +
+
+ diff --git a/nano/templates/transfer_valve.tmpl b/nano/templates/transfer_valve.tmpl new file mode 100644 index 00000000000..c2d957652a9 --- /dev/null +++ b/nano/templates/transfer_valve.tmpl @@ -0,0 +1,53 @@ +
+
+ Attachment One: +
+
+ {{if attachmentOne}} + {{:attachmentOne}} + {{else}} + None + {{/if}} + {{:~link('Remove', 'eject', {'tankone' : 1}, attachmentOne ? null : 'disabled')}} +
+
+ +
+
+ Attachment Two: +
+
+ {{if attachmentTwo}} + {{:attachmentTwo}} + {{else}} + None + {{/if}} + {{:~link('Remove', 'eject', {'tanktwo' : 1}, attachmentTwo ? null : 'disabled')}} +
+
+ +
+
+ Valve Attachment: +
+
+ {{if valveAttachment}} + {{:valveAttachment}} + {{else}} + None + {{/if}} + {{:~link('Remove', 'eject', {'rem_device' : 1}, valveAttachment ? null : 'disabled')}} +
+
+ +
 
+ +
+
+ Valve Status: +
+
+ {{:~link('Open', 'unlocked', {'open' : 1}, (!attachmentOne || !attachmentTwo) ? 'disabled' : (valveOpen ? 'selected' : null))}}{{:~link('Close', 'locked', {'open' : 1}, (!attachmentOne || !attachmentTwo) ? 'disabled' : (valveOpen ? null : 'selected'))}} +
+
+