diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 07f562c4961..427b286800b 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -99,70 +99,6 @@ /mob/living/carbon/alien/RestrainedClickOn(var/atom/A) return -/mob/living/carbon/alien/humanoid/RangedAttack(var/atom/A) - if(!large && a_intent == "harm") - Neurotox(A) - return - else if(large && a_intent == "harm") - NeuroAOE(A) - return - -/mob/living/carbon/alien/humanoid/proc/Neurotox(atom/A) - if(world.time < next_attack) - return - - var/turf/T = get_turf(src) - var/turf/U = get_turf(A) // Get the tile infront of the move, based on their direction - - if(!isturf(U) || !isturf(T)) - return - - var/obj/item/projectile/bullet/neurotoxin/NT = new /obj/item/projectile/bullet/neurotoxin(loc) - NT.firer = src -// NT.def_zone = get_organ_target() - NT.original = A - NT.current = T - NT.yo = U.y - T.y - NT.xo = U.x - T.x - spawn(1) - NT.process() - next_attack = world.time + 60 - -/mob/living/carbon/alien/humanoid/proc/NeuroAOE(atom/A) - if(world.time < next_attack) - return - - var/direction = get_dir(src,A) - var/turf/T = get_turf(A) - var/turf/T1 = get_step(T,turn(direction, 90)) - var/turf/T2 = get_step(T,turn(direction, -90)) - - var/list/the_targets = list(T,T1,T2) - - for(var/a=0, a<5, a++) - spawn(0) - var/obj/effect/effect/water/D = new /obj/effect/effect/water( get_turf(src) ) - D.color = "#00FF21" - var/turf/my_target = pick(the_targets) - for(var/b=0, b<5, b++) - if(!step_towards(D,my_target)) return - if(!D) return -// D.reagents.reaction(get_turf(D)) - for(var/atom/atm in get_turf(D)) - if(!D) return - if(istype(atm, /mob/living/carbon/alien)) - return - if(istype(atm, /mob/living/carbon)) - var/mob/living/carbon/C = atm - C.Weaken(5) - C.adjustToxLoss(20) - C << "You were drenched with neurotoxin!" -// D.reagents.reaction(atm, TOUCH) // Touch, since we sprayed it. - if(D.loc == my_target) break - sleep(2) - next_attack = world.time + 60 - - // Babby aliens /mob/living/carbon/alien/larva/UnarmedAttack(var/atom/A) A.attack_larva(src) diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 5e9d0f70042..2e71bd1ac69 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -108,14 +108,6 @@ var/list/uplink_items = list() cost = 8 job = list("Clown") -//Detective -/datum/uplink_item/jobspecific/evidenceforger - name = "Evidence Forger" - desc = "An evidence scanner that allows you forge evidence by setting the output before scanning the item." - item = /obj/item/device/detective_scanner/forger - cost = 6 - job = list("Detective") - /datum/uplink_item/jobspecific/conversionkit name = "Conversion Kit Bundle" desc = "A bundle that comes with a professional revolver conversion kit and 1 box of .357 ammo. The kit allows you to convert your revolver to fire lethal rounds or vice versa, modification is nearly perfect and will not result in catastrophic failure." diff --git a/code/game/asteroid.dm b/code/game/asteroid.dm index a37ac4c2ce4..76005df5f1f 100644 --- a/code/game/asteroid.dm +++ b/code/game/asteroid.dm @@ -23,7 +23,7 @@ proc/spawn_room(var/atom/start_loc,var/x_size,var/y_size,var/wall,var/floor , va //world << "Room spawned at [start_loc.x],[start_loc.y],[start_loc.z]" if(!wall) - wall = pick(/turf/simulated/wall/r_wall,/turf/simulated/wall,/obj/effect/alien/resin) + wall = pick(/turf/simulated/wall/r_wall,/turf/simulated/wall,/obj/structure/alien/resin) if(!floor) floor = pick(/turf/simulated/floor,/turf/simulated/floor/engine) @@ -44,9 +44,9 @@ proc/spawn_room(var/atom/start_loc,var/x_size,var/y_size,var/wall,var/floor , va if(x == 0 || x==x_size-1 || y==0 || y==y_size-1) - if(wall == /obj/effect/alien/resin) + if(wall == /obj/structure/alien/resin) T = new floor(cur_loc) - new /obj/effect/alien/resin(T) + new /obj/structure/alien/resin(T) else T = new wall(cur_loc) room_turfs["walls"] += T @@ -74,7 +74,7 @@ proc/admin_spawn_room_at_pos() if("Regular wall") wall=/turf/simulated/wall if("Resin wall") - wall=/obj/effect/alien/resin + wall=/obj/structure/alien/resin switch(alert("Floor type",null,"Regular floor","Reinforced floor")) if("Regular floor") floor=/turf/simulated/floor diff --git a/code/game/atoms.dm b/code/game/atoms.dm index def6c6e4c11..b58e3bf099f 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -251,35 +251,32 @@ its easier to just keep the beam vertical. /atom/proc/add_hiddenprint(mob/living/M as mob) if(isnull(M)) return if(isnull(M.key)) return - if (!( src.flags ) & FPRINT) - return - if (ishuman(M)) + if(ishuman(M)) var/mob/living/carbon/human/H = M - if (!istype(H.dna, /datum/dna)) + if(!istype(H.dna, /datum/dna)) return 0 - if (H.gloves) - if(src.fingerprintslast != H.key) - src.fingerprintshidden += text("\[[time_stamp()]\] (Wearing gloves). Real name: [], Key: []",H.real_name, H.key) - src.fingerprintslast = H.key + if(H.gloves) + if(fingerprintslast != H.ckey) + fingerprintshidden += text("\[[time_stamp()]\] (Wearing gloves). Real name: [], Key: []",H.real_name, H.key) + fingerprintslast = H.ckey return 0 - if (!( src.fingerprints )) - if(src.fingerprintslast != H.key) - src.fingerprintshidden += text("\[[time_stamp()]\] Real name: [], Key: []",H.real_name, H.key) - src.fingerprintslast = H.key + if(!( fingerprints )) + if(fingerprintslast != H.ckey) + fingerprintshidden += text("\[[time_stamp()]\] Real name: [], Key: []",H.real_name, H.key) + fingerprintslast = H.ckey return 1 else - if(src.fingerprintslast != M.key) - src.fingerprintshidden += text("\[[time_stamp()]\] Real name: [], Key: []",M.real_name, M.key) - src.fingerprintslast = M.key + if(fingerprintslast != M.ckey) + fingerprintshidden += text("\[[time_stamp()]\] Real name: [], Key: []",M.real_name, M.key) + fingerprintslast = M.ckey return + +//Set ignoregloves to add prints irrespective of the mob having gloves on. /atom/proc/add_fingerprint(mob/living/M as mob, ignoregloves = 0) if(isnull(M)) return - if(isAI(M)) return if(isnull(M.key)) return - if (!( src.flags ) & FPRINT) - return - if (ishuman(M)) + if(ishuman(M)) //Add the list if it does not exist. if(!fingerprintshidden) fingerprintshidden = list() @@ -301,25 +298,25 @@ its easier to just keep the beam vertical. H.dna.real_name = H.real_name H.check_dna() - //Now, deal with gloves. - if (H.gloves && H.gloves != src) - if(fingerprintslast != H.key) - fingerprintshidden += text("\[[]\](Wearing gloves). Real name: [], Key: []",time_stamp(), H.real_name, H.key) - fingerprintslast = H.key - H.gloves.add_fingerprint(M) + //Check if the gloves (if any) hide fingerprints + if(H.gloves) + var/obj/item/clothing/gloves/G = H.gloves + if(G.transfer_prints) + ignoregloves = 1 - //Deal with gloves the pass finger/palm prints. + //Now, deal with gloves. if(!ignoregloves) - if(H.gloves != src) - if(prob(75) && istype(H.gloves, /obj/item/clothing/gloves/latex)) - return 0 - else if(H.gloves && !istype(H.gloves, /obj/item/clothing/gloves/latex)) - return 0 + if(H.gloves && H.gloves != src) + if(fingerprintslast != H.ckey) + fingerprintshidden += text("\[[]\](Wearing gloves). Real name: [], Key: []",time_stamp(), H.real_name, H.key) + fingerprintslast = H.ckey + H.gloves.add_fingerprint(M) + return 0 //More adminstuffz - if(fingerprintslast != H.key) + if(fingerprintslast != H.ckey) fingerprintshidden += text("\[[]\]Real name: [], Key: []",time_stamp(), H.real_name, H.key) - fingerprintslast = H.key + fingerprintslast = H.ckey //Make the list if it does not exist. if(!fingerprints) @@ -329,75 +326,37 @@ its easier to just keep the beam vertical. var/full_print = md5(H.dna.uni_identity) // Add the fingerprints - // - if(fingerprints[full_print]) - switch(stringpercent(fingerprints[full_print])) //tells us how many stars are in the current prints. - - if(28 to 32) - if(prob(1)) - fingerprints[full_print] = full_print // You rolled a one buddy. - else - fingerprints[full_print] = stars(full_print, rand(0,40)) // 24 to 32 - - if(24 to 27) - if(prob(3)) - fingerprints[full_print] = full_print //Sucks to be you. - else - fingerprints[full_print] = stars(full_print, rand(15, 55)) // 20 to 29 - - if(20 to 23) - if(prob(5)) - fingerprints[full_print] = full_print //Had a good run didn't ya. - else - fingerprints[full_print] = stars(full_print, rand(30, 70)) // 15 to 25 - - if(16 to 19) - if(prob(5)) - fingerprints[full_print] = full_print //Welp. - else - fingerprints[full_print] = stars(full_print, rand(40, 100)) // 0 to 21 - - if(0 to 15) - if(prob(5)) - fingerprints[full_print] = stars(full_print, rand(0,50)) // small chance you can smudge. - else - fingerprints[full_print] = full_print - - else - fingerprints[full_print] = stars(full_print, rand(0, 20)) //Initial touch, not leaving much evidence the first time. - + fingerprints[full_print] = full_print return 1 else //Smudge up dem prints some - if(fingerprintslast != M.key) + if(fingerprintslast != M.ckey) fingerprintshidden += text("\[[]\]Real name: [], Key: []",time_stamp(), M.real_name, M.key) - fingerprintslast = M.key + fingerprintslast = M.ckey - //Cleaning up shit. - if(fingerprints && !fingerprints.len) - del(fingerprints) return /atom/proc/transfer_fingerprints_to(var/atom/A) - if(!istype(A.fingerprints,/list)) + // Make sure everything are lists. + if(!islist(A.fingerprints)) A.fingerprints = list() - - if(!istype(A.fingerprintshidden,/list)) + if(!islist(A.fingerprintshidden)) A.fingerprintshidden = list() - if(!istype(fingerprintshidden, /list)) + if(!islist(fingerprints)) + fingerprints = list() + if(!islist(fingerprintshidden)) fingerprintshidden = list() - //skytodo - //A.fingerprints |= fingerprints //detective - //A.fingerprintshidden |= fingerprintshidden //admin - if(A.fingerprints && fingerprints) + // Transfer + if(fingerprints) A.fingerprints |= fingerprints.Copy() //detective - if(A.fingerprintshidden && fingerprintshidden) - A.fingerprintshidden |= fingerprintshidden.Copy() //admin A.fingerprintslast = fingerprintslast + if(fingerprintshidden) + A.fingerprintshidden |= fingerprintshidden.Copy() //admin + A.fingerprintslast = fingerprintslast //returns 1 if made bloody, returns 0 otherwise diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index dfa42e7c1da..0054205f05c 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -24,6 +24,7 @@ var/check_records = 1 //Does it check security records? var/arrest_type = 0 //If true, don't handcuff var/harmbaton = 0 + var/base_icon = "secbot" radio_frequency = SEC_FREQ //Security channel radio_name = "Security" bot_type = SEC_BOT @@ -54,6 +55,8 @@ /obj/machinery/bot/secbot/buzzsky name = "Officer Buzzsky" desc = "It's Officer Buzzsky! Rusted and falling apart, he seems less than thrilled with the crew for leaving him in his current state." + base_icon = "rustbot" + icon_state = "rustbot0" declare_arrests = 0 arrest_type = 1 harmbaton = 1 @@ -72,7 +75,7 @@ /obj/machinery/bot/secbot/New() ..() - icon_state = "secbot[on]" + icon_state = "[base_icon][on]" spawn(3) var/datum/job/detective/J = new/datum/job/detective @@ -83,12 +86,12 @@ /obj/machinery/bot/secbot/turn_on() ..() - icon_state = "secbot[on]" + icon_state = "[base_icon][on]" updateUsrDialog() /obj/machinery/bot/secbot/turn_off() ..() - icon_state = "secbot[on]" + icon_state = "[base_icon][on]" updateUsrDialog() /obj/machinery/bot/secbot/bot_reset() @@ -199,7 +202,7 @@ Auto Patrol: []"}, oldtarget_name = user.name visible_message("[src] buzzes oddly!") declare_arrests = 0 - icon_state = "secbot[on]" + icon_state = "[base_icon][on]" /obj/machinery/bot/secbot/bot_process() if (!..()) @@ -227,9 +230,9 @@ Auto Patrol: []"}, playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1) if(harmbaton) playsound(loc, 'sound/weapons/genhit1.ogg', 50, 1, -1) - icon_state = "secbot-c" + icon_state = "[base_icon]-c" spawn(2) - icon_state = "secbot[on]" + icon_state = "[base_icon][on]" var/mob/living/carbon/M = target if(istype(M, /mob/living/carbon/human)) if( M.stuttering < 5 && !(M_HULK in M.mutations) ) diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm index 32ea115a9f3..c3a05eae825 100644 --- a/code/game/objects/effects/aliens.dm +++ b/code/game/objects/effects/aliens.dm @@ -1,22 +1,20 @@ -/* Alien Effects! +/* Alien shit! * Contains: - * effect/alien + * structure/alien * Resin * Weeds - * Acid * Egg + * effect/acid */ -/* - * effect/alien - */ -/obj/effect/alien + +/obj/structure/alien icon = 'icons/mob/alien.dmi' /* * Resin */ -/obj/effect/alien/resin +/obj/structure/alien/resin name = "resin" desc = "Looks like some kind of thick resin." icon_state = "resin" @@ -25,54 +23,54 @@ anchored = 1 var/health = 200 var/resintype = null - -/obj/effect/alien/resin/New(location) +/obj/structure/alien/resin/New(location) relativewall_neighbours() ..() return -/obj/effect/alien/resin/Destroy() +/obj/structure/alien/resin/Destroy() var/turf/T = loc loc = null T.relativewall_neighbours() ..() -/obj/effect/alien/resin/Move() +/obj/structure/alien/resin/Move() ..() -/obj/effect/alien/resin/wall +/obj/structure/alien/resin/wall name = "resin wall" desc = "Thick resin solidified into a wall." - icon_state = "resinwall" //same as resin, but consistency ho! - -/obj/effect/alien/resin/wall/New() + icon_state = "wall0" //same as resin, but consistency ho! + resintype = "wall" + +/obj/structure/alien/resin/wall/New() relativewall_neighbours() ..() - -/obj/effect/alien/resin/membrane +/obj/structure/alien/resin/membrane name = "resin membrane" desc = "Resin just thin enough to let light pass through." - icon_state = "resinmembrane" + icon_state = "membrane0" opacity = 0 health = 120 + resintype = "membrane" -/obj/effect/alien/resin/membrane/New() +/obj/structure/alien/resin/membrane/New() relativewall_neighbours() ..() -/obj/effect/alien/resin/proc/healthcheck() +/obj/structure/alien/resin/proc/healthcheck() if(health <=0) - qdel(src) + del(src) -/obj/effect/alien/resin/bullet_act(obj/item/projectile/Proj) +/obj/structure/alien/resin/bullet_act(obj/item/projectile/Proj) health -= Proj.damage ..() healthcheck() -/obj/effect/alien/resin/ex_act(severity, target) +/obj/structure/alien/resin/ex_act(severity, target) switch(severity) if(1.0) health -= 150 @@ -83,12 +81,12 @@ healthcheck() -/obj/effect/alien/resin/blob_act() +/obj/structure/alien/resin/blob_act() health -= 50 healthcheck() -/obj/effect/alien/resin/hitby(atom/movable/AM) +/obj/structure/alien/resin/hitby(atom/movable/AM) ..() visible_message("[src] was hit by [AM].") var/tforce = 0 @@ -102,19 +100,18 @@ healthcheck() -/obj/effect/alien/resin/attack_hand(mob/living/user) +/obj/structure/alien/resin/attack_hand(mob/living/user) if(M_HULK in user.mutations) - user.visible_message("[user] destroys [src]!") health = 0 healthcheck() -/obj/effect/alien/resin/attack_paw(mob/user) +/obj/structure/alien/resin/attack_paw(mob/user) return attack_hand(user) -/obj/effect/alien/resin/attack_alien(mob/living/user) +/obj/structure/alien/resin/attack_alien(mob/living/user) if(islarva(user)) return user.visible_message("[user] claws at the resin!") @@ -125,121 +122,87 @@ healthcheck() -/obj/effect/alien/resin/attackby(obj/item/I, mob/living/user) +/obj/structure/alien/resin/attackby(obj/item/I, mob/living/user) health -= I.force playsound(loc, 'sound/effects/attackblob.ogg', 100, 1) healthcheck() ..() -/obj/effect/alien/resin/CanPass(atom/movable/mover, turf/target, height=0) +/obj/structure/alien/resin/CanPass(atom/movable/mover, turf/target, height=0) if(istype(mover) && mover.checkpass(PASSGLASS)) return !opacity return !density - + + /* * Weeds */ + #define NODERANGE 3 -/obj/effect/alien/weeds - name = "weeds" - desc = "Strange, alien-looking purple weeds." +/obj/structure/alien/weeds + gender = PLURAL + name = "resin floor" + desc = "A thick resin surface covers the floor." icon_state = "weeds" - anchored = 1 density = 0 layer = 2 var/health = 15 - var/obj/effect/alien/weeds/node/linked_node = null - -/obj/effect/alien/weeds/node - name = "purple sac" - desc = "A purple sac covering alien weeds." - icon_state = "weednode" - layer = 3 - luminosity = NODERANGE - var/node_range = NODERANGE - var/list/obj/effect/alien/weeds/connected_weeds - -/obj/effect/alien/weeds/node/New() - connected_weeds = new() - ..(src.loc, src) - -/obj/effect/alien/weeds/node/Destroy() - for(var/obj/effect/alien/weeds/W in connected_weeds) - processing_objects.Add(W) // Start processing the weeds so they lose health when there's no connected node - ..() - -/obj/effect/alien/weeds/process() - if(!linked_node || (get_dist(linked_node, src) > linked_node.node_range)) - if(prob(50)) - health -= 1 - else if(prob(50)) - health -= 2 - else if(prob(25)) - health -= 3 - healthcheck() - -/obj/effect/alien/weeds/New(pos, var/obj/effect/alien/weeds/node/N) - ..() + var/obj/structure/alien/weeds/node/linked_node = null + +/obj/structure/alien/weeds/New(pos, node) + ..() + linked_node = node if(istype(loc, /turf/space)) - qdel(src) + del(src) return - - linked_node = N - if(linked_node) - linked_node.connected_weeds.Add(src) - - if(icon_state == "weeds")icon_state = pick("weeds", "weeds1", "weeds2") + if(icon_state == "weeds") + icon_state = pick("weeds", "weeds1", "weeds2") + fullUpdateWeedOverlays() spawn(rand(150, 200)) if(src) Life() - return -/obj/effect/alien/weeds/Destroy() - if(linked_node) - linked_node.connected_weeds.Remove(src) - linked_node = null - processing_objects.Remove(src) +/obj/structure/alien/weeds/Destroy() + var/turf/T = loc + loc = null + for (var/obj/structure/alien/weeds/W in range(1,T)) + W.updateWeedOverlays() ..() - -/obj/effect/alien/weeds/proc/Life() + +/obj/structure/alien/weeds/proc/Life() set background = BACKGROUND_ENABLED var/turf/U = get_turf(src) - if (istype(U, /turf/space)) + if(istype(U, /turf/space)) del(src) return - if(!linked_node || (get_dist(linked_node, src) > linked_node.node_range) ) - healthcheck() - return - direction_loop: for(var/dirn in cardinal) - var/turf/T = get_step(src, dirn) - if (!istype(T) || T.density || locate(/obj/effect/alien/weeds) in T || istype(T.loc, /area/arrival) || istype(T, /turf/space)) + if (!istype(T) || T.density || locate(/obj/structure/alien/weeds) in T || istype(T, /turf/space)) continue + if(!linked_node || get_dist(linked_node, src) > linked_node.node_range) + return + for(var/obj/O in T) if(O.density) continue direction_loop - new /obj/effect/alien/weeds(T, linked_node) - -/obj/effect/alien/weeds/ex_act(severity,target) - qdel(src) - -/obj/effect/alien/weeds/fire_act(null, temperature, volume) - if(temperature > T0C+200) - health -= 1 * temperature - healthcheck() + new /obj/structure/alien/weeds(T, linked_node) -/obj/effect/alien/weeds/attackby(obj/item/I, mob/user) + +/obj/structure/alien/weeds/ex_act(severity, target) + del(src) + + +/obj/structure/alien/weeds/attackby(obj/item/I, mob/user) if(I.attack_verb.len) visible_message("[user] has [pick(I.attack_verb)] [src] with [I]!") else @@ -253,72 +216,58 @@ playsound(loc, 'sound/items/Welder.ogg', 100, 1) health -= damage - healthcheck() - -/obj/effect/alien/weeds/proc/healthcheck() + healthcheck() + + +/obj/structure/alien/weeds/proc/healthcheck() if(health <= 0) - qdel(src) - -/obj/effect/alien/weeds/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) + del(src) + + +/obj/structure/alien/weeds/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature > 300) health -= 5 healthcheck() - -/* - * Acid - */ -/obj/effect/alien/acid - name = "acid" - desc = "Burbling corrossive stuff. I wouldn't want to touch it." - icon_state = "acid" - density = 0 - opacity = 0 - anchored = 1 +/obj/structure/alien/weeds/proc/updateWeedOverlays() - var/atom/target - var/ticks = 0 - var/target_strength = 0 + overlays.Cut() + var/turf/N = get_step(src, NORTH) + var/turf/S = get_step(src, SOUTH) + var/turf/E = get_step(src, EAST) + var/turf/W = get_step(src, WEST) + if(!locate(/obj/structure/alien) in N.contents) + if(istype(N, /turf/simulated/floor)) + src.overlays += image('icons/mob/alien.dmi', "weeds_side_s", layer=2, pixel_y = 32) + if(!locate(/obj/structure/alien) in S.contents) + if(istype(S, /turf/simulated/floor)) + src.overlays += image('icons/mob/alien.dmi', "weeds_side_n", layer=2, pixel_y = -32) + if(!locate(/obj/structure/alien) in E.contents) + if(istype(E, /turf/simulated/floor)) + src.overlays += image('icons/mob/alien.dmi', "weeds_side_w", layer=2, pixel_x = 32) + if(!locate(/obj/structure/alien) in W.contents) + if(istype(W, /turf/simulated/floor)) + src.overlays += image('icons/mob/alien.dmi', "weeds_side_e", layer=2, pixel_x = -32) -/obj/effect/alien/acid/New(loc, target) - ..(loc) - src.target = target - if(isturf(target)) // Turf take twice as long to take down. - target_strength = 8 - else - target_strength = 4 - tick() +/obj/structure/alien/weeds/proc/fullUpdateWeedOverlays() + for (var/obj/structure/alien/weeds/W in range(1,src)) + W.updateWeedOverlays() -/obj/effect/alien/acid/proc/tick() - if(!target) - del(src) +//Weed nodes +/obj/structure/alien/weeds/node + name = "glowing resin" + desc = "Blue bioluminescence shines from beneath the surface." + icon_state = "weednode" + luminosity = 1 + var/node_range = NODERANGE - ticks += 1 - if(ticks >= target_strength) +/obj/structure/alien/weeds/node/New() + ..(loc, src) - for(var/mob/O in hearers(src, null)) - O.show_message("\green [src.target] collapses under its own weight into a puddle of goop and undigested debris!", 1) +#undef NODERANGE - if(istype(target, /turf/simulated/wall)) // I hate turf code. - var/turf/simulated/wall/W = target - W.dismantle_wall(1) - else - del(target) - del(src) - return - - switch(target_strength - ticks) - if(6) - visible_message("\green [src.target] is holding up against the acid!") - if(4) - visible_message("\green [src.target]\s structure is being melted by the acid!") - if(2) - visible_message("\green [src.target] is struggling to withstand the acid!") - if(0 to 1) - visible_message("\green [src.target] begins to crumble under the acid!") - spawn(rand(150, 200)) tick() /* * Egg @@ -332,7 +281,7 @@ #define MIN_GROWTH_TIME 1800 //time it takes to grow a hugger #define MAX_GROWTH_TIME 3000 -/obj/effect/alien/egg +/obj/structure/alien/egg name = "egg" desc = "A large mottled egg." icon_state = "egg_growing" @@ -342,20 +291,20 @@ var/status = GROWING //can be GROWING, GROWN or BURST; all mutually exclusive -/obj/effect/alien/egg/New() +/obj/structure/alien/egg/New() new /obj/item/clothing/mask/facehugger(src) ..() spawn(rand(MIN_GROWTH_TIME, MAX_GROWTH_TIME)) Grow() -/obj/effect/alien/egg/attack_paw(mob/user) +/obj/structure/alien/egg/attack_paw(mob/user) if(isalien(user)) switch(status) if(BURST) user << "You clear the hatched egg." playsound(loc, 'sound/effects/attackblob.ogg', 100, 1) - qdel(src) + del(src) return if(GROWING) user << "The child is not developed yet." @@ -368,19 +317,20 @@ return attack_hand(user) -/obj/effect/alien/egg/attack_hand(mob/user) +/obj/structure/alien/egg/attack_hand(mob/user) user << "It feels slimy." -/obj/effect/alien/egg/proc/GetFacehugger() + +/obj/structure/alien/egg/proc/GetFacehugger() return locate(/obj/item/clothing/mask/facehugger) in contents -/obj/effect/alien/egg/proc/Grow() +/obj/structure/alien/egg/proc/Grow() icon_state = "egg" status = GROWN -/obj/effect/alien/egg/proc/Burst(var/kill = 1) //drops and kills the hugger if any is remaining +/obj/structure/alien/egg/proc/Burst(var/kill = 1) //drops and kills the hugger if any is remaining if(status == GROWN || status == GROWING) icon_state = "egg_hatched" flick("egg_opening", src) @@ -399,13 +349,13 @@ break -/obj/effect/alien/egg/bullet_act(obj/item/projectile/Proj) +/obj/structure/alien/egg/bullet_act(obj/item/projectile/Proj) health -= Proj.damage ..() healthcheck() -/obj/effect/alien/egg/attackby(obj/item/I, mob/user) +/obj/structure/alien/egg/attackby(obj/item/I, mob/user) if(I.attack_verb.len) visible_message("[user] has [pick(I.attack_verb)] [src] with [I]!") else @@ -423,21 +373,21 @@ healthcheck() -/obj/effect/alien/egg/proc/healthcheck() +/obj/structure/alien/egg/proc/healthcheck() if(health <= 0) if(status != BURST && status != BURSTING) Burst() else if(status == BURST && prob(50)) - qdel(src) //Remove the egg after it has been hit after bursting. + del(src) //Remove the egg after it has been hit after bursting. -/obj/effect/alien/egg/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) +/obj/structure/alien/egg/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature > 500) health -= 5 healthcheck() -/obj/effect/alien/egg/HasProximity(atom/movable/AM) +/obj/structure/alien/egg/HasProximity(atom/movable/AM) if(status == GROWN) if(!CanHug(AM)) return @@ -455,3 +405,72 @@ #undef MIN_GROWTH_TIME #undef MAX_GROWTH_TIME + +/* + * Acid + */ +/obj/effect/acid + gender = PLURAL + name = "acid" + desc = "Burbling corrossive stuff." + icon = 'icons/effects/effects.dmi' + icon_state = "acid" + density = 0 + opacity = 0 + anchored = 1 + unacidable = 1 + var/atom/target + var/ticks = 0 + var/target_strength = 0 + + +/obj/effect/acid/New(loc, targ) + ..(loc) + target = targ + + //handle APCs and newscasters and stuff nicely + pixel_x = target.pixel_x + pixel_y = target.pixel_y + + if(isturf(target)) //Turfs take twice as long to take down. + target_strength = 640 + else + target_strength = 320 + tick() + + +/obj/effect/acid/proc/tick() + if(!target) + del(src) + + ticks++ + + if(ticks >= target_strength) + target.visible_message("[target] collapses under its own weight into a puddle of goop and undigested debris!") + + if(istype(target, /turf/simulated/wall)) + var/turf/simulated/wall/W = target + W.dismantle_wall(1) + else + del(target) + + del(src) + return + + x = target.x + y = target.y + z = target.z + + switch(target_strength - ticks) + if(480) + visible_message("[target] is holding up against the acid!") + if(320) + visible_message("[target] is being melted by the acid!") + if(160) + visible_message("[target] is struggling to withstand the acid!") + if(80) + visible_message("[target] begins to crumble under the acid!") + + spawn(1) + if(src) + tick() \ No newline at end of file diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index c64cff22fdd..813e9fd4517 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -141,9 +141,12 @@ var/last_chew = 0 ..() if(istype(I, /obj/item/stack/rods)) var/obj/item/stack/rods/R = I - var/obj/item/weapon/wirerod/W = new /obj/item/weapon/wirerod - R.use(1) - user.put_in_hands(W) - user << "You wrap the cable restraint around the top of the rod." - del(src) - + if (R.use(1)) + var/obj/item/weapon/wirerod/W = new /obj/item/weapon/wirerod + user.u_equip(src) + user.put_in_hands(W) + user << "You wrap the cable restraint around the top of the rod." + del(src) + else + user << "You need one rod to make a wired rod." + return diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index d7e501ea6e1..2e9ed7b70c9 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -196,4 +196,12 @@ throwforce = 5 stunforce = 5 hitcost = 3750 - slot_flags = null \ No newline at end of file + slot_flags = null + +/obj/item/weapon/melee/baton/cattleprod/update_icon() + if(status) + icon_state = "stunprod_active" + else if(!bcell) + icon_state = "stunprod_nocell" + else + icon_state = "stunprod" \ No newline at end of file diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 71b12cff1f7..43618e46b73 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -167,6 +167,10 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob) ..() if(istype(I, /obj/item/weapon/shard)) var/obj/item/weapon/twohanded/spear/S = new /obj/item/weapon/twohanded/spear + + user.u_equip(I) + user.u_equip(src) + user.put_in_hands(S) user << "You fasten the glass shard to the top of the rod with the cable." del(I) @@ -174,6 +178,10 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob) else if(istype(I, /obj/item/weapon/wirecutters)) var/obj/item/weapon/melee/baton/cattleprod/P = new /obj/item/weapon/melee/baton/cattleprod + + user.u_equip(I) + user.u_equip(src) + user.put_in_hands(P) user << "You fasten the wirecutters to the top of the rod with the cable, prongs outward." del(I) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index b9a4004bdf2..5404f9d6389 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -147,7 +147,7 @@ new /obj/item/clothing/gloves/latex(src) new /obj/item/device/radio/headset/heads/cmo(src) new /obj/item/clothing/gloves/latex(src) - new /obj/item/weapon/defibrillator(src) + new /obj/item/weapon/defibrillator/loaded(src) new /obj/item/weapon/storage/belt/medical(src) new /obj/item/device/flash(src) new /obj/item/weapon/reagent_containers/hypospray(src) diff --git a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm index a45e2436b80..f1322e17ad3 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm @@ -22,7 +22,7 @@ "[buckled_mob.name] struggles to break free of the gelatinous resin...",\ "You struggle to break free from the gelatinous resin...",\ "You hear squelching...") - spawn(1200) + spawn(600) if(user && buckled_mob && user.buckled == src) buckled_mob.pixel_y = 0 unbuckle() @@ -51,11 +51,21 @@ M.loc = src.loc M.dir = src.dir M.update_canmove() - M.pixel_y = 6 + M.pixel_y += 1 + M.pixel_x += 2 + M.anchored = anchored src.buckled_mob = M src.add_fingerprint(user) + src.overlays += image('icons/mob/alien.dmi', "nestoverlay", layer=6) return +/obj/structure/stool/bed/nest/unbuckle() + if(buckled_mob) + buckled_mob.pixel_y -= 1 + buckled_mob.pixel_x -= 2 + overlays.Cut() + ..() + /obj/structure/stool/bed/nest/attackby(obj/item/weapon/W as obj, mob/user as mob) var/aforce = W.force health = max(0, health - aforce) diff --git a/code/game/smoothwall.dm b/code/game/smoothwall.dm index c9078fa9192..bcd9fa88a24 100644 --- a/code/game/smoothwall.dm +++ b/code/game/smoothwall.dm @@ -95,4 +95,18 @@ // DE-HACK /turf/simulated/wall/vault/relativewall() + return + + +//Xeno wall smoothing +/obj/structure/alien/resin/relativewall() + + var/junction = 0 //will be used to determine from which side the wall is connected to other walls + + for(var/obj/structure/alien/resin/W in orange(src,1)) + if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls + junction |= get_dir(src,W) + var/obj/structure/alien/resin/resin = src + resin.icon_state = "[resin.resintype][junction]" + return \ No newline at end of file diff --git a/code/modules/DetectiveWork/detective_work.dm b/code/modules/DetectiveWork/detective_work.dm index 047fa29e506..93c94aebf8e 100644 --- a/code/modules/DetectiveWork/detective_work.dm +++ b/code/modules/DetectiveWork/detective_work.dm @@ -5,10 +5,10 @@ atom/var/list/suit_fibers atom/proc/add_fibers(mob/living/carbon/human/M) if(M.gloves && istype(M.gloves,/obj/item/clothing/)) var/obj/item/clothing/gloves/G = M.gloves - if(G.transfer_blood) //bloodied gloves transfer blood to touched objects + if(G.transfer_blood > 1) //bloodied gloves transfer blood to touched objects if(add_blood(G.bloody_hands_mob)) //only reduces the bloodiness of our gloves if the item wasn't already bloody G.transfer_blood-- - else if(M.bloody_hands) + else if(M.bloody_hands > 1) if(add_blood(M.bloody_hands_mob)) M.bloody_hands-- if(!suit_fibers) suit_fibers = list() @@ -19,13 +19,13 @@ atom/proc/add_fibers(mob/living/carbon/human/M) if(prob(10*item_multiplier) && !(fibertext in suit_fibers)) //world.log << "Added fibertext: [fibertext]" suit_fibers += fibertext - if(!(M.wear_suit.body_parts_covered & 32)) + if(!(M.wear_suit.body_parts_covered & UPPER_TORSO)) if(M.w_uniform) fibertext = "Fibers from \a [M.w_uniform]." if(prob(12*item_multiplier) && !(fibertext in suit_fibers)) //Wearing a suit means less of the uniform exposed. //world.log << "Added fibertext: [fibertext]" suit_fibers += fibertext - if(!(M.wear_suit.body_parts_covered & 64)) + if(!(M.wear_suit.body_parts_covered & HANDS)) if(M.gloves) fibertext = "Material from a pair of [M.gloves.name]." if(prob(20*item_multiplier) && !(fibertext in suit_fibers)) @@ -45,583 +45,4 @@ atom/proc/add_fibers(mob/living/carbon/human/M) fibertext = "Material from a pair of [M.gloves.name]." if(prob(20*item_multiplier) && !(fibertext in suit_fibers)) //world.log << "Added fibertext: [fibertext]" - suit_fibers += "Material from a pair of [M.gloves.name]." - if(!suit_fibers.len) del suit_fibers - -var/const/FINGERPRINT_COMPLETE = 6 //This is the output of the stringpercent(print) proc, and means about 80% of - //the print must be there for it to be complete. (Prints are 32 digits) - -obj/machinery/computer/forensic_scanning - name = "\improper High-Res Forensic Scanning Computer" - icon_state = "forensic" - var/obj/item/scanning - var/temp = "" - var/canclear = 1 - var/authenticated = 0 - -//Here's the structure for files: each entry is a list, and entry one in that list is the string of their -//full and scrambled fingerprint. This acts as the method to arrange evidence. Each subsequent entry is list -//in the form (from entries): -// 1: Object -// 2: All prints on the object -// 3: All fibers on the object -// 4: All blood on the object -//This is then used to show what objects were used to "find" the full print, as well as the fibers on it. - var/list/files -//This holds objects (1) without prints, and their fibers(2) and blood(3). - var/list/misc - var/obj/item/weapon/f_card/card - - var/scan_data = "" - var/scan_name = "" - var/scan_process = 0 - - req_access = list(access_forensics_lockers) - - - New() - ..() - new /obj/item/weapon/book/manual/detective(get_turf(src)) - return - - - attack_ai(mob/user) - return attack_hand(user) - - - attack_hand(mob/user) - if(..()) - return - user.set_machine(src) - var/dat = "" - var/isai = 0 - if(istype(usr,/mob/living/silicon)) - isai = 1 - if(temp) - dat += "[temp]

" - if(canclear) dat += "{Clear Screen}" - else - if(!authenticated) - dat += "{Log In}" - else - dat += "{Log Out}


" - if(scanning) - if(scan_process) - dat += "Scan Object: {[scanning.name]}
" - dat += "{Cancel Scan} {Print}
" - else - if(isai) dat += "Scan Object: {[scanning.name]}
" - else dat += "Scan Object: {[scanning.name]}
" - dat += "{Scan} {Print}
" - else - if(isai) dat += "{No Object Inserted}
" - else dat += "{No Object Inserted}
" - dat += "{Scan} {Print}
" - dat += "{Access Database}

" - dat += "[scan_data]" - if(scan_data && !scan_process) - dat += "
{Erase Data}" - user << browse(dat,"window=scanner") - onclose(user,"scanner") - - - Topic(href,href_list) - switch(href_list["operation"]) - if("login") - var/mob/M = usr - if(istype(M,/mob/living/silicon)) - authenticated = 1 - updateDialog() - return - if (allowed(M)) - authenticated = 1 - if("logout") - authenticated = 0 - if("clear") - if(canclear) - temp = null - if("eject") - if(scanning) - scanning.loc = loc - scanning = null - else - temp = "Eject Failed: No Object" - if("insert") - var/mob/M = usr - var/obj/item/I = M.get_active_hand() - if(I && istype(I)) - if(istype(I, /obj/item/weapon/evidencebag)) - scanning = I.contents[1] - scanning.loc = src - I.overlays -= scanning - I.icon_state = "evidenceobj" - else - scanning = I - M.drop_item() - I.loc = src - else - usr << "Invalid Object Rejected." - if("card") //Processing a fingerprint card. - var/mob/M = usr - var/obj/item/I = M.get_active_hand() - if(!(I && istype(I,/obj/item/weapon/f_card))) - I = card - if(I && istype(I,/obj/item/weapon/f_card)) - card = I - if(!card.fingerprints) - card.fingerprints = list() - if(card.amount > 1 || !card.fingerprints.len) - usr << "\red ERROR: No prints/too many cards." - if(card.loc == src) - card.loc = src.loc - card = null - return - M.drop_item() - I.loc = src - process_card() - else - usr << "\red Invalid Object Rejected." - if("database") //Viewing all records in each database - canclear = 1 - if(href_list["delete_record"]) - delete_dossier(href_list["delete_record"]) - if(href_list["delete_aux"]) - delete_record(href_list["delete_aux"]) - if((!misc || !misc.len) && (!files || !files.len)) - temp = "Database is empty." - else - if(files && files.len) - temp = "Criminal Evidence Database

" - temp += "Consolidated data points:
" - for(var/print in files) - var/list/file = files[print] - temp += "{[file[2]]}
" - temp += "
{Insert Finger Print Card (To complete a Dossier)}


" - else - temp = "" - if(misc && misc.len) - temp += "Auxiliary Evidence Database

" - temp += "This is where anything without fingerprints goes.

" - for(var/atom in misc) - var/list/data_entry = misc[atom] - temp += "{[data_entry[3]]}
" - if("record") //Viewing a record from the "files" database. - canclear = 0 - if(files) - var/list/dossier = files[href_list["identifier"]] - if(href_list["ren"]) - var/new_title = copytext(sanitize(input("Rename to what?", "Dossier Editing", "Dossier [files.Find(href_list["identifier"])]") as null|text),1,MAX_MESSAGE_LEN) - if(new_title) - dossier[2] = new_title - else - usr << "Illegal or blank name." - temp = "Criminal Evidence Database

" - temp += "Consolidated data points: [dossier[2]]
" - var/print_string = "Fingerprints: Print not complete!
" - if(stringpercent(dossier[1]) <= FINGERPRINT_COMPLETE) - print_string = "Fingerprints: (80% or higher completion reached)
[dossier[1]]
" - temp += print_string - for(var/object in dossier) - if(object == dossier[1] || object == dossier[2]) - continue - temp += "
" - var/list/outputs = dossier[object] - var/list/prints = outputs[1] - temp += "Object: [outputs[4]]
" - temp += " Fingerprints:
" - temp += "    [prints.len] Unique fingerprints found.
" - var/complete_prints = 0 - for(var/print in prints) - if(stringpercent(prints[print]) <= FINGERPRINT_COMPLETE) - complete_prints++ - temp += "      [prints[print]]
" - if(complete_prints) - temp += "      And [prints.len - complete_prints] unknown unique prints.
" - else - temp += "      No prints of sufficient completeness.
" - var/list/fibers = outputs[2] - if(fibers && fibers.len) - temp += " Fibers:
" - for(var/j = 1, j <= fibers.len, j++) - temp += "      [fibers[j]]
" - var/list/blood = outputs[3] - if(blood && blood.len) - temp += " Blood:
" - for(var/named in blood) - temp += "      Type: [blood[named]], DNA: [named]
" - temp += "
{Rename this Dossier}" - temp += "
{Delete this Dossier}" - temp += "
{Print}" - else - temp = "ERROR. Database not found!
" - temp += "
{Return}" - if("databaseprint") //Printing from the "files" database. - if(files) - var/obj/item/weapon/paper/P = new(loc) - var/list/dossier = files[href_list["identifier"]] - P.name = "\improper Database File ([dossier[2]])" - P.overlays += "paper_words" - P.info = "Criminal Evidence Database

" - P.info += "Consolidated data points: [dossier[2]]
" - var/print_string = "Fingerprints: Print not complete!
" - if(stringpercent(dossier[1]) <= FINGERPRINT_COMPLETE) - print_string = "Fingerprints: (80% or higher completion reached)
[dossier[1]]
" - P.info += print_string - for(var/object in dossier) - if(object == dossier[1] || object == dossier[2]) - continue - P.info += "
" - var/list/outputs = dossier[object] - var/list/prints = outputs[1] - P.info += "Object: [outputs[4]]
" - P.info += " Fingerprints:
" - P.info += "    [prints.len] Unique fingerprints found.
" - var/complete_prints = 0 - for(var/print in prints) - if(stringpercent(prints[print]) <= FINGERPRINT_COMPLETE) - complete_prints++ - P.info += "      [prints[print]]
" - if(complete_prints) - P.info += "      And [prints.len - complete_prints] unknown unique prints.
" - else - P.info += "      No prints of sufficient completeness.
" - var/list/fibers = outputs[2] - if(fibers && fibers.len) - P.info += " Fibers:
" - for(var/j = 1, j <= fibers.len, j++) - P.info += "      [fibers[j]]
" - var/list/blood = outputs[3] - if(blood && blood.len) - P.info += " Blood:
" - for(var/named in blood) - P.info += "      Type: [blood[named]], DNA: [named]
" - else - usr << "ERROR. Database not found!
" - if("auxiliary") //Viewing a record from the "misc" database. - canclear = 0 - if(misc) - temp = "Auxiliary Evidence Database

" - var/list/outputs = misc[href_list["identifier"]] - temp += "Consolidated data points: [outputs[3]]
" - var/list/prints = outputs[4] - if(prints) - temp += " Fingerprints:
" - temp += "    [prints.len] Unique fingerprints found.
" - var/complete_prints = 0 - for(var/print in prints) - if(stringpercent(prints[print]) <= FINGERPRINT_COMPLETE) - complete_prints++ - temp += "      [prints[print]]
" - if(complete_prints) - temp += "      And [prints.len - complete_prints] unknown unique prints.
" - else - temp += "      No prints of sufficient completeness.
" - var/list/fibers = outputs[1] - if(fibers && fibers.len) - temp += " Fibers:
" - for(var/fiber in fibers) - temp += "      [fiber]
" - var/list/blood = outputs[2] - if(blood && blood.len) - temp += " Blood:
" - for(var/named in blood) - temp += "      Type: [blood[named]], DNA: [named]
" - temp += "
{Delete This Record}" - temp += "
{Print}" - else - temp = "ERROR. Database not found!
" - temp += "
{Return}" - if("auxiliaryprint") //Printing from the "misc" database. - if(misc) - var/obj/item/weapon/paper/P = new(loc) - var/list/outputs = misc[href_list["identifier"]] - P.name = "\improper Auxiliary Database File ([outputs[3]])" - P.overlays += "paper_words" - P.info = "Auxiliary Evidence Database

" - P.info += "Consolidated data points: [outputs[3]]
" - var/list/prints = outputs[4] - if(prints) - P.info += " Fingerprints:
" - P.info += "    [prints.len] Unique fingerprints found.
" - var/complete_prints = 0 - for(var/print in prints) - if(stringpercent(prints[print]) <= FINGERPRINT_COMPLETE) - complete_prints++ - P.info += "      [prints[print]]
" - if(complete_prints) - P.info += "      And [prints.len - complete_prints] unknown unique prints.
" - else - P.info += "      No prints of sufficient completeness.
" - var/list/fibers = outputs[1] - if(fibers && fibers.len) - P.info += " Fibers:
" - for(var/fiber in fibers) - P.info += "      [fiber]
" - var/list/blood = outputs[2] - if(blood && blood.len) - P.info += " Blood:
" - for(var/named in blood) - P.info += "      Type: [blood[named]], DNA: [named]
" - else - usr << "ERROR. Database not found!
" - if("scan") - if(istype(scanning,/obj/item/weapon/f_card)) - card = scanning - scanning = initial(scanning) - process_card() - else if(scanning) - scan_process = 3 - scan_data = "Scanning [scanning]: 25% complete" - updateDialog() - sleep(50) - if(!scan_process) - scan_data = null - updateDialog() - return - scan_data = "Scanning [scanning]: 50% complete" - updateDialog() - scan_process = 2 - sleep(50) - if(!scan_process) - scan_data = null - updateDialog() - return - scan_data = "Scanning [scanning]: 75% complete" - updateDialog() - scan_process = 1 - sleep(50) - if(!scan_process) - scan_data = null - updateDialog() - return - if(scanning) - scan_process = 0 - scan_name = scanning.name - scan_data = "[scanning]

" - if (scanning.blood_DNA) - scan_data += "Blood Found:
" - for(var/blood in scanning.blood_DNA) - scan_data += "Blood type: [scanning.blood_DNA[blood]]\nDNA: [blood]

" - else - scan_data += "No Blood Found

" - if(!scanning.fingerprints) - scan_data += "No Fingerprints Found

" - else - scan_data += "Isolated [scanning.fingerprints.len] Fingerprints. Loaded into database.
" - add_data(scanning) - - if(!scanning.suit_fibers) - scan_data += "No Fibers/Materials Located
" - else - scan_data += "Fibers/Materials Found:
" - for(var/data in scanning.suit_fibers) - scan_data += "- [data]
" - if(istype(scanning,/obj/item/device/detective_scanner) || (istype(scanning, /obj/item/device/pda) && scanning:cartridge && scanning:cartridge.access_security)) - scan_data += "
Data transfered from \the [scanning] to Database.
" - add_data_scanner(scanning) - else if(!scanning.fingerprints) - scan_data += "
Add to Database?
" - else - temp = "Scan Failed: No Object" - - - if("print") //Printing scan data - if(scan_data) - temp = "Scan Data Printed." - var/obj/item/weapon/paper/P = new(loc) - P.name = "\improper Scan Data ([scan_name])" - P.info = "[scan_data]" - P.overlays += "paper_words" - else - temp = "Print Failed: No Data" - if("erase") - scan_data = "" - if("cancel") - scan_process = 0 - if("add") //Adding an object (Manually) to the database. - if(scanning) - add_data(scanning) - else - temp = "Data Transfer Failed: No Object." - if("rename") - if(!files || !files[href_list["identifier"]]) - temp = "ERROR: Record/Database not found!" - else - var/new_title = copytext(sanitize(input("Rename to what?", "Dossier Editing", "Dossier [files.Find(href_list["identifier"])]") as null|text),1,MAX_MESSAGE_LEN) - if(new_title) - var/list/file = files[href_list["identifier"]] - file[2] = new_title - updateUsrDialog() - - ex_act() - return - - - proc/add_data_scanner(var/obj/item/device/W) - if(istype(W, /obj/item/device/detective_scanner)) - var/obj/item/device/detective_scanner/D = W - if(D.stored) - for(var/atom in D.stored) - var/list/data = D.stored[atom] - add_data_master(atom,data[1],data[2],data[3],data[4]) - D.stored = list() - else if(istype(W, /obj/item/device/pda) && W:cartridge && W:cartridge.access_security) - if(W:cartridge.stored_data) - for(var/atom in W:cartridge.stored_data) - var/list/data = W:cartridge.stored_data[atom] - add_data_master(atom,data[1],data[2],data[3],data[4]) - W:cartridge.stored_data = list() - return - - proc/add_data(var/atom/scanned_atom) - return add_data_master("\ref [scanned_atom]", scanned_atom.fingerprints,\ - scanned_atom.suit_fibers, scanned_atom.blood_DNA, "[scanned_atom.name] (Direct Scan)") - - - -/******************************** -*****DO NOT DIRECTLY CALL ME***** -********************************/ - proc/add_data_master(var/atom_reference, var/list/atom_fingerprints, var/list/atom_suit_fibers, var/list/atom_blood_DNA, var/atom_name) -//What follows is massive. It cross references all stored data in the scanner with the other stored data, -//and what is already in the computer. Not sure how bad the lag may/may not be. - - if(!misc) - misc = list() - var/list/data_entry = misc[atom_reference] - if(data_entry) - var/list/fibers = data_entry[1] - if(!fibers) - fibers = list() - if(atom_suit_fibers) - for(var/fiber in atom_suit_fibers) //Fibers~~~ - if(!fibers.Find(fiber)) //It isn't! Add! - fibers += fiber - var/list/blood = data_entry[2] - if(!blood) - blood = list() - if(atom_blood_DNA) - for(var/main_blood in atom_blood_DNA) - if(!blood[main_blood]) - blood[main_blood] = atom_blood_DNA[blood] - var/list/prints = data_entry[4] - if(!prints && atom_fingerprints) - prints = list() - if(atom_fingerprints) - for(var/print in atom_fingerprints) - if(!prints[print]) - prints[print] = atom_fingerprints[print] - else - var/list/templist[4] - templist[1] = atom_suit_fibers ? atom_suit_fibers.Copy() : null - templist[2] = atom_blood_DNA ? atom_blood_DNA.Copy() : null - templist[3] = atom_name - templist[4] = atom_fingerprints ? atom_fingerprints.Copy() : null - misc[atom_reference] = templist //Store it! - //Has prints. - if(atom_fingerprints) - if(!files) - files = list() - for(var/main_print in atom_fingerprints) - data_entry = files[main_print] - if(data_entry)//The print is already in here! - var/list/internal_atom = data_entry[atom_reference] //Lets see if we can find the current object - if(internal_atom) - //We must be on a roll! Just update what needs to be updated. - var/list/internal_prints = internal_atom[1] - for(var/print in atom_fingerprints) //Sorry for the double loop! D: - var/associated_print = internal_prints[print] - var/reference_print = atom_fingerprints[print] - if(associated_print && associated_print != reference_print) //It does not match - internal_prints[print] = stringmerge(associated_print, reference_print) - else if(!associated_print) - internal_prints[print] = reference_print - //If the main print was updated, lets update the master as well. - if(print == main_print && (!associated_print || (associated_print && associated_print != reference_print))) - update_fingerprints(main_print, internal_prints[print]) - //Fibers. - var/list/fibers = internal_atom[2] - if(!fibers) - fibers = list() - if(atom_suit_fibers) - for(var/fiber in atom_suit_fibers) //Fibers~~~ - if(!fibers.Find(fiber)) //It isn't! Add! - fibers += fiber - //Blood. - var/list/blood = internal_atom[3] - if(!blood) - blood = list() - if(atom_blood_DNA) - for(var/main_blood in atom_blood_DNA) - if(!blood[main_blood]) - blood[main_blood] = atom_blood_DNA[blood] - - continue - //It's not in there! We gotta add it. - update_fingerprints(main_print, atom_fingerprints[main_print]) - var/list/data_point[4] - data_point[1] = atom_fingerprints ? atom_fingerprints.Copy() : null - data_point[2] = atom_suit_fibers ? atom_suit_fibers.Copy() : null - data_point[3] = atom_blood_DNA ? atom_blood_DNA.Copy() : null - data_point[4] = atom_name - data_entry[atom_reference] = data_point - continue - //No print at all! New data entry, go! - var/list/data_point[4] - data_point[1] = atom_fingerprints ? atom_fingerprints.Copy() : null - data_point[2] = atom_suit_fibers ? atom_suit_fibers.Copy() : null - data_point[3] = atom_blood_DNA ? atom_blood_DNA.Copy() : null - data_point[4] = atom_name - var/list/new_file[2] - new_file[1] = atom_fingerprints[main_print] - new_file[2] = "Dossier [files.len + 1]" - new_file[atom_reference] = data_point - files[main_print] = new_file - return 1 -/******************************** -***END DO NOT DIRECTLY CALL ME*** -********************************/ - - proc/update_fingerprints(var/ref_print, var/new_print) - var/list/master = files[ref_print] - if(master) - master[1] = stringmerge(master[1],new_print) - else - CRASH("Fucking hell. Something went wrong, and it tried to update a null print or something. Tell SkyMarshal (and give him this call stack)") - return - - proc/process_card() //Same as above, but for fingerprint cards - if(card.fingerprints && !(card.amount > 1) && islist(card.fingerprints) && files && files.len) - usr << "You insert the card, and it is destroyed by the machinery in the process of comparing prints." - var/found = 0 - for(var/master_print in card.fingerprints) - var/list/data_entry = files[master_print] - if(data_entry) - found = 1 - data_entry[1] = master_print - if(found) - usr << "The machinery finds it can complete a match." - else - usr << "No match found." - del(card) - else - usr << "\red ERROR: No prints/too many cards." - if(card.loc == src) - card.loc = src.loc - card = null - return - return - - proc/delete_record(var/atom_ref) //Deletes an entry in the misc database at the given location - if(misc && misc.len) - misc.Remove(atom_ref) - return - - proc/delete_dossier(var/print) //Deletes a Dossier at a given location. - if(files && files.len) - files.Remove(print) - return - - detective - icon_state = "old" - name = "PowerScan Mk.I" \ No newline at end of file + suit_fibers += "Material from a pair of [M.gloves.name]." \ No newline at end of file diff --git a/code/modules/DetectiveWork/evidence.dm b/code/modules/DetectiveWork/evidence.dm index 0c414417813..807c6138406 100644 --- a/code/modules/DetectiveWork/evidence.dm +++ b/code/modules/DetectiveWork/evidence.dm @@ -1,4 +1,4 @@ -//CONTAINS: Evidence bags and fingerprint cards +//CONTAINS: Evidence bags /obj/item/weapon/evidencebag name = "evidence bag" @@ -8,17 +8,22 @@ item_state = "" w_class = 1 -/obj/item/weapon/evidencebag/afterattack(obj/item/I, mob/user as mob, proximity) - if(!proximity) return - if(!in_range(I, user)) +/obj/item/weapon/evidencebag/afterattack(obj/item/I, mob/user,proximity) + if(!proximity || loc == I) return + evidencebagEquip(I, user) +/obj/item/weapon/evidencebag/attackby(obj/item/I, mob/user) + if(evidencebagEquip(I, user)) + return 1 + +/obj/item/weapon/evidencebag/proc/evidencebagEquip(obj/item/I, mob/user) if(!istype(I) || I.anchored == 1) - return ..() + return if(istype(I, /obj/item/weapon/evidencebag)) user << "You find putting an evidence bag in another evidence bag to be slightly absurd." - return + return 1 //now this is podracing if(I.w_class > 3) user << "[I] won't fit in [src]." @@ -26,7 +31,7 @@ if(contents.len) user << "[src] already has something inside it." - return ..() + return if(!isturf(I.loc)) //If it isn't on the floor. Do some checks to see if it's in our hands or a box. Otherwise give up. if(istype(I.loc,/obj/item/weapon/storage)) //in a container. @@ -40,8 +45,8 @@ else return - user.visible_message("[user] puts [I] into [src]", "You put [I] inside [src].",\ - "You hear a rustle as someone puts something into a plastic bag.") + user.visible_message("[user] puts [I] into [src].", "You put [I] inside [src].",\ + "You hear a rustle as someone puts something into a plastic bag.") icon_state = "evidence" @@ -58,14 +63,13 @@ desc = "An evidence bag containing [I]. [I.desc]" I.loc = src w_class = I.w_class - return - + return 1 /obj/item/weapon/evidencebag/attack_self(mob/user as mob) if(contents.len) var/obj/item/I = contents[1] - user.visible_message("[user] takes [I] out of [src]", "You take [I] out of [src].",\ - "You hear someone rustle around in a plastic bag, and remove something.") + user.visible_message("[user] takes [I] out of [src].", "You take [I] out of [src].",\ + "You hear someone rustle around in a plastic bag, and remove something.") overlays.Cut() //remove the overlays user.put_in_hands(I) w_class = 1 @@ -88,24 +92,4 @@ new /obj/item/weapon/evidencebag(src) new /obj/item/weapon/evidencebag(src) ..() - return - -/obj/item/weapon/f_card - name = "finger print card" - desc = "Used to take fingerprints." - icon = 'icons/obj/card.dmi' - icon_state = "fingerprint0" - var/amount = 10.0 - item_state = "paper" - throwforce = 1 - w_class = 1.0 - throw_speed = 3 - throw_range = 5 - - -/obj/item/weapon/fcardholder - name = "fingerprint card case" - desc = "Apply finger print card." - icon = 'icons/obj/items.dmi' - icon_state = "fcardholder0" - item_state = "clipboard" + return \ No newline at end of file diff --git a/code/modules/DetectiveWork/footprints_and_rag.dm b/code/modules/DetectiveWork/footprints_and_rag.dm index 899498029d3..04df3a507e6 100644 --- a/code/modules/DetectiveWork/footprints_and_rag.dm +++ b/code/modules/DetectiveWork/footprints_and_rag.dm @@ -1,3 +1,4 @@ + /mob var/bloody_hands = 0 var/mob/living/carbon/human/bloody_hands_mob @@ -26,19 +27,16 @@ can_be_placed_into = null flags = FPRINT | TABLEPASS | OPENCONTAINER | NOBLUDGEON -/obj/item/weapon/reagent_containers/glass/rag/attack_self(mob/user as mob) - return - /obj/item/weapon/reagent_containers/glass/rag/attack(atom/target as obj|turf|area, mob/user as mob , flag) if(ismob(target) && target.reagents && reagents.total_volume) - user.visible_message("\red \The [target] has been smothered with \the [src] by \the [user]!", "\red You smother \the [target] with \the [src]!", "You hear some struggling and muffled cries of surprise") + user.visible_message("[user] has smothered \the [target] with \the [src]!", "You smother \the [target] with \the [src]!", "You hear some struggling and muffled cries of surprise") src.reagents.reaction(target, TOUCH) - spawn(5) src.reagents.clear_reagents() + src.reagents.clear_reagents() return else ..() -/obj/item/weapon/reagent_containers/glass/rag/afterattack(atom/A as obj|turf|area, mob/user as mob, proximity) +/obj/item/weapon/reagent_containers/glass/rag/afterattack(atom/A as obj|turf|area, mob/user as mob,proximity) if(!proximity) return if(istype(A) && src in user) user.visible_message("[user] starts to wipe down [A] with [src]!") @@ -46,10 +44,3 @@ user.visible_message("[user] finishes wiping off the [A]!") A.clean_blood() return - -/obj/item/weapon/reagent_containers/glass/rag/examine() - if (!usr) - return - usr << "That's \a [src]." - usr << desc - return \ No newline at end of file diff --git a/code/modules/DetectiveWork/scanner.dm b/code/modules/DetectiveWork/scanner.dm index 48d4812bac1..38c65445bb0 100644 --- a/code/modules/DetectiveWork/scanner.dm +++ b/code/modules/DetectiveWork/scanner.dm @@ -1,401 +1,173 @@ //CONTAINS: Detective's Scanner +// TODO: Split everything into easy to manage procs. /obj/item/device/detective_scanner - name = "Scanner" - desc = "Used to scan objects for DNA and fingerprints." + name = "forensic scanner" + desc = "Used to remotely scan objects and biomass for DNA and fingerprints. Can print a report of the findings." icon_state = "forensic1" - var/amount = 20.0 - var/list/stored = list() w_class = 3.0 item_state = "electronic" flags = FPRINT | TABLEPASS | CONDUCT | NOBLUDGEON slot_flags = SLOT_BELT + var/scanning = 0 + var/list/log = list() - attackby(obj/item/weapon/f_card/W as obj, mob/user as mob) - ..() - if (istype(W, /obj/item/weapon/f_card)) - if (W.fingerprints) - return - if (src.amount == 20) - return - if (W.amount + src.amount > 20) - src.amount = 20 - W.amount = W.amount + src.amount - 20 - else - src.amount += W.amount - //W = null - del(W) - add_fingerprint(user) - if (W) - W.add_fingerprint(user) - return +/obj/item/device/detective_scanner/attack_self(var/mob/user) + if(log.len && !scanning) + scanning = 1 + user << "Printing report, please wait..." - attack(mob/living/carbon/human/M as mob, mob/user as mob) - if (!ishuman(M)) - user << "\red [M] is not human and cannot have the fingerprints." - flick("forensic0",src) - return 0 - if (( !( istype(M.dna, /datum/dna) ) || M.gloves) ) - user << "\blue No fingerprints found on [M]" - flick("forensic0",src) - return 0 - else - if (src.amount < 1) - user << text("\blue Fingerprints scanned on [M]. Need more cards to print.") - else - src.amount-- - var/obj/item/weapon/f_card/F = new /obj/item/weapon/f_card( user.loc ) - F.amount = 1 - F.add_fingerprint(M) - F.icon_state = "fingerprint1" - F.name = text("FPrintC- '[M.name]'") + spawn(100) - user << "\blue Done printing." - user << "\blue [M]'s Fingerprints: [md5(M.dna.uni_identity)]" - if ( !M.blood_DNA || !M.blood_DNA.len ) - user << "\blue No blood found on [M]" - if(M.blood_DNA) - del(M.blood_DNA) - else - user << "\blue Blood found on [M]. Analysing..." - spawn(15) - for(var/blood in M.blood_DNA) - user << "\blue Blood type: [M.blood_DNA[blood]]\nDNA: [blood]" - return + // Create our paper + var/obj/item/weapon/paper/P = new(get_turf(src)) + P.name = "paper- 'Scanner Report'" + P.info = "
Scanner Report


" + P.info += list2text(log, "
") + P.info += "
Notes:
" + P.info_links = P.info - afterattack(atom/A as obj|turf|area, mob/user as mob, proximity) - if(!proximity) return - if(loc != user) - return - if(istype(A,/obj/machinery/computer/forensic_scanning)) //breaks shit. - return - if(istype(A,/obj/item/weapon/f_card)) - user << "The scanner displays on the screen: \"ERROR 43: Object on Excluded Object List.\"" - flick("forensic0",src) - return + if(ismob(loc)) + var/mob/M = loc + M.put_in_hands(P) + M << "Report printed. Log cleared." - add_fingerprint(user) + // Clear the logs + log = list() + scanning = 0 + else + user << "The scanner has no logs or is in use." + +/obj/item/device/detective_scanner/attack(mob/living/M as mob, mob/user as mob) + return - //Special case for blood splaters. - if (istype(A, /obj/effect/decal/cleanable/blood) || istype(A, /obj/effect/rune) || istype(A, /obj/effect/decal/cleanable/blood/gibs)) - if(!isnull(A.blood_DNA)) - for(var/blood in A.blood_DNA) - user << "\blue Blood type: [A.blood_DNA[blood]]\nDNA: [blood]" - flick("forensic2",src) - return +/obj/item/device/detective_scanner/afterattack(atom/A, mob/user as mob, proximity) + scan(A, user) - //General - if ((!A.fingerprints || !A.fingerprints.len) && !A.suit_fibers && !A.blood_DNA) - user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\ - "\blue Unable to locate any fingerprints, materials, fibers, or blood on [A]!",\ - "You hear a faint hum of electrical equipment.") - flick("forensic0",src) - return 0 +/obj/item/device/detective_scanner/proc/scan(var/atom/A, var/mob/user) - if(add_data(A)) - user << "\blue Object already in internal memory. Consolidating data..." - flick("forensic2",src) - return - - - //PRINTS - if(!A.fingerprints || !A.fingerprints.len) - if(A.fingerprints) - del(A.fingerprints) - else - user << "\blue Isolated [A.fingerprints.len] fingerprints: Data Stored: Scan with Hi-Res Forensic Scanner to retrieve." - var/list/complete_prints = list() - for(var/i in A.fingerprints) - var/print = A.fingerprints[i] - if(stringpercent(print) <= FINGERPRINT_COMPLETE) - complete_prints += print - if(complete_prints.len < 1) - user << "\blue   No intact prints found" - else - user << "\blue   Found [complete_prints.len] intact prints" - for(var/i in complete_prints) - user << "\blue     [i]" - - //FIBERS - if(A.suit_fibers) - user << "\blue Fibers/Materials Data Stored: Scan with Hi-Res Forensic Scanner to retrieve." - flick("forensic2",src) - - //Blood - if (A.blood_DNA) - user << "\blue Blood found on [A]. Analysing..." - spawn(15) - for(var/blood in A.blood_DNA) - user << "Blood type: \red [A.blood_DNA[blood]] \t \black DNA: \red [blood]" - if(prob(80) || !A.fingerprints) - user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\ - "You finish scanning \the [A].",\ - "You hear a faint hum of electrical equipment.") - flick("forensic2",src) - return 0 - else - user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]\n[user.gender == MALE ? "He" : "She"] seems to perk up slightly at the readout." ,\ - "The results of the scan pique your interest.",\ - "You hear a faint hum of electrical equipment, and someone making a thoughtful noise.") - flick("forensic2",src) - return 0 - return - - proc/add_data(atom/A as mob|obj|turf|area) - //I love associative lists. - var/list/data_entry = stored["\ref [A]"] - if(islist(data_entry)) //Yay, it was already stored! - //Merge the fingerprints. - var/list/data_prints = data_entry[1] - for(var/print in A.fingerprints) - var/merged_print = data_prints[print] - if(!merged_print) - data_prints[print] = A.fingerprints[print] - else - data_prints[print] = stringmerge(data_prints[print],A.fingerprints[print]) - - //Now the fibers - var/list/fibers = data_entry[2] - if(!fibers) - fibers = list() - if(A.suit_fibers && A.suit_fibers.len) - for(var/j = 1, j <= A.suit_fibers.len, j++) //Fibers~~~ - if(!fibers.Find(A.suit_fibers[j])) //It isn't! Add! - fibers += A.suit_fibers[j] - var/list/blood = data_entry[3] - if(!blood) - blood = list() - if(A.blood_DNA && A.blood_DNA.len) - for(var/main_blood in A.blood_DNA) - if(!blood[main_blood]) - blood[main_blood] = A.blood_DNA[blood] - return 1 - var/list/sum_list[4] //Pack it back up! - sum_list[1] = A.fingerprints ? A.fingerprints.Copy() : null - sum_list[2] = A.suit_fibers ? A.suit_fibers.Copy() : null - sum_list[3] = A.blood_DNA ? A.blood_DNA.Copy() : null - sum_list[4] = "\The [A] in \the [get_area(A)]" - stored["\ref [A]"] = sum_list - return 0 - -/obj/item/device/detective_scanner/forger - var/list/custom_forgery[3] - var/forging = 0 - - New() - ..() - custom_forgery[1] = list() - custom_forgery[2] = list() - custom_forgery[3] = list() - - attack_self(var/mob/user as mob) - var/list/customprints = list() - var/list/customfiber = list() - var/list/customblood = list() - if(forging) - user << "\red You are already forging evidence" - return 0 - clear_forgery() - //fingerprint loop - while(1) - var/print = html_encode(input(usr,"Please enter a custom fingerprint or hit cancel to finish fingerprints") as text|null) - if(!usr.client) - forging = 0 - break - if(!print ) - break - customprints[print] = print - while(1) - var/fiber = html_encode(input(usr,"Please enter a custom fiber/material trace or hit cancel to finish fibers/materials") as text|null) - if(!usr.client) - forging = 0 - break - if(!fiber) - break - customfiber[fiber] = null - while(1) - var/blood = html_encode(input(usr,"Please enter a custom Blood DNA or hit cancel to finish forging") as text|null) - var/bloodtype = html_encode(input(usr,"Please enter a custom Blood Type") as text|null) - if(!usr.client) - forging = 0 - break - if(!blood) - break - customblood[blood] = bloodtype - forging = 0 - if(!customprints.len && !customfiber.len) - user << "\blue No forgery saved." - return - user << "\blue Forgery saved and will be tied to the next applicable scanned item." - custom_forgery[1] = customprints ? customprints.Copy() : null - custom_forgery[2] = customfiber ? customfiber.Copy() : null - custom_forgery[3] = customblood ? customblood.Copy() : null - -//shameless copy pasting - afterattack(atom/A as obj|turf|area, mob/user as mob) - var/list/custom_finger = list() - var/list/custom_fiber = list() - var/list/custom_blood = list() - - if(custom_forgery) - custom_finger = custom_forgery[1] - custom_fiber = custom_forgery[2] - custom_blood = custom_forgery[3] - - if(!in_range(A,user)) + if(!scanning) + // Can remotely scan objects and mobs. + if(!in_range(A, user) && !(A in view(world.view, user))) return if(loc != user) return - if(istype(A,/obj/machinery/computer/forensic_scanning)) //breaks shit. - return - if(istype(A,/obj/item/weapon/f_card)) - user << "The scanner displays on the screen: \"ERROR 43: Object on Excluded Object List.\"" - return - add_fingerprint(user) + scanning = 1 + + user.visible_message("\The [user] points the [src.name] at \the [A] and performs a forensic scan.") + user << "You scan \the [A]. The scanner is now analysing the results..." - //Special case for blood splaters. - if (istype(A, /obj/effect/decal/cleanable/blood) || istype(A, /obj/effect/rune)) - if(!isnull(A.blood_DNA)) - for(var/blood in A.blood_DNA) - user << "\blue Blood type: [A.blood_DNA[blood]]\nDNA: [blood]" - return + // GATHER INFORMATION - //General - if ((!A.fingerprints || !A.fingerprints.len) && !A.suit_fibers && !A.blood_DNA) - if(!custom_finger.len && !custom_fiber.len && !custom_blood.len) - user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\ - "\blue Unable to locate any fingerprints, materials, fibers, or blood on [A]!",\ - "You hear a faint hum of electrical equipment.") - return 0 + //Make our lists + var/list/fingerprints = list() + var/list/blood = list() + var/list/fibers = list() + var/list/reagents = list() + + var/target_name = A.name + + // Start gathering + + if(A.blood_DNA && A.blood_DNA.len) + blood = A.blood_DNA.Copy() + + if(A.suit_fibers && A.suit_fibers.len) + fibers = A.suit_fibers.Copy() + + if(ishuman(A)) + + var/mob/living/carbon/human/H = A + if (istype(H.dna, /datum/dna) && !H.gloves) + fingerprints += md5(H.dna.uni_identity) + + else if(!ismob(A)) + + if(A.fingerprints && A.fingerprints.len) + fingerprints = A.fingerprints.Copy() + + // Only get reagents from non-mobs. + if(A.reagents && A.reagents.reagent_list.len) + + for(var/datum/reagent/R in A.reagents.reagent_list) + reagents[R.name] = R.volume + + // Get blood data from the blood reagent. + if(istype(R, /datum/reagent/blood)) + + if(R.data["blood_DNA"] && R.data["blood_type"]) + var/blood_DNA = R.data["blood_DNA"] + var/blood_type = R.data["blood_type"] + blood[blood_DNA] = blood_type + + // We gathered everything. Create a fork and slowly display the results to the holder of the scanner. + + spawn(0) + + var/found_something = 0 + add_log("[worldtime2text()][get_timestamp()] - [target_name]", 0) + + // Fingerprints + if(fingerprints && fingerprints.len) + sleep(30) + add_log("Prints:") + for(var/finger in fingerprints) + add_log("[finger]") + found_something = 1 + + // Blood + if (blood && blood.len) + sleep(30) + add_log("Blood:") + found_something = 1 + for(var/B in blood) + add_log("Type: [blood[B]] DNA: [B]") + + //Fibers + if(fibers && fibers.len) + sleep(30) + add_log("Fibers:") + for(var/fiber in fibers) + add_log("[fiber]") + found_something = 1 + + //Reagents + if(reagents && reagents.len) + sleep(30) + add_log("Reagents:") + for(var/R in reagents) + add_log("Reagent: [R] Volume: [reagents[R]]") + found_something = 1 + + // Get a new user + var/mob/holder = null + if(ismob(src.loc)) + holder = src.loc + + if(!found_something) + add_log("# No forensic traces found #", 0) // Don't display this to the holder user + if(holder) + holder << "Unable to locate any fingerprints, materials, fibers, or blood on \the [target_name]!" else - user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\ - "\blue Unable to locate any fingerprints, materials, fibers, or blood on [A], loading custom forgery instead.",\ - "You hear a faint hum of electrical equipment.") + if(holder) + holder << "You finish scanning \the [target_name]." - - if(add_data(A)) - user << "\blue Object already in internal memory. Consolidating data..." + add_log("---------------------------------------------------------", 0) + scanning = 0 return +/obj/item/device/detective_scanner/proc/add_log(var/msg, var/broadcast = 1) + if(scanning) + if(broadcast && ismob(loc)) + var/mob/M = loc + M << msg + log += "  [msg]" + else + CRASH("[src] \ref[src] is adding a log when it was never put in scanning mode!") - //PRINTS - if(!A.fingerprints || !A.fingerprints.len) - if(A.fingerprints) - del(A.fingerprints) - if(custom_finger.len) - user << "\blue Isolated [custom_finger.len] fingerprints: Data Stored: Scan with Hi-Res Forensic Scanner to retrieve." - user << "\blue   Found [custom_finger.len] intact prints" - for(var/i in custom_finger) - user << "\blue     [i]" - else if(A.fingerprints && A.fingerprints.len) - user << "\blue Isolated [A.fingerprints.len] fingerprints: Data Stored: Scan with Hi-Res Forensic Scanner to retrieve." - var/list/complete_prints = list() - for(var/i in A.fingerprints) - var/print = A.fingerprints[i] - if(stringpercent(print) <= FINGERPRINT_COMPLETE) - complete_prints += print - if(complete_prints.len < 1) - user << "\blue   No intact prints found" - else - user << "\blue   Found [complete_prints.len] intact prints" - for(var/i in complete_prints) - user << "\blue     [i]" - - //FIBERS - if(custom_fiber.len) - user << "\blue Forged Fibers/Materials Data Found: Scan with Hi-Res Forensic Scanner to retrieve." - else if(A.suit_fibers) - user << "\blue Fibers/Materials Data Stored: Scan with Hi-Res Forensic Scanner to retrieve." - - - //Blood - if(custom_blood.len) - user << "\blue Forged Blood found. Analysing..." - spawn(15) - for(var/blood in custom_blood) - user << "Blood type: \red [custom_blood[blood]] \t \black DNA: \red [blood]" - else if (A.blood_DNA) - user << "\blue Blood found on [A]. Analysing..." - spawn(15) - for(var/blood in A.blood_DNA) - user << "Blood type: \red [A.blood_DNA[blood]] \t \black DNA: \red [blood]" - return - - add_data(atom/A as mob|obj|turf|area) - //I love associative lists. - var/list/data_entry = stored["\ref [A]"] - var/list/custom_finger = list() - var/list/custom_fiber = list() - var/list/custom_blood = list() - - if(custom_forgery) - custom_finger = custom_forgery[1] - custom_fiber = custom_forgery[2] - custom_blood = custom_forgery[3] - - if(islist(data_entry)) //Yay, it was already stored! - //Merge the fingerprints. - var/list/data_prints = data_entry[1] - if(custom_finger.len) - for(var/print in custom_finger) - var/merged_print = data_prints[print] - if(!merged_print) - data_prints[print] = custom_finger - else - data_prints[print] = stringmerge(data_prints[print],custom_finger[print]) - else - for(var/print in A.fingerprints) - var/merged_print = data_prints[print] - if(!merged_print) - data_prints[print] = A.fingerprints[print] - else - data_prints[print] = stringmerge(data_prints[print],A.fingerprints[print]) - - //Now the fibers - var/list/fibers = data_entry[2] - if(!fibers) - fibers = list() - if(custom_fiber.len) - for(var/j = 1, j <= custom_fiber.len, j++) //Fibers~~~ - if(!fibers.Find(custom_fiber[j])) //It isn't! Add! - fibers += custom_fiber[j] - - else if(A.suit_fibers && A.suit_fibers.len) - for(var/j = 1, j <= A.suit_fibers.len, j++) //Fibers~~~ - if(!fibers.Find(A.suit_fibers[j])) //It isn't! Add! - fibers += A.suit_fibers[j] - var/list/blood = data_entry[3] - if(!blood) - blood = list() - if(custom_blood.len) - for(var/main_blood in custom_blood) - if(!blood[main_blood]) - blood[main_blood] = custom_blood[blood] - else if(A.blood_DNA && A.blood_DNA.len) - for(var/main_blood in A.blood_DNA) - if(!blood[main_blood]) - blood[main_blood] = A.blood_DNA[blood] - return 1 - var/list/sum_list[4] //Pack it back up! - if(custom_finger.len || custom_fiber.len || custom_blood.len) - sum_list[1] = custom_finger ? custom_finger.Copy() : null - sum_list[2] = custom_fiber ? custom_fiber.Copy() : null - sum_list[3] = custom_blood ? custom_blood.Copy() : null - else - sum_list[1] = A.fingerprints ? A.fingerprints.Copy() : null - sum_list[2] = A.suit_fibers ? A.suit_fibers.Copy() : null - sum_list[3] = A.blood_DNA ? A.blood_DNA.Copy() : null - sum_list[4] = "\The [A] in \the [get_area(A)]" - stored["\ref [A]"] = sum_list - clear_forgery() - return 0 - - proc/clear_forgery() - if(custom_forgery.len) - custom_forgery[1] = list() - custom_forgery[2] = list() - custom_forgery[3] = list() \ No newline at end of file +/proc/get_timestamp() + return time2text(world.time + 432000, ":ss") \ No newline at end of file diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 1a95fb5595f..87ffd249bdb 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -9,7 +9,7 @@ while sprite_sheets should be used for "flexible" clothing items that do not need to be refitted (e.g. vox wearing jumpsuits). */ var/list/sprite_sheets_refit = null - + //BS12: Species-restricted clothing check. /obj/item/clothing/mob_can_equip(M as mob, slot) @@ -53,12 +53,12 @@ icon_override = sprite_sheets[target_species] else icon_override = initial(icon_override) - + if (sprite_sheets_obj && (target_species in sprite_sheets_obj)) icon = sprite_sheets_obj[target_species] else icon = initial(icon) - + //Ears: currently only used for headsets and earmuffs /obj/item/clothing/ears name = "ears" @@ -153,6 +153,7 @@ BLIND // can't see anything body_parts_covered = HANDS slot_flags = SLOT_GLOVES attack_verb = list("challenged") + var/transfer_prints = FALSE var/pickpocket = 0 //Master pickpocket? var/clipped = 0 species_restricted = list("exclude","Unathi","Tajaran") @@ -181,7 +182,7 @@ BLIND // can't see anything set src in usr ..() return - + /obj/item/clothing/under/proc/set_sensors(mob/usr as mob) var/mob/M = usr if (istype(M, /mob/dead/)) return diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 6e42aac7e44..6aa8c1c8d7d 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -63,6 +63,7 @@ siemens_coefficient = 0.30 permeability_coefficient = 0.01 _color="white" + transfer_prints = TRUE species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/mask.dmi' diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm deleted file mode 100644 index 48d4812bac1..00000000000 --- a/code/modules/detectivework/scanner.dm +++ /dev/null @@ -1,401 +0,0 @@ -//CONTAINS: Detective's Scanner - - -/obj/item/device/detective_scanner - name = "Scanner" - desc = "Used to scan objects for DNA and fingerprints." - icon_state = "forensic1" - var/amount = 20.0 - var/list/stored = list() - w_class = 3.0 - item_state = "electronic" - flags = FPRINT | TABLEPASS | CONDUCT | NOBLUDGEON - slot_flags = SLOT_BELT - - attackby(obj/item/weapon/f_card/W as obj, mob/user as mob) - ..() - if (istype(W, /obj/item/weapon/f_card)) - if (W.fingerprints) - return - if (src.amount == 20) - return - if (W.amount + src.amount > 20) - src.amount = 20 - W.amount = W.amount + src.amount - 20 - else - src.amount += W.amount - //W = null - del(W) - add_fingerprint(user) - if (W) - W.add_fingerprint(user) - return - - attack(mob/living/carbon/human/M as mob, mob/user as mob) - if (!ishuman(M)) - user << "\red [M] is not human and cannot have the fingerprints." - flick("forensic0",src) - return 0 - if (( !( istype(M.dna, /datum/dna) ) || M.gloves) ) - user << "\blue No fingerprints found on [M]" - flick("forensic0",src) - return 0 - else - if (src.amount < 1) - user << text("\blue Fingerprints scanned on [M]. Need more cards to print.") - else - src.amount-- - var/obj/item/weapon/f_card/F = new /obj/item/weapon/f_card( user.loc ) - F.amount = 1 - F.add_fingerprint(M) - F.icon_state = "fingerprint1" - F.name = text("FPrintC- '[M.name]'") - - user << "\blue Done printing." - user << "\blue [M]'s Fingerprints: [md5(M.dna.uni_identity)]" - if ( !M.blood_DNA || !M.blood_DNA.len ) - user << "\blue No blood found on [M]" - if(M.blood_DNA) - del(M.blood_DNA) - else - user << "\blue Blood found on [M]. Analysing..." - spawn(15) - for(var/blood in M.blood_DNA) - user << "\blue Blood type: [M.blood_DNA[blood]]\nDNA: [blood]" - return - - afterattack(atom/A as obj|turf|area, mob/user as mob, proximity) - if(!proximity) return - if(loc != user) - return - if(istype(A,/obj/machinery/computer/forensic_scanning)) //breaks shit. - return - if(istype(A,/obj/item/weapon/f_card)) - user << "The scanner displays on the screen: \"ERROR 43: Object on Excluded Object List.\"" - flick("forensic0",src) - return - - add_fingerprint(user) - - - //Special case for blood splaters. - if (istype(A, /obj/effect/decal/cleanable/blood) || istype(A, /obj/effect/rune) || istype(A, /obj/effect/decal/cleanable/blood/gibs)) - if(!isnull(A.blood_DNA)) - for(var/blood in A.blood_DNA) - user << "\blue Blood type: [A.blood_DNA[blood]]\nDNA: [blood]" - flick("forensic2",src) - return - - //General - if ((!A.fingerprints || !A.fingerprints.len) && !A.suit_fibers && !A.blood_DNA) - user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\ - "\blue Unable to locate any fingerprints, materials, fibers, or blood on [A]!",\ - "You hear a faint hum of electrical equipment.") - flick("forensic0",src) - return 0 - - if(add_data(A)) - user << "\blue Object already in internal memory. Consolidating data..." - flick("forensic2",src) - return - - - //PRINTS - if(!A.fingerprints || !A.fingerprints.len) - if(A.fingerprints) - del(A.fingerprints) - else - user << "\blue Isolated [A.fingerprints.len] fingerprints: Data Stored: Scan with Hi-Res Forensic Scanner to retrieve." - var/list/complete_prints = list() - for(var/i in A.fingerprints) - var/print = A.fingerprints[i] - if(stringpercent(print) <= FINGERPRINT_COMPLETE) - complete_prints += print - if(complete_prints.len < 1) - user << "\blue   No intact prints found" - else - user << "\blue   Found [complete_prints.len] intact prints" - for(var/i in complete_prints) - user << "\blue     [i]" - - //FIBERS - if(A.suit_fibers) - user << "\blue Fibers/Materials Data Stored: Scan with Hi-Res Forensic Scanner to retrieve." - flick("forensic2",src) - - //Blood - if (A.blood_DNA) - user << "\blue Blood found on [A]. Analysing..." - spawn(15) - for(var/blood in A.blood_DNA) - user << "Blood type: \red [A.blood_DNA[blood]] \t \black DNA: \red [blood]" - if(prob(80) || !A.fingerprints) - user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\ - "You finish scanning \the [A].",\ - "You hear a faint hum of electrical equipment.") - flick("forensic2",src) - return 0 - else - user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]\n[user.gender == MALE ? "He" : "She"] seems to perk up slightly at the readout." ,\ - "The results of the scan pique your interest.",\ - "You hear a faint hum of electrical equipment, and someone making a thoughtful noise.") - flick("forensic2",src) - return 0 - return - - proc/add_data(atom/A as mob|obj|turf|area) - //I love associative lists. - var/list/data_entry = stored["\ref [A]"] - if(islist(data_entry)) //Yay, it was already stored! - //Merge the fingerprints. - var/list/data_prints = data_entry[1] - for(var/print in A.fingerprints) - var/merged_print = data_prints[print] - if(!merged_print) - data_prints[print] = A.fingerprints[print] - else - data_prints[print] = stringmerge(data_prints[print],A.fingerprints[print]) - - //Now the fibers - var/list/fibers = data_entry[2] - if(!fibers) - fibers = list() - if(A.suit_fibers && A.suit_fibers.len) - for(var/j = 1, j <= A.suit_fibers.len, j++) //Fibers~~~ - if(!fibers.Find(A.suit_fibers[j])) //It isn't! Add! - fibers += A.suit_fibers[j] - var/list/blood = data_entry[3] - if(!blood) - blood = list() - if(A.blood_DNA && A.blood_DNA.len) - for(var/main_blood in A.blood_DNA) - if(!blood[main_blood]) - blood[main_blood] = A.blood_DNA[blood] - return 1 - var/list/sum_list[4] //Pack it back up! - sum_list[1] = A.fingerprints ? A.fingerprints.Copy() : null - sum_list[2] = A.suit_fibers ? A.suit_fibers.Copy() : null - sum_list[3] = A.blood_DNA ? A.blood_DNA.Copy() : null - sum_list[4] = "\The [A] in \the [get_area(A)]" - stored["\ref [A]"] = sum_list - return 0 - -/obj/item/device/detective_scanner/forger - var/list/custom_forgery[3] - var/forging = 0 - - New() - ..() - custom_forgery[1] = list() - custom_forgery[2] = list() - custom_forgery[3] = list() - - attack_self(var/mob/user as mob) - var/list/customprints = list() - var/list/customfiber = list() - var/list/customblood = list() - if(forging) - user << "\red You are already forging evidence" - return 0 - clear_forgery() - //fingerprint loop - while(1) - var/print = html_encode(input(usr,"Please enter a custom fingerprint or hit cancel to finish fingerprints") as text|null) - if(!usr.client) - forging = 0 - break - if(!print ) - break - customprints[print] = print - while(1) - var/fiber = html_encode(input(usr,"Please enter a custom fiber/material trace or hit cancel to finish fibers/materials") as text|null) - if(!usr.client) - forging = 0 - break - if(!fiber) - break - customfiber[fiber] = null - while(1) - var/blood = html_encode(input(usr,"Please enter a custom Blood DNA or hit cancel to finish forging") as text|null) - var/bloodtype = html_encode(input(usr,"Please enter a custom Blood Type") as text|null) - if(!usr.client) - forging = 0 - break - if(!blood) - break - customblood[blood] = bloodtype - forging = 0 - if(!customprints.len && !customfiber.len) - user << "\blue No forgery saved." - return - user << "\blue Forgery saved and will be tied to the next applicable scanned item." - custom_forgery[1] = customprints ? customprints.Copy() : null - custom_forgery[2] = customfiber ? customfiber.Copy() : null - custom_forgery[3] = customblood ? customblood.Copy() : null - -//shameless copy pasting - afterattack(atom/A as obj|turf|area, mob/user as mob) - var/list/custom_finger = list() - var/list/custom_fiber = list() - var/list/custom_blood = list() - - if(custom_forgery) - custom_finger = custom_forgery[1] - custom_fiber = custom_forgery[2] - custom_blood = custom_forgery[3] - - if(!in_range(A,user)) - return - if(loc != user) - return - if(istype(A,/obj/machinery/computer/forensic_scanning)) //breaks shit. - return - if(istype(A,/obj/item/weapon/f_card)) - user << "The scanner displays on the screen: \"ERROR 43: Object on Excluded Object List.\"" - return - - add_fingerprint(user) - - - //Special case for blood splaters. - if (istype(A, /obj/effect/decal/cleanable/blood) || istype(A, /obj/effect/rune)) - if(!isnull(A.blood_DNA)) - for(var/blood in A.blood_DNA) - user << "\blue Blood type: [A.blood_DNA[blood]]\nDNA: [blood]" - return - - //General - if ((!A.fingerprints || !A.fingerprints.len) && !A.suit_fibers && !A.blood_DNA) - if(!custom_finger.len && !custom_fiber.len && !custom_blood.len) - user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\ - "\blue Unable to locate any fingerprints, materials, fibers, or blood on [A]!",\ - "You hear a faint hum of electrical equipment.") - return 0 - else - user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\ - "\blue Unable to locate any fingerprints, materials, fibers, or blood on [A], loading custom forgery instead.",\ - "You hear a faint hum of electrical equipment.") - - - if(add_data(A)) - user << "\blue Object already in internal memory. Consolidating data..." - return - - - //PRINTS - if(!A.fingerprints || !A.fingerprints.len) - if(A.fingerprints) - del(A.fingerprints) - if(custom_finger.len) - user << "\blue Isolated [custom_finger.len] fingerprints: Data Stored: Scan with Hi-Res Forensic Scanner to retrieve." - user << "\blue   Found [custom_finger.len] intact prints" - for(var/i in custom_finger) - user << "\blue     [i]" - else if(A.fingerprints && A.fingerprints.len) - user << "\blue Isolated [A.fingerprints.len] fingerprints: Data Stored: Scan with Hi-Res Forensic Scanner to retrieve." - var/list/complete_prints = list() - for(var/i in A.fingerprints) - var/print = A.fingerprints[i] - if(stringpercent(print) <= FINGERPRINT_COMPLETE) - complete_prints += print - if(complete_prints.len < 1) - user << "\blue   No intact prints found" - else - user << "\blue   Found [complete_prints.len] intact prints" - for(var/i in complete_prints) - user << "\blue     [i]" - - //FIBERS - if(custom_fiber.len) - user << "\blue Forged Fibers/Materials Data Found: Scan with Hi-Res Forensic Scanner to retrieve." - else if(A.suit_fibers) - user << "\blue Fibers/Materials Data Stored: Scan with Hi-Res Forensic Scanner to retrieve." - - - //Blood - if(custom_blood.len) - user << "\blue Forged Blood found. Analysing..." - spawn(15) - for(var/blood in custom_blood) - user << "Blood type: \red [custom_blood[blood]] \t \black DNA: \red [blood]" - else if (A.blood_DNA) - user << "\blue Blood found on [A]. Analysing..." - spawn(15) - for(var/blood in A.blood_DNA) - user << "Blood type: \red [A.blood_DNA[blood]] \t \black DNA: \red [blood]" - return - - add_data(atom/A as mob|obj|turf|area) - //I love associative lists. - var/list/data_entry = stored["\ref [A]"] - var/list/custom_finger = list() - var/list/custom_fiber = list() - var/list/custom_blood = list() - - if(custom_forgery) - custom_finger = custom_forgery[1] - custom_fiber = custom_forgery[2] - custom_blood = custom_forgery[3] - - if(islist(data_entry)) //Yay, it was already stored! - //Merge the fingerprints. - var/list/data_prints = data_entry[1] - if(custom_finger.len) - for(var/print in custom_finger) - var/merged_print = data_prints[print] - if(!merged_print) - data_prints[print] = custom_finger - else - data_prints[print] = stringmerge(data_prints[print],custom_finger[print]) - else - for(var/print in A.fingerprints) - var/merged_print = data_prints[print] - if(!merged_print) - data_prints[print] = A.fingerprints[print] - else - data_prints[print] = stringmerge(data_prints[print],A.fingerprints[print]) - - //Now the fibers - var/list/fibers = data_entry[2] - if(!fibers) - fibers = list() - if(custom_fiber.len) - for(var/j = 1, j <= custom_fiber.len, j++) //Fibers~~~ - if(!fibers.Find(custom_fiber[j])) //It isn't! Add! - fibers += custom_fiber[j] - - else if(A.suit_fibers && A.suit_fibers.len) - for(var/j = 1, j <= A.suit_fibers.len, j++) //Fibers~~~ - if(!fibers.Find(A.suit_fibers[j])) //It isn't! Add! - fibers += A.suit_fibers[j] - var/list/blood = data_entry[3] - if(!blood) - blood = list() - if(custom_blood.len) - for(var/main_blood in custom_blood) - if(!blood[main_blood]) - blood[main_blood] = custom_blood[blood] - else if(A.blood_DNA && A.blood_DNA.len) - for(var/main_blood in A.blood_DNA) - if(!blood[main_blood]) - blood[main_blood] = A.blood_DNA[blood] - return 1 - var/list/sum_list[4] //Pack it back up! - if(custom_finger.len || custom_fiber.len || custom_blood.len) - sum_list[1] = custom_finger ? custom_finger.Copy() : null - sum_list[2] = custom_fiber ? custom_fiber.Copy() : null - sum_list[3] = custom_blood ? custom_blood.Copy() : null - else - sum_list[1] = A.fingerprints ? A.fingerprints.Copy() : null - sum_list[2] = A.suit_fibers ? A.suit_fibers.Copy() : null - sum_list[3] = A.blood_DNA ? A.blood_DNA.Copy() : null - sum_list[4] = "\The [A] in \the [get_area(A)]" - stored["\ref [A]"] = sum_list - clear_forgery() - return 0 - - proc/clear_forgery() - if(custom_forgery.len) - custom_forgery[1] = list() - custom_forgery[2] = list() - custom_forgery[3] = list() \ No newline at end of file diff --git a/code/modules/mining/surprises/vg.dm b/code/modules/mining/surprises/vg.dm index 120df968390..ade364ef084 100644 --- a/code/modules/mining/surprises/vg.dm +++ b/code/modules/mining/surprises/vg.dm @@ -120,14 +120,14 @@ w_cand -= weed_turf if(weed_turf.density) continue - if(locate(/obj/effect/alien) in weed_turf) + if(locate(/obj/structure/alien) in weed_turf) continue if(weed_turf && !egged) - new /obj/effect/alien/weeds/node(weed_turf) + new /obj/structure/alien/weeds/node(weed_turf) weeds += weed_turf break for(var/e=0;e= maxHealth - getCloneLoss()) adjustToxLoss(plasma_rate) else @@ -79,7 +79,7 @@ if(!environment) return - + var/loc_temp = T0C if(istype(loc, /obj/mecha)) var/obj/mecha/M = loc @@ -193,7 +193,7 @@ /mob/living/carbon/alien/setDNA() return - + /mob/living/carbon/alien/verb/nightvisiontoggle() set name = "Toggle Night Vision" set category = "Alien" @@ -243,7 +243,7 @@ Des: Removes all infected images from the alien. /mob/living/carbon/alien/larva/updatePlasmaDisplay() return - + #undef HEAT_DAMAGE_LEVEL_1 #undef HEAT_DAMAGE_LEVEL_2 #undef HEAT_DAMAGE_LEVEL_3 diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index c496d107000..4efc0c56dc6 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -23,25 +23,15 @@ Doesn't work on other aliens/AI.*/ set desc = "Plants some alien weeds" set category = "Alien" - if(locate(/obj/effect/alien/weeds/node) in get_turf(src)) + if(locate(/obj/structure/alien/weeds/node) in get_turf(src)) src << "There's already a weed node here." - return - - if(constructing) - src << "You are already constructing something." return - + if(powerc(50,1)) - constructing = 1 - stunned = 5 - src << "You start planting a weed node." - spawn(30) - adjustToxLoss(-50) - for(var/mob/O in viewers(src, null)) - O.show_message(text("[src] has planted some alien weeds!"), 1) - new /obj/effect/alien/weeds/node(loc) - constructing = 0 - stunned = 0 + adjustToxLoss(-50) + for(var/mob/O in viewers(src, null)) + O.show_message(text("[src] has planted some alien weeds!"), 1) + new /obj/structure/alien/weeds/node(loc) return /mob/living/carbon/alien/humanoid/verb/whisp(mob/M as mob in oview()) @@ -106,7 +96,7 @@ Doesn't work on other aliens/AI.*/ return adjustToxLoss(-200) - new /obj/effect/alien/acid(get_turf(O), O) + new /obj/effect/acid(get_turf(O), O) visible_message("[src] vomits globs of vile stuff all over [O]. It begins to sizzle and melt under the bubbling mess of acid!") else src << "Target is too far away." @@ -136,37 +126,24 @@ Doesn't work on other aliens/AI.*/ return /mob/living/carbon/alien/humanoid/proc/resin() // -- TLE - set name = "Secrete Resin (75)" + set name = "Secrete Resin (55)" set desc = "Secrete tough malleable resin." set category = "Alien" - if(powerc(75)) - if(constructing) - src << "You are already constructing something." - return - var/choice = input("Choose what you wish to shape.","Resin building") as null|anything in list("resin door","resin wall","resin membrane","resin nest") //would do it through typesof but then the player choice would have the type path and we don't want the internal workings to be exposed ICly - Urist - - if(!choice || !powerc(75)) - return - - constructing = 1 - stunned = 5 - src << "You start shaping a [choice]." - spawn(60) - adjustToxLoss(-75) - for(var/mob/O in viewers(src, null)) - O.show_message(text("[src] vomits up a thick purple substance and shapes it!"), 1) - switch(choice) - if("resin door") - new /obj/structure/mineral_door/resin(loc) - if("resin wall") - new /obj/effect/alien/resin/wall(loc) - if("resin membrane") - new /obj/effect/alien/resin/membrane(loc) - if("resin nest") - new /obj/structure/stool/bed/nest(loc) - constructing = 0 - stunned = 0 + if(powerc(55)) + var/choice = input("Choose what you wish to shape.","Resin building") as null|anything in list("resin wall","resin membrane","resin nest") //would do it through typesof but then the player choice would have the type path and we don't want the internal workings to be exposed ICly - Urist + + if(!choice || !powerc(55)) return + adjustToxLoss(-55) + for(var/mob/O in viewers(src, null)) + O.show_message(text("[src] vomits up a thick purple substance and shapes it!"), 1) + switch(choice) + if("resin wall") + new /obj/structure/alien/resin/wall(loc) + if("resin membrane") + new /obj/structure/alien/resin/membrane(loc) + if("resin nest") + new /obj/structure/stool/bed/nest(loc) return /mob/living/carbon/alien/humanoid/verb/regurgitate() diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm index b8f412a488e..a06482242c2 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm @@ -7,7 +7,7 @@ max_plasma = 250 icon_state = "aliens_s" plasma_rate = 10 - + /mob/living/carbon/alien/humanoid/sentinel/large name = "alien praetorian" icon = 'icons/mob/alienlarge.dmi' @@ -23,8 +23,8 @@ maxHealth = 200 health = 200 move_delay_add = 1 - large = 1 - + large = 1 + /mob/living/carbon/alien/humanoid/sentinel/large/update_icons() lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again update_hud() //TODO: remove the need for this to be here @@ -38,7 +38,7 @@ icon_state = "prat_s" for(var/image/I in overlays_standing) overlays += I - + /mob/living/carbon/alien/humanoid/sentinel/New() var/datum/reagents/R = new/datum/reagents(100) reagents = R @@ -70,7 +70,7 @@ else healths.icon_state = "health6" - +/* /mob/living/carbon/alien/humanoid/sentinel/verb/evolve() // -- TLE set name = "Evolve (250)" set desc = "Become a Praetorian, Royal Guard to the Queen." @@ -89,4 +89,4 @@ new_xeno.mind.name = new_xeno.name del(src) return - \ No newline at end of file +*/ \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/humanoid/empress.dm b/code/modules/mob/living/carbon/alien/humanoid/empress.dm index b8853854594..867804f87c2 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/empress.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/empress.dm @@ -77,26 +77,15 @@ /mob/living/carbon/alien/humanoid/empress/verb/lay_egg() set name = "Lay Egg (250)" set desc = "Lay an egg to produce huggers to impregnate prey with." - set category = "Alien" - - if(locate(/obj/effect/alien/egg) in get_turf(src)) + set category = "Alien" + + if(locate(/obj/structure/alien/egg) in get_turf(src)) src << "There's already an egg here." return - - if(constructing) - src << "You are already constructing something." - return - - if(powerc(250,1))//Can't plant eggs on spess tiles. That's silly. - constructing = 1 - stunned = 5 - src << "You start laying an egg." - spawn(30) - adjustToxLoss(-250) - for(var/mob/O in viewers(src, null)) - O.show_message(text("\green [src] has laid an egg!"), 1) - new /obj/effect/alien/egg(loc) - constructing = 0 - stunned = 0 + + if(powerc(75,1))//Can't plant eggs on spess tiles. That's silly. + adjustToxLoss(-75) + for(var/mob/O in viewers(src, null)) + O.show_message(text("\green [src] has laid an egg!"), 1) + new /obj/structure/alien/egg(loc) return - \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 6b74e420835..1652529c290 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -10,11 +10,10 @@ var/next_attack = 0 update_icon = 1 var/leap_on_click = 0 - var/constructing = 0 //This is fine right now, if we're adding organ specific damage this needs to be updated /mob/living/carbon/alien/humanoid/New() - var/datum/reagents/R = new/datum/reagents(100) + var/datum/reagents/R = new/datum/reagents(1000) reagents = R R.my_atom = src if(name == "alien") @@ -52,15 +51,15 @@ /mob/living/carbon/alien/humanoid/movement_delay() var/tally = 0 if (istype(src, /mob/living/carbon/alien/humanoid/queen)) - tally += 5 + tally += 4 if (istype(src, /mob/living/carbon/alien/humanoid/drone)) - tally += 2 + tally += 0 if (istype(src, /mob/living/carbon/alien/humanoid/sentinel)) - tally += 1 + tally += 0 if (istype(src, /mob/living/carbon/alien/humanoid/hunter)) - tally = -1 // hunters go supersuperfast + tally = -2 // hunters go supersuperfast return (tally + move_delay_add + config.alien_delay) - + /mob/living/carbon/alien/humanoid/Process_Spacemove(var/check_drift = 0) return 1 @@ -250,7 +249,7 @@ if (M_HULK in M.mutations)//M_HULK SMASH damage += 14 spawn(0) - Weaken(damage) // Why can a hulk knock an alien out but not knock out a human? Damage is robust enough. + Paralyse(1) step_away(src,M,15) sleep(3) step_away(src,M,15) @@ -259,7 +258,7 @@ if ((O.client && !( O.blinded ))) O.show_message(text("\red [] has punched []!", M, src), 1) if (damage > 9||prob(5))//Regular humans have a very small chance of weakening an alien. - Weaken(1,5) + Paralyse(2) for(var/mob/O in viewers(M, null)) if ((O.client && !( O.blinded ))) O.show_message(text("\red [] has weakened []!", M, src), 1, "\red You hear someone fall.", 2) @@ -274,7 +273,7 @@ if ("disarm") if (!lying) if (prob(5))//Very small chance to push an alien down. - Weaken(2) + Paralyse(2) playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) @@ -321,4 +320,4 @@ /mob/living/carbon/alien/humanoid/canBeHandcuffed() - return 1 + return 1 diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 082431574d4..2c4ba4a7e43 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -7,8 +7,6 @@ status_flags = CANPARALYSE heal_rate = 5 plasma_rate = 20 - move_delay_add = 2 - max_plasma = 1000 large = 1 /mob/living/carbon/alien/humanoid/queen/New() @@ -58,29 +56,19 @@ //Queen verbs /mob/living/carbon/alien/humanoid/queen/verb/lay_egg() - set name = "Lay Egg (250)" + set name = "Lay Egg (75)" set desc = "Lay an egg to produce huggers to impregnate prey with." set category = "Alien" - if(locate(/obj/effect/alien/egg) in get_turf(src)) + if(locate(/obj/structure/alien/egg) in get_turf(src)) src << "There's already an egg here." return - - if(constructing) - src << "You are already constructing something." - return - - if(powerc(250,1))//Can't plant eggs on spess tiles. That's silly. - constructing = 1 - stunned = 5 - src << "You start laying an egg." - spawn(60) - adjustToxLoss(-250) - for(var/mob/O in viewers(src, null)) - O.show_message(text("[src] has laid an egg!"), 1) - new /obj/effect/alien/egg(loc) - constructing = 0 - stunned = 0 - return + + if(powerc(75,1))//Can't plant eggs on spess tiles. That's silly. + adjustToxLoss(-75) + for(var/mob/O in viewers(src, null)) + O.show_message(text("[src] has laid an egg!"), 1) + new /obj/structure/alien/egg(loc) + return /mob/living/carbon/alien/humanoid/queen/large @@ -104,7 +92,7 @@ overlays += I - +/* /mob/living/carbon/alien/humanoid/queen/verb/evolve() // -- TLE set name = "Evolve (1000)" set desc = "The ultimate transformation. Become an alien Empress. Only one empress can exist at a time." @@ -134,3 +122,4 @@ src << "We already have an alive empress." return +*/ \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 9165334ab2d..5515c951514 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -2,7 +2,7 @@ name = "alien larva" real_name = "alien larva" icon_state = "larva0" - pass_flags = PASSTABLE + pass_flags = PASSTABLE | PASSMOB maxHealth = 30 health = 30 diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 6b8cb9477d6..20f31ae24e5 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -514,11 +514,11 @@
Suit Storage: [(s_store ? s_store : "Nothing")]

Left Pocket ([l_store ? (pickpocket ? l_store.name : "Full") : "Empty"])
Right Pocket ([r_store ? (pickpocket ? r_store.name : "Full") : "Empty"]) -
Empty Both Pockets +
Empty Both Pockets

[(handcuffed ? text("Handcuffed") : text("Not Handcuffed"))]
[(legcuffed ? text("Legcuffed") : text(""))] [(suit) ? ((suit.hastie) ? text("
Remove Accessory", src) : "") :] - [(internal ? text("
Remove Internal") : "")] + [(internal ? text("
Remove Internal") : "")]
Remove Splints
Refresh
Close @@ -1602,6 +1602,10 @@ if(istype(idcard, /obj/item/weapon/card/id/syndicate)) threatcount -= 5 + // Pingsky now actually harbors anti-human sentiment! -Dave + if(istype(judgebot, /obj/machinery/bot/secbot/pingsky) && istype(src, /mob/living/carbon/human/human/)) + threatcount += 1 + return threatcount /mob/living/carbon/human/canBeHandcuffed() diff --git a/code/modules/mob/living/carbon/human/human_attackalien.dm b/code/modules/mob/living/carbon/human/human_attackalien.dm index 7d71cd3d029..64d74d916de 100644 --- a/code/modules/mob/living/carbon/human/human_attackalien.dm +++ b/code/modules/mob/living/carbon/human/human_attackalien.dm @@ -39,20 +39,19 @@ apply_damage(damage, BRUTE, affecting, armor_block) if (damage >= 25) visible_message("\red [M] has wounded [src]!") - apply_effect(rand(0.5,3), WEAKEN, armor_block) + apply_effect(4, WEAKEN, armor_block) updatehealth() if("disarm") - if (prob(80)) + var/randn = rand(1, 100) + if (randn <= 80) playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) - Weaken(rand(0.5,3)) + Weaken(5) for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) O.show_message(text("\red [] has tackled down []!", M, src), 1) - if (prob(25)) - M.Weaken(rand(2,4)) else - if (prob(80)) + if (randn <= 99) playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) drop_item() visible_message(text("\red [] disarmed []!", M, src)) diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 04821e153fd..1e695cc2f1c 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -1,6 +1,8 @@ /mob/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if(air_group || (height==0)) return 1 + if(istype(mover) && mover.checkpass(PASSMOB)) + return 1 if(ismob(mover)) var/mob/moving_mob = mover if ((other_mobs && moving_mob.other_mobs)) diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm index 23496fc1f7b..624c2f19e19 100644 --- a/code/modules/organs/blood.dm +++ b/code/modules/organs/blood.dm @@ -73,7 +73,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 // Damaged heart virtually reduces the blood volume, as the blood isn't // being pumped properly anymore. var/datum/organ/internal/heart/heart = internal_organs_by_name["heart"] - + if(heart) if(heart.damage > 1 && heart.damage < heart.min_bruised_damage) blood_volume *= 0.8 @@ -314,13 +314,13 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 return D return res -proc/blood_incompatible(donor,receiver) - if(!donor || !receiver) return 0 - var - donor_antigen = copytext(donor,1,lentext(donor)) - receiver_antigen = copytext(receiver,1,lentext(receiver)) - donor_rh = (findtext(donor,"+")>0) - receiver_rh = (findtext(receiver,"+")>0) +/proc/blood_incompatible(donor,receiver) + + var/donor_antigen = copytext(donor,1,lentext(donor)) + var/receiver_antigen = copytext(receiver,1,lentext(receiver)) + var/donor_rh = findtext("+",donor) + var/receiver_rh = findtext("+",receiver) + if(donor_rh && !receiver_rh) return 1 switch(receiver_antigen) if("A") diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 526a631ef36..2fa168c2afc 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -1505,8 +1505,8 @@ datum O.show_message(text("\blue The fungi are completely dissolved by the solution!"), 1) reaction_obj(var/obj/O, var/volume) - if(istype(O,/obj/effect/alien/weeds/)) - var/obj/effect/alien/weeds/alien_weeds = O + if(istype(O,/obj/structure/alien/weeds/)) + var/obj/structure/alien/weeds/alien_weeds = O alien_weeds.health -= rand(15,35) // Kills alien weeds pretty fast alien_weeds.healthcheck() else if(istype(O,/obj/effect/glowshroom)) //even a small amount is enough to kill it diff --git a/code/setup.dm b/code/setup.dm index 6fa44e39477..67b3535be1f 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -222,6 +222,7 @@ var/MAX_EXPLOSION_RANGE = 14 #define PASSGLASS 2 #define PASSGRILLE 4 #define PASSBLOB 8 +#define PASSMOB 16 //turf-only flags #define NOJAUNT 1 diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index fbd4e4100d3..203ac1ede50 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi index 903e241c1dc..a5e120020a2 100644 Binary files a/icons/mob/alien.dmi and b/icons/mob/alien.dmi differ diff --git a/icons/mob/in-hand/tools.dmi b/icons/mob/in-hand/tools.dmi index f57d831c8c2..eba8ad5fb95 100644 Binary files a/icons/mob/in-hand/tools.dmi and b/icons/mob/in-hand/tools.dmi differ diff --git a/icons/obj/aibots.dmi b/icons/obj/aibots.dmi index 00826a8344b..c5a7bc0fe64 100644 Binary files a/icons/obj/aibots.dmi and b/icons/obj/aibots.dmi differ diff --git a/maps/cyberiad.dmm b/maps/cyberiad.dmm index f1f803b92ba..56c2f38dcc0 100644 --- a/maps/cyberiad.dmm +++ b/maps/cyberiad.dmm @@ -203,7 +203,7 @@ "adU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/carpet,/area/security/hos) "adV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/carpet,/area/security/hos) "adW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) -"adX" = (/obj/structure/table/woodentable,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/item/device/radio,/turf/simulated/floor{icon_state = "dark"},/area/security/hos) +"adX" = (/obj/structure/snowman,/turf/simulated/floor/plating/snow,/area/hallway/primary/fore) "adY" = (/obj/machinery/space_heater,/obj/machinery/light_switch{pixel_x = -25},/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/security/podbay) "adZ" = (/obj/spacepod/sec{req_access_txt = "71"},/turf/simulated/floor/engine,/area/security/podbay) "aea" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/weapon/folder/red,/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "dark"},/area/security/evidence) @@ -1078,11 +1078,11 @@ "auL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/closet{name = "Evidence Closet"},/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/security/detectives_office) "auM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/security/detectives_office) "auN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/obj/structure/table,/obj/item/weapon/folder/red{pixel_y = 3},/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/security/detectives_office) -"auO" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{_color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/table,/obj/item/weapon/fcardholder,/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/security/detectives_office) +"auO" = (/obj/machinery/light,/obj/machinery/computer/secure_data,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) "auP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/security/detectives_office) "auQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/airlock/maintenance{name = "Detective Maintenance"; req_access_txt = "4"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) "auR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"auS" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker) +"auS" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/closet/wardrobe/pjs,/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker) "auT" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker) "auU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker) "auV" = (/obj/structure/closet/secure_closet/personal,/obj/structure/window/basic{dir = 8},/obj/structure/window/basic,/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker) @@ -1104,7 +1104,7 @@ "avl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) "avm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) "avn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) -"avo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/computer/med_data,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) +"avo" = (/obj/machinery/computer/med_data,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) "avp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area) "avq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "avr" = (/obj/machinery/vending/chinese,/turf/simulated/floor/wood,/area/crew_quarters/mrchangs) @@ -1155,7 +1155,7 @@ "awk" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) "awl" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) "awm" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) -"awn" = (/obj/machinery/computer/secure_data,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) +"awn" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{_color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/table,/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/security/detectives_office) "awo" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area) "awp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "awq" = (/obj/structure/stool/bed/chair/wood/wings,/turf/simulated/floor/wood,/area/crew_quarters/mrchangs) @@ -1199,7 +1199,6 @@ "axc" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) "axd" = (/obj/machinery/photocopier,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) "axe" = (/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) -"axf" = (/obj/machinery/computer/forensic_scanning,/obj/machinery/light,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) "axg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "axh" = (/obj/structure/table/woodentable,/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/wood,/area/crew_quarters/mrchangs) "axi" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/wood,/area/crew_quarters/mrchangs) @@ -1542,10 +1541,10 @@ "aDH" = (/obj/machinery/light{dir = 8},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep) "aDI" = (/obj/machinery/light{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "neutral"},/area/crew_quarters/fitness) "aDJ" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor,/area/crew_quarters/fitness) -"aDK" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/fitness) -"aDL" = (/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/fitness) -"aDM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/fitness) -"aDN" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/fitness) +"aDK" = (/obj/structure/table/woodentable,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/item/device/radio,/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor{icon_state = "dark"},/area/security/hos) +"aDL" = (/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) +"aDM" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) +"aDN" = (/obj/machinery/light/small,/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = 25},/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/clothing/head/bearpelt,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aDO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/crew_quarters/fitness) "aDP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor,/area/crew_quarters/fitness) "aDQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness) @@ -1579,10 +1578,10 @@ "aEs" = (/obj/structure/table/woodentable,/turf/simulated/floor,/area/crew_quarters/fitness) "aEt" = (/obj/structure/table/woodentable,/obj/item/weapon/coin/silver,/turf/simulated/floor,/area/crew_quarters/fitness) "aEu" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/crew_quarters/fitness) -"aEv" = (/obj/machinery/door/window/westright{name = "Boxing Ring"},/turf/simulated/floor/wood,/area/crew_quarters/fitness) -"aEw" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/fitness) -"aEx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/fitness) -"aEy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/fitness) +"aEv" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) +"aEw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) +"aEx" = (/obj/item/weapon/gift,/turf/simulated/floor/carpet,/area/crew_quarters/bar) +"aEy" = (/obj/machinery/camera{c_tag = "Bar East"; network = list("SS13")},/obj/machinery/newscaster{pixel_y = 32},/obj/item/toy/prize/ripley,/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aEz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/table,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/item/stack/medical/advanced/bruise_pack,/obj/item/clothing/gloves/boxing,/turf/simulated/floor,/area/crew_quarters/fitness) "aEA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/crew_quarters/fitness) "aEB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness) @@ -1631,9 +1630,9 @@ "aFs" = (/obj/structure/table/woodentable,/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/crew_quarters/fitness) "aFt" = (/obj/structure/table/woodentable,/obj/item/toy/cards/deck,/turf/simulated/floor,/area/crew_quarters/fitness) "aFu" = (/obj/structure/table,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/clothing/gloves/boxing,/turf/simulated/floor,/area/crew_quarters/fitness) -"aFv" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/fitness) -"aFw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/fitness) -"aFx" = (/obj/machinery/door/window/eastleft{name = "Boxing Ring"},/turf/simulated/floor/wood,/area/crew_quarters/fitness) +"aFv" = (/obj/structure/noticeboard{pixel_y = 32},/obj/item/weapon/gift,/obj/item/clothing/head/kitty/mouse,/turf/simulated/floor/carpet,/area/crew_quarters/bar) +"aFw" = (/obj/machinery/hologram/holopad,/obj/structure/table/woodentable,/obj/item/candle,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) +"aFx" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) "aFy" = (/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness) "aFz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Dormitories"; req_access_txt = "0"},/turf/simulated/floor,/area/crew_quarters/fitness) "aFA" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/crew_quarters/fitness) @@ -1678,10 +1677,10 @@ "aGn" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep) "aGo" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "Cryogenics"; name = "Cryodorms"},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep) "aGp" = (/obj/structure/table/woodentable,/obj/item/device/paicard,/turf/simulated/floor,/area/crew_quarters/fitness) -"aGq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/wood,/area/crew_quarters/fitness) -"aGr" = (/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced,/turf/simulated/floor/wood,/area/crew_quarters/fitness) -"aGs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/window/reinforced,/turf/simulated/floor/wood,/area/crew_quarters/fitness) -"aGt" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/wood,/area/crew_quarters/fitness) +"aGq" = (/obj/item/weapon/gift,/turf/simulated/floor/carpet,/area/chapel/main) +"aGr" = (/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor/carpet,/area/chapel/main) +"aGs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/clothing/mask/cigarette/pipe,/turf/simulated/floor/carpet,/area/chapel/main) +"aGt" = (/turf/simulated/floor/plating/snow,/turf/simulated/floor{tag = "icon-siding2 (NORTH)"; icon_state = "siding2"; dir = 1},/area/crew_quarters/bar) "aGu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/obj/structure/grille,/obj/structure/window/basic{dir = 8},/obj/structure/window/basic{dir = 4},/obj/structure/window/basic{dir = 1},/turf/simulated/floor,/area/crew_quarters/fitness) "aGv" = (/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/crew_quarters/fitness) "aGw" = (/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/crew_quarters/fitness) @@ -1900,7 +1899,7 @@ "aKB" = (/obj/machinery/shower{tag = "icon-shower (WEST)"; icon_state = "shower"; dir = 8},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aKC" = (/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/crew_quarters/bar) "aKD" = (/obj/machinery/camera{c_tag = "Bar Storage"; network = list("SS13")},/obj/structure/table/woodentable,/obj/machinery/reagentgrinder,/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/wood,/area/crew_quarters/bar) -"aKE" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/gun/projectile/revolver/doublebarrel,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"aKE" = (/turf/simulated/floor/plating/snow,/obj/structure/disposalpipe/segment,/turf/simulated/floor{tag = "icon-siding2 (NORTH)"; icon_state = "siding2"; dir = 1},/area/crew_quarters/bar) "aKF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aKG" = (/obj/structure/table,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/storage/art) "aKH" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/storage/art) @@ -2127,10 +2126,10 @@ "aOU" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) "aOV" = (/obj/structure/closet/coffin,/obj/structure/window/basic{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) "aOW" = (/obj/structure/closet/coffin,/obj/machinery/door/window/eastleft{name = "Coffin Storage"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) -"aOX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) -"aOY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) -"aOZ" = (/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) -"aPa" = (/obj/machinery/light/small{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) +"aOX" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/table/reinforced,/obj/item/clothing/head/bearpelt,/obj/item/clothing/head/helmet/space/santahat,/obj/item/clothing/head/helmet/space/santahat,/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) +"aOY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed/chair/wood/wings,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"aOZ" = (/obj/structure/stool/bed/chair/wood/wings,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"aPa" = (/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 2; pixel_y = 6},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -2; pixel_y = 4},/obj/structure/stool/bed/chair/wood/wings,/turf/simulated/floor/wood,/area/crew_quarters/bar) "aPb" = (/obj/machinery/door/window{dir = 8; name = "Mass Driver"; req_access_txt = "22"},/obj/machinery/mass_driver{dir = 1; id = "chapelgun"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/chapel/main) "aPc" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/escapepodbay) "aPd" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/crowbar/red,/turf/simulated/floor,/area/escapepodbay) @@ -2225,10 +2224,10 @@ "aQO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) "aQP" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) "aQQ" = (/obj/effect/landmark/start{name = "Chaplain"},/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) -"aQR" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/storage/fancy/crayons,/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) +"aQR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar) "aQS" = (/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) "aQT" = (/obj/structure/closet/coffin,/obj/structure/window/basic{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) -"aQU" = (/obj/machinery/driver_button{id = "chapelgun"; name = "Chapel Mass Driver"; pixel_x = 25},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) +"aQU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/crew_quarters/bar) "aQV" = (/turf/simulated/wall,/area/chapel/main) "aQW" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "Escape Podbay APC"; pixel_x = -25},/turf/simulated/floor,/area/escapepodbay) "aQX" = (/turf/simulated/floor,/area/escapepodbay) @@ -2283,7 +2282,7 @@ "aRU" = (/obj/machinery/door/airlock/maintenance{name = "Bar Maintenance"; req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/crew_quarters/bar) "aRV" = (/obj/machinery/atmospherics/pipe/simple{_color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/sink/kitchen{pixel_y = 28},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aRW" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) -"aRX" = (/obj/machinery/light/small{dir = 1},/obj/structure/closet/crate{desc = "It's a storage unit for kitchen clothes and equipment."; name = "Kitchen Crate"},/obj/item/clothing/head/chefhat,/obj/item/clothing/under/rank/chef,/obj/item/weapon/storage/box/mousetraps{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/box/mousetraps,/obj/item/clothing/under/waiter,/obj/item/clothing/under/waiter,/obj/item/clothing/under/sundress,/obj/item/device/eftpos{eftpos_name = "Kitchen EFTPOS scanner"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) +"aRX" = (/obj/item/toy/crossbow/tommygun,/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aRY" = (/obj/machinery/camera{c_tag = "Kitchen Freezer"; network = list("SS13")},/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"; pixel_x = -5},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aRZ" = (/obj/machinery/door/window/southleft{base_state = "left"; dir = 2; icon_state = "left"; name = "Kitchen Delivery"; req_access_txt = "28"},/obj/effect/decal/warning_stripes/yellow,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aSa" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Hydroponics"},/obj/structure/plasticflaps{opacity = 1},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/hydroponics) @@ -2304,8 +2303,8 @@ "aSp" = (/obj/structure/table/woodentable,/obj/item/weapon/nullrod,/obj/item/device/eftpos{eftpos_name = "Chapel EFTPOS scanner"},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) "aSq" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) "aSr" = (/obj/structure/closet/coffin,/obj/machinery/door/window/eastleft{dir = 8; name = "Coffin Storage"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) -"aSs" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "chapel"},/area/chapel/main) -"aSt" = (/obj/structure/table,/turf/simulated/floor{dir = 4; icon_state = "chapel"},/area/chapel/main) +"aSs" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) +"aSt" = (/obj/machinery/power/apc{dir = 8; name = "Chapel APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) "aSu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor,/area/escapepodbay) "aSv" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/space,/area/shuttle/arrival/station) "aSw" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/shuttle/arrival/station) @@ -2346,9 +2345,9 @@ "aTf" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Bar"; departmentType = 2; name = "Bar RC"; pixel_x = 0; pixel_y = 30},/obj/structure/table/reinforced,/obj/machinery/chem_dispenser/beer,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aTg" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/camera{c_tag = "Bar North"; dir = 2; network = list("SS13")},/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) "aTh" = (/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/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) -"aTi" = (/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{tag = "icon-comfychair_brown (EAST)"; icon_state = "comfychair_brown"; dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/bar) -"aTj" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/carpet,/area/crew_quarters/bar) -"aTk" = (/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) +"aTi" = (/obj/machinery/atmospherics/pipe/simple{_color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/stool,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) +"aTj" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/closet/wardrobe/pjs,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) +"aTk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/closet/wardrobe/pjs,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) "aTl" = (/obj/machinery/atmospherics/pipe/simple{_color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/closet/secure_closet/freezer/meat,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aTm" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aTn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) @@ -2379,8 +2378,8 @@ "aTM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Crematorium"; req_access_txt = "27"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) "aTN" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) "aTO" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) -"aTP" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main) -"aTQ" = (/obj/structure/table,/obj/machinery/light/small,/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main) +"aTP" = (/turf/simulated/floor/plating/snow,/area) +"aTQ" = (/obj/structure/flora/grass/brown,/turf/simulated/floor/plating/snow,/area) "aTR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/escapepodbay) "aTS" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/portable_atmospherics/canister/oxygen,/obj/structure/window/reinforced{dir = 8},/obj/effect/decal/warning_stripes/yellow/hollow,/turf/simulated/floor,/area/escapepodbay) "aTT" = (/obj/structure/closet/emcloset,/obj/item/clothing/mask/breath,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/machinery/atmospherics/unary/vent_pump,/obj/effect/decal/warning_stripes/yellow/hollow,/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/escapepodbay) @@ -2445,9 +2444,9 @@ "aVa" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aVb" = (/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aVc" = (/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,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) -"aVd" = (/obj/structure/stool/bed/chair/comfy/brown{tag = "icon-comfychair_brown (EAST)"; icon_state = "comfychair_brown"; dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/bar) -"aVe" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/carpet,/area/crew_quarters/bar) -"aVf" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 8},/turf/simulated/floor/carpet,/area/crew_quarters/bar) +"aVd" = (/obj/structure/flora/tree/dead,/turf/simulated/floor/plating/snow,/area) +"aVe" = (/obj/item/clothing/head/bearpelt,/turf/simulated/floor/carpet,/area/crew_quarters/bar) +"aVf" = (/obj/structure/flora/tree/pine/xmas,/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aVg" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/kitchenspike,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aVh" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aVi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) @@ -2476,9 +2475,9 @@ "aVF" = (/obj/machinery/power/apc{dir = 8; name = "Chapel Office APC"; pixel_x = -25},/obj/structure/cable,/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) "aVG" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = -28},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) "aVH" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) -"aVI" = (/obj/machinery/camera{c_tag = "Chapel North"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) -"aVJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) -"aVK" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) +"aVI" = (/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor/carpet,/area/crew_quarters/bar) +"aVJ" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/table/woodentable,/obj/item/clothing/head/helmet/space/santahat,/obj/item/clothing/head/helmet/space/santahat,/obj/item/clothing/head/helmet/space/santahat,/obj/item/clothing/suit/holidaypriest,/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) +"aVK" = (/obj/machinery/atmospherics/pipe/simple{_color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) "aVL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Escape Pod Bay"},/turf/simulated/floor,/area/escapepodbay) "aVM" = (/turf/simulated/wall/r_wall,/area/escapepodbay) "aVN" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/shuttle/arrival/station) @@ -2519,8 +2518,8 @@ "aWw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aWx" = (/obj/structure/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Bartender"},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aWy" = (/obj/machinery/door/window{dir = 4; name = "Bar Door"; req_access_txt = "25"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) -"aWz" = (/turf/simulated/floor/carpet,/area/crew_quarters/bar) -"aWA" = (/obj/machinery/light/small{dir = 4},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/obj/structure/table/woodentable,/obj/item/ashtray/bronze{pixel_x = -1; pixel_y = 1},/turf/simulated/floor/carpet,/area/crew_quarters/bar) +"aWz" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/clothing/head/bearpelt,/obj/item/clothing/head/bearpelt,/obj/item/clothing/gloves/furgloves,/obj/item/clothing/gloves/furgloves,/obj/item/clothing/gloves/furgloves,/obj/item/clothing/head/ushanka,/obj/item/clothing/head/ushanka,/obj/item/clothing/head/ushanka,/turf/simulated/floor,/area/hallway/secondary/entry) +"aWA" = (/obj/structure/flora/grass/both,/turf/simulated/floor/plating/snow,/area) "aWB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/kitchenspike,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aWC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aWD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/gibber,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) @@ -2589,9 +2588,9 @@ "aXO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/slot_machine,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aXP" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/rag,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aXQ" = (/obj/structure/table/reinforced,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) -"aXR" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/table/reinforced,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) +"aXR" = (/obj/structure/snowman,/turf/simulated/floor/plating/snow,/area) "aXS" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue{pixel_x = 2; pixel_y = 6},/obj/item/weapon/pen/blue{pixel_x = -3; pixel_y = 2},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) -"aXT" = (/obj/machinery/vending/cigarette{pixel_x = 0; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/bar) +"aXT" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) "aXU" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/freezer{req_access_txt = "28"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aXV" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor{icon_state = "hydrofloor"},/area/hydroponics) "aXW" = (/turf/simulated/floor/grass,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{tag = "icon-siding8 (NORTH)"; icon_state = "siding8"; dir = 1},/area/hydroponics) @@ -2614,11 +2613,11 @@ "aYn" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library) "aYo" = (/obj/structure/table/woodentable,/obj/item/device/taperecorder{pixel_y = 0},/obj/item/device/eftpos{eftpos_name = "Library EFTPOS scanner"},/obj/item/device/camera{desc = "A one use - polaroid camera. 30 photos left."; name = "Camera"; pictures_left = 30; pixel_x = 0; pixel_y = 0},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library) "aYp" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen/invisible,/obj/machinery/camera{c_tag = "Library Study"; dir = 8; network = list("SS13")},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library) -"aYq" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) -"aYr" = (/turf/simulated/floor{dir = 1; icon_state = "chapel"},/area/chapel/main) -"aYs" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 4; icon_state = "chapel"},/area/chapel/main) -"aYt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 1; icon_state = "chapel"},/area/chapel/main) -"aYu" = (/turf/simulated/floor{dir = 4; icon_state = "chapel"},/area/chapel/main) +"aYq" = (/obj/structure/table,/obj/machinery/light/small,/obj/item/weapon/wrapping_paper,/obj/item/weapon/wrapping_paper,/obj/item/weapon/wrapping_paper,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) +"aYr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) +"aYs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) +"aYt" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/snowman,/turf/simulated/floor/plating/snow,/area/crew_quarters/bar) +"aYu" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/snow,/area/crew_quarters/bar) "aYv" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 1},/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; tag = ""},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aYw" = (/obj/machinery/light{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/secondary/exit) "aYx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor,/area/hallway/secondary/exit) @@ -2663,8 +2662,8 @@ "aZk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar) "aZl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/bar) "aZm" = (/turf/simulated/floor/wood,/area/crew_quarters/bar) -"aZn" = (/obj/structure/noticeboard{pixel_y = 32},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"aZo" = (/obj/machinery/camera{c_tag = "Bar East"; network = list("SS13")},/obj/structure/flora/kirbyplants,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/wood,/area/crew_quarters/bar) +"aZn" = (/obj/machinery/power/apc{dir = 1; name = "Bar APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/flora/grass/brown,/turf/simulated/floor/plating/snow,/area/crew_quarters/bar) +"aZo" = (/obj/structure/table,/obj/item/weapon/toy/xmas_cracker,/obj/item/weapon/toy/xmas_cracker,/obj/item/weapon/toy/xmas_cracker,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) "aZp" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/kitchen) "aZq" = (/obj/machinery/disposal,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "aZr" = (/obj/structure/sink/kitchen{pixel_y = 28},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) @@ -2683,13 +2682,13 @@ "aZE" = (/obj/machinery/light/small,/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library) "aZF" = (/obj/effect/landmark{name = "blobstart"},/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library) "aZG" = (/obj/structure/cult/tome,/obj/item/device/videocam,/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library) -"aZH" = (/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main) -"aZI" = (/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main) -"aZJ" = (/obj/structure/table/woodentable,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) -"aZK" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main) -"aZL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main) +"aZH" = (/obj/machinery/light/small{dir = 1},/obj/structure/closet/crate{desc = "It's a storage unit for kitchen clothes and equipment."; name = "Kitchen Crate"},/obj/item/clothing/head/chefhat,/obj/item/clothing/under/rank/chef,/obj/item/weapon/storage/box/mousetraps{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/box/mousetraps,/obj/item/clothing/under/waiter,/obj/item/clothing/under/waiter,/obj/item/clothing/under/sundress,/obj/item/device/eftpos{eftpos_name = "Kitchen EFTPOS scanner"},/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) +"aZI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/snowman,/turf/simulated/floor/plating/snow,/area/hallway/secondary/exit) +"aZJ" = (/turf/simulated/floor/plating/snow,/area/hallway/secondary/exit) +"aZK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating/snow,/area/hallway/secondary/exit) +"aZL" = (/turf/simulated/floor/plating/snow,/area/crew_quarters/bar) "aZM" = (/obj/machinery/door/morgue{dir = 2; name = "Confession Booth"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) -"aZN" = (/obj/machinery/light/small,/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = 25},/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) +"aZN" = (/obj/machinery/light/small{dir = 4},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/turf/simulated/floor/plating/snow,/area/crew_quarters/bar) "aZO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/secondary/exit) "aZP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/hallway/secondary/exit) "aZQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor,/area/hallway/secondary/exit) @@ -2699,7 +2698,7 @@ "aZU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area) "aZV" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) "aZW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/hallway/secondary/entry) -"aZX" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue,/turf/simulated/floor,/area/hallway/secondary/entry) +"aZX" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/snow,/area/crew_quarters/bar) "aZY" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/glass_security{name = "Security Checkpoint"; req_access_txt = "68"},/turf/simulated/floor,/area/security/checkpoint) "aZZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/security/checkpoint) "baa" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{icon_state = "delivery"},/area/security/checkpoint) @@ -2759,9 +2758,9 @@ "bbc" = (/obj/structure/bookcase{name = "bookcase (Fiction)"},/turf/simulated/floor/wood,/area/library) "bbd" = (/obj/structure/bookcase{name = "bookcase (Non-Fiction)"},/turf/simulated/floor/wood,/area/library) "bbe" = (/obj/machinery/door/morgue{dir = 2; name = "Private Study"; req_access_txt = "37"},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library) -"bbf" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) +"bbf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/gift,/turf/simulated/floor/carpet,/area/chapel/main) "bbg" = (/turf/simulated/floor/carpet,/area/chapel/main) -"bbh" = (/obj/machinery/atmospherics/pipe/simple{_color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 1; icon_state = "chapel"},/area/chapel/main) +"bbh" = (/obj/item/toy/nuke,/turf/simulated/floor/carpet,/area/chapel/main) "bbi" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/secondary/exit) "bbj" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/hallway/secondary/exit) "bbk" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/secondary/exit) @@ -2772,7 +2771,7 @@ "bbp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) "bbq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/hallway/secondary/entry) "bbr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/hallway/secondary/entry) -"bbs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) +"bbs" = (/obj/structure/flora/tree/pine/xmas,/turf/simulated/floor/carpet,/area/chapel/main) "bbt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/checkpoint) "bbu" = (/obj/structure/table/reinforced,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint) "bbv" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue,/obj/machinery/door/window/brigdoor{dir = 1; name = "Customs Desk"; pixel_y = 6; req_access_txt = "68"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint) @@ -2802,13 +2801,13 @@ "bbT" = (/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/bridge) "bbU" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/turf/simulated/floor{icon_state = "whitehall"; dir = 5},/area/bridge) "bbV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/crew_quarters/bar) -"bbW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bbX" = (/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 2; pixel_y = 6},/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -2; pixel_y = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar) +"bbW" = (/obj/structure/flora/grass/both,/turf/simulated/floor/plating/snow,/area/crew_quarters/bar) +"bbX" = (/obj/structure/snowman,/turf/simulated/floor/plating/snow,/area/hallway/primary/central/ne) "bbY" = (/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (WEST)"; icon_state = "wooden_chair_wings"; dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bbZ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/stool/bed/chair/wood/wings,/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bca" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/stool/bed/chair/wood/wings,/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bcb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bcc" = (/obj/structure/table/woodentable,/obj/item/weapon/kitchen/utensil/fork,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"bca" = (/obj/machinery/camera{c_tag = "Chapel North"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/item/weapon/gift,/turf/simulated/floor/carpet,/area/chapel/main) +"bcb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/carpet,/area/chapel/main) +"bcc" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/obj/item/toy/carpplushie,/turf/simulated/floor/carpet,/area/chapel/main) "bcd" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "bce" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "bcf" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) @@ -2825,11 +2824,11 @@ "bcq" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 8; icon_state = "right"; name = "Library Desk Door"; req_access_txt = "37"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/wood,/area/library) "bcr" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/wood,/area/library) "bcs" = (/obj/structure/table/woodentable,/obj/machinery/librarycomp{pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/wood,/area/library) -"bct" = (/obj/machinery/power/apc{dir = 8; name = "Chapel APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) -"bcu" = (/obj/structure/stool,/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main) -"bcv" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main) -"bcw" = (/obj/machinery/atmospherics/pipe/simple{_color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/stool,/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main) -"bcx" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) +"bct" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry) +"bcu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/flora/grass/green,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry) +"bcv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry) +"bcw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/flora/ausbushes/pointybush,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry) +"bcx" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) "bcy" = (/obj/machinery/vending/snack,/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) "bcz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/secondary/exit) "bcA" = (/obj/structure/stool/bed/chair,/turf/simulated/floor,/area/hallway/secondary/exit) @@ -2841,7 +2840,7 @@ "bcG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area) "bcH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) "bcI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/hallway/secondary/entry) -"bcJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/secondary/entry) +"bcJ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) "bcK" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/checkpoint) "bcL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door_control{id = "customs-entrance2"; name = "Customs Entrance Open"; normaldoorcontrol = 1; pixel_x = 5; pixel_y = 26; req_access_txt = "68"; specialfunctions = 1},/obj/machinery/door_control{id = "customs-entrance2"; name = "Customs Entrance Bolts"; normaldoorcontrol = 1; pixel_x = -5; pixel_y = 26; req_access_txt = "68"; specialfunctions = 4},/turf/simulated/floor,/area/security/checkpoint) "bcM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/stool/bed/chair/office/dark{dir = 1},/obj/effect/landmark/start{name = "Customs Officer"},/turf/simulated/floor,/area/security/checkpoint) @@ -2880,15 +2879,15 @@ "bdt" = (/obj/machinery/computer/med_data,/obj/machinery/camera{c_tag = "Bridge East"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/bridge) "bdu" = (/obj/structure/table,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/floor{icon_state = "whitehall"; dir = 5},/area/bridge) "bdv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area) -"bdw" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "Bar West"; dir = 4; network = list("SS13")},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bdx" = (/obj/structure/disposalpipe/segment,/obj/structure/table/woodentable,/obj/item/device/taperecorder{pixel_y = 0},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bdy" = (/obj/structure/table/woodentable,/obj/item/weapon/dice/d20,/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bdz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bdA" = (/obj/structure/table/woodentable,/obj/item/clothing/head/cakehat,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"bdw" = (/obj/machinery/light,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar) +"bdx" = (/obj/machinery/atm{pixel_x = 32; pixel_y = 0},/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (WEST)"; icon_state = "wooden_chair_wings"; dir = 8},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/bar) +"bdy" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -2; pixel_y = 4},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 2; pixel_y = 6},/obj/item/clothing/head/ushanka,/obj/item/clothing/head/ushanka,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/bar) +"bdz" = (/obj/item/device/radio/intercom{pixel_y = -30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light/small,/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar) +"bdA" = (/obj/machinery/light,/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bdB" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "bdC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/table,/obj/item/weapon/kitchen/utensil/knife{desc = "For making cutlets"; name = "Cutlet Knife"},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "bdD" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/mint,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) -"bdE" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) +"bdE" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "bdF" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "bdG" = (/obj/machinery/atmospherics/pipe/simple{_color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "bdH" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) @@ -2904,11 +2903,11 @@ "bdR" = (/obj/structure/table/woodentable,/obj/machinery/light/small/lamp/green{pixel_x = 1; pixel_y = 5},/turf/simulated/floor/wood,/area/library) "bdS" = (/obj/effect/landmark/start{name = "Librarian"},/obj/structure/stool/bed/chair/office/dark,/turf/simulated/floor/wood,/area/library) "bdT" = (/obj/item/device/radio/intercom{pixel_x = 25},/obj/machinery/libraryscanner,/turf/simulated/floor/wood,/area/library) -"bdU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) -"bdV" = (/obj/structure/stool,/turf/simulated/floor{dir = 1; icon_state = "chapel"},/area/chapel/main) -"bdW" = (/obj/structure/stool,/turf/simulated/floor{dir = 4; icon_state = "chapel"},/area/chapel/main) -"bdX" = (/obj/machinery/atmospherics/pipe/simple{_color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/stool,/turf/simulated/floor{dir = 1; icon_state = "chapel"},/area/chapel/main) -"bdY" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) +"bdU" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/obj/item/weapon/toy/xmas_cracker,/obj/item/weapon/toy/xmas_cracker,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) +"bdV" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple,/obj/effect/decal/warning_stripes/east,/obj/item/candle,/turf/simulated/floor,/area/hallway/secondary/exit) +"bdW" = (/obj/structure/flora/tree/pine/xmas,/turf/simulated/floor/plating/snow,/area/hallway/secondary/exit) +"bdX" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/flora/grass/both,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry) +"bdY" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/structure/flora/grass/both,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry) "bdZ" = (/obj/machinery/vending/coffee,/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) "bea" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/obj/effect/decal/warning_stripes/southeastcorner,/obj/effect/decal/warning_stripes/northeastcorner,/turf/simulated/floor,/area/hallway/secondary/exit) "beb" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "escape_dock_north_airlock"; name = "interior access button"; pixel_x = 0; pixel_y = -25; req_access_txt = "13"},/obj/effect/decal/warning_stripes/north,/obj/effect/decal/warning_stripes/south,/turf/simulated/floor,/area/hallway/secondary/exit) @@ -2923,7 +2922,7 @@ "bek" = (/obj/machinery/vending/snack,/turf/simulated/floor{icon_state = "warning"},/area/hallway/secondary/entry) "bel" = (/obj/machinery/vending/cola,/obj/machinery/light,/turf/simulated/floor{icon_state = "warning"},/area/hallway/secondary/entry) "bem" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/hallway/secondary/entry) -"ben" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/secondary/entry) +"ben" = (/obj/structure/table/woodentable,/obj/item/clothing/suit/space/santa,/obj/item/weapon/storage/backpack/santabag,/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor/carpet,/area/crew_quarters/captain) "beo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/checkpoint) "bep" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/security/checkpoint) "beq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/security/checkpoint) @@ -2956,9 +2955,9 @@ "beR" = (/obj/machinery/camera{c_tag = "Bridge East Entrance"; dir = 2; network = list("SS13")},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central/ne) "beS" = (/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central/ne) "beT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/wood,/area/crew_quarters/bar) -"beU" = (/obj/structure/disposalpipe/segment,/obj/structure/table/woodentable,/obj/item/weapon/dice,/turf/simulated/floor/wood,/area/crew_quarters/bar) -"beV" = (/obj/structure/table/woodentable,/obj/item/toy/cards/deck,/turf/simulated/floor/wood,/area/crew_quarters/bar) -"beW" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -2; pixel_y = 4},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 2; pixel_y = 6},/turf/simulated/floor/wood,/area/crew_quarters/bar) +"beU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/flora/tree/dead,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry) +"beV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/flora/grass/both,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry) +"beW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/obj/structure/flora/grass/brown,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry) "beX" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "beY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/table,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "beZ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/obj/item/weapon/packageWrap,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) @@ -2975,13 +2974,13 @@ "bfk" = (/obj/structure/table/woodentable,/obj/item/device/camera_film,/obj/item/device/camera_film,/turf/simulated/floor/wood,/area/library) "bfl" = (/obj/structure/table/woodentable,/obj/item/weapon/pen/red{pixel_x = 2; pixel_y = 6},/obj/item/weapon/pen/blue{pixel_x = 5; pixel_y = 5},/turf/simulated/floor/wood,/area/library) "bfm" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/wood,/area/library) -"bfn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) -"bfo" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main) -"bfp" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main) +"bfn" = (/obj/machinery/atmospherics/pipe/manifold{_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 = "wood"},/area/chapel/main) +"bfo" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/manifold{_color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) +"bfp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/stool,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) "bfq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/carpet,/area/chapel/main) -"bfr" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/manifold{_color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main) -"bfs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/stool,/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main) -"bft" = (/obj/machinery/atmospherics/pipe/manifold{_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) +"bfr" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) +"bfs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) +"bft" = (/obj/structure/disposalpipe/segment,/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bfu" = (/obj/item/device/radio/intercom{pixel_x = -25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Departure Lounge West"; dir = 4; network = list("SS13")},/obj/machinery/vending/cola,/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) "bfv" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/secondary/exit) "bfw" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/hallway/secondary/exit) @@ -2989,7 +2988,7 @@ "bfy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area) "bfz" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area) "bfA" = (/obj/machinery/light{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) -"bfB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/secondary/entry) +"bfB" = (/obj/structure/table/woodentable,/obj/item/weapon/toy/xmas_cracker,/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bfC" = (/obj/machinery/photocopier,/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/checkpoint) "bfD" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = -30},/obj/structure/table/reinforced,/obj/machinery/recharger,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "red"},/area/security/checkpoint) "bfE" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/obj/structure/filingcabinet,/turf/simulated/floor{icon_state = "red"},/area/security/checkpoint) @@ -3028,12 +3027,12 @@ "bgl" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/ne) "bgm" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/central/ne) "bgn" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor,/area/hallway/primary/central/ne) -"bgo" = (/obj/structure/table/woodentable,/obj/item/candle,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"bgo" = (/obj/structure/table/woodentable,/obj/item/clothing/head/festive,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bgp" = (/obj/structure/disposalpipe/segment,/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (NORTH)"; icon_state = "wooden_chair_wings"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bgq" = (/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (NORTH)"; icon_state = "wooden_chair_wings"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bgr" = (/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bgs" = (/obj/structure/table/woodentable,/obj/item/weapon/kitchen/utensil/fork,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bgt" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/snacks/pie,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/kitchen) +"bgr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/table/woodentable,/obj/item/weapon/toy/xmas_cracker,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"bgs" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/fancy/candle_box,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"bgt" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bgu" = (/obj/effect/landmark/start{name = "Chef"},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "bgv" = (/obj/structure/table,/obj/machinery/reagentgrinder,/obj/machinery/requests_console{department = "Kitchen"; departmentType = 2; pixel_x = 30; pixel_y = 0},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bgw" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) @@ -3052,8 +3051,8 @@ "bgJ" = (/obj/machinery/atmospherics/pipe/simple{_color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor/carpet,/area/chapel/main) "bgK" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Chapel"; req_access_txt = "0"},/turf/simulated/floor/carpet,/area/chapel/main) "bgL" = (/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) -"bgM" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple,/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/hallway/secondary/exit) -"bgN" = (/obj/structure/bush,/turf/simulated/floor/grass,/area/hallway/secondary/exit) +"bgM" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/stuffing,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"bgN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/closet/wardrobe/pjs,/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/secondary/entry) "bgO" = (/obj/structure/spacepoddoor{luminosity = 3},/turf/simulated/floor/engine,/area/hallway/secondary/entry) "bgP" = (/turf/simulated/floor/engine,/area/hallway/secondary/entry) "bgQ" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/engine,/area/hallway/secondary/entry) @@ -3063,7 +3062,7 @@ "bgU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area) "bgV" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry/south) "bgW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/hallway/secondary/entry) -"bgX" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/secondary/entry) +"bgX" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) "bgY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/camera{c_tag = "Embassies South"; dir = 4; network = list("SS13")},/obj/structure/flora/kirbyplants,/turf/simulated/floor,/area/hallway/primary/port/east) "bgZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/flora/kirbyplants,/turf/simulated/floor,/area/hallway/primary/port/east) "bha" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/hallway/primary/central/nw) @@ -3104,10 +3103,10 @@ "bhJ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Library"; req_access_txt = "0"},/turf/simulated/floor/carpet,/area/library) "bhK" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/carpet,/area/library) "bhL" = (/obj/machinery/atmospherics/pipe/simple{_color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor/carpet,/area/library) -"bhM" = (/obj/machinery/camera{c_tag = "Departure Lounge East"; dir = 8; network = list("SS13")},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple,/obj/machinery/embedded_controller/radio/docking_port_multi{child_names_txt = "Airlock One;Airlock Two"; child_tags_txt = "escape_dock_north_airlock;escape_dock_south_airlock"; id_tag = "escape_dock"; pixel_x = 30},/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/hallway/secondary/exit) -"bhN" = (/turf/simulated/floor/grass,/area/hallway/secondary/exit) -"bhO" = (/turf/simulated/floor{desc = "\"This is a plaque in honour of those who died in the great space lube airlock incident.\" Scratched in beneath that is a crude image of a clown and a spaceman. The spaceman is slipping. The clown is laughing."; dir = 4; icon_state = "plaque"; name = "Memorial Plaque"; nitrogen = 30; oxygen = 70; temperature = 80},/area/hallway/secondary/exit) -"bhP" = (/obj/structure/bush,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/grass,/area/hallway/secondary/exit) +"bhM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) +"bhN" = (/obj/structure/table/woodentable,/obj/item/weapon/toy/xmas_cracker,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"bhO" = (/obj/structure/disposalpipe/segment,/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"bhP" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/monkeysdelight,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bhQ" = (/turf/space,/area/xenos_station/east) "bhR" = (/obj/machinery/door/airlock/glass{name = "Public Pod Bay"},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "bhS" = (/obj/structure/table,/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/crew_quarters/recruit) @@ -3136,12 +3135,12 @@ "bip" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/command{id_tag = "captainofficedoor"; name = "Captain's Office"; req_access = null; req_access_txt = "20"},/turf/simulated/floor/wood,/area/crew_quarters/captain) "biq" = (/obj/machinery/computer/arcade,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bir" = (/obj/machinery/media/jukebox/bar,/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bis" = (/obj/machinery/light,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/wood,/area/crew_quarters/bar) +"bis" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/stew,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bit" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"biu" = (/obj/machinery/light,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"biu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/table/woodentable,/obj/item/weapon/toy/xmas_cracker,/obj/item/clothing/head/hardhat/reindeer,/turf/simulated/floor/wood,/area/crew_quarters/bar) "biv" = (/obj/machinery/camera{c_tag = "Bar South"; dir = 1; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"biw" = (/obj/item/device/radio/intercom{pixel_y = -30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light/small,/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bix" = (/obj/machinery/atm{pixel_x = 32; pixel_y = 0},/obj/structure/flora/kirbyplants,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/bar) +"biw" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "Bar West"; dir = 4; network = list("SS13")},/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"bix" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "biy" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/machinery/vending/dinnerware,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/kitchen) "biz" = (/obj/machinery/icemachine,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) "biA" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen) @@ -3160,9 +3159,9 @@ "biN" = (/obj/structure/table/woodentable,/obj/machinery/light/small/lamp/green{pixel_x = 1; pixel_y = 5},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/wood,/area/library) "biO" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/obj/machinery/light/small,/turf/simulated/floor/wood,/area/library) "biP" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/flora/kirbyplants,/turf/simulated/floor/wood,/area/library) -"biQ" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) +"biQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/snowman,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry) "biR" = (/turf/simulated/floor/carpet{icon_state = "carpetsymbol"},/area/chapel/main) -"biS" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) +"biS" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/flora/grass/brown,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry) "biT" = (/obj/machinery/power/apc{dir = 8; name = "Escape Hallway APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit) "biU" = (/obj/structure/spacepoddoor{luminosity = 3},/obj/machinery/door/poddoor/three_tile_ver{id = "arrivalspodbay"; layer = 3.1; req_access_txt = "13"},/turf/simulated/floor/engine,/area/hallway/secondary/entry) "biV" = (/obj/machinery/door_control{desc = "A remote control-switch for the pod doors."; id = "arrivalspodbay"; name = "Pod Door Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "13"},/turf/simulated/floor/engine,/area/hallway/secondary/entry) @@ -3320,8 +3319,8 @@ "blR" = (/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/hallway/secondary/entry/south) "blS" = (/obj/machinery/light,/turf/simulated/floor,/area/hallway/secondary/entry) "blT" = (/obj/machinery/camera{c_tag = "Arrivals South"; dir = 1; network = list("SS13"); pixel_x = 22},/turf/simulated/floor,/area/hallway/secondary/entry) -"blU" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/hallway/secondary/entry) -"blV" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/secondary/entry) +"blU" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plating/snow,/area/hallway/secondary/exit) +"blV" = (/obj/machinery/camera{c_tag = "Departure Lounge East"; dir = 8; network = list("SS13")},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple,/obj/machinery/embedded_controller/radio/docking_port_multi{child_names_txt = "Airlock One;Airlock Two"; child_tags_txt = "escape_dock_north_airlock;escape_dock_south_airlock"; id_tag = "escape_dock"; pixel_x = 30},/obj/effect/decal/warning_stripes/east,/obj/item/clothing/gloves/furgloves,/obj/item/clothing/gloves/furgloves,/obj/item/clothing/gloves/furgloves,/obj/item/clothing/head/ushanka,/obj/item/clothing/head/ushanka,/obj/item/clothing/head/ushanka,/turf/simulated/floor,/area/hallway/secondary/exit) "blW" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor,/area/crew_quarters/recruit) "blX" = (/turf/simulated/floor,/area/crew_quarters/recruit) "blY" = (/obj/machinery/camera{c_tag = "Recruitment Lobby"; dir = 8; network = list("SS13")},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor,/area/crew_quarters/recruit) @@ -3346,7 +3345,7 @@ "bmr" = (/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai) "bms" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bmt" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/wood,/area/crew_quarters/captain) -"bmu" = (/obj/structure/table/woodentable,/obj/item/device/megaphone,/turf/simulated/floor/carpet,/area/crew_quarters/captain) +"bmu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry) "bmv" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bmw" = (/obj/machinery/camera{c_tag = "Central Hallway East"; dir = 4; network = list("SS13")},/obj/structure/disposalpipe/segment,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/east) "bmx" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/hallway/primary/starboard/west) @@ -3360,7 +3359,7 @@ "bmF" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/secondary/exit) "bmG" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/secondary/exit) "bmH" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/hallway/secondary/exit) -"bmI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/secondary/entry) +"bmI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/flora/grass/green,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry) "bmJ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravitygenerator) "bmK" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "grimy"},/area/embassy/slime) "bmL" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{icon_state = "grimy"},/area/embassy/slime) @@ -3499,7 +3498,7 @@ "bpo" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Captain's Desk"; departmentType = 5; name = "Captain RC"; pixel_x = -30; pixel_y = 0},/obj/structure/filingcabinet,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bpp" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/obj/effect/landmark/start{name = "Captain"},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bpq" = (/obj/machinery/computer/communications,/turf/simulated/floor/wood,/area/crew_quarters/captain) -"bpr" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/security_space_law,/obj/item/weapon/coin/plasma,/turf/simulated/floor/wood,/area/crew_quarters/captain) +"bpr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bps" = (/obj/structure/table/woodentable,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/item/device/camera,/obj/item/weapon/storage/photo_album{pixel_y = -10},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bpt" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/sw) "bpu" = (/turf/simulated/floor,/area/hallway/primary/central/sw) @@ -3517,7 +3516,7 @@ "bpG" = (/turf/simulated/floor{icon_state = "white"},/area/medical/reception) "bpH" = (/obj/machinery/camera{c_tag = "Medbay Lobby East"; network = list("SS13")},/obj/structure/stool,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/reception) "bpI" = (/obj/structure/stool,/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/reception) -"bpJ" = (/obj/machinery/newscaster{pixel_x = 30},/obj/machinery/alarm{pixel_y = 26},/obj/structure/flora/kirbyplants,/turf/simulated/floor{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/medical/reception) +"bpJ" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bpK" = (/obj/structure/filingcabinet,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/checkpoint/medical) "bpL" = (/obj/machinery/disposal,/obj/structure/closet/walllocker/emerglocker/north,/obj/structure/disposalpipe/trunk,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint/medical) "bpM" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = 30},/obj/structure/table/reinforced,/obj/machinery/recharger,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint/medical) @@ -4248,7 +4247,7 @@ "bDJ" = (/obj/machinery/camera{c_tag = "Cargo Bay Entrance"; dir = 4; network = list("SS13")},/obj/machinery/atm{pixel_x = -24},/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/sw) "bDK" = (/obj/structure/closet/secure_closet/hop2,/turf/simulated/floor,/area/crew_quarters/heads) "bDL" = (/turf/simulated/floor,/area/crew_quarters/heads) -"bDM" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/device/megaphone,/turf/simulated/floor,/area/crew_quarters/heads) +"bDM" = (/obj/item/candle,/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (NORTH)"; icon_state = "wooden_chair_wings"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bDN" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/crew_quarters/heads) "bDO" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/crew_quarters/heads) "bDP" = (/obj/machinery/message_server,/turf/simulated/floor/bluegrid,/area/server) @@ -4773,7 +4772,7 @@ "bNO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bNP" = (/obj/machinery/power/apc{dir = 8; name = "RD Office APC"; pixel_x = -25},/obj/structure/cable,/obj/machinery/light_switch{pixel_y = -23},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/flora/kirbyplants,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) "bNQ" = (/obj/machinery/hologram/holopad,/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/table,/obj/machinery/photocopier/faxmachine{department = "Research Director's Office"},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) -"bNR" = (/obj/structure/table,/obj/item/weapon/cartridge/signal/toxins,/obj/item/weapon/cartridge/signal/toxins{pixel_x = -4; pixel_y = 2},/obj/item/weapon/cartridge/signal/toxins{pixel_x = 4; pixel_y = 6},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Research Director's Office"; dir = 1; network = list("Research","SS13")},/obj/item/clothing/glasses/welding/superior,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) +"bNR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (NORTH)"; icon_state = "wooden_chair_wings"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bNS" = (/obj/structure/closet/secure_closet/RD,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) "bNT" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) "bNU" = (/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) @@ -5119,7 +5118,7 @@ "bUw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/wall,/area) "bUx" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area) "bUy" = (/obj/machinery/light,/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor{dir = 10; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo) -"bUz" = (/obj/structure/table,/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/item/device/megaphone,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo) +"bUz" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/obj/item/weapon/wrapping_paper,/obj/item/weapon/wrapping_paper,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/kitchen) "bUA" = (/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo) "bUB" = (/obj/machinery/computer/crew,/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 6; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo) "bUC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area) @@ -6104,7 +6103,7 @@ "cnt" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 6},/turf/simulated/floor,/area/hallway/primary/aft) "cnu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) "cnv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/aft) -"cnw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"cnw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness) "cnx" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area) "cny" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/engine/break_room) "cnz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{dir = 1; icon_state = "caution"},/area/engine/break_room) @@ -8176,6 +8175,7 @@ "dbl" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/turf/simulated/floor/wood{name = "Vox flooring"; nitrogen = 100; oxygen = 0},/area/alien{icon_state = "red2"; name = "\improper Vox base"}) "dbm" = (/obj/item/alien_embryo,/turf/simulated/floor/wood{name = "Vox flooring"; nitrogen = 100; oxygen = 0},/area/alien{icon_state = "red2"; name = "\improper Vox base"}) "dbn" = (/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) +"dbo" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness) "dbp" = (/obj/structure/flora/grass/green,/turf/simulated/floor/grass{name = "Vox Grass"; nitrogen = 100; oxygen = 0},/area/alien{icon_state = "red2"; name = "\improper Vox base"}) "dbq" = (/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/grass{name = "Vox Grass"; nitrogen = 100; oxygen = 0},/area/alien{icon_state = "red2"; name = "\improper Vox base"}) "dbr" = (/obj/structure/flora/ausbushes/genericbush,/turf/simulated/floor/grass{name = "Vox Grass"; nitrogen = 100; oxygen = 0},/area/alien{icon_state = "red2"; name = "\improper Vox base"}) @@ -8194,6 +8194,7 @@ "dbE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "dbF" = (/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; dir = 2; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "dbG" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/syndicate_station/start) +"dbH" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness) "dbI" = (/obj/structure/flora/bush,/turf/simulated/floor/grass{name = "Vox Grass"; nitrogen = 100; oxygen = 0},/area/alien{icon_state = "red2"; name = "\improper Vox base"}) "dbJ" = (/obj/structure/flora/ausbushes/stalkybush,/turf/simulated/floor/grass{name = "Vox Grass"; nitrogen = 100; oxygen = 0},/area/alien{icon_state = "red2"; name = "\improper Vox base"}) "dbK" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/wood{name = "Vox flooring"; nitrogen = 100; oxygen = 0},/area/alien{icon_state = "red2"; name = "\improper Vox base"}) @@ -10212,7 +10213,7 @@ "dOv" = (/turf/simulated/shuttle/wall{tag = "icon-pwall (NORTH)"; icon_state = "pwall"; dir = 1},/area) "dOw" = (/turf/simulated/floor/plating,/turf/simulated/shuttle/wall{tag = "icon-pwall (SOUTHWEST)"; icon_state = "pwall"; dir = 10},/area) "dOx" = (/obj/item/stack/rods,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) -"dOy" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) +"dOy" = (/obj/structure/alien/resin,/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/mine/abandoned) "dOz" = (/turf/space,/area/mine/unexplored) "dOA" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/research_outpost/spectro) "dOB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 2; layer = 2.4; on = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{dir = 6; icon_state = "whitegreen"},/area/research_outpost/spectro) @@ -10237,10 +10238,10 @@ "dOU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dOV" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area) "dOW" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; tag = ""},/turf/simulated/floor/plating/airless,/area) -"dOX" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area) -"dOY" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area) +"dOX" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) +"dOY" = (/obj/structure/alien/weeds{icon_state = "weeds"},/turf/simulated/floor,/area/mine/abandoned) "dOZ" = (/obj/machinery/door/airlock/hatch,/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area) -"dPa" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) +"dPa" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) "dPb" = (/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) "dPc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/abandoned) "dPd" = (/turf/simulated/mineral/random,/area/mine/explored) @@ -10300,7 +10301,7 @@ "dQf" = (/obj/machinery/atmospherics/pipe/simple{_color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/turf/simulated/mineral,/area/research_outpost/atmos) "dQg" = (/obj/machinery/atmospherics/pipe/vent{dir = 8},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dQh" = (/obj/item/stack/rods,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard,/turf/simulated/floor/plating,/area/mine/abandoned) -"dQi" = (/obj/item/stack/rods,/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) +"dQi" = (/obj/structure/alien/weeds,/turf/simulated/floor,/area/mine/abandoned) "dQj" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) "dQk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) "dQl" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) @@ -10332,8 +10333,8 @@ "dQL" = (/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/atmos) "dQM" = (/obj/structure/lattice,/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area) "dQN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/abandoned) -"dQO" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) -"dQP" = (/obj/effect/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) +"dQO" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) +"dQP" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) "dQQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) "dQR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dQS" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/wood,/area/research_outpost/hallway) @@ -10365,7 +10366,7 @@ "dRs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dRt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dRu" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"dRv" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) +"dRv" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor,/area/mine/abandoned) "dRw" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) "dRx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway) "dRy" = (/obj/structure/table,/obj/item/weapon/folder,/turf/simulated/floor/wood,/area/research_outpost/hallway) @@ -10392,9 +10393,9 @@ "dRT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dRU" = (/obj/structure/table,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) "dRV" = (/obj/structure/table,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) -"dRW" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/floor,/area/mine/abandoned) -"dRX" = (/obj/effect/alien/weeds,/turf/simulated/floor/plating,/area/mine/abandoned) -"dRY" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/plating,/area/mine/abandoned) +"dRW" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned) +"dRX" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) +"dRY" = (/obj/structure/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned) "dRZ" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light_switch{pixel_y = -23},/turf/simulated/floor/wood,/area/research_outpost/hallway) "dSa" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/simulated/floor/wood,/area/research_outpost/hallway) "dSb" = (/obj/structure/bookcase/manuals/xenoarchaeology,/turf/simulated/floor/wood,/area/research_outpost/hallway) @@ -10422,9 +10423,9 @@ "dSx" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned) "dSy" = (/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) "dSz" = (/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) -"dSA" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) +"dSA" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) "dSB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/abandoned) -"dSC" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned) +"dSC" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) "dSD" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/wall,/area/research_outpost/entry) "dSE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dSF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) @@ -10460,7 +10461,7 @@ "dTj" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dTk" = (/obj/effect/gibspawner/robot,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) "dTl" = (/obj/effect/gibspawner/human,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) -"dTm" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/obj/effect/decal/remains/xeno,/turf/simulated/floor/plating,/area/mine/abandoned) +"dTm" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned) "dTn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dTo" = (/obj/machinery/computer/shuttle_control/research{req_access_txt = "65"},/turf/simulated/floor{icon_state = "bot"},/area/research_outpost/entry) "dTp" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/research_outpost/entry) @@ -10503,10 +10504,10 @@ "dUa" = (/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dUb" = (/obj/structure/lattice,/obj/item/weapon/shard{icon_state = "small"},/turf/space,/area/mine/abandoned) "dUc" = (/obj/structure/lattice,/turf/space,/area/mine/abandoned) -"dUd" = (/obj/effect/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) +"dUd" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) "dUe" = (/obj/machinery/door/airlock,/turf/simulated/floor,/area/mine/abandoned) -"dUf" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) -"dUg" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) +"dUf" = (/obj/structure/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) +"dUg" = (/obj/structure/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) "dUh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/transit_tube{icon_state = "N-SE"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dUi" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/simulated/floor{icon_state = "bot"},/area/research_outpost/entry) "dUj" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/research_outpost/entry) @@ -10549,10 +10550,10 @@ "dUU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dUV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dUW" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/mine/abandoned) -"dUX" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/plating/airless,/area/mine/abandoned) +"dUX" = (/obj/structure/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) "dUY" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) "dUZ" = (/turf/simulated/floor/airless,/area/mine/abandoned) -"dVa" = (/obj/effect/alien/weeds,/turf/simulated/floor,/area/mine/abandoned) +"dVa" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned) "dVb" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned) "dVc" = (/obj/structure/table,/turf/simulated/floor,/area/mine/abandoned) "dVd" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/abandoned) @@ -10596,12 +10597,12 @@ "dVP" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/research_outpost/harvesting) "dVQ" = (/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/harvesting) "dVR" = (/obj/structure/table,/obj/item/weapon/anodevice{pixel_x = 3; pixel_y = 3},/obj/item/weapon/anodevice,/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/harvesting) -"dVS" = (/obj/effect/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) +"dVS" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/plating,/area/mine/abandoned) "dVT" = (/obj/effect/decal/remains/human,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) -"dVU" = (/obj/effect/alien/weeds,/turf/simulated/floor/plating/airless,/area/mine/abandoned) -"dVV" = (/obj/effect/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) +"dVU" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) +"dVV" = (/obj/structure/alien/weeds,/turf/simulated/floor/plating,/area/mine/abandoned) "dVW" = (/obj/structure/table,/turf/simulated/floor/airless,/area/mine/abandoned) -"dVX" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) +"dVX" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) "dVY" = (/turf/simulated/mineral,/area/mine/explored) "dVZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry) "dWa" = (/obj/structure/transit_tube/station{icon_state = "closed"; dir = 4},/obj/structure/transit_tube_pod,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/research_outpost/entry) @@ -10640,7 +10641,7 @@ "dWH" = (/obj/structure/table,/obj/item/weapon/anobattery{pixel_x = -6; pixel_y = 2},/obj/item/weapon/anobattery{pixel_x = -2; pixel_y = -2},/obj/item/weapon/anobattery{pixel_x = 2; pixel_y = 2},/obj/item/weapon/anobattery{pixel_x = 6; pixel_y = 6},/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/harvesting) "dWI" = (/obj/item/weapon/shard,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned) "dWJ" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/airless,/area/mine/abandoned) -"dWK" = (/obj/effect/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned) +"dWK" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/obj/effect/decal/remains/xeno,/turf/simulated/floor/plating,/area/mine/abandoned) "dWL" = (/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "dWM" = (/turf/simulated/wall,/area/mine/unexplored) "dWN" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'INTERNALS REQUIRED'."; name = "INTERNALS REQUIRED"; pixel_x = -32; pixel_y = 0},/turf/space,/area) @@ -10681,8 +10682,8 @@ "dXw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/abandoned) "dXx" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/mine/abandoned) "dXy" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/mine/abandoned) -"dXz" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor,/area/mine/abandoned) -"dXA" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned) +"dXz" = (/obj/structure/alien/weeds,/turf/simulated/floor/plating/airless,/area/mine/abandoned) +"dXA" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dXB" = (/obj/structure/transit_tube{tag = "icon-D-SE"; icon_state = "D-SE"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "dXC" = (/obj/structure/transit_tube{tag = "icon-E-SW"; icon_state = "E-SW"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "dXD" = (/turf/simulated/wall,/area/research_outpost/gearstore) @@ -10722,7 +10723,7 @@ "dYl" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet,/turf/simulated/floor,/area/research_outpost/longtermstorage) "dYm" = (/obj/structure/transit_tube{icon_state = "D-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/harvesting) "dYn" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor,/area/mine/abandoned) -"dYo" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned) +"dYo" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area) "dYp" = (/obj/structure/transit_tube{tag = "icon-D-SE"; icon_state = "D-SE"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "dYq" = (/obj/structure/transit_tube{tag = "icon-NE-SW"; icon_state = "NE-SW"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "dYr" = (/obj/structure/transit_tube{tag = "icon-D-NW"; icon_state = "D-NW"},/turf/simulated/mineral,/area/mine/unexplored) @@ -10759,7 +10760,7 @@ "dYW" = (/obj/structure/transit_tube{icon_state = "D-NW"},/turf/space,/area) "dYX" = (/turf/simulated/floor{icon_state = "green"; dir = 8},/area/mine/abandoned) "dYY" = (/obj/effect/gibspawner/human,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned) -"dYZ" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) +"dYZ" = (/obj/structure/alien/weeds{icon_state = "weeds"},/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area) "dZa" = (/turf/simulated/wall,/area/mine/explored) "dZb" = (/obj/structure/ore_box,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "dZc" = (/obj/structure/transit_tube{tag = "icon-S-NE"; icon_state = "S-NE"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) @@ -10794,7 +10795,7 @@ "dZF" = (/obj/structure/transit_tube{tag = "icon-S-NE"; icon_state = "S-NE"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) "dZG" = (/obj/structure/transit_tube{tag = "icon-D-NW"; icon_state = "D-NW"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) "dZH" = (/obj/effect/decal/remains/human,/turf/simulated/floor{icon_state = "green"; dir = 8},/area/mine/abandoned) -"dZI" = (/obj/effect/alien/resin,/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/mine/abandoned) +"dZI" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/structure/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) "dZJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/abandoned) "dZK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/mine/abandoned) "dZL" = (/obj/structure/ore_box,/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) @@ -10822,7 +10823,7 @@ "eah" = (/turf/simulated/wall/r_wall,/area/research_outpost/maintstore2) "eai" = (/obj/structure/transit_tube{tag = "icon-D-SE"; icon_state = "D-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/longtermstorage) "eaj" = (/obj/structure/transit_tube{tag = "icon-N-SW"; icon_state = "N-SW"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) -"eak" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned) +"eak" = (/obj/item/stack/rods,/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned) "eal" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/abandoned) "eam" = (/obj/machinery/door/airlock/glass{name = "Glass Airlock"; req_access_txt = "0"},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"; tag = "icon-asteroidfloor"},/area/mine/abandoned) "ean" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/mine/abandoned) @@ -12517,6 +12518,30 @@ "eGM" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area) "eGN" = (/obj/machinery/atmospherics/trinary/filter{density = 0; req_access = null},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing) "eGO" = (/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing) +"eGP" = (/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness) +"eGQ" = (/obj/machinery/door/window/westright{name = "Boxing Ring"},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness) +"eGR" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness) +"eGS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness) +"eGT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness) +"eGU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness) +"eGV" = (/obj/machinery/door/window/eastleft{name = "Boxing Ring"},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness) +"eGW" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness) +"eGX" = (/obj/structure/disposalpipe/segment,/obj/structure/snowman,/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness) +"eGY" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness) +"eGZ" = (/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced,/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness) +"eHa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/window/reinforced,/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness) +"eHb" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness) +"eHc" = (/obj/machinery/light/small{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) +"eHd" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/storage/fancy/crayons,/obj/item/clothing/suit/space/santa,/obj/item/weapon/storage/backpack/santabag,/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) +"eHe" = (/obj/machinery/driver_button{id = "chapelgun"; name = "Chapel Mass Driver"; pixel_x = 25},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main) +"eHf" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/gun/projectile/revolver/doublebarrel,/obj/item/clothing/head/cakehat,/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"eHg" = (/obj/structure/table,/obj/item/weapon/cartridge/signal/toxins,/obj/item/weapon/cartridge/signal/toxins{pixel_x = -4; pixel_y = 2},/obj/item/weapon/cartridge/signal/toxins{pixel_x = 4; pixel_y = 6},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Research Director's Office"; dir = 1; network = list("Research","SS13")},/obj/item/clothing/glasses/welding/superior,/obj/structure/disposalpipe/segment{dir = 4},/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) +"eHh" = (/obj/structure/table,/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/item/device/megaphone,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo) +"eHi" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/device/megaphone,/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor,/area/crew_quarters/heads) +"eHj" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/security_space_law,/obj/item/weapon/coin/plasma,/obj/item/device/megaphone,/turf/simulated/floor/wood,/area/crew_quarters/captain) +"eHk" = (/obj/machinery/newscaster{pixel_x = 30},/obj/machinery/alarm{pixel_y = 26},/obj/structure/snowman,/turf/simulated/floor{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/medical/reception) +"eHl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/snowman,/turf/simulated/floor/plating/snow,/area/hallway/primary/aft) +"eHm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/clothing/head/hardhat/reindeer,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -12583,7 +12608,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaczacAacBacCacDacEacqaaiaaiaaiacFacGacHaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiacIacJacKacJacJacLaaiaaiaaiaaiaaiaaiaaiabAacMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaaDaaDaaDaaDaaDaaDaaDaaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaaaahaahaahaahaahaaaaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiacNacOaaiaaiacPacQacRacSacTaaiaaiaaiacUacVacWacXaaiaaiacYacZadaadbadcaddaaiadeadfadgadhadiadjadkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaaDaaDaaDaaDaaDaaDaaDaaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaaaahaahaahaahaahaaaaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiadladmadnadoaaiadpadqaaiadracRadsacRadtacRaduaaiaaiadvadwadxadyaaiaaiadzadAadBadCacJadDaaiadEadiadiadiadiadjadkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaaDaaDaaDaaDaaDaaDaaDaaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiadFadGadHadIaaiabVabSaaiadJacRadKadLadMacRadNaaiaaiadOadPadQadRaaiaaiadSadTadUadVadWadXaaiadYadiadZadiadiadjadkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiadFadGadHadIaaiabVabSaaiadJacRadKadLadMacRadNaaiaaiadOadPadQadRaaiaaiadSadTadUadVadWaDKaaiadYadiadZadiadiadjadkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaeaaebaecaaiaedaeeaefaefacDaegacqaaiaehacRadsacRadtacRaeiaaiaaiaejaekadQaelaaiaaiaemadAaenadCacJaeoaaiaepadiadiadiadiaeqadkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaeraesaetaeuaevaewaevaexacDacEacqaaiaaiaeyaezaeAadtaeBaaiaaiaaiaeCaeDaeEaeFaaiaaiaeGaeHaeIacJaeJaeKaaiaeLaeMaeNaeNaeOaaiabAabLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaePaeQaeRaaiaeSaeQaeTaaiaaaaaiaeUaeVaeWaaiaaiaeXaaiaaiaaiaeYaeZaaiaaiafaadsafbadtafcaaiaaiafdafeaffaaiaaiaaiaaiafgafhafiafjafkaaiaaiaflafmafnafoafpaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -12608,47 +12633,47 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqQaaaaaaaaaaframdaqTaqTaqTamdaaaaaaaaiaaiabnaaiaaiaflaaiarLaaiaaqaaqaaqarMarNaaqaaqaaqaaqarOarPaaqaaqaaqaaiarQarRarSarTarUarVaqBarWaaqarXarYarZasaabIasbascasdaseaqJasfamzasgashasiasjaskaslanDaaiasmasnaaiasoaspasqasrasrasrasrasrassaaiaaaaaaaaaafraabaoRaoSaoSaoSaoSaoTaoUaoVaoWaoWaoWaoWaoXaabafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaqQaaaaaaaaaafqamdaqTaqTaqTamdaaiaaiaaiastasuasvaswasxasyaszaaiasAapiapjapkaplapmasBapoasCasDasEasFasGasHapmasIasJasKasLasMasMasNasOaaqasPasQasRasSaaqasTasUasVaqKaqJasWamzasgaqMashashashasXasYasZataatbaaiatcatdateatfatgathatiatiatjaaiaaaaaaaaaafraabapTapTapTapTapTaabapUaabapTapTapTapTapTaabafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiatkatlatmatnatoaaiaaaaaaaaaaaaaaaaqQaaaaaaaabaframdaqTaqTaqTatpamLatqamNatratsattatuatvattatwaaiaqhatxatyatzatAatBatCatDatEatFatGatHatIatJatKatLatMatMatNatMatMatOatPatQatRatSatTatUaaqatVatWatXatYatZauaamzasgaubaucaucaucaudaueaufaugauhaaiauiaujaukatfatfatfatfatfatfaaiaaaaaaaaaamIaaaaaaaaaaabaaaaaaaaaapUaaaaaaaaaaabaaaaaaaaaafqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiatkaulaumaunatkaaiaaaaaaaaaaaaaaaaqQaaaaaaaabaframdauoauoauoamdaaiaaiaaiaupauqaurausautauuauvaaiaqZauwauxauyauzarearfauAauBauCauDauBauEarmareauFauGauHauGauGauHauGauIaaqarXauJatTauKaaqauLauMauNauOauPauPauQauRaovaaqaaqaaqaaKaaqabnaaiaaiaaiauSauTauUatfauVauWauWauWauWaaiaaaaaaaaaafraabaosaosaosaosaosaabapUaabaosaosaosaosaosaabafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaaaaaaaaaaaaaaaaaaaaaaaaiatkauXauYauZatkaaiaaaaaaaaaaaaaaaaqQaaaaaaaaaaframdavaavaavaamdaaqaaqaaqaaqaaqaaqaaiavbavcaaiaaiaaiaaiavdacDaveacDacDaveacDaveacDacDabuaaiaaiavfavgavhaviavgavhaviavjaaiaaiaaiaaiaaiaaqavkavlavmavmavnavoavpavqaaqavravsavtaaKavuavvavwavxaaqaaqavyaaKaaqaaqaaqaaqaaqaaqaaiaaaaaaaaaafqaabaoRaoSaoSaoSaoSaoTaoUaoVaoWaoWaoWaoWaoXaabafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaavzavAavBaaaavCavDavEaaiavFavGavHavGavIaaiaaaaaaaaaaaaaaaaqQaaaaaaaaaafravJavKavKavKavLaaqavMavNavOavPavQavRavSavTavUavVavUavUavUavUavUavUavUavUavWavXavYavUavUavUavUavZavUavUavUavUawaawbawcawdaweawfawgawhaaqawiawjawkawlawmawnawoawpaaqawqawrawsaaKawtawuawtawvaaqawwawxawyawzawAawBawCawDawEaaiaaaaaaaaaafqaaaapTapTapTapTapTaabapUaabapTapTapTapTapTaaaafZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcaaaamcamcamcamcamcamcamcamcamcaaaamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaiawFawGawFaaiawHawIawHaaiawJawKawLawMawNaaiaaaaaaaaaaaaaaaaqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqawOawPawQawRawRawSawTawUawaawaawaawaawaawaawaawaawaawaawVawaawaawaawaawaawaawWawaawaawaawaawXawaawYawaawZawaawaaxaaaqaxbaxcaxdaxeawkaxfawoaxgaaqaxhaxiaxjaxkawtaxlaxmavxaaqaxnaxoaxpaxqaxraxsaxraxtaxraaiaaaaaaaaaafqaaaaabaaaaaaaaaaaaaabapUaaaaaaaaaaaaaaaaabaaaafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcaaaaaaamcamcamcamcamcamcamcamcamcaaaaaaamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiatkaulaumaunatkaaiaaaaaaaaaaaaaaaaqQaaaaaaaabaframdauoauoauoamdaaiaaiaaiaupauqaurausautauuauvaaiaqZauwauxauyauzarearfauAauBauCauDauBauEarmareauFauGauHauGauGauHauGauIaaqarXauJatTauKaaqauLauMauNawnauPauPauQauRaovaaqaaqaaqaaKaaqabnaaiaaiaaiauSauTauUatfauVauWauWauWauWaaiaaaaaaaaaafraabaosaosaosaosaosaabapUaabaosaosaosaosaosaabafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaaaaaaaaaaaaaaaaaaaaaaaaiatkauXauYauZatkaaiaaaaaaaaaaaaaaaaqQaaaaaaaaaaframdavaavaavaamdaaqaaqaaqaaqaaqaaqaaiavbavcaaiaaiaaiaaiavdacDaveacDacDaveacDaveacDacDabuaaiaaiavfavgavhaviavgavhaviavjaaiaaiaaiaaiaaiaaqavkavlavmavmavnavmavpavqaaqavravsavtaaKavuavvavwavxaaqaaqavyaaKaaqaaqaaqaaqaaqaaqaaiaaaaaaaaaafqaabaoRaoSaoSaoSaoSaoTaoUaoVaoWaoWaoWaoWaoXaabafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaavzavAavBaaaavCavDavEaaiavFavGavHavGavIaaiaaaaaaaaaaaaaaaaqQaaaaaaaaaafravJavKavKavKavLaaqavMavNavOavPavQavRavSavTavUavVavUavUavUavUavUavUavUavUavWavXavYavUavUavUavUavZavUavUavUavUawaadXawcawdaweawfawgawhaaqawiawjawkawlawmavoawoawpaaqawqawrawsaaKawtawuawtawvaaqawwawxawyawzawAawBawCawDawEaaiaaaaaaaaaafqaaaapTapTapTapTapTaabapUaabapTapTapTapTapTaaaafZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcaaaamcamcamcamcamcamcamcamcamcaaaamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaiawFawGawFaaiawHawIawHaaiawJawKawLawMawNaaiaaaaaaaaaaaaaaaaqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqawOawPawQawRawRawSawTawUawaawaawaawaawaawaawaawaawaawaawVawaawaawaawaawaawaawWawaawaawaawaawXawaawYawaawZawaawaaxaaaqaxbaxcaxdaxeawkauOawoaxgaaqaxhaxiaxjaxkawtaxlaxmavxaaqaxnaxoaxpaxqaxraxsaxraxtaxraaiaaaaaaaaaafqaaaaabaaaaaaaaaaaaaabapUaaaaaaaaaaaaaaaaabaaaafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcaaaaaaamcamcamcamcamcamcamcamcamcaaaaaaamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaiawFaxuawFaaqawHaxvawHaaiaxwaxxaxyaxzaxAaaiaaaaaaaaaaaaaaaaqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaxBaxCaxDaxEaxFaaqaxGaxHaxIaxIaxJaxKaxLaxIaxMaxIaxIaxIaxNaxIaxIaxIaxIaxIaxIaxOaxPaxQaxQaxQaxRaxSaxTaxSaxUaxVaxSaxWaaqaaiaaiaaiaaiaaiaaiawoawpaaqaxXawraxYaaKawtaxZawtawvaaqayaaybaycaxraydaxraxraxtayeaaiaaaaaaaaaafqafqafraaaaaaaaaaabaabapUaabaaaaaaaaaaaaafrafrafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaaaiayfaygayhaaqayiayjaykaaiaylaymaynayoaypaaiaaaaaaaaaaaaaaaaqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaaqaaqaaqaaqaaqaaiaoyayqaaqayraysaytaaqayuaaqayvaywaaqayxaaqaaqaaqaaqaaqaaqaaqayyaaqaaqayzayAayBamzaaqaoyaaqayCaaqaaqapPanDanDanDanDanDayDawpaaqayEawrayFaaKayGaxlaxmavxaaqayHayIayJayKayKayLayKayMayNaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIaaiaaiaaiaaiayPayQayRaaqayPayQayRaaiaySayTayUayVayWaaiaaaaaaaaaaaaaaaapVapWapWapWapWapWapWayXaaaaaaaaaaaaaaaaaaaaaaaaaaiayYayZaaqazaazbazcaaqazdaaqazeazfazgazhaziazjazkazlazmaznazoazpazqazrazsawaawbaztazuazvazwazwazwazwazwazxazwazwazwazwazyazzazAazBazCazDazEazFazGawtawvaaqayHazHazIazJaxrazKazLazMazNaaiazOazPazPazPazPazPazQaaaaaaaaaaaaazRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazSazTazUazUazTaaiaaiaaiaaiaaiazVazWaaiaaqazXaaqaaiaaqazYaaqaaiazZaAaaAbazZaAcaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAdaAeaAdaaaaaaaaaaaaaaaaaaaaaaaiaAfaAgabXaAhaAiaAjaaqazdaaqaAkaAlaAmazhaAnaAoaApaApaApaApaApazpaApaAqavUawaawbaaqaAraAsabIabIabIabIaAtaAsabIabIabIabIabIabIaAuabIaAvaAwaAxabIaAyaAzaaqaaqaaqaAAaABaaqaaqamzaaqaaqaaqaaiaACaADaADaADaADaADaACaaiaaaaaaaaaazRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAEaAFaAGaAHaAIaAJaAKaAJaAJaALaAMaANaANaAOaANaAPaAQaARaASaATaAUaAVaAWaAVaAXaAYaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAZaBaaBbaaaaaaaaaaaaaaaaaaaaaaaiazdayZaaqaBcaBdaAjaaqazdaaqaBeaBfaBgazhaBhaApaApaBiaApaBjaBjazpaApaAqavUawaaBkaaqaBlaAsaBmaBnaBoaaqaBpaBqaBraBsaBtaBuaBvaBwaBxaByaBzaBAaBBaBCaBDaBEaBFaBGaBHaBIaBJaBKaBLaBMaBNaBOaBPaBQaACaADaADaADaADaADaACaaiaabaaaaaaazRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBRaBSaBTaBUaBVaBWaBXaBWaBYaBWaBZaCaaCbaBZaCcaCdaCeaCfaCgaChaCiaCiaCiaCiaCjaCkaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaClaCmaCnaCoaoOaoOaoOaoOaoOaoPaaiaaiazdayZaaqaCpaCqaCrabIaCsabIaCtaCuaCvaCwaziaCxaApaCyaCzaCAaCBaCCaCDaAqavUawaawbaaqasgaCEaCFaBnaBoaaqaCGaCHaCHaCHaCHaCHaCHaCHaCHaCHaCHaCIaCJaCKaCLaCMaCNaCOaCPaCQaCRaCPaCSaCTaCUaCPaCPaCVaCWaADaADaADaADaADaCWaaiaaiaaiaaaazRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTaaiaaiazTaaiaaiaaiaCXaCYaaiaCXaCYaaiaCXaCYaaiaCXaCYaaiaCZaDaaDaaDaaDaaDbaDcaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaDdaDeaDfaaiaDgaDhaDhaDhaDhaDhaDiaDjaDkaaqaDlaDmaDnaaqaDoaaqaDpaDqaDraDsaDtaCAaDuaDvaDwaDxaDyaDzaDAaDBaDCaDDaDEabXaDFaDGaDHaBnaBoaaqaDIaCHaCHaDJaDJaDJaCHaCHaCHaCHaDKaDLaDMaDNaDOaDPaDQaDRaDSaDSaDTaDSaDUaDSaDSaDSaDSaDVaDWaADaADaADaADaADaDXaDYaDZaEaaaaazRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEbaEbaEbaEbaEbaEbaEbaEbaEbaaaaEcaEdaEeaDaaDaaDaaDbaEfaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaEgaEhaEiaaiaEjaaiaaiaaiaaiaaiaaiaaiaEkaaqaElabXabXabXaEmabXaEnabXabXabXaEoabXabXaaFabXabXabXabXabtaovaEpawaaEqaaqasgaoyaEraBnaBoaaqaCGaCHaDJaEsaEsaEtaDJaCHaEuaCHaEvaEwaExaEyaEzaEAaEBaECaEAaEAaEDaEAaEEaEFaEGaEHaEuaEIaEaaADaADaADaADaADaEaaEJaEKaELaaaazRaaaaaaaaaaaaaaaaaaaaaaaqaaqaEMaENaENaENaENaEOaaqaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEbaEbaEbaEbaEbaEbaEbaEbaEbaEPaEQaERaESaDaaDaaDaaDbaETaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaiaEUaEVaEWaaiaEjaaiaEXaEYaEZaFaaFbaaiaEkazdazdazdazdaFcaFdaFeaFfaFfaFfaFfaFgaFfaFhaFiaFjaFfaFfaFkaFkaFlaFmaFnaFoabIaFpaoyaFqaEraEraaqaCGaCHaDJaFraFsaFtaDJaCHaCHaFuaFvaEwaFwaFxaCHaCHaFyaFzaCHaCHaCHaCHaFAaFBaFCaFDaCHaFEaFFaADaADaADaADaADaFFaFGaEKaELaaaaFHaaaaaaaaaaaaaaaaaaaaqaaqaFIaFJaFKaFLaFMaFNaFOaFKaaqaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEbaEbaEbaEbaEbaEbaEbaEbaEbaFPaFQaFRaFSaDaaDaaDaaDbaFTaaiaFUaFVaFWaFXaFYaaiaaiaaiaaiaaiaaiaFZaamaaiaEjaaiaFbaGaaGbaFbaFbaaiaGcaGdaGdaGdaGdaGeaGfaaiaaiaaiaaiafdabnaaiaGgaaiaflafdaaiaaiaaiaaiaGhaGiaGjaGkaGlaDGaGmaGnaEraGoaCGaCHaDJaGpaEsaEsaDJaCHaCHaCHaGqaGraGsaGtaCHaCHaFyaGuaGvaGwaGwaGwaGxaCHaCHaDOaCHaGyaGzaADaADaADaADaADaGAaGBaGCaFFaGDaGEaGDaaaaaaaaaaaqaaqaaqaGFaFLaGGaFLaGHaGIaFLaFLaFLaGJaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTaaiaaiazTaaiaaiaaiaCXaCYaaiaCXaCYaaiaCXaCYaaiaCXaCYaaiaCZaDaaDaaDaaDaaDbaDcaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaDdaDeaDfaaiaDgaDhaDhaDhaDhaDhaDiaDjaDkaaqaDlaDmaDnaaqaDoaaqaDpaDqaDraDsaDtaCAaDuaDvaDwaDxaDyaDzaDAaDBaDCaDDaDEabXaDFaDGaDHaBnaBoaaqaDIaCHaCHaDJaDJaDJaCHaCHaCHaCHdbHeGPcnwdboaDOaDPaDQaDRaDSaDSaDTaDSaDUaDSaDSaDSaDSaDVaDWaADaADaADaADaADaDXaDYaDZaEaaaaazRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEbaEbaEbaEbaEbaEbaEbaEbaEbaaaaEcaEdaEeaDaaDaaDaaDbaEfaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaEgaEhaEiaaiaEjaaiaaiaaiaaiaaiaaiaaiaEkaaqaElabXabXabXaEmabXaEnabXabXabXaEoabXabXaaFabXabXabXabXabtaovaEpawaaEqaaqasgaoyaEraBnaBoaaqaCGaCHaDJaEsaEsaEtaDJaCHaEuaCHeGQeGReGSeGTaEzaEAaEBaECaEAaEAaEDaEAaEEaEFaEGaEHaEuaEIaEaaADaADaADaADaADaEaaEJaEKaELaaaazRaaaaaaaaaaaaaaaaaaaaaaaqaaqaEMaENaENaENaENaEOaaqaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEbaEbaEbaEbaEbaEbaEbaEbaEbaEPaEQaERaESaDaaDaaDaaDbaETaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaiaEUaEVaEWaaiaEjaaiaEXaEYaEZaFaaFbaaiaEkazdazdazdazdaFcaFdaFeaFfaFfaFfaFfaFgaFfaFhaFiaFjaFfaFfaFkaFkaFlaFmaFnaFoabIaFpaoyaFqaEraEraaqaCGaCHaDJaFraFsaFtaDJaCHaCHaFueGWeGXeGUeGVaCHaCHaFyaFzaCHaCHaCHaCHaFAaFBaFCaFDaCHaFEaFFaADaADaADaADaADaFFaFGaEKaELaaaaFHaaaaaaaaaaaaaaaaaaaaqaaqaFIaFJaFKaFLaFMaFNaFOaFKaaqaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEbaEbaEbaEbaEbaEbaEbaEbaEbaFPaFQaFRaFSaDaaDaaDaaDbaFTaaiaFUaFVaFWaFXaFYaaiaaiaaiaaiaaiaaiaFZaamaaiaEjaaiaFbaGaaGbaFbaFbaaiaGcaGdaGdaGdaGdaGeaGfaaiaaiaaiaaiafdabnaaiaGgaaiaflafdaaiaaiaaiaaiaGhaGiaGjaGkaGlaDGaGmaGnaEraGoaCGaCHaDJaGpaEsaEsaDJaCHaCHaCHeGYeGZeHaeHbaCHaCHaFyaGuaGvaGwaGwaGwaGxaCHaCHaDOaCHaGyaGzaADaADaADaADaADaGAaGBaGCaFFaGDaGEaGDaaaaaaaaaaaqaaqaaqaGFaFLaGGaFLaGHaGIaFLaFLaFLaGJaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEbaEbaEbaEbaEbaEbaEbaEbaEbaGKaGLaERaESaDaaDaaDaaDbaETaaiaGMaGNaGOaGPaGQaaiaGRaGSaGTaGTaGTaGUaGTaGTaEjaaiaGVaGWaGXaGYaGZaaiaHaaHbaHaaHaazdazdaDoaaiaHcaHdaHeaHfaHgaHhaHiaHjaHkaHlaHmaHdaHnaaiaHoawaaHpaaqaHqaoyaHraHsaHsaHtaHuaHvaHwaHxaHxaHyaHzaEAaHAaHzaHzaHBaHCaHDaCHaCHaHEaHFaHGaHHaHHaHHaHIaHJaFCaDOaCHaHKaHLaADaADaADaADaADaHMaaiaaiaaiaAZaHNaAZaaaaaaaaqaaqaHOaaqaHPaHQaHRaHSaFLaFLaHTaHUaFLaHVaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEbaEbaEbaEbaEbaEbaEbaEbaEbaHWaHXaHYaHZaDaaDaaDaaDbaETaaiaIaaIbaIcaIdaIeaaqaIfaIgaIhaIiaIiaIjaDhaDhaIkaaiaFbaGaaIlaFbaFbaaiaImazdaInaHaazdazdaDoaaiaIoaIoaIpaIqaIraIsaItaIsaIuaIvaIwaIxaIxaaiaHoawaaIyaaqaHqaoyaEraBnaBoaaqaCGaIzaIAaIBaICaIDaIDaIEaIFaIDaIFaIGaIHaIIaIJaIKaILaIMaINaIOaIPaIQaIRaaqaISaITaISaaqaIUaADaADaADaADaADaIVaaiaabaoNaCmaIWaIXaAaaaaaaqaIYaIZaJaaJbaJcaJdaFLaFLaFLaJeaJfaFLaJgaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTaaiaaiaaiaaiaaiaaiaaiaCXaJhaJiaaiaCXaJhaJiaaiaaiaaiaaiaJjaDaaDaaDaaDaaDbaJkaaiaJlaJmaJnaJoaJpaaqaJqaGTaEjaJraGTaJsaGTaJtaJuaaiaJvaJwaJxaJyaFbaaiazdazdaJzaHaazdazdaDoaaiaaiaaiaaiaJAaJBaHdaJCaHdaJBaJDaaiaaiaaiaaiaHoawaaJEaaqaHqaoyaDHaBnaBoaaqaJFaJGaaqaaqaaqaaqaaqaaqaaqaJHaaqaaqaaqaaqaaqaaqaJIaaqaJJaJKaJKaJKaJLaaqaJMaJNaJOaaqaIUaADaADaADaADaADaIVaaiaaaaaiaJPaJQaJRaaiaaaaaqaJSaJTaaqaJUaJVaJWaJXaJYaJZaKaaKbaGHaaqaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaKcaKdaKeaANaANaKfaKgaANaANaKhaKiaKjaaiaEcaKkaEeaDaaDaaDaaDbaETaaiaaqaaqaoyaKlaaqaaqaJqaGTaEjaaiaaiaaiaaiaaiaaiaaiaaiabnaKmaaiaaiaaiaaiaaiaaiaaiaaiaaiaDoaaiaKnaKnaIpaKoaKpaIsaItaIsaKpaKqaKraKsaKtaaiaHoawaaHpaaqaKuaAsaKvaBnaBoaaqaKwaJGaaqaKxaKyaKzaKzaaqaKAaKyaKBaaqaKCaKDaKEaaqaKFaaqaJJaJKaJKaJKaJLaaqaKGaKHaKIaaqaKJaKKaKKaKKaKKaKKaKLaaaaaaaaiaKMaKNaKOaaiaaaaaqaKPaKQaaqaaqaaqaaqaaqaKRaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaKcaKdaKeaANaANaKfaKgaANaANaKhaKiaKjaaiaEcaKkaEeaDaaDaaDaaDbaETaaiaaqaaqaoyaKlaaqaaqaJqaGTaEjaaiaaiaaiaaiaaiaaiaaiaaiabnaKmaaiaaiaaiaaiaaiaaiaaiaaiaaiaDoaaiaKnaKnaIpaKoaKpaIsaItaIsaKpaKqaKraKsaKtaaiaHoawaaHpaaqaKuaAsaKvaBnaBoaaqaKwaJGaaqaKxaKyaKzaKzaaqaKAaKyaKBaaqaKCaKDeHfaaqaKFaaqaJJaJKaJKaJKaJLaaqaKGaKHaKIaaqaKJaKKaKKaKKaKKaKKaKLaaaaaaaaiaKMaKNaKOaaiaaaaaqaKPaKQaaqaaqaaqaaqaaqaKRaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCXaKSaKTaDaaDaaDaaDaaKUaDaaDaaDaaKUaDaaKVaKWaKXaKYaKZaLaaLaaLaaLbaETaaiaLcaLdaLeaLfaaqaaqaLgaGTaEjaaiaLhaLiaLjaLiaLkaaiaLlaLmaLnaLoaLpaaiaLqaLqaLraLqaLsaaiaDoaaiaHcaHdaLtaLuaJBaHdaLvaHdaJBaLwaLxaHdaHnaaiaHoawaaLyaaqaHqaCEaCFaBnaBoaaqaLzaLAaaqaLBaKyaKyaKyaLCaLDaLEaLFaaqaLGaLHaLIaLJaLKaaqaLLaLMaLNaLMaLOaaqaLPaLQaLRaaiaaaaaaaaaaaaaabaaaaaaaaaaaaaaiaLSaLTaLUaaiaLVaaqaaqaaqaaqaLWaLXaLYaLYaLZaLYaMaaLYaMbaMcaMcaMdaMcaMcaMcaMcaMeaMfaMgaaiaMhaaiaaaaoqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaMiaBZaBZaBZaBZaMjaBZaBZaBZaMjaMkaMlaMmaMnaMmaMoaMpaMpaMpaMqaMraaiaMsaMtaMuaMvaMwaaqaJqaGTaEjaaiaMxaLkaLkaLkaLkaaiaMyaMzaMAaMBaMCacDaMDaMDaMEaMDaMFaaiaDoaaiaKnaKnaIpaMGaKpaIsaMHaIsaKpaMIaIwaMJaMKaaiaMLayAaMMaaqaHqaCEabXabXabXabXaMNaMOaMPaMQaMRabXabXabXaaFabXabtaMSaMTaMUaMVabXaMWaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiaoNaoPaaiaaiaaiaaiaaiaaiaMXaamaaiaMYaMZaNaaNbaNcaNdaNeabXabXabXabXaaFaNfaNgabXabXaNhabXaNiabXabXaaFaNjaaqaaqaNkaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiabAacMaaaaaaaaaaaaaaaaaaaaaaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNmaNnaNnaNoaNnaNnaNpaNqaNnaNnaNoaNraESaNsaNtaNuaNvaNwaNxaNxaNxaNyaNzaaiaNAaNBaNCaNDaNEaNFaNGaNHaIkaaiaNIaNJaNKaNLaNMaNNaNOaNPaNQaNRaNSaNTaNUaNVaNWaNXaNYacfaNZaaiaaiaaiaaiaOaaJBaHdaJCaHdaJBaObaaiaaiaaiaaiaOcaOdaOeaaqaKuaOfasYasYasYaOgaOhaOiabIaOjaOkabIaOlabIaOmabIaOnaAzaOoaOpaOqaaqaOraOsaOtaOuaOuaOsaOvaOwaOwaOwaOwaOwaOxaOyaOwaOzaOAaOBaOCaODaOEaOEaOFaOGaOHaOHaOHaOIaMfaOJaOKaOLaOMaaqaONaOOaOPaaKaaqaOQaaqaORaOSaOTaOUaOVaOWaOXaOYaOZaPaaPbaaiaPcaPdaPeaPfaPgaPhaPiaPjaPkaPlaaaaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPmaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNmaPnaPoaPoaPoaPpaPqaPraPsaPtaPpaPoaPuaPvaPwaaiaPxaKcaPyaDaaDaaDaaPzaPAaaiaPBaPCaPDaPEaPFaaqaPGaPHaGTaaiaPIaPJaPKaPLaPMacDaPNaPOaPPaPQaPRaaiaPSaPTaPUaLqaPVaaiazdaaiaHcaHdaPWaLuaJBaHdaJCaHdaJBaLwaPXaaiaaiaaiaPYaPZaQaaQbaQcabnaaiaaiaaiaaqaQdaQeaaqaQfaKyaaqaQgaaqaQhaaqaQiaQjaQkaQlaQmaQnaQoaQpaQqaQraQsaAuaQtaQsaQsaQuaQsaQpaQvaQpaQwaQpaQpaQxaQyaQzaQAaQAaQBaQCaQDaQEaQAaQFaMcabIaQGaQHaQIaQJaQKaQLaQMaaKaQNaQOaaqaQPaQQaQRaQSaOVaQTaOXaOYaOZaQUaQVaaiaQWaQXaQXaQYaPjaPjaPjaPjaPkaPlaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQZaPuaRaaRbaRcaRaaRcaPoaRcaRaaRcaRbaRdaNnaNraaiaaiaReaDaaDaaDaaDaaRfaRgaaiaRhaRiaRjaRkaRlabXaRmaRnaaqaaiaRoaRpaRqaLkaLkaaiaRraPOaPPaPQaRsaaiaRtaPTaRuaRvaLqaaiazdaaiaRwaRxaIpaRyaRzaIsaRAaIsaRBaRCaRDaaiaREaRFaRGaRHaRIaRJaRKaRLaaaaaaaaiaRMaRNaROaaqaRPaKyaKyaKyaRQaKyaKyaKyaaKaRRaRSaaqaRTaoyaaqaRUaaqaaqaRVaRWaRXaRYaRZaaqaSaaSbaaqaRTaaqaaqaaqaaqaScaaqaaqaoyaaqaaqaaqaaqaSdaMfaaqaSeaQIaSfaSgaShaSiaSjaSkaSlaSmaaqaSnaSoaSpaSqaSraQTaOXaOYaOZaSsaStaaiaSuaQXaQXaQYaPjaPjaPjaPjaPkaPlaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSvaSwaRaaRbaRcaRaaRcaPoaRcaRaaRcaSxaPuaPoaSyaNraaiaSzaDaaDaaDaaDaaSAaSBaSCaSDaSEaSFaSEaSGaSHaSIaSJaSKaaiaaiaflaaiaaiaaiaaiaGKaSLaSMaGKaSNaaiaaiaflaaiaaiaaiaaiaSOaaiaaiaaiaaiaSPaSQaSRaSSaSRaSTaSUaaiaaiaSVaRHaRHaRHaRHaSWaSXaSYaSZaTaaaiaTbaRNaTcaaqaaqaaqaaqaaqaaqaaqaaqaaqaaKaTdaTeaTfaTgaThaTiaTjaTkaaqaTlaTmaTnaToaTpaaqaTqaTraTsaTtaTsaTuaTvaTwaTxaTyaTzaTAaTBaTCaTDaaqaTEaOEaTFaTGaTHaSfaTIaShaSiaTJaaqaTKaTLaTMaTNaTOaQSaQSaaqaQVaOXaOYaOZaTPaTQaaiaTRaQXaTSaTTaTUaTVaPjaPjaTWaPlaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSvaSwaTXaRbaRcaRaaRcaTYaRcaRaaRcaRbaNoaPoaTZaUaaaiaUbaDaaDaaUcaDaaDbaUdaDaaUeaUfaUgaUhaUiaSKaUjaUkaSKaUlaUmaUnaSKaUoaSKaUpaSKaUjaUqaSKaUraUsaSKaUtaSKaUuaUmaUvaUwaUxaUyaUzaUAaUBaUCaUCaUCaUCaUCaUCaUDaUEaUFaUGaUHaUIaUJaUKaULaUMaRHaRHaUNaUOaUPaUOaUQaURaUSaUTaUUaUVaUWaaqaUXaUYaUZaVaaVbaVbaVcaVdaVeaVfaaqaVgaVhaViaViaVjaaqaVkaVlaVmaVnaVoaVoaVpaVqaVraVqaVsaVtaVuaVvaVwaaqaSdaVxaaqaVyaVzaVzaVAaVBaVzaVCaaqaVDaVEaaqaVFaVGaQSaVHaaqaVIaVJaVKaOZaQVaQVaaiaVLaVMabnaflaaiaaiaaiaaiaaiabAacMaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSvaSwaRaaRbaRcaRaaRcaPoaRcaRaaRcaRbaPuaPoaVNaVOaaiaVPaDaaDaaDaaDaaDbaVQaMpaVRaVSaVTaVSaVUaVVaUjaVWaVXaVYaVZaWaaVXaVXaVXaSIaVXaSIaWbaVXaWcaVXaVXaWdaSKaUuaUmaUvaUwaUwaUwaUwaWeaUwaUwaUwaUwaUwaUwaWfaWgaWhaWiaWjaWkaWlaWmaWnaWoaWpaWpaWpaWqaWraWraWraWsaUWaUWaUWaWtaWuaUWaaqaWvaWwaVbaVbaWxaVbaWyaWzaVeaWAaaqaWBaWCaWDaWEaWFaaqaWGaWHaWIaWJaWKaWLaaqaWMaWNaWMaaqaaqaaqaoyaaqaaqaSdaMfaaqaWOaQIaQIaQIaWPaQIaWQaaqaaqaaqaaqaaqaaqaaqaWRaaqaOZaOZaOYaOZaWSaWTaaqaWUaWVaWWaWXaWYaWZaXaaXbaAdaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXcaPuaRaaRbaRcaRaaRcaPoaRcaRaaRcaRbaRdaNnaVOaaiaaiaXdaDaaDaaDaaDaaDbaXeaDaaUeaXfaXgaXhaUiaSKaXiaXjaXkaXlaXmaXnaXoaXoaXpaXqaXraXsaXtaXoaXuaXoaXoaXvaXwaXxaXmaXyaXzaXAaXBaXCaXDaXCaXCaXCaXCaXCaXCaXEaXFaXGaXGaXGaXGaXHaXGaXIaXJaXGaXGaXGaXKaXLaXLaXLaXLaXLaXLaXLaXMaUWaUWaaqaXNaXOaXPaXQaXQaXRaXSaWzaVeaXTaaqaaqaaqaaqaaqaXUaaqaXVaXWaXXaXYaTsaXZaaqaYaaYbaYcaYdaYeaYfaYgaYhaaqaSdaMfaaqaYiaYjaQIaYkaYlaQIaYmaYmaaqaYnaYoaYpaaqaYqaYraYsaOZaOZaYtaYuaQVaYvaaqaYwaWVaWWaYxaYyaWVaWVaYzaAZaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYAaPnaPoaPoaPoaPoaYBaPoaPoaYCaPoaPoaPuaYDaYEaaiaEcaKkaYFaDaaDaaDaaYGaYHaYIaYJaYKaYLaYKaYMaYNaUjaYOaYPaaiaaiaaiaaiaaiaaiaaiaGKaYQaYRaGKaYSaaiaaiaflaaiaaiaaiaaiaYTaYUaYTaYVaSZaSZaSZaSZaSZaSZaSZaTaaaiaYWaYXaYYaYZaYZaZaaZbaZcaZdaYXaZeaaiaGKaSZaSZaSZaSZaSZaZfaZgaZgaZgaaqaZhaZiaZjaZjaZjaZjaZkaMTaZlaZmaZnaZoaZpaZqaZraZsaaqaaqaZtaGKaZuaSZaZvaaqaZwaZxaZyaZyaZyaZyaZzaZAaaqaZBaMfaaqaZCaQIaYkaYkaYlaYkaQIaZDaaqaZEaZFaZGaaqaOZaZHaZIaZJaZJaZKaZLaZMaZNabXaZOaZPaZQaZRaWXaWVaWVaZSaAZaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYAaNnaNnaNoaNnaNnaNpaNqaNnaNnaNoaVOaESaNsaZTaZUaNvaZVaNxaNxaNxaZWaZXaaiaZYaZZbaababbacaaibadbaebafaaibagbahbaibajbajaaiaRraMBbakbalbamaaibanbaobapbaqbaraaibasbataUBbauaaaaaaaaaaaaaaaaaaaaaaaibavbawbaxbaybazbaAbazbaBbaCbaDbaEbaFaaiaaaaaaaaaaaaaaaaaaaAZbaGaUWbaHaaqbaIaZiaZmaZmaZmaZmaZmbaJbaKaZmaZmaZmaZpbaLbaLbaMbaNbaObaPbaQbaRbaSbaTaaqbaUbaVbaWbaXbaXbaWbaYbaZaaqaSdbbaaaqbbbbbcaQIaYkaYlaQIbbdbbdaaqaaqbbeaaqaaqbbfaYraYubbgbbgbbhaYuaQVaaqaaqbbiaWVbbjbbjbbkbbjaWVaZSaAZaaaaaaaaabblaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaibbmbbnbbnbbnbbnbbnbbnbbnbbnbbnbboaMlaMmaMnaMmbbpaMpaMpbbqbbrbbsaaibbtbbubbvbbwbbxaaiaUjaYOaSKaaibbybahbbzbahbbAaaibbBaPQbbCaPQbbDaaibbEbbFbbGbbHbbIaaibasbataUBbauaaaaaaaaaaaaaaiaaiaaiaaibbJbbKbbLbbMbbNbbObbPbbQbbRbbSbbTbbUaaiaaiaaiaaaaaaaaaaaaaAZbaGaUWaUWbbVaZmbbWbbXbbYaZmbbZbcaaLIbcbbccbbYaZmaZpbaLbaLbcdbcebaLbcfbcgbchbcibaLbcjbckbclbaWbaXbaXbaWbcmbcnaaqbcobcpaaqaZCaQIaYkaYkaYlaYkaQIaQIbcqbcraQIbcsaaqbctbcubcvbbgbbgbcwbcvbcxaaqbcybczaWVbcAbcAbcBbcAaWVaZSaIXbcCaoOaoObcDaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCXaKSbcEaDaaDaaDaaDaaDaaDaaDaaDaaDaaDaaKVbcFbcGaKYbcHaLaaLabcIaLbbcJaaibcKbcLbcMbcNbcObcPbcQbcRaSKaaibcSbcTbcUbcVbcWbcXaXobcYbcZbcYaXvbdabdbbdcbddbdebdfaaibdgbdhaUBbdiaoPaaiaaiaaiaaibdjbdkbdlbdmbdnbdnbdobdpbdnbdobdpbdqbdrbdnbdsbdtbduaaiaaiaaiaaiaGKbdvbaGaUWaUWaaqbdwbbWbccbbYaZmbdxbdyaZmbdzbdAbbYaZmaZpbaLbaLbdBbdCbdDbdEbdFbdGbdHbaLbdIbckbdJbaWbaXbaXbdKbdLbcnaaqaSdbdMaaqbdNbdObdPaYkaYlbdQaQIaQIbdRaQIbdSbdTaaqbdUbdVbdWbbgbbgbdXbdWbdYaaqbdZbczaWVaWVaWVaWXaWVaWVbeabebbecbedbeebefaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaKkbegbehbeibeibeibeibejbeibekbelbemaaiaPxaKcaHZaDaaDaaKUaDbbmIaaibeobepbeqberbesacDbetbeubevaaibewbexbeybexbexacfbezaPQbbCaPQbeAaaibeBbaobeCbanbeDaaibasbataUBaUCaUCbeEbeFbeGaaibeHbbObdnbeIbdnbdnbdnbdnbeJbdnbeKbdqbeLbeMbeMbeNbeOaaibePbeFbeQbeRbeSbaGaUWaUWbbVaZmbeTaZmaZmaZmbeUbeVaZmbdzbeWbbYaZmaZpbaLbaLbeXbeYbeZbfabfbbfcbdHbfdaaqbfebdJbaWbaXbaXbaWbdLbffaaqbfgaaqaaqaaKaaqaaqbfhaYlbfibfjaQIbfkbflaTIbfmabXbfnbfobfpbfqbfqbfrbfsbftabXbfubfvaWVbfwaWVaWXaWVaWVbfxbfybcCaoOaoObfzaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTaaiaaiaaiaoNaoPazTaoNaoPaaiaoNaoPaaiaaiaaiaaibfAaDaaDaaDaaKUaDbbfBaaibfCbfDbfEbfFaaqaaiaUjbeuaSKaaibfGbfHbfIbahbahaaiaUtaPQbbCaPQaUtaaibfJbaobfKbfLbfMaaibasbataUwaUwaUwbfNbfObfPbfQbfRbfSbdnbfTbfUbfVbfWbfXbfYbfZbgabgbbgcbgdbfRbgebgfbggbghbgibgjbgkbglbgmaUWbgnaaqaZmbbWbgobbYaZmbgpbgqaZmbgrbgsbbYaZmbgtbaLbaLbaLbaMbaLbgubaLbfcbdHbgvaaqbgwbdJbaWbaXbaXbaWbdLbgxaaqbgybgzbgzbgAbgBbgCbgDbgEbgFbgFbgFbgFbgFbgFbgGbgHbgIbbgbbgbbgbbgbbgbbgbgJbgKbgLbczaWVaWVaWVaWXaWVaWVbgMaAZbgNbgNbgNaAZaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgObgPbgPbgQbgPbgRbgPbgPbgQbgSbgTbgUbgVaNxaNxaNxbgWaNybgXaaiaaiaaiaaiaaiaaiaaiaUjbeuaSKaaiaaiaaiaaiaaiaaiaaibgYaPQbbCaPQbgZaaiaaiaflaaiaaiaaiaaibasbhabhbbhcbhdbhebhfbhgacDbhhbhibhjbhkaaiaaiaaiaaiaaiaaibhlbhmarDbhnbfUbhobhpaaibhqbhrbhsbhtbhubhvaUWaUWbbVaZmbhwaZmaZmaZmaOpaZmaZmbhxbhxbhybhybhzbaLbaLbhAbhBbaLbaLbaLbhCbhDbhEaaqbcnbdJbaWbaWbaWbaWbdLbhFaaqbhGbhHbhHbhIbhHbhJaYkaYkaYkaYkbhKaYkaYkaYkbhLbgKbbgbbgbbgbbgbbgbbgbbgbgJbgKbgLbczaWVbbjbbjbbkbbjaWVbhMaAZbhNbhObhPaAZaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgObgPbgPbgPbgPbgPbgPbgPbgPbgPbgPbhRaESaDaaDaaDaaKUaDbbenaaibhSbhTbhUbhVbhWaaqbhXbeubhYaaibhZbiabibbicbicacfbidbiebifbieaWcacfbigbihbiibijbikaaibilbimbinaaiaaiaaiaaiaaiaaiaaqbioaaqaaiaaiaaiaaiaaiaaiaaiaaiaaiaflaaiaaibipaaiaaiaaiaaiaaiaaiaaibhvaUWaUWaaqbiqbiraZmbisaZmbitaZmbiubivbiwbhybixaaqbiybizaaqaaqbiAbiBbiBbiBaaqaaqaaqbiCbiDbiEbiEbiEbiEbiDbiFaaqbiGbhHbhHbhIbiHaaqbiIbiJbiKbfjbiLbiMbiNbiObiPaaqbiQaOZbiRbbgbbgbiRaOZbiSaaqbiTbczaWVbcAbcAbcBbcAaWVbgMaAZbgNbgNbgNaAZaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiUbgPbgPbgPbgPbiVbgPbgPbgPbiWbiXbiYbiZaLaaLaaLabjaaLbbenaaibjbbjcbjdbjdbjdbjebetbeuaSKaaibjfbjgbjhbjibjjaaibjkaPQbbCaPQbjlaaibjmbjnbjobigbjpaaibjqbjrbjsaaibjtbjubjvbjwbjxbjybjzbjAaaiaaibjBbjCbjDbjEbjFbjGbjBaflaaibjHbjIbjJbjKbjLbjMbjNbjOaaibjPbjQbjQbjRaaqaaqaaqaaqbjSbbVbjSbjTaaqaoyaaqaaqaaqaaqaaqaaqbjUbjVbjVbjVbjVbjWbjXaaqbjYbjZbjYbkabkabjYbjZbjYaaqbiGbhHbhHbkbbiHaaqaaqaaqaaqaaqaaKaaqaaqaaqaaqaaqaaKbkcbkdbkdbkdbkdbkeaaqaaqbkfbkgaWVaWVaWVaWXaWVaWVbfxaIXbkhaoOaoObkiaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTaaiaaiaaiaoNaoPazTaoNaoPaaiaoNaoPaaiaaiaaiaaiaESaDaaDaaDabkjaDbbenaaibkkbklbkmbknbknbkoaSIbkpbevaaibkqbkrbksbktbkubkvaXobkwbkxbcYaXobkybkzbkAbkBbkCbkDaaibkEbkFbjsbkGbkHbkIbkJbkKbkKbkJbkLbkMaaiaaibkNbkObjBbkPbkQbkRbkSbkTbkUbkVbkWbkXbkYbkZblabkXblbaaiblcbldbleblfblgblhblibljbljbljbljbljbljblkbllbljblmbljblnbljbljbljbljbljbljbljbljbloblpblqblqblqblqblqblqblrblhblsbltbltblublvblwblvblxblvblyblzblAblvblBblCblDblEblFblFblFblFblFblFblFblGblHblIblIblIblIblJblIblKblLblMblNblObeeblPaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablQblQblQblQblQblQblQblQblQblQaaaaaaaEcblRaEeblSblTbkjblUblVaaiblWblXblXblXblYaaqblZbeuaSKaaibmabjibjhbjibjiaaibjkbmbbmcaaibjlaaibijbmdbmebijbmfaaibmgbkFbjsbmhbmibmjbmkbmlbmmbmnbkLbmoaaiaaibmpbmqaaqaaqaaqbmrbmsaaiaflbmtbkXbkXbkYbmublabkXbmvaaibmwblebleblfblgblhbljbljbljbljbljbljbljbmxbljbljbljbljbljbljbmybmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmAbmBbmCblFblFbmDbhHbhHbhHbhHbhHbhIbhHbhHbhHbhHbhHbhHbhHbhHbhHbhHbhHbhHbmEbhHbmFbmGaWVaWVaWVaWVaWVaWVaWVbmHbfybcCaoOaoObcDaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNmaNnaNnaNoaNnaNnaNpaNqaNnaNnaNoaNraESaNsaNtaNuaNvaNwaNxaNxaNxaNyaNzaaiaNAaNBaNCaNDaNEaNFaNGaNHaIkaaiaNIaNJaNKaNLaNMaNNaNOaNPaNQaNRaNSaNTaNUaNVaNWaNXaNYacfaNZaaiaaiaaiaaiaOaaJBaHdaJCaHdaJBaObaaiaaiaaiaaiaOcaOdaOeaaqaKuaOfasYasYasYaOgaOhaOiabIaOjaOkabIaOlabIaOmabIaOnaAzaOoaOpaOqaaqaOraOsaOtaOuaOuaOsaOvaOwaOwaOwaOwaOwaOxaOyaOwaOzaOAaOBaOCaODaOEaOEaOFaOGaOHaOHaOHaOIaMfaOJaOKaOLaOMaaqaONaOOaOPaaKaaqaOQaaqaORaOSaOTaOUaOVaOWaYsaYraDLeHcaPbaaiaPcaPdaPeaPfaPgaPhaPiaPjaPkaPlaaaaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPmaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNmaPnaPoaPoaPoaPpaPqaPraPsaPtaPpaPoaPuaPvaPwaaiaPxaKcaPyaDaaDaaDaaPzaPAaaiaPBaPCaPDaPEaPFaaqaPGaPHaGTaaiaPIaPJaPKaPLaPMacDaPNaPOaPPaPQaPRaaiaPSaPTaPUaLqaPVaaiazdaaiaHcaHdaPWaLuaJBaHdaJCaHdaJBaLwaPXaaiaaiaaiaPYaPZaQaaQbaQcabnaaiaaiaaiaaqaQdaQeaaqaQfaKyaaqaQgaaqaQhaaqaQiaQjaQkaQlaQmaQnaQoaQpaQqaQraQsaAuaQtaQsaQsaQuaQsaQpaQvaQpaQwaQpaQpaQxaQyaQzaQAaQAaQBaQCaQDaQEaQAaQFaMcabIaQGaQHaQIaQJaQKaQLaQMaaKaQNaQOaaqaQPaQQeHdaQSaOVaQTaYsaYraDLeHeaQVaaiaQWaQXaQXaQYaPjaPjaPjaPjaPkaPlaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQZaPuaRaaRbaRcaRaaRcaPoaRcaRaaRcaRbaRdaNnaNraaiaaiaReaDaaDaaDaaDaaRfaRgaaiaRhaRiaRjaRkaRlabXaRmaRnaaqaaiaRoaRpaRqaLkaLkaaiaRraPOaPPaPQaRsaaiaRtaPTaRuaRvaLqaaiazdaaiaRwaRxaIpaRyaRzaIsaRAaIsaRBaRCaRDaaiaREaRFaRGaRHaRIaRJaRKaRLaaaaaaaaiaRMaRNaROaaqaRPaKyaKyaKyaRQaKyaKyaKyaaKaRRaRSaaqaRTaoyaaqaRUaaqaaqaRVaRWaZHaRYaRZaaqaSaaSbaaqaRTaaqaaqaaqaaqaScaaqaaqaoyaaqaaqaaqaaqaSdaMfaaqaSeaQIaSfaSgaShaSiaSjaSkaSlaSmaaqaSnaSoaSpaSqaSraQTaYsaYraDLaXTaZoaaiaSuaQXaQXaQYaPjaPjaPjaPjaPkaPlaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSvaSwaRaaRbaRcaRaaRcaPoaRcaRaaRcaSxaPuaPoaSyaNraaiaSzaDaaDaaDaaDaaSAaSBaSCaSDaSEaSFaSEaSGaSHaSIaSJaSKaaiaaiaflaaiaaiaaiaaiaGKaSLaSMaGKaSNaaiaaiaflaaiaaiaaiaaiaSOaaiaaiaaiaaiaSPaSQaSRaSSaSRaSTaSUaaiaaiaSVaRHaRHaRHaRHaSWaSXaSYaSZaTaaaiaTbaRNaTcaaqaaqaaqaaqaaqaaqaaqaaqaaqaaKaTdaTeaTfaTgaThaZnaYuaYtaaqaTlaTmaTnaToaTpaaqaTqaTraTsaTtaTsaTuaTvaTwaTxaTyaTzaTAaTBaTCaTDaaqaTEaOEaTFaTGaTHaSfaTIaShaSiaTJaaqaTKaTLaTMaTNaTOaQSaQSaaqaQVaYsaYraDLaXTaYqaaiaTRaQXaTSaTTaTUaTVaPjaPjaTWaPlaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSvaSwaTXaRbaRcaRaaRcaTYaRcaRaaRcaRbaNoaPoaTZaUaaaiaUbaDaaDaaUcaDaaDbaUdaDaaUeaUfaUgaUhaUiaSKaUjaUkaSKaUlaUmaUnaSKaUoaSKaUpaSKaUjaUqaSKaUraUsaSKaUtaSKaUuaUmaUvaUwaUxaUyaUzaUAaUBaUCaUCaUCaUCaUCaUCaUDaUEaUFaUGaUHaUIaUJaUKaULaUMaRHaRHaUNaUOaUPaUOaUQaURaUSaUTaUUaUVbbXaaqaUXaUYaUZaVaaVbaVbaVcbbWaZXaZLaaqaVgaVhaViaViaVjaaqaVkaVlaVmaVnaVoaVoaVpaVqaVraVqaVsaVtaVuaVvaVwaaqaSdaVxaaqaVyaVzaVzaVAaVBaVzaVCaaqaVDaVEaaqaVFaVGaQSaVHaaqbcabcbbccaDLaQVaQVaaiaVLaVMabnaflaaiaaiaaiaaiaaiabAacMaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSvaSwaRaaRbaRcaRaaRcaPoaRcaRaaRcaRbaPuaPoaVNaVOaaiaVPaDaaDaaDaaDaaDbaVQaMpaVRaVSaVTaVSaVUaVVaUjaVWaVXaVYaVZaWaaVXaVXaVXaSIaVXaSIaWbaVXaWcaVXaVXaWdaSKaUuaUmaUvaUwaUwaUwaUwaWeaUwaUwaUwaUwaUwaUwaWfaWgaWhaWiaWjaWkaWlaWmaWnaWoaWpaWpaWpaWqaWraWraWraWsaUWaUWaUWaWtaWuaUWaaqaWvaWwaVbaVbaWxaVbaWyaZLaZXaZNaaqaWBaWCaWDaWEaWFaaqaWGaWHaWIaWJaWKaWLaaqaWMaWNaWMaaqaaqaaqaoyaaqaaqaSdaMfaaqaWOaQIaQIaQIaWPaQIaWQaaqaaqaaqaaqaaqaaqaaqaWRaaqbbhbbsbbfaDLaWSaWTaaqaWUaZJaZIaZKaWYaWZaXaaXbaAdaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXcaPuaRaaRbaRcaRaaRcaPoaRcaRaaRcaRbaRdaNnaVOaaiaaiaXdaDaaDaaDaaDaaDbaXeaDaaUeaXfaXgaXhaUiaSKaXiaXjaXkaXlaXmaXnaXoaXoaXpaXqaXraXsaXtaXoaXuaXoaXoaXvaXwaXxaXmaXyaXzaXAaXBaXCaXDaXCaXCaXCaXCaXCaXCaXEaXFaXGaXGaXGaXGaXHaXGaXIaXJaXGaXGaXGaXKaXLaXLaXLaXLaXLaXLaXLaXMaUWaUWaaqaXNaXOaXPaXQaXQaOXaXSaGtaKEaGtaaqaaqaaqaaqaaqaXUaaqaXVaXWaXXaXYaTsaXZaaqaYaaYbaYcaYdaYeaYfaYgaYhaaqaSdaMfaaqaYiaYjaQIaYkaYlaQIaYmaYmaaqaYnaYoaYpaaqaFwaDLaFxaGqaGraGsaDLaQVaYvaaqaYwaWVaWWaYxaYyaWVaWVaYzaAZaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYAaPnaPoaPoaPoaPoaYBaPoaPoaYCaPoaPoaPuaYDaYEaaiaEcaKkaYFaDaaDaaDaaYGaYHaYIaYJaYKaYLaYKaYMaYNaUjaYOaYPaaiaaiaaiaaiaaiaaiaaiaGKaYQaYRaGKaYSaaiaaiaflaaiaaiaaiaaiaYTaYUaYTaYVaSZaSZaSZaSZaSZaSZaSZaTaaaiaYWaYXaYYaYZaYZaZaaZbaZcaZdaYXaZeaaiaGKaSZaSZaSZaSZaSZaZfaZgaZgaZgaaqaZhaZiaZjaZjaZjaZjaZkaMTaZlaExaFvaEyaZpaZqaZraZsaaqaaqaZtaGKaZuaSZaZvaaqaZwaZxaZyaZyaZyaZyaZzaZAaaqaZBaMfaaqaZCaQIaYkaYkaYlaYkaQIaZDaaqaZEaZFaZGaaqaDMaDLaDLaDLaDLaEvaEwaZMaDNabXaZOaZPaZQaZRaWXaWVaWVaZSaAZaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYAaNnaNnaNoaNnaNnaNpaNqaNnaNnaNoaVOaESaNsaZTaZUaNvaZVaNxaNxaNxaZWaWzaaiaZYaZZbaababbacaaibadbaebafaaibagbahbaibajbajaaiaRraMBbakbalbamaaibanbaobapbaqbaraaibasbataUBbauaWAaTPaTPaTPaTPaTPaTPaaibavbawbaxbaybazbaAbazbaBbaCbaDbaEbaFaaiaWAaTQaXRaTPaTPaTPaAZbaGaUWbaHaaqaZmbeTaZmaZmaZmaZmaZmbaJbaKaVIaVfaVeaZpbaLbaLbaMbaNbaObaPbaQbaRbaSbaTaaqbaUbaVbaWbaXbaXbaWbaYbaZaaqaSdbbaaaqbbbbbcaQIaYkaYlaQIbbdbbdaaqaaqbbeaaqaaqaVJaDLaDLbbgbbgaVKaDLaQVaaqaaqbbiaWVbbjbbjbbkbbjaWVaZSaAZaaaaaaaaabblaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaibbmbbnbbnbbnbbnbbnbbnbbnbbnbbnbboaMlaMmaMnaMmbbpaMpaMpbbqbbraTkaaibbtbbubbvbbwbbxaaiaUjaYOaSKaaibbybahbbzbahbbAaaibbBaPQbbCaPQbbDaaibbEbbFbbGbbHbbIaaibasbataUBbauaTPaTPaTPaTQaaiaaiaaiaaibbJbbKbbLbbMbbNbbObbPbbQbbRbbSbbTbbUaaiaaiaaiaTPaTQaVdaTPaAZbaGaUWaUWbbVaOZaOYaPaaOZaOZbbZaQRaLIaQUaExaRXaExaZpbaLbaLbcdbcebaLbcfbcgbchbcibaLbcjbckbclbaWbaXbaXbaWbcmbcnaaqbcobcpaaqaZCaQIaYkaYkaYlaYkaQIaQIbcqbcraQIbcsaaqaStaSsaSsbbgbbgaTiaSsaTjaaqbcybczaWVbcAbcAbcBbcAaWVaZSaIXbcCaoOaoObcDaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCXaKSbcEaDaaDaaDaaDaaDaaDaaDaaDaaDaaDaaKVbcFbcGaKYbcHaLaaLabcIaLbbgNaaibcKbcLbcMbcNbcObcPbcQbcRaSKaaibcSbcTbcUbcVbcWbcXaXobcYbcZbcYaXvbdabdbbdcbddbdebdfaaibdgbdhaUBbdiaoPaaiaaiaaiaaibdjbdkbdlbdmbdnbdnbdobdpbdnbdobdpbdqbdrbdnbdsbdtbduaaiaaiaaiaaiaGKbdvbaGaUWaUWaaqbiwbiubisbgobhPbhObhNbbYbhxaZmaZmaZmaZpbaLbaLbdBbdCbdDbixbdFbdGbdHbaLbdIbckbdJbaWbaXbaXbdKbdLbcnaaqaSdbdMaaqbdNbdObdPaYkaYlbdQaQIaQIbdRaQIbdSbdTaaqbhMaSsaSsbbgbbgaTiaSsbgXaaqbdZbczaWVaWVaWVaWXaWVaWVbeabebbecbedbeebefaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaKkbegbehbeibeibeibeibejbeibekbelbemaaiaPxaKcaHZaDaaDaaKUbeVbeWaaibeobepbeqberbesacDbetbeubevaaibewbexbeybexbexacfbezaPQbbCaPQbeAaaibeBbaobeCbanbeDaaibasbataUBaUCaUCbeEbeFbeGaaibeHbbObdnbeIbdnbdnbdnbdnbeJbdnbeKbdqbeLbeMbeMbeNbeOaaibePbeFbeQbeRbeSbaGaUWaUWbbVbgsbgrbgMbgtbfBbftbgobbYbhxaZmaZmaZmaZpbaLbaLbeXbeYbeZbfabfbbfcbdHbfdaaqbfebdJbaWbaXbaXbaWbdLbffaaqbfgaaqaaqaaKaaqaaqbfhaYlbfibfjaQIbfkbflaTIbfmabXbfsbfrbfrbfqbfqbfobfpbfnabXbfubfvaWVbfwaWVaWXaWVaWVbfxbfybcCaoOaoObfzaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTaaiaaiaaiaoNaoPazTaoNaoPaaiaoNaoPaaiaaiaaiaaibfAaDaaDaaDaaKUbmIbmuaaibfCbfDbfEbfFaaqaaiaUjbeuaSKaaibfGbfHbfIbahbahaaiaUtaPQbbCaPQaUtaaibfJbaobfKbfLbfMaaibasbataUwaUwaUwbfNbfObfPbfQbfRbfSbdnbfTbfUbfVbfWbfXbfYbfZbgabgbbgcbgdbfRbgebgfbggbghbgibgjbgkbglbgmaUWbgnaaqbgqbNRbDMbbYbgqbgpbgqaZmbpJbpraZmaZmbUzbaLbaLbaLbaMbaLbgubaLbfcbdHbgvaaqbgwbdJbaWbaXbaXbaWbdLbgxaaqbgybgzbgzbgAbgBbgCbgDbgEbgFbgFbgFbgFbgFbgFbgGbgHbgIbbgbbgbbgbbgbbgbbgbgJbgKbgLbczaWVaWVaWVaWXaWVaWVbdVaAZaZJaZJaZJaAZaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgObgPbgPbgQbgPbgRbgPbgPbgQbgSbgTbgUbgVaNxaNxaNxbgWbiQbiSaaiaaiaaiaaiaaiaaiaaiaUjbeuaSKaaiaaiaaiaaiaaiaaiaaibgYaPQbbCaPQbgZaaiaaiaflaaiaaiaaiaaibasbhabhbbhcbhdbhebhfbhgacDbhhbhibhjbhkaaiaaiaaiaaiaaiaaibhlbhmarDbhnbfUbhobhpaaibhqbhrbhsbhtbhubhvaUWaUWbbVaZmbhwaZmaZmaZmaOpaZmaZmbhxbhxbhybhybhzbaLbaLbhAbhBbaLbaLbaLbhCbhDbhEaaqbcnbdJbaWbaWbaWbaWbdLbhFaaqbhGbhHbhHbhIbhHbhJaYkaYkaYkaYkbhKaYkaYkaYkbhLbgKbbgbbgbbgbbgbbgbbgbbgbgJbgKbgLbczaWVbbjbbjbbkbbjaWVblVaAZaZJaZJblUaAZaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgObgPbgPbgPbgPbgPbgPbgPbgPbgPbgPbhRaESaDaaDaaDaaKUbcwbcvaaibhSbhTbhUbhVbhWaaqbhXbeubhYaaibhZbiabibbicbicacfbidbiebifbieaWcacfbigbihbiibijbikaaibilbimbinaaiaaiaaiaaiaaiaaiaaqbioaaqaaiaaiaaiaaiaaiaaiaaiaaiaaiaflaaiaaibipaaiaaiaaiaaiaaiaaiaaibhvaUWaUWaaqbiqbirbaIbdwaZmbitaZmbdAbivbdzbdybdxaaqbiybizaaqaaqbiAbdEbiBbdUaaqaaqaaqbiCbiDbiEbiEbiEbiEbiDbiFaaqbiGbhHbhHbhIbiHaaqbiIbiJbiKbfjbiLbiMbiNbiObiPaaqbcxaDLbiRbbgbbgbiRaDLbcJaaqbiTbczaWVbcAbcAbcBbcAaWVbdVaAZaZJbdWaZJaAZaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiUbgPbgPbgPbgPbiVbgPbgPbgPbiWbiXbiYbiZaLaaLaaLabjabctbcuaaibjbbjcbjdbjdbjdbjebetbeuaSKaaibjfbjgbjhbjibjjaaibjkaPQbbCaPQbjlaaibjmbjnbjobigbjpaaibjqbjrbjsaaibjtbjubjvbjwbjxbjybjzbjAaaiaaibjBbjCbjDbjEbjFbjGbjBaflaaibjHbjIbjJbjKbjLbjMbjNbjOaaibjPbjQbjQbjRaaqaaqaaqaaqbjSbbVbjSbjTaaqaoyaaqaaqaaqaaqaaqaaqbjUbjVbjVbjVbjVbjWbjXaaqbjYbjZbjYbkabkabjYbjZbjYaaqbiGbhHbhHbkbbiHaaqaaqaaqaaqaaqaaKaaqaaqaaqaaqaaqaaKbkcbkdbkdbkdbkdbkeaaqaaqbkfbkgaWVaWVaWVaWXaWVaWVbfxaIXbkhaoOaoObkiaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTaaiaaiaaiaoNaoPazTaoNaoPaaiaoNaoPaaiaaiaaiaaiaESaDaaDaaDabkjbeUbcvaaibkkbklbkmbknbknbkoaSIbkpbevaaibkqbkrbksbktbkubkvaXobkwbkxbcYaXobkybkzbkAbkBbkCbkDaaibkEbkFbjsbkGbkHbkIbkJbkKbkKbkJbkLbkMaaiaaibkNbkObjBbkPbkQbkRbkSbkTbkUbkVbkWbkXbkYbkZblabkXblbaaiblcbldbleblfblgblhblibljbljbljbljbljbljblkbllbljblmbljblnbljbljbljbljbljbljbljbljbloblpblqblqblqblqblqblqblrblhblsbltbltblublvblwblvblxblvblyblzblAblvblBblCblDblEblFblFblFblFblFblFblFblGblHblIblIblIblIblJblIblKblLblMblNblObeeblPaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablQblQblQblQblQblQblQblQblQblQaaaaaaaEcblRaEeblSblTbkjbdXbdYaaiblWblXblXblXblYaaqblZbeuaSKaaibmabjibjhbjibjiaaibjkbmbbmcaaibjlaaibijbmdbmebijbmfaaibmgbkFbjsbmhbmibmjbmkbmlbmmbmnbkLbmoaaiaaibmpbmqaaqaaqaaqbmrbmsaaiaflbmtbkXbkXbkYbenblabkXbmvaaibmwblebleblfblgblhbljbljbljbljbljbljbljbmxbljbljbljbljbljbljbmybmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmAbmBbmCblFblFbmDbhHbhHbhHbhHbhHbhIbhHbhHbhHbhHbhHbhHbhHbhHbhHbhHbhHbhHbmEbhHbmFbmGaWVaWVaWVaWVaWVaWVaWVbmHbfybcCaoOaoObcDaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablQblQblQblQblQblQblQblQblQblQblQaEPaEQaERaaiaaiaaibxXaaiaaiaaibjbblXblXblXblXaaqaUjbeuaSKaaibmKbmLbmMbjibjiaaibmNbmbbmOaaibmNaaibmPbmdbmQbmRbijaaibmSbkFbjsbmTbmUbmjbmkbmVbmWbmnbkLbmXaaibmYbmZbnaaaqbnbaaqbncbndbneaflbnfbngbnhbnibnibnjbkXbnkaaibnlbnmbleblfblgblhbljbnnbljbljbljbljbnobnpbnpbnpbnpbnqbljbljbljbljbnrbljbnnbnsbljbntbnubnvbljbnwbnxbnxbnybnzbnAbnBbhHbhHbhHbhHbhHbhHbhHbnCbnDbnEbhHbhHbhHbhHbhHbhHbhHbhHbhHbhHbnFbnGbnGbnHbnIbnJbnKbnLbnLbnLbnLbnMbnNaPxaabaaaaaaaabaNlaNlaNlaNlaNlaNlaaaaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablQblQblQblQblQblQblQblQblQblQblQbuMbuNbuVbwsbnQbwtbwFbwvbwuaaibhSbnXbnXbnYbnZaaqaUjbeuaSKaaiaaiaaiaaiaaiaaiaaiaaibmbboaaaiaaiaaiaaiaflaaiaaiaaiaaibobbkFbocaaibodboebkJbkJbkJbkJbkLbofaaiaaibogbohboibojbokbohbolaaiaflaaibombonboobopboqborbosaaibotboubouaaiaaiaaiaaiaaiaaiaaiaaqaaqbovbowboxboxbowbovaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqboyaaqaaqaaqaaqaaqaaibozaoyboAbhHbhHboBboBaaiaaiaaiaaiaaiboCbnGbnGbnFbnGbhHbnGbnGbnGbnGboDaaiaaiaaiaaiboEaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaaaaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablQblQblQblQblQblQblQblQblQblQblQaGKaGLaERbnPbnQbnQbuKbtqbnQaaiboIboIboIboJboKaaqaUjbeuaSKaaqboLboMboNboOboPaaiboQbmbboRaaiboSaaiboTboUboVboWboXaaqboYbkFboZaaibpabpbbpcbpdbpebpfbpgaaiaaiaaibphbpibpjbpkbplbpmbpnaaiaflaaibpobppbpqbprboqbkXbpsaaibptbpubpvaaibpwbpxbpybpzbpAbpBbpCbpDbpEbpFbpGbpGbpFbpHbpIbpJaaqbpKbpLbpMbpNaaqbpObpPbpQbpRbpSbpTbpTbpUaaibpVabnaaibpWaaibpXbpXaaibpYbpZbqaaaibqbbqcbqbaaibqdbnGboDaaibqebqfbqeaaibqgbqhaaibqibqjbqkaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaaaaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablQblQblQblQblQblQblQblQblQblQblQaGKaGLaERbnPbnQbnQbuKbtqbnQaaiboIboIboIboJboKaaqaUjbeuaSKaaqboLboMboNboOboPaaiboQbmbboRaaiboSaaiboTboUboVboWboXaaqboYbkFboZaaibpabpbbpcbpdbpebpfbpgaaiaaiaaibphbpibpjbpkbplbpmbpnaaiaflaaibpobppbpqeHjboqbkXbpsaaibptbpubpvaaibpwbpxbpybpzbpAbpBbpCbpDbpEbpFbpGbpGbpFbpHbpIeHkaaqbpKbpLbpMbpNaaqbpObpPbpQbpRbpSbpTbpTbpUaaibpVabnaaibpWaaibpXbpXaaibpYbpZbqaaaibqbbqcbqbaaibqdbnGboDaaibqebqfbqeaaibqgbqhaaibqibqjbqkaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaaaaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablQblQblQblQblQblQblQblQblQblQaaabqlaHXbnTbnUbnQbnQbuKbtqbrKaaibqpbqpbqpbqpbqqaaqaUjbeuaSKaaqbqrbqsbqtbqsbquaaibqvbqwbqxbuLbqyaaibqzbqAbqBbqBbqCbqDbqEbkFbqFaaibqGaaKaaqaaqaaqaaibqHaaibqIacDbqJbqKbjBbqLbjBbqMbqNacfbqOaaibqPbkXbqQbqRboqbqSbkXaaibqTbqUbqVaaibqWbqXbqYbqZbrabrbbrcbpGbpGbpGbpGbpGbpGbpGbrdbrebrfbrgbrhbribrjaaqbrkbrlbrmbrnbrobrpbrlbpUaaibpVabnbrqbrrbrsbrtbruaaqbrvbrwbrvbrxbrybrzbrAaaiaaqbrBamsaaibrCbrDbrEbrFbrFbrFaaibrGbrHbrIaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaaaaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrJazTaaiaaiaaiaoNaoPazTaoNaoPaaiaoNaoPaaiaaiaaiaaibEObnQbnQbnQbuKbtqbnQaaibrLbrMboIboIboJaaqblZbeubrNaaqbrObrPbrQbrRbrSaaibrTbrUbrVbqybqyaaibrWbrXbrYbrZbsabsbbscbsdbseacfbsfbsgbshbsiabIbsjbskacfbslacfacfacfacfbsmacfacfacfacfbsnacfbsobspbsqbsrbssbstbsuacfbsvbpubpuaaibswbsxbsybszbsAaaibrcbpGbpGbpGbpGbpGbpGbpGbsBbsCbsDbsEbsFbsGbsHaaqbsIbsJbsKbrnbpUbrpbsLbsMaaibsNbsObsPbsQbsQbsRbsSbsTbsUbsUbsUbsVbsWbsXbsYbsZbtabtbbtcbsZbtdbtebtfbtfbtfbtgaaibthbrHbtiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaaaaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaPmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjaaaaEcbnPbnQbnQbnQbuKbtqbnQaaibqpbqpbtkblXblXbtlaUjbeuaSKaaqbtmbtnbtobtpbDqaaibtrbtsbttbtubtvaaibtwbtxbtybtzbtAbtBbtCbtDbtEbtFbtGbtGbtHbtIabXbtJbtKacDbtLaGDbtMbtNbtObtPbtQbtNbtRaGDbtSaaiabnbtTaaiaaiaaiaaibtUaaibtVbpubtWacDbtXbtYbtZbuabubaaibucbudbuebufbugbuhbuibujbrdbukaaqbulbsFbumbunaaqbuobupbrmbrnbpUbrpbrlbpUaaibpVabnbuqburbusbutbuuaGDbuvbuwbuxbuybuzbrvbuAaaibuBbuCbuDaaibuEbuFbuGbrFbuHbuIaaibthbrHbuJaaiaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -12657,18 +12682,18 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbnWboFboGboHbnQbnQbqnbqmbqoacDbydbjdbyebyfbygaaqaUjbeuaSKbyhbyibyjbykbylbymaaiaaiaaiaaibynaaiaaibyobypbyqbyrbysaaqbytbyubyvbywbyxbyybyzbyAbyBbyCbyDaaibvhbyEbyFbtNbwYbyGbwYbtNbyHaaibtSaaibyIbyJbyKaaqbyLaaqbyMaaqbyNbpubyOaaibyPbyQbyRbySbyTabIbyUbyVabIabIbyWbyXabIabIbyYbyZaAuaAxbzabzbbzcbzdbzebzfbzgbzhbziaaibzjbzkbzlbzmabnbznbzobzpbzqbzraaqbzsbxFbxFbztbzubxHbzvaaibzwbzwbzxaaibzybzzbzAbzBbrFbzCaaibthbzDaaiaaaaaaaaaaaaaaaaabbzEbzFbxTbxUbxTbzGbwqaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjaGKaGLaERbnPbnQbnQbnVbnQbnQaaibzIbklbzJbzKbzLabIaSIbkpbevaaqbzMbqAbzNbzObzPbzQbzRbzSbzTbzTbzUbzVbzWbzXbzObzYbzZaaqbwMbpubAabAbbAcbAdbAebAfbAgbAhbAiaaibvhaaiaaibAjbAkbAlbtNbAmbAnacfbAoaaiabnaaiaaiaaiaaiaaibApaaibAqbpubyOaaibArbAsbAsbAtbAuaaqbAvbAwbAxbFLbAzbAAbABbAxbACbADbAEbAFbAGbAHbAIbAJbAKbALbAMbANbAObAPbAQbARbASbATbAUbAVbAVbAWbAXbAYaaqbAZbrvbrvbBabBbbxHbBcaaqbBdbBebBfaaqbBgbBhaTabBibjYaaiaaibBjaaiaaibBkbBlbBlbBlbBmaaibxRbxUbxTbxUbxUbBnbxRaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbBobBpbnTbnUbnQbnQbnVbnQbnQaaibBqbjcbBrbBsbBtbBubBvbBwaSKaaqbBxbqAbzNbzObByaaqbBzbBAbqBbqBbBBbBCbBDbzXbzObBEbBFbBGbwMbpubBHbaubAcbBIbBJbBKbBLbBMbBNbBOabubAnacfarDbBPbyGbBPbAnbBQaaiaaiaaibBRbBSbBTbBUbBVbBWbBXacfbBYbpubyObvybBZbCabCbbCcbCdaaqbCebCfbCgbChbCibCjbCkbClbCmbCnbCobCpbCqbCrbCsbCtbCubCvbCwbCxbCyaaibCzbCAbCBbCCaaibCDbCEbCFbCGbCGaaqbCHbCIbCJaaqbCKbxHbCLaEcbCMbCNbCObCPbCQbCRbCSbCTbCUbCVbCWbCXbCYbCZbDabDabDbbDcbDdbDebDfbwpbwqbDgbwqbwpbDhaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjaaabDibnPbnQbnQbnQbnSbnQbnQaaibDmbDnbDobDpbnRaolbDrbDsaSKaaqbDtbDubDvbDwbDxbDybDzbDAbDBbDCbDDbDybDEbDFbDGbDHbDIaaqbDJbpubBHbaubAcaaibDKbDLbDMbDNbDOabnbDPbDQbDRbhmacfbDSbDTbhmbDUbDVbDWaaibDXbDYbDZbEabEbbEbbEcbEdbEebpubEfaaiaaqbEgbjYbEhbEiaaqbCebEjaaqbEkbElbCjbEmaaqbCebEnbEoaaqaaqaaqaoyaaqaaqaaqbEpamzaaqaaiaaibEqaaqaaqaaiaaiaaqaaKaaqaaqaaqaaqaaqaaqaaqbErbEsaClaCmbEtbEubEvbEwbEwbExbEybEzbEAbEBbECbEDbEEbEFbEGbEGbEHbCQbEIaaibEJbEKbELbEMaaibENaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjaaabDibnPbnQbnQbnQbnSbnQbnQaaibDmbDnbDobDpbnRaolbDrbDsaSKaaqbDtbDubDvbDwbDxbDybDzbDAbDBbDCbDDbDybDEbDFbDGbDHbDIaaqbDJbpubBHbaubAcaaibDKbDLeHibDNbDOabnbDPbDQbDRbhmacfbDSbDTbhmbDUbDVbDWaaibDXbDYbDZbEabEbbEbbEcbEdbEebpubEfaaiaaqbEgbjYbEhbEiaaqbCebEjaaqbEkbElbCjbEmaaqbCebEnbEoaaqaaqaaqaoyaaqaaqaaqbEpamzaaqaaiaaibEqaaqaaqaaiaaiaaqaaKaaqaaqaaqaaqaaqaaqaaqbErbEsaClaCmbEtbEubEvbEwbEwbExbEybEzbEAbEBbECbEDbEEbEFbEGbEGbEHbCQbEIaaibEJbEKbELbEMaaibENaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTaaiaaiaaiaoNaoPazTaoNaoPaaiaoNaoPaaiaaiaaiaaiaaibynaaqaaqaaqaaqaztaolaolaolbEPaolbEQbERbESbETbEUbEVbEWbqBbEXbqBbEYbzVbEZbqBbzObqBbFabjYbwMbpubFbbFcbFdaaibFebFfbFgbFhbFiabnbFjbFkbFlbFmbFnbFobFpbFqbFrbFsbFtaaibFubFvbFwbFwbFxbFybFzaaibFAbFBbyObFCbFDbFEbFFbFGbFHbFIbFJbCfbjYbFKbFUbFMbFNbjYbCebEnbEobFObFPbFQbFRbFSbFTbWPbFVbFWaaqbFXbFYbFZbGabGbbGcbGdbCVbGebEwbEwbGfbGgbEwbGhbGibGjbGkbGlbEwbGmbGnbGobGpbGqbGraaiabnaaiaaiaaibBjaaiaaibBkbBmaaibGsbGtbGubGvbGwbGxbGybGzaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAaaaaaabAbbGBbGCbGCbGCbGCbGDbGEbGFbGGbGEbGHbGCbGCbGIbGCbGJbGCamzbGKbqBbGLbqBbEYbGMbGNbGObzObGPbGQbGRbwMbpubGSbGTbAcaaibGUbGVbGWbDLbGXabnbGYbGZbHaaaibHbbHcbHdacDbHebHfbHgaaibHhbHibHjbHkbFxbFybFzaaibHlbHmbHnbHobHpbHqbHrbHsbHtbHubHvbHwaaqaaqbHxbHyaaqaaqbCebEnbEobjYbHzbHAbHAbHAbHBbHAbHCbHDbHEbHFbHGbHHbHHbHIbHJbHKbHLbHMbCQbCQbHNbCQbHObCQbHPbCQbHQbHRbHRbHSbHTbHUbHVbHWbHXbHYbHZbIabIbaaibIcbIdaaaaaaaaaaaibIebIfbIgbIhbIibIjbIkaaiaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAaaaaaabaubIlbGCbGCbGCbGCbGCbGEbImbInbGEbGCbGCbGCbGIbGCbGJbGCamzbIobIpbIqbIrbIsbItbIubIvbIwbIxbIybjYbwMbpubIzaaqaaqaaiaaiaaiaaiaaibIAabnaaibIBabnacDabnbICaaiaaiaaiaaiaaiaaiabnaaiaaiaaiaaiaaiaaiaaibIDbpubIEbowaaqbIFbIGaaqaaqbCebIHbIIbFHbIJbIKbILbIMbINbFJbIObIPbIQbIRbISbISbISbITbISbIUbIVbIWbIXbIYbIZbFZbJaaaiaaiaaiaaiaaiaaibJbaaiaaiaaiaaKbJcaaqaaqbJdbJebJfbJgbHVbJhbJibJjbJkbJlbJmaaibIcbJnaaaaaaaaaaaibJobJpaaibDeaaiaaibDeaaiaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAbJqaoOaCmbJrbJsbGCbGCbGCbGCbGCbGCbGCbGCbGCbGCbGCbGIbGCbGJbJtaztaolaolaolaolaolaolbJubEVaaqaaqaaqaaqbwMbpubJvbJwbJxbJybJzbJAbJBbJCbJDbJEbJFbJGbJHbJIbJJbJKbJLbJMbJNbJObJPbJObJQbJRbJSboubJTbpubJUbJVbJWbpubJXaaqbJYbJZbKabKbbKcbCebKdbKebKfbKgbKhbKibKjbKkbKlbKmbKnaaqbKobKpbKqbKrbKsbHAbKtbKuaaqbKvbFZbFZbFZbKwaaibKxbKybKzbKAbKBbKCbKDbKEaaibKFbKGbKHaaqaaqbKIbJfbKJbKKbKLbKMbKNbKObKPbKQaaibKRaaiaaaaaaaaaaaiaaiaaiaaiaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPmaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAbKSbKTbKSbKUbKUbKUbKUbKUbKUbKUbKUbKUbKUbKUbKUbKUbKVbKUbKWbKUbKXbKYbKZbLabLbbLcbLdbLebLfbLgbLhbLhaaqbwMbLibLjbpubpubyObLkboubJSbJRbLlbLmbLlbLnbLobLobLpbLqbLrbLobLobLsbLobLtbLobJRbJSboubLubLvbLwbLxbLybLzbpuaaqbLAbJZbLBbLCbLDbCebLEbLFbLGbLHbLIbLJbLKbLLbCebLMbLNaaqaaqbLObLPbLQbLRbLSbLTbLUaaqbLVbLWbFZbLXbLYaaibKxbLZbMabMbbMcbMdbMebMfaaibMgbKGbMhbMhaaqbMibMjbMkbMlbMmbMnbMobMpbMqbMraaibIcaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAbMsbMtbMsbGBbMubMvbMwbMwbMwbMwbMwbMwbMxbMwbMwbMwbMybMwbMzbMAabIbMBbMCbMDbMEbMDbMFbMGbMHbMIbMJbMKaaqbwMbMLbMMbMNbMObMPbMQbMRbMSbMTbMUbMVbMWbMXbMYbMYbMZbNabNabNabNabNabNabNbbNcbNdbNebNfbNgbMObNhbNibNjbNkbNlaaqbNmbJZbKabNnbLDbCebLEbLFbNobNpbNqbNrbNsbNtbCmbNubNvaaqbNwbNxbNyaaqbNzaaqaSkaxkaaqbNAbNBbNCbNDbNEaaibKxbNFbNGbKAbNHbNIbNJbNKaaibNLbKGbMhbMhaaqbNMbNNbNOacDbNPbNQbNRbNSbNTbNUaaibIcaaiaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAbMsbMtbMsbGBbMubMvbMwbMwbMwbMwbMwbMwbMxbMwbMwbMwbMybMwbMzbMAabIbMBbMCbMDbMEbMDbMFbMGbMHbMIbMJbMKaaqbwMbMLbMMbMNbMObMPbMQbMRbMSbMTbMUbMVbMWbMXbMYbMYbMZbNabNabNabNabNabNabNbbNcbNdbNebNfbNgbMObNhbNibNjbNkbNlaaqbNmbJZbKabNnbLDbCebLEbLFbNobNpbNqbNrbNsbNtbCmbNubNvaaqbNwbNxbNyaaqbNzaaqaSkaxkaaqbNAbNBbNCbNDbNEaaibKxbNFbNGbKAbNHbNIbNJbNKaaibNLbKGbMhbMhaaqbNMbNNbNOacDbNPbNQeHgbNSbNTbNUaaibIcaaiaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAbJqaoObcDbNVbGCbNWbGCbGCbNXbNYbNYbNYbNZbNYbNYbOabObbNYbOcbOdbOebOfbOgbOhbOibOhbOjbOkbOlbOmbOnbOoaaqbOpaaqbOqaaqaaqbOrbOsbOtaaqaaqaaqbOubOvbOwaaqaaqbOxbJRbJRbOyaaqaaqaaqaoybOzaaqaaqaaqbOAaaqaaqbOBaaqbOCaoyaaqbODbOEbOFaaqbOGbCebLEbOHaaibOIbOJbOKbOLaaibOMbLMbONaaqbOObOPbOQbORbOSbOTabIbOUbOVbOWbOXbOYbOZbPaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaibPbbPcbPdbPdaaqbPebPfbPgaaiaaiaaiaaiaaiaaiaaiaaibIcaaiaaabPhbPhbPhaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbPibBlbBlbBmaaqaaqaaiaaiaaiaaibPjaabaabaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAbMsbMtbMsbPkbJsbNWbGCbGCbPlbPmbPmbPmbPnbPmbPmbPmbPobPmbPpbPqabXbPrbPsbPtbPubPtbPvbPwbPxbPybPzbMKaaqaaqaaqbPAaaqbPBbPCbPDbPEbPFaaqbPGbPHbPIbPJbPKaaqbPLbPMbPNaaqbPObPPbPQbPRbPSbPTbPUbPVbPWabXbPXbPYbPZbQabQbabXbQcbQdbQebQfbQgbQhbQibLFbQjbQkbQlbQmbQnbQobCmbQpbQqbQrbQsbQtbQtbQubQvbQwaaqbQxbQybQzbQAbQBbQCbQDaaibQEbQFbQGbQHbQGbQGbQIacDacDbQJbQKbQLbQLaaqbQMbQNbJgaaibrHbQObQPbQQbQQbQPbQQbQRaaiaaabPhbQSbPhaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabbQTbQUbQVbQUaaqaaiaaibQWbQXbQWbQYaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAbQZbRabQZbRbbRbbRcbRbbRbbRdbRbbRbbRbbRebRbbRbbRbbRfbRbbRbbRgbRhbRibRjbOmbOmbOmbOmbOmbRkbRlbRmbRnbEVbAyaaqbRoabXbRpbRqbRqbRqbRraaqbRsbRtbRtbRtbRuaTFbRvbRwbRxabXbRybRzbRAbRBbRCbRDaaqaaqbREaaqbRFbRGbRHbRIbRJaaqbLAbKabLBbLCbRKbRLbRMbRNacDbRObRPbRQbRRaaibRSbRTbRUbRVbRWbRXbRYbRZbSabSbaaqaaqaaqaaqaaqaaKaCEaovaaibScbQGbQGbSdbQGbSebSfaaiaaibSgbKGbShbShaaqbJebSibJgaaiaaibSjaaiaaiaaiaaiaaiaaiaaiaaiaaibSkaaiaaiaaiaaiaaiaaiaaiaaiaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacbSlbQUbQUbSmaaiaaibQWbQWbSnbQWbQWaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAbJqaoOaERbSobMubNWbGCbSpbSqbSrbGCbGCbSsbGCbGCbGCbStbGCbSubSvaaqbSwbSxbSybSzbSAbSBbSCbSDbSEbSFbSGbSHbEVaaqbPAaaqbRrbRqbSIbRqbSJaaqbSKbRtbSLbRtbSMaaqbSNbSObSPaaqbSQbSRbSSbSTbSUbSVabIbSWbSXabIbSYbSZbTabTbbTcaaqbTdbKabKabTebRKbRLbTfbTgbThbQkbTibTjbTkbTlbTmbTnbToaaqbTpbTqbTrbTsbTsbTtaaqbTubTvbTwbTxbTybTzbTAaaibScbTBbQGbQGbQGbTCbTDaaiaaibTEbKGbTFbTFaaqbTGbTHbJgaaibUXbTRbURaaibUSbUTbUUbUVbUWbTQeGOdlxbTTbTUbTVbTWbTXbTYbTZaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabUaaaibSlaaiaaibQWbQWbQWbQWbQWbQWbQWaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAaaaaaiaaiaaqazZbUbaAaaaqbUcaaqaaqazZaoOaAaaaqaaqbUdaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqbUeaaqaaqaaqbUfbUgbUhbUiaaqbRrbRqbRqbRqbUjaaqbSKbRtbRtbUkbUlabIbUmbUnbUoaaqaaqaaqaaqaaqbUpaaqaaqbUqbUraaqaaqaaKaaqaoyaaqaaqbUsbUtbUtaaqaaqbUubUvbUwbUxbUybUzbUAbUBbUCaaqbUDbUEaaqbUFbTqbTrbTsbTsbTsaaqbUGbUHbUIbUJbUKbULbUMaaibUNaaibUObUPbUQaaiaflaaiaaibTMbTLbTFbTFaaqbTKbSibJgbTIbTJbUYbUZbVabVbbVcbVcbVdbVebVcbXabYDbVgbVhbVibVjbVjbVkbVlacfbVmbVnbVobVpaabaabaabaabaabaabaabaabaabaabaabaabaabaaqaaibVqbVrbVrbQWbQWbQWbQWbQWbQWbQWbQWaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAaaaaaiaaiaaqazZbUbaAaaaqbUcaaqaaqazZaoOaAaaaqaaqbUdaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqbUeaaqaaqaaqbUfbUgbUhbUiaaqbRrbRqbRqbRqbUjaaqbSKbRtbRtbUkbUlabIbUmbUnbUoaaqaaqaaqaaqaaqbUpaaqaaqbUqbUraaqaaqaaKaaqaoyaaqaaqbUsbUtbUtaaqaaqbUubUvbUwbUxbUyeHhbUAbUBbUCaaqbUDbUEaaqbUFbTqbTrbTsbTsbTsaaqbUGbUHbUIbUJbUKbULbUMaaibUNaaibUObUPbUQaaiaflaaiaaibTMbTLbTFbTFaaqbTKbSibJgbTIbTJbUYbUZbVabVbbVcbVcbVdbVebVcbXabYDbVgbVhbVibVjbVjbVkbVlacfbVmbVnbVobVpaabaabaabaabaabaabaabaabaabaabaabaabaabaaqaaibVqbVrbVrbQWbQWbQWbQWbQWbQWbQWbQWaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAaaaaaibVsbVtbVubVvbVwbVxbVybnOaaibVAbVBbVCbVDbVEbVFbVGbVHbVHbVHbVHbVHbVHbVHbVHbVHbVHbVIbVHbVHbVHbVJbVKbVLbVMaaqbVNbVObVPbRqbRraOKbVQbVRbVSbVTbVUaaqbVVbVWbVXbVYbVZbVZbVZbVZbWabWbbWcbWdbWdbWebWebWfbWgbWhaaqaaqbWibWjbWkbWlbWmbRLbWnbUwbWobWpaHtbWqbLKbWraHtbWsbWtaolbWubWvbWwbWxbWybWzaaqbWAbWBbWCbWDbWEbWFbWGaaibWHbWIbWJbWKbWLbWIbWMbWNaaqbTObTNbKHaaqaaqbWQbSibWRaaibWSbWTbWUaaibWVbWWbWWbWXbWYbWZeGNdlxbXbbXcbWWbWWbXdbXebXfbXgbXhbXibXjbXkaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaiaaibXlbQWbQWbQWbQWbQWbQWbQWbQWbQWbQWbQWaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAaaaaaaaaibXmbXnbXnbXobXnbXnbXpbXqaaibXrbXsbXtbXsbXsbXuaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaqbXvaaqaaqbXwaaqbXxbXybXzbXAbXBaaKbXCbXDbXEbXFbXGaOKbXHbXIbXJabIacfacfacfacfbXKavbbBOabXbXLabXabXbXMbXNbXObXPbXQbXRbXSbXTbXUbXVbXWbXXbXYbXZbYabYbbYcbYdbYebYfbYgbYhaaqaaqaElabXabXabXbYiaaqaaqbYjaaqamzbYkbYlbYmaaibYnbYobYpbYqbYpbYrbYsbYtaaqaaqbYuaaqaaqbYvbYwbSibuCaaiaaibYxaaiaaibYybYzbYAbYBbYCbWWbTPbVfbYEbXfbXfbXfbYFbTSbYGaaibYHbYIbYJbYKaabaabaabaabaabaabaabaabaabaabaabaabaabaaibQWbQWbQWbQWbQWbQWbYLbQWbYMbQWbQWbQWbQWbQWaaiaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYNbYObYPbYObYQaaaaaaaaaaaibYRbXnbXnbXobXnbXnbXpbYSaaibXrbYTbYUbYVbYWbXuaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibYXbYYbYZaaqbZaaaqbZbbZcbZdbRrbZeaOLbZfbSKbZgbZhbZiaOLbZjbZkbZlaaiaaibZmbZnbZobZpbZqabnbZrbCAbZsaaqbZtbCAbCAbZuabXbZvbZwbZxbXUbZybZzbZAbZBbZCbZDbZEbZFbZGbZDbZDbZHbZIbZIbZIbZJbZIbZIbZIbZKbZLbZMbZNbZObZPbZQbZRbZSaaibZTbZUbZVbZWbZVbZXbZYbYpbZZcaacabbuCcacbuCbYwbSibuCaaibrHcadcaeaaiaaiaaqaaqaaqcafbWWbWWcagbWWcaicajcakcalcamcanaaicaocapcaqaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaicarcarcarcarcarcarcasbQWcatcarbYMbQWbQWbQWbQWaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -12681,9 +12706,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacioaPxaaaaaaaaaaaaaaaaaaaaaaagaaachpcipciqcirciscgbcitcgbciucgbcivciwcixciyaPxaaacizcdnciAcdpciBcdrcdrciCciDciEabIciFciGciHciIaaiciJciKciLciMciNabncjVciPciQciRciSaaibCAbCAaaqaaqaaKciTciUciVciWaaqciXciYciZcjabUwaaKaaicgLcbacgMaaicjbcfrcgOaaiaaaaaaaaicjccjdcjeaaibCAbCAbCAaaiaabaaaaaaaabaaaaabaaaaaaaaaaabaaaaaaaaacjfcjgcjhcjiaaiaaicjjcjkcjlaaibWZcjmcfPcjncjocjpcjqbWWaaibPhbPhaaacjrcjscjscjscjscjscjscjscjscjscjscjscjscjscjscjscjscjscjscjtcjucjvcjvcjwaaiaaibQWbQWcjxbQWbQWaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjyaaaaaaaaacjyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjzcjzaaaaaaaaaaaaaaaaaaaaaaaaaaachpcjAcjBcjCcjDcjEcjFcjGcjHcjIcjJaaqbYZcjKaaiaaaaaaaaaaaaaaicjLcjMcjNcjNcjOcjPaaqcjQbZkbUncjRcjScjTcjUcjTcjTcjTciOcjWcjXcjXcjYcjZaaibCAbCAaaqckackbckcckdckeckfaaqckeckfckdckgckhckiaaichYckjchZaaickkcfrcgOaaiaaiaaiaaiaaiaaiaaiaaicklbCAbCAaaiaabaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaackmcknckockpaaiaaickqckrcksaaiaaiaaicktckuckvckuckwaaiaaiaaaaaaaaackxaaaaaaaaaaabaaaaaaaaaaaqaaqaaqaabaaaaaaaabaaaaaaaabaabaabckyckzckAbSmaaqaaiaaibQWbQXbQWaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjycjycjycjycjyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackBckCckCckCckCckCckCckCckCckCckCckCckCckDaaiaaqaaqaaqaaqaaqaaqckEckFaaiaaiaaiaaiaaiaaiaaqaaqaaqaaqaaqaaqaaqckGbZkbUnckHckIckJckKckLckMckNckOckPckQckRckSckTaaibCAbCAaaqckUckVckcckdckdckWaaqckXckdckdckgckcckYaaiaaiaaiaaiaaickkcfrckZaaibCAbCAbCAbCAbCAbCAbCAbCAbCAbCAaaiaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaclaclbclccldaaiaaicleclfclgaaiaaaaaaclhclhcliclhclhaaaaaaaaaaaaaaackxaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabcljbBlbBlbBmaaqaaqaaiaaiaaiaaibPjaabaabaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjyaaacjyaaaaaacjycjycjycjycjycjycjyaaaaaacjyaaacjyaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclkcllclmclnclncloclnclpclqclrclscltcluclvclwclwclxclyclzclAclAclBclCclDclEclFclEclEclEclDclEclEclGclHclIclJbZkbUnclKclLclMaflaaichLacDaveclNclOacDaufccpaaibCAbCAaaqclPclQclRclSclTclUaaqclVclTclWclXclRclYaaibCAbCAbCAclZckkcfrckkclZbCAbCAbCAbCAbCAbCAbCAbCAbCAbCAaaiaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaccDaaicmaaflccDazZcmbcmcbfyaAaaaacmdcmecmfcmgcmfcmecmdaaacjrcjscjscmhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjyaaacjyaaaaaacjycjycjycjycjycjycjyaaaaaacjyaaacjyaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclkcllclmclnclncloclnclpclqclrclscltcluclvclwclwclxclyclzclAclAclBclCclDclEclFclEclEclEclDclEclEclGclHeHlclJbZkbUnclKclLclMaflaaichLacDaveclNclOacDaufccpaaibCAbCAaaqclPclQclRclSclTclUaaqclVclTclWclXclRclYaaibCAbCAbCAclZckkcfrckkclZbCAbCAbCAbCAbCAbCAbCAbCAbCAbCAaaiaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaccDaaicmaaflccDazZcmbcmcbfyaAaaaacmdcmecmfcmgcmfcmecmdaaacjrcjscjscmhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjycjycjyaaacjycjycjycjycjycjycjycjycjyaaacjycjycjyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclkcmicmjcmkcmjcmlcmjcmicmmcmncmkcmjcmocmpbUocmpcmpcmqbUobUobUobUocmrcmpcmpcmpcmpcmpcmpcmpcmpcmpcmpcmscmtcmucmvcmwcmxcmycmzcmAaaicmBcmCcmDcmEcmFcmGcmHcmIacfcgTcmJabIcmKcmLcmMcmNckdcmOaaqcmOckdcmNcmPckccmQaaicmRacfacfbDTcmScfrcmTaaiazZaoOaoObcDaaiaaiaaiaoNaoOaoPaaiaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaicmUcmVcmWaaiaabaAZcmXaAZaabaaacmdcmYcmZcnacmZcmYcmdaaackxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjycjycjyaaacjycjycjycjycjycjycjycjycjyaaacjycjycjyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacnbcmjcnccndcnecnfcnecngcnhcnicnjcnkcnlcmtcnmcnncnncnoabIcnpabIcnqcnrcnqcnqcnqcnqcnqcnqcnqcnqcnqcnqcnscmpcntcnucnvcnwcnxcnycnzcnAcnBcnCcnDcnEcnFcnGcnHcnIacDbXNcnJaRmcnKckdckcckdckdcnLabXcnMckdckdckgckccnNaaicnOaaiaaaaflaaicnPaaiaaiaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiaaiaaiaaicnQcnRcnSaaiaabaPxcnTaPxaabaaacmdcnUcnVcnWcnXcnUcmdaaackxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjycjycjyaaacjycjycjycjycjycjycjycjycjyaaacjycjycjyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacnbcmjcnccndcnecnfcnecngcnhcnicnjcnkcnlcmtcnmcnncnncnoabIcnpabIcnqcnrcnqcnqcnqcnqcnqcnqcnqcnqcnqcnqcnscmpcntcnucnveHmcnxcnycnzcnAcnBcnCcnDcnEcnFcnGcnHcnIacDbXNcnJaRmcnKckdckcckdckdcnLabXcnMckdckdckgckccnNaaicnOaaiaaaaflaaicnPaaiaaiaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiaaiaaiaaicnQcnRcnSaaiaabaPxcnTaPxaabaaacmdcnUcnVcnWcnXcnUcmdaaackxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjycjycjyaaacjycjycjycjycjycjycjycjycjyaaacjycjycjyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaicnYaaqaaqcnZaaqcoaaaqaaqcobaoPaaqaaqaoNaoOaoPaaqaaqaaqaaqcoccodcoecofcogcohcoicojcokcojcojcolcojcomconcoocopcoqcorbCAcnOaoycoscotcoucovcowcoxaaqcoycowcozckgcoAcoBaaicnOaaiaaacoCcoDcoEcoFaaiaaaaaaaaaaaacoGaaaaaaaaaaaaaaaaaaaaaaaacoGaaaaaaaaicoHcoIcoJcoKcoLcoMcoNaaqcoOcoPcoQacDcoRaaacoSaaaaaaaaacmdcoTcoUcoUcoUcoVcmdaaackxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjycjycjycjycjycjycjycjycjycjycjycjycjycjycjycjycjyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafqafqafqafrafrafqafrafrafrafZafrafrafrafqafqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEccoWcoXcoYcoZcpacpbcpccpdcpecpfcpgcphcpfcpicpjcpkcpkcplaaqcpmcpncpocppbUncpqcprcpscptcpucpvcpucpwcpxcpycpzcpAcpBaaiaaicnOaoyaaiaaicpCaaiaaiabnbAnacfacfacfcpDacfbhmacfcpEaaiaaacpFcpGcoEcpHaaicpIcpJcpJcpKaaiaaibBOacDacDcpLacDacDcpLaufaaaaaaaaicpMcpNcpMcpOcpPckncnRaaqaaKcpQaaKaaiaaiaaacpRaaaaabaaacmdcmdcmdcpScmdcmdcmdaaackxaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjycjycjycjycjycjycjycjycjycjycjycjycjycjycjycjycjyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpTcpTcpTcpTcpTaaaaaaaaaaaaaaaaaaaaaaaaafqaaaaaaaabaabaaaaabaabaaaaaaaabaabaabaaaafqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAZcoWcpUcpVcpWcpXcpYcpYcpYcpYcpZcqacqbcpkcqccpkcpkcqdcpkcqebUocqfcqgcppbUncqhaaqcqicptcqjcqkcqlcptcqmcqncqocqpcqqcqrcqscqtcqucqvcqvcqwbSWcgTcqxcqybCAcqzbXNcqAbCAbCAbWgbCAaaiaaacqBcpGcoEcqCaaqcqDcqEcqFcqGcqHcqIcqJcqHcqIcqKcqHcqLcqMabnaaaaaaaaicpMcpMcpMcqNcqOcoMcqPcqQcqRcqScqTcqUaaiaaacpRaabaabaaaaaaaaaafqaaaafqaaaaaaaaackxaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -13602,28 +13627,28 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNcdNddNcaaaaaaaaaaaaaaadLndLndLndLndLndLndLndLndLndLndLndLndLndLndLndLndLndLndLndLndLndLndMxdLndLndLndMxdMxdLndMxdMxdMxdLndLndMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndMxaaaaaadNedMOaabaabaabaabaabdLndLndLndLndMedNfdNgdNhdNidNjdNkdNldNmdNndNodNpdNqdNrdModNsdNtdModNudNvdNwdNxdNydNzdNAdNBdNCdNDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNEdNFdNEaabaaaaaaaaadLndLndLndLndLndLndLndLndLndLndLndLndMxdMxdMxdMxdMxdMxdLndLndLndLndLndLndLndMxdMxdMxdMxdMxdLndLndLndMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaadMdaaaaaaaaaaaaaaaaaadLndLndLndLndMedNGdNHdNIdMedNJdNjdNKdNLdNMdNNdNOdNPdNQdNRdNSdNTdNUdNVdNWdMYdNXdNYdNZdOadObdOcdNDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOddOedOfdOgaabaaaaaadLndLndLndLndLndLndLndMxdLndLndMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaadMdaaaaaaaaaaaaaaaaaadLndLndLndLndMedNGdNHdOhdMedOidNKdOjdOkdOldOmdOndOmdOodOmdOmdOmdOmdOpdOqdMYdOrdNYdOsdOtdOudNCdNDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOvdOvdOwdOxdOydNEaabaaaaaadLndLndLndLndMxdMxdMxdLndLndMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdOzaabdMdaaaaaaaaaaaaaaaaaadLndLndLndLndMedNGdOAdOBdMedOCdODdOEdOFdOGdOHdOIdOJdOKdOLdOMdONdOmdOOdOPdMYdOQdORdOSdOTdMYdOUdOVaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOWdOXdOYdOZdPadPbdPcaabaabdMxdMxdLndLndMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPddPddPeaabdMdaaaaabaabaabaabaabdLndLYdLYdLYdLYdLYdPfdPgdLYdMRdMRdPhdPidPjdOmdPkdPldPmdPndPodPpdOmdPqdPrdPsdPtdPudPvdPwdMYdPxdPyaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLoaaadLodLodLodLodLoaaadLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPzdOvdPAdPBdPCdOydPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPddPddPdaaaaaadMddPEdPEdPEdPEdPEdPEdPEdModPFdPGdPHdPIdPJdPKdPLdPMdPNdPOdPPdPQdOmdPRdPSdPTdPUdPVdPWdPXdPYdPZdQadQadQadQbdQcdQddQedQfdQfdQgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLoaaadLodLodLodLodLoaaadLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdQhdQidQjdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPdaaaaaadMddPEdPEdPEdPEdPEdPEdPEdQkdQldQmdQndQodQpdQqdQrdQsdQtdQudQvdQwdQxdQydQzdQAdQBdQCdQDdQEdQFdQGdQadQHdQIdQJdQKdQadQLdPydPydPyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdQMdQNdQOdQPdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaadMddPEdPEdPEdPEdPEdPEdPEdQQdQRdPGdQSdQTdQUdQVdQWdQXdQYdLYdQZdRadRbdRcdRddRedRfdRgdRhdOmdRidRjdRkdRldRldRmdRndRodRpdRqdRrdRraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdRsdRtdRudPDdRvdRwdPDdPDdPDdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaadMddPEdPEdPEdPEdPEdPEdPEdRxdQRdPGdQSdQTdRydRzdQWdRAdRBdLYdRCdRDdOmdREdOmdOmdOmdOmdRFdOmdRGdRHdQadRIdRJdRKdRLdRMdRNdROdRPdRPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdRQdRRdRSdRTdRUdRVdNcdPbdRWdPDdRXdRYdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaadMddPEdPEdPEdPEdPEdPEdPEdModQRdPGdRZdQTdSadSbdQWdScdSddLYdSedSfdSgdShdSidSjdSkdOmdSldSmdSndSodSpdSqdSrdSsdStdSudRNdRrdRrdRraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdSvdSwdRRdSxdSydSzdSAdSBdRWdSCdRYdRYdRXdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaadSDdSEdSFdSGdSHdSIdSFdSJdSKdSLdSMdModSNdSOdLYdLYdLYdLYdLYdSPdSQdSRdShdSSdSjdSTdOmdSUdSVdSWdSXdSYdSZdTadTbdTcdTddTedTfdLYdTgdMMdLNdLNdLNdLNdLNdLNdLOdThaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadTidSvdTjdSvdRSdRSdRvdTkdSydPDdQPdTldPDdRYdTmdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaadTndTodTpdTqdTrdTrdTsdTtdTudTvdTwdTxdTydTzdTAdTBdTCdTDdTEdTFdTGdTHdTIdTJdTKdTLdOmdTMdTNdTOdTPdQadQadTQdQadQadQadTRdTSdTTdTUdTVdTWdTWdTXdTWdTWdTWdTYdMvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdTZdUadRSdUbdUcdRSdQjdUddSzdUedUfdUgdPDdPDdPDdPDdPDdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndLndLndLndLndLndLndLndLndLndLndLnaaaaaaaaaaaaaaadUhdUidTrdTrdTrdTrdUjdUkdUldUmdUndUodUpdUqdTAdUrdUsdUtdUudUvdUwdUxdUydUzdUAdUBdUCdUDdUAdUEdUFdUGdUHdUIdUJdUGdUKdUGdUAdULdUMdUNdUOdUPdUQdURdUSdUTdTWdMKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdUUdUVdUWdRSdUcdUXdSxdUYdSydUZdPDdVadVbdPDdVcdRWdVddVedPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndLndLndLndLndLndLndLndLndLndLndLndLnaaaaaaaaaaaaaaadVfdVgdTrdTrdVhdTrdVidVjdVkdVldVmdVndVodVpdTAdVqdVrdVsdVtdVudVvdVwdVxdVydVzdVAdVBdVCdVDdVAdVEdVBdVFdVAdVBdVGdVHdVIdVJdVKdVLdVMdVNdVOdVPdVQdVQdVRdTWdMKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabdMxdMxdPDdRVdVSdVTdVUdUWdVVdSydSzdVWdNcdPbdVXdPDdVcdQPdRWdVedPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndLndLndVYdVYdVYdVYdVYdVYdLndLndLndLndLndLndLnaaaaaaaaaaaadVZdWadTrdWbdWcdWddWedWfdWgdWhdWidWjdWkdWldTAdWmdWndWodWpdWpdWpdWpdWqdWrdWsdWtdWrdWudWvdWwdWudWxdWydWzdWxdWxdWAdWBdWCdWDdTWdWEdWFdTWdWGdVQdVQdWHdTWdMKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdPDdPDdPDdPDdPDdPDdRUdSydWIdVSdSydUddWJdVWdVWdSBdRWdVadPDdVcdQjdWKdVedPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndVYdVYdVYdWLdWLdWLdWLdVYdVYdVYdLndLndLndLndWMdWNaaaaaaaaadWOdWPdSFdWQdWRdWRdWRdWRdWSdWTdWUdModModModTAdWVdWpdWWdWpdWXdWYdWZdXadWrdXbdXcdXddWudXedXfdXgdWxdXhdXidXjdWxdXkdXldWCdXmdXndTWdTWdTWdXodXpdXqdUTdTWdMKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdPDdXrdPbdSzdXsdPDdXtdXudXvdPDdUedPDdXwdXxdXydPDdPbdXzdNFdXAdQjdQOdNFdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndLndVYdVYdWLdWLdWLdWLdWLdWLdWLdWLdVYdVYdLndLndXBdXCdLNdLNdLsdLNdMNdMOaabaabdXDdXEdXFdXGdXHdXIdXJdXKdXLdXMdXNdXOdXPdXQdXRdXSdXTdXUdXVdWrdXWdXXdXYdWudXZdYadYbdWxdYcdYddYedWxdYfdYgdYhdYidYjdYkdYldTWdTWdTWdTWdTWdYmdMyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdPDdXrdQjdPbdSxdUedXzdVSdPbdVSdQOdPbdPbdYndRWdPbdQjdQjdPDdNFdYodQjdPbdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndVYdVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdVYdVYdYpdYqdYrdLnaaaaaaaaaaaaaaaaaaaabdXDdYsdYtdYudYvdYwdYxdYydYzdYAdYBdTAdWpdWWdWpdYCdWpdYDdYEdWrdYFdYGdYHdWudYIdYJdYKdWxdYLdYMdYNdWxdYOdYPdYQdYRdYSdYSdYTdXndYUdLrdLNdLNdYVdYWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdPDdXrdYXdQjdQjdUedQjdWKdRvdQjdYYdQOdWKdVXdNFdQjdYZdQPdPDdVSdNFdXzdPbdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdZadWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdZbdVYdZcdZddVYdVYaaaaaaaaaaaaaaaaaaaabdXDdZedZfdZgdZhdZgdZidZjdXDdYzdZkdTAdZldZmdZndZodWpdZpdZqdWrdZrdZsdZtdWudZudZvdZwdWxdZxdZydZzdWxdZAdZBdXndZCdZDdZEdZDdXndZFdZGdMxaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdPDdXrdZHdSxdRUdPDdZIdPDdZJdZKdPDdSzdPDdZJdZKdPDdSydXzdPDdYndUgdNFdVadPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdZLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdZMdZadZNdZadVYaaaaaaaaaaaaaaaaaaaaaaabdXDdZOdZjdZjdZPdZQdZRdZjdZSdYzdZTdTAdZUdZUdZUdZUdWpdZVdXUdWrdZWdZXdZYdWudZZeaaeabdWxeaceadeaedWxeafeageahdXndXndXndXneaieajdLndMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdPDdPDdPDdPDdPDdPDdZIdPDeakdRWdSzdVadQPdSydVVdSydUgdSxdPDdZJealeameandPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdZbdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLeaoeapeaqaaaaaaaaaaaaaaaaaaaaaaabaabdXDeareareaseateaudZjeaveawdYzeaxdTAdWLdWLdWLdWLdWpeayeazdWreaAeaBeaCdWueaDeaEeaFdWxeaGeaHeaIdWxeaJeaKeahdLndMxdLneaLeaMeaNdLndMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPDdZIdPDdRWdVaeaOdUddOydSxdRWdPDdSydQPdPDeaPeaQeaQeaRdPDeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLeaTeaUeaVaaaaaaaaaaaaaaaaaaaabaabaabdXDdXDeaWeaXdXDeaYeaZebaeaZdXDebbdWLdWLdWLdWLdWLdWpdWpdWpdWrdWrdWrdWrdWudWudWudWudWxdWxdWxdWxdWxeaheahebcebddLIdLIebedZGdLndLndMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPDdZIdPDdVadPbdUgdRWdSydQPdUgdPDdZIdPDdPDdVcdNFeaQebfebgeaSeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLebhebiebjaaaaaaaaaaaaaaaaabebkeblebmebneboebpebqebrebsebtebuebvdXDebbdWLdWLdWLdWLdWLebwebxebydLndLndLndLndLndLndLndLndLndLndLndLndLndLnebzebAdZGebBdLndLndLndLndLndMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPDdZIdPDdPDdPDdPDdPDdPDdPDdPDdPDdZIdPDdVcdNFdVddNFeaRebCeaSeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLebDebEebFebGebGebGebGebGebGebHebIebJebKebKebLebMebNdXDebOebPebQdXDebbdWLdWLdWLdWLdWLeaTebiebRdLndLndMxdMxdMxdMxdMxdMxdLndLndLndLndLnebzebAdZGebSeaSebSdLndLndLndLndMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzaaaaaaaaaaaaaaadOzdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPDdZIdZIdZIdZIdZIdZIdZIdZIdZIdZIdZIdPDdVcdVddVddVddVedPDeaSeaSeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLebTebUebUebUebUebUebUebUebUebTdWLdWLdWLdWLdWLdWLdXDeaZebVeaZdXDebWdWLdWLdWLdWLdWLebXebYebZdLIdLIdLIdLIecadLIdLIdLIdLIdLIecbeccecdecedZGeaSeaSeaSebSdWMdLndMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOvdOvdOwdOxdOXdNEaabaaaaaadLndLndLndLndMxdMxdMxdLndLndMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdOzaabdMdaaaaaaaaaaaaaaaaaadLndLndLndLndMedNGdOAdOBdMedOCdODdOEdOFdOGdOHdOIdOJdOKdOLdOMdONdOmdOOdOPdMYdOQdORdOSdOTdMYdOUdOVaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOWdYodYZdOZdZIdPbdPcaabaabdMxdMxdLndLndMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPddPddPeaabdMdaaaaabaabaabaabaabdLndLYdLYdLYdLYdLYdPfdPgdLYdMRdMRdPhdPidPjdOmdPkdPldPmdPndPodPpdOmdPqdPrdPsdPtdPudPvdPwdMYdPxdPyaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLoaaadLodLodLodLodLoaaadLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPzdOvdPAdPBdPCdOXdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPddPddPdaaaaaadMddPEdPEdPEdPEdPEdPEdPEdModPFdPGdPHdPIdPJdPKdPLdPMdPNdPOdPPdPQdOmdPRdPSdPTdPUdPVdPWdPXdPYdPZdQadQadQadQbdQcdQddQedQfdQfdQgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLoaaadLodLodLodLodLoaaadLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdQheakdQjdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPdaaaaaadMddPEdPEdPEdPEdPEdPEdPEdQkdQldQmdQndQodQpdQqdQrdQsdQtdQudQvdQwdQxdQydQzdQAdQBdQCdQDdQEdQFdQGdQadQHdQIdQJdQKdQadQLdPydPydPyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdQMdQNdSCdPadPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaadMddPEdPEdPEdPEdPEdPEdPEdQQdQRdPGdQSdQTdQUdQVdQWdQXdQYdLYdQZdRadRbdRcdRddRedRfdRgdRhdOmdRidRjdRkdRldRldRmdRndRodRpdRqdRrdRraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdRsdRtdRudPDdUddRwdPDdPDdPDdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaadMddPEdPEdPEdPEdPEdPEdPEdRxdQRdPGdQSdQTdRydRzdQWdRAdRBdLYdRCdRDdOmdREdOmdOmdOmdOmdRFdOmdRGdRHdQadRIdRJdRKdRLdRMdRNdROdRPdRPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdRQdRRdRSdRTdRUdRVdNcdPbdOYdPDdVVdVSdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaadMddPEdPEdPEdPEdPEdPEdPEdModQRdPGdRZdQTdSadSbdQWdScdSddLYdSedSfdSgdShdSidSjdSkdOmdSldSmdSndSodSpdSqdSrdSsdStdSudRNdRrdRrdRraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdSvdSwdRRdSxdSydSzdVUdSBdOYdVadVSdVSdVVdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaadSDdSEdSFdSGdSHdSIdSFdSJdSKdSLdSMdModSNdSOdLYdLYdLYdLYdLYdSPdSQdSRdShdSSdSjdSTdOmdSUdSVdSWdSXdSYdSZdTadTbdTcdTddTedTfdLYdTgdMMdLNdLNdLNdLNdLNdLNdLOdThaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadTidSvdTjdSvdRSdRSdUddTkdSydPDdPadTldPDdVSdWKdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaadTndTodTpdTqdTrdTrdTsdTtdTudTvdTwdTxdTydTzdTAdTBdTCdTDdTEdTFdTGdTHdTIdTJdTKdTLdOmdTMdTNdTOdTPdQadQadTQdQadQadQadTRdTSdTTdTUdTVdTWdTWdTXdTWdTWdTWdTYdMvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdTZdUadRSdUbdUcdRSdQjdQOdSzdUedVXdQPdPDdPDdPDdPDdPDdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndLndLndLndLndLndLndLndLndLndLndLnaaaaaaaaaaaaaaadUhdUidTrdTrdTrdTrdUjdUkdUldUmdUndUodUpdUqdTAdUrdUsdUtdUudUvdUwdUxdUydUzdUAdUBdUCdUDdUAdUEdUFdUGdUHdUIdUJdUGdUKdUGdUAdULdUMdUNdUOdUPdUQdURdUSdUTdTWdMKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdUUdUVdUWdRSdUcdXAdSxdUYdSydUZdPDdQidVbdPDdVcdOYdVddVedPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndLndLndLndLndLndLndLndLndLndLndLndLnaaaaaaaaaaaaaaadVfdVgdTrdTrdVhdTrdVidVjdVkdVldVmdVndVodVpdTAdVqdVrdVsdVtdVudVvdVwdVxdVydVzdVAdVBdVCdVDdVAdVEdVBdVFdVAdVBdVGdVHdVIdVJdVKdVLdVMdVNdVOdVPdVQdVQdVRdTWdMKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabdMxdMxdPDdRVdSAdVTdXzdUWdRXdSydSzdVWdNcdPbdUfdPDdVcdPadOYdVedPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndLndLndVYdVYdVYdVYdVYdVYdLndLndLndLndLndLndLnaaaaaaaaaaaadVZdWadTrdWbdWcdWddWedWfdWgdWhdWidWjdWkdWldTAdWmdWndWodWpdWpdWpdWpdWqdWrdWsdWtdWrdWudWvdWwdWudWxdWydWzdWxdWxdWAdWBdWCdWDdTWdWEdWFdTWdWGdVQdVQdWHdTWdMKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdPDdPDdPDdPDdPDdPDdRUdSydWIdSAdSydQOdWJdVWdVWdSBdOYdQidPDdVcdQjdTmdVedPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndVYdVYdVYdWLdWLdWLdWLdVYdVYdVYdLndLndLndLndWMdWNaaaaaaaaadWOdWPdSFdWQdWRdWRdWRdWRdWSdWTdWUdModModModTAdWVdWpdWWdWpdWXdWYdWZdXadWrdXbdXcdXddWudXedXfdXgdWxdXhdXidXjdWxdXkdXldWCdXmdXndTWdTWdTWdXodXpdXqdUTdTWdMKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdPDdXrdPbdSzdXsdPDdXtdXudXvdPDdUedPDdXwdXxdXydPDdPbdRvdNFdUXdQjdSCdNFdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndLndVYdVYdWLdWLdWLdWLdWLdWLdWLdWLdVYdVYdLndLndXBdXCdLNdLNdLsdLNdMNdMOaabaabdXDdXEdXFdXGdXHdXIdXJdXKdXLdXMdXNdXOdXPdXQdXRdXSdXTdXUdXVdWrdXWdXXdXYdWudXZdYadYbdWxdYcdYddYedWxdYfdYgdYhdYidYjdYkdYldTWdTWdTWdTWdTWdYmdMyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdPDdXrdQjdPbdSxdUedRvdSAdPbdSAdSCdPbdPbdYndOYdPbdQjdQjdPDdNFdRYdQjdPbdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndVYdVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdVYdVYdYpdYqdYrdLnaaaaaaaaaaaaaaaaaaaabdXDdYsdYtdYudYvdYwdYxdYydYzdYAdYBdTAdWpdWWdWpdYCdWpdYDdYEdWrdYFdYGdYHdWudYIdYJdYKdWxdYLdYMdYNdWxdYOdYPdYQdYRdYSdYSdYTdXndYUdLrdLNdLNdYVdYWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdPDdXrdYXdQjdQjdUedQjdTmdUddQjdYYdSCdTmdUfdNFdQjdUgdPadPDdSAdNFdRvdPbdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdZadWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdZbdVYdZcdZddVYdVYaaaaaaaaaaaaaaaaaaaabdXDdZedZfdZgdZhdZgdZidZjdXDdYzdZkdTAdZldZmdZndZodWpdZpdZqdWrdZrdZsdZtdWudZudZvdZwdWxdZxdZydZzdWxdZAdZBdXndZCdZDdZEdZDdXndZFdZGdMxaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdPDdXrdZHdSxdRUdPDdOydPDdZJdZKdPDdSzdPDdZJdZKdPDdSydRvdPDdYndQPdNFdQidPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdZLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdZMdZadZNdZadVYaaaaaaaaaaaaaaaaaaaaaaabdXDdZOdZjdZjdZPdZQdZRdZjdZSdYzdZTdTAdZUdZUdZUdZUdWpdZVdXUdWrdZWdZXdZYdWudZZeaaeabdWxeaceadeaedWxeafeageahdXndXndXndXneaieajdLndMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdPDdPDdPDdPDdPDdPDdOydPDdRWdOYdSzdQidPadSydRXdSydQPdSxdPDdZJealeameandPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdZbdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLeaoeapeaqaaaaaaaaaaaaaaaaaaaaaaabaabdXDeareareaseateaudZjeaveawdYzeaxdTAdWLdWLdWLdWLdWpeayeazdWreaAeaBeaCdWueaDeaEeaFdWxeaGeaHeaIdWxeaJeaKeahdLndMxdLneaLeaMeaNdLndMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPDdOydPDdOYdQieaOdQOdOXdSxdOYdPDdSydPadPDeaPeaQeaQeaRdPDeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLeaTeaUeaVaaaaaaaaaaaaaaaaaaaabaabaabdXDdXDeaWeaXdXDeaYeaZebaeaZdXDebbdWLdWLdWLdWLdWLdWpdWpdWpdWrdWrdWrdWrdWudWudWudWudWxdWxdWxdWxdWxeaheahebcebddLIdLIebedZGdLndLndMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPDdOydPDdQidPbdQPdOYdSydPadQPdPDdOydPDdPDdVcdNFeaQebfebgeaSeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLebhebiebjaaaaaaaaaaaaaaaaabebkeblebmebneboebpebqebrebsebtebuebvdXDebbdWLdWLdWLdWLdWLebwebxebydLndLndLndLndLndLndLndLndLndLndLndLndLndLnebzebAdZGebBdLndLndLndLndLndMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPDdOydPDdPDdPDdPDdPDdPDdPDdPDdPDdOydPDdVcdNFdVddNFeaRebCeaSeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLebDebEebFebGebGebGebGebGebGebHebIebJebKebKebLebMebNdXDebOebPebQdXDebbdWLdWLdWLdWLdWLeaTebiebRdLndLndMxdMxdMxdMxdMxdMxdLndLndLndLndLnebzebAdZGebSeaSebSdLndLndLndLndMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzaaaaaaaaaaaaaaadOzdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPDdOydOydOydOydOydOydOydOydOydOydOydPDdVcdVddVddVddVedPDeaSeaSeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLebTebUebUebUebUebUebUebUebUebTdWLdWLdWLdWLdWLdWLdXDeaZebVeaZdXDebWdWLdWLdWLdWLdWLebXebYebZdLIdLIdLIdLIecadLIdLIdLIdLIdLIecbeccecdecedZGeaSeaSeaSebSdWMdLndMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDeanecfecgdPDdPDeaSeaSeaSeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLebDebJechechechechechechechechebDebJdWLdWLdWLdWLdWLdWLeciecjeckeclecmecndWLdWLdWLdWLebyebyebydLndLndMxdMxdMxdMxdMxdMxdMxdMxecoecpecqecreaSebSeaSeaSebSdLndLndLndMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxeaSeaSeaSdPDeaQeaQdVddPDeaSeaSeaSeaSeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLaaaaaaaaaaaaaaaaaaaaaaaadVYdVYdVYdVYdVYdVYdVYdVYdWLdWLdWLdWLdWLdWLeciecseckdWLdWLdWLdVYdVYdLndLndLndLndMxdMxdMxdMxdMxdMxdMxdWMebSeaSecteaSebSeaSeaSeaSdLndLndLndLndLndMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxeaSeaSeaSdPDecuecvecudPDeaSeaSeaSeaSeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLaaaaaaaaaaaaaaaaaaaaaaaadVYdVYdVYdLndLndLndLndVYdVYdVYdWLdWLdWLdWLdWLecwdWLdWLdWLdWLdVYdLndLndLndMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdWMdMxeaSebBdMxdLndMxdMxdLndLndLndLndMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa