diff --git a/code/WorkInProgress/Cael_Aislinn/Jungle/jungle_temple.dm b/code/WorkInProgress/Cael_Aislinn/Jungle/jungle_temple.dm index 659939e922..d36671e49f 100644 --- a/code/WorkInProgress/Cael_Aislinn/Jungle/jungle_temple.dm +++ b/code/WorkInProgress/Cael_Aislinn/Jungle/jungle_temple.dm @@ -303,7 +303,7 @@ switch(trap_type) if("sawburst") M << "\red A sawblade shoots out of the ground and strikes you!" - M.apply_damage(rand(5,10), BRUTE) + M.apply_damage(rand(5,10), BRUTE, sharp=1, edge=1) var/atom/myloc = src.loc var/image/flicker = image('code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi',"sawblade") diff --git a/code/WorkInProgress/Cael_Aislinn/Jungle/jungle_turfs.dm b/code/WorkInProgress/Cael_Aislinn/Jungle/jungle_turfs.dm index 86b4a112c5..7daeae006b 100644 --- a/code/WorkInProgress/Cael_Aislinn/Jungle/jungle_turfs.dm +++ b/code/WorkInProgress/Cael_Aislinn/Jungle/jungle_turfs.dm @@ -143,25 +143,25 @@ var/turf/T = get_turf(M) if(istype(T, /turf/unsimulated/jungle/water)) M << pick("\red Something sharp bites you!","\red Sharp teeth grab hold of you!","\red You feel something take a chunk out of your leg!") - M.apply_damage(rand(0,1), BRUTE) + M.apply_damage(rand(0,1), BRUTE, sharp=1) if(prob(50)) spawn(rand(25,50)) var/turf/T = get_turf(M) if(istype(T, /turf/unsimulated/jungle/water)) M << pick("\red Something sharp bites you!","\red Sharp teeth grab hold of you!","\red You feel something take a chunk out of your leg!") - M.apply_damage(rand(0,1), BRUTE) + M.apply_damage(rand(0,1), BRUTE, sharp=1) if(prob(50)) spawn(rand(25,50)) var/turf/T = get_turf(M) if(istype(T, /turf/unsimulated/jungle/water)) M << pick("\red Something sharp bites you!","\red Sharp teeth grab hold of you!","\red You feel something take a chunk out of your leg!") - M.apply_damage(rand(0,1), BRUTE) + M.apply_damage(rand(0,1), BRUTE, sharp=1) if(prob(50)) spawn(rand(25,50)) var/turf/T = get_turf(M) if(istype(T, /turf/unsimulated/jungle/water)) M << pick("\red Something sharp bites you!","\red Sharp teeth grab hold of you!","\red You feel something take a chunk out of your leg!") - M.apply_damage(rand(0,1), BRUTE) + M.apply_damage(rand(0,1), BRUTE, sharp=1) /turf/unsimulated/jungle/water/deep plants_spawn = 0 diff --git a/code/WorkInProgress/Ported/policetape.dm b/code/WorkInProgress/Ported/policetape.dm index cdd547d7c0..12059c63ed 100644 --- a/code/WorkInProgress/Ported/policetape.dm +++ b/code/WorkInProgress/Ported/policetape.dm @@ -136,7 +136,7 @@ breaktape(/obj/item/weapon/wirecutters,user) /obj/item/tape/proc/breaktape(obj/item/weapon/W as obj, mob/user as mob) - if(user.a_intent == "help" && ((!is_sharp(W) && src.allowed(user)))) + if(user.a_intent == "help" && ((!can_puncture(W) && src.allowed(user)))) user << "You can't break the [src] with that!" return user.show_viewers("\blue [user] breaks the [src]!") diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 4236b17a4d..0d9fd3e0be 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1267,8 +1267,21 @@ proc/is_hot(obj/item/W as obj) return 0 -//Is this even used for anything besides balloons? Yes I took out the W:lit stuff because : really shouldnt be used. -/proc/is_sharp(obj/item/W as obj) // For the record, WHAT THE HELL IS THIS METHOD OF DOING IT? +//Whether or not the given item counts as sharp in terms of dealing damage +/proc/is_sharp(obj/O as obj) + if (!O) return 0 + if (O.sharp) return 1 + if (O.edge) return 1 + return 0 + +//Whether or not the given item counts as cutting with an edge in terms of removing limbs +/proc/has_edge(obj/O as obj) + if (!O) return 0 + if (O.edge) return 1 + return 0 + +//Returns 1 if the given item is capable of popping things like balloons, inflatable barriers, or cutting police tape. +/proc/can_puncture(obj/item/W as obj) // For the record, WHAT THE HELL IS THIS METHOD OF DOING IT? if(!W) return 0 if(W.sharp) return 1 return ( \ @@ -1279,20 +1292,7 @@ proc/is_hot(obj/item/W as obj) istype(W, /obj/item/weapon/lighter/zippo) || \ istype(W, /obj/item/weapon/match) || \ istype(W, /obj/item/clothing/mask/cigarette) || \ - istype(W, /obj/item/weapon/wirecutters) || \ - istype(W, /obj/item/weapon/circular_saw) || \ - istype(W, /obj/item/weapon/melee/energy/sword) || \ - istype(W, /obj/item/weapon/melee/energy/blade) || \ - istype(W, /obj/item/weapon/shovel) || \ - istype(W, /obj/item/weapon/kitchenknife) || \ - istype(W, /obj/item/weapon/butch) || \ - istype(W, /obj/item/weapon/scalpel) || \ - istype(W, /obj/item/weapon/kitchen/utensil/knife) || \ - istype(W, /obj/item/weapon/shard) || \ - istype(W, /obj/item/weapon/broken_bottle) || \ - istype(W, /obj/item/weapon/reagent_containers/syringe) || \ - istype(W, /obj/item/weapon/kitchen/utensil/fork) && W.icon_state != "forkloaded" || \ - istype(W, /obj/item/weapon/twohanded/fireaxe) \ + istype(W, /obj/item/weapon/shovel) \ ) /proc/is_surgery_tool(obj/item/W as obj) diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index e27dc7b52b..93cd982c10 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -217,6 +217,7 @@ icon = 'icons/obj/shards.dmi' icon_state = "large" sharp = 1 + edge = 1 desc = "Could probably be used as ... a throwing weapon?" w_class = 2.0 force = 5.0 diff --git a/code/game/gamemodes/blob/blobs/factory.dm b/code/game/gamemodes/blob/blobs/factory.dm index ca1c3f206e..b388396639 100644 --- a/code/game/gamemodes/blob/blobs/factory.dm +++ b/code/game/gamemodes/blob/blobs/factory.dm @@ -57,7 +57,7 @@ factory.spores += src ..(loc) return - Die() + death() ..() if(factory) factory.spores -= src diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index 53b2c36ea8..9fa38d54c7 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -169,7 +169,7 @@ src.visible_message("[src] stabs [T] with the proboscis!") T << "You feel a sharp stabbing pain!" var/datum/organ/external/affecting = T.get_organ(src.zone_sel.selecting) - if(affecting.take_damage(39,0,1,"large organic needle")) + if(affecting.take_damage(39,0,1,0,"large organic needle")) T:UpdateDamageIcon() continue diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 8d13db78a4..33592d0bdf 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -87,7 +87,6 @@ var/screen = AALARM_SCREEN_MAIN var/area_uid var/area/alarm_area - var/danger_level = 0 var/buildstage = 2 //2 is built, 1 is building, 0 is frame. var/target_temperature = T0C+20 @@ -97,6 +96,13 @@ var/list/TLV = list() + var/danger_level = 0 + var/pressure_dangerlevel = 0 + var/oxygen_dangerlevel = 0 + var/co2_dangerlevel = 0 + var/phoron_dangerlevel = 0 + var/temperature_dangerlevel = 0 + var/other_dangerlevel = 0 /obj/machinery/alarm/server/New() ..() @@ -204,12 +210,18 @@ "You hear a click as a faint electronic humming stops.") var/old_level = danger_level + var/old_pressurelevel = pressure_dangerlevel danger_level = overall_danger_level() if (old_level != danger_level) refresh_danger_level() update_icon() + if (old_pressurelevel != pressure_dangerlevel) + if (breach_detected()) + mode = AALARM_MODE_OFF + apply_mode() + if (mode==AALARM_MODE_CYCLE && environment.return_pressure()After a few attempts, [user] manages to light the [src].") else user << "You burn yourself while lighting the lighter." - user.adjustFireLoss(5) + if (user.l_hand == src) + user.apply_damage(2,BURN,"l_hand") + else + user.apply_damage(2,BURN,"r_hand") user.visible_message("After a few attempts, [user] manages to light the [src], they however burn their finger in the process.") user.SetLuminosity(user.luminosity + 2) diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm index 82df54987e..72c4589343 100644 --- a/code/game/objects/items/weapons/dice.dm +++ b/code/game/objects/items/weapons/dice.dm @@ -5,6 +5,7 @@ icon_state = "d66" w_class = 1 var/sides = 6 + attack_verb = list("diced") /obj/item/weapon/dice/New() icon_state = "[name][rand(sides)]" diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 774c12d9b0..8f39aaa45a 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -112,7 +112,7 @@ var/last_chew = 0 H.attack_log += text("\[[time_stamp()]\] [s] ([H.ckey])") log_attack("[s] ([H.ckey])") - if(O.take_damage(3,0,1,"teeth marks")) + if(O.take_damage(3,0,1,1,"teeth marks")) H:UpdateDamageIcon() last_chew = world.time diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index be1f526081..2d1cf24098 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -53,6 +53,7 @@ name = "fork" desc = "Pointy." icon_state = "fork" + sharp = 1 /obj/item/weapon/kitchen/utensil/fork/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) if(!istype(M)) @@ -114,6 +115,8 @@ icon_state = "knife" force = 10.0 throwforce = 10.0 + sharp = 1 + edge = 1 suicide_act(mob/user) viewers(user) << pick("\red [user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.", \ @@ -154,6 +157,7 @@ desc = "A general purpose Chef's Knife made by SpaceCook Incorporated. Guaranteed to stay sharp for years to come." flags = FPRINT | TABLEPASS | CONDUCT sharp = 1 + edge = 1 force = 10.0 w_class = 3.0 throwforce = 6.0 @@ -192,6 +196,8 @@ matter = list("metal" = 12000) origin_tech = "materials=1" attack_verb = list("cleaved", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + sharp = 1 + edge = 1 /obj/item/weapon/butch/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index 627d689b1a..afa97b983b 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -19,6 +19,8 @@ flags = FPRINT | CONDUCT | NOSHIELD | TABLEPASS | NOBLOODY origin_tech = "combat=3" attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") + sharp = 1 + edge = 1 suicide_act(mob/user) viewers(user) << "\red [user] swings the [src.name] towards /his head! It looks like \he's trying to commit suicide." @@ -37,6 +39,8 @@ flags = FPRINT | TABLEPASS | NOSHIELD | NOBLOODY origin_tech = "magnets=3;syndicate=4" attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + sharp = 1 + edge = 1 /obj/item/weapon/melee/energy/sword/pirate name = "energy cutlass" @@ -48,6 +52,8 @@ desc = "A concentrated beam of energy in the shape of a blade. Very stylish... and lethal." icon_state = "blade" force = 70.0//Normal attacks deal very high damage. + sharp = 1 + edge = 1 throwforce = 1//Throwing or dropping the item deletes it. throw_speed = 1 throw_range = 1 diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm index 4d881757bd..ddadcfddd8 100644 --- a/code/game/objects/items/weapons/surgery_tools.dm +++ b/code/game/objects/items/weapons/surgery_tools.dm @@ -375,6 +375,8 @@ LOOK FOR SURGERY.DM*/ icon_state = "scalpel" flags = FPRINT | TABLEPASS | CONDUCT force = 10.0 + sharp = 1 + edge = 1 w_class = 2.0 throwforce = 5.0 throw_speed = 3 @@ -662,6 +664,8 @@ LOOK FOR SURGERY.DM*/ matter = list("metal" = 20000,"glass" = 10000) origin_tech = "materials=1;biotech=1" attack_verb = list("attacked", "slashed", "sawed", "cut") + sharp = 1 + edge = 1 /* /obj/item/weapon/circular_saw/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 543d3aec0c..a05d2eac37 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -105,6 +105,8 @@ matter = list("metal" = 80) origin_tech = "materials=1;engineering=1" attack_verb = list("pinched", "nipped") + sharp = 1 + edge = 1 /obj/item/weapon/wirecutters/New() if(prob(50)) diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index 2e4d7ed311..abff1a9b5b 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -109,6 +109,8 @@ name = "fire axe" desc = "Truly, the weapon of a madman. Who would think to fight fire with an axe?" force = 5 + sharp = 1 + edge = 1 w_class = 4.0 slot_flags = SLOT_BACK force_unwielded = 10 @@ -154,6 +156,8 @@ flags = FPRINT | TABLEPASS | NOSHIELD origin_tech = "magnets=3;syndicate=4" attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + sharp = 1 + edge = 1 /obj/item/weapon/twohanded/dualsaber/update_icon() icon_state = "dualsaber[wielded]" diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 77a9d1267b..d087ca28cf 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -79,6 +79,8 @@ slot_flags = SLOT_BELT force = 2 throwforce = 1 + sharp = 1 + edge = 1 w_class = 3 attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") @@ -99,6 +101,8 @@ slot_flags = SLOT_BELT force = 40 throwforce = 10 + sharp = 1 + edge = 1 w_class = 3 attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") @@ -122,6 +126,8 @@ slot_flags = SLOT_BELT | SLOT_BACK force = 40 throwforce = 10 + sharp = 1 + edge = 1 w_class = 3 attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") @@ -139,6 +145,7 @@ /obj/item/weapon/harpoon name = "harpoon" sharp = 1 + edge = 0 desc = "Tharr she blows!" icon_state = "harpoon" item_state = "harpoon" diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index e95bd236a3..fdbb5195f5 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -9,7 +9,8 @@ animate_movement = 2 var/throwforce = 1 var/list/attack_verb = list() //Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]" - var/sharp = 0 // whether this object cuts + var/sharp = 0 // whether this object cuts + var/edge = 0 // whether this object is more likely to dismember var/in_use = 0 // If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING! var/damtype = "brute" diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm index a0a9a9131b..3d21a3a2b2 100644 --- a/code/game/objects/structures/inflatable.dm +++ b/code/game/objects/structures/inflatable.dm @@ -110,7 +110,7 @@ attackby(obj/item/weapon/W as obj, mob/user as mob) if(!istype(W)) return - if (is_sharp(W)) + if (can_puncture(W)) visible_message("\red [user] pierces [src] with [W]!") deflate(1) if(W.damtype == BRUTE || W.damtype == BURN) diff --git a/code/modules/hydroponics/hydro_tools.dm b/code/modules/hydroponics/hydro_tools.dm index 1142c8e059..a8fc8aaa31 100644 --- a/code/modules/hydroponics/hydro_tools.dm +++ b/code/modules/hydroponics/hydro_tools.dm @@ -214,6 +214,8 @@ throwforce = 15.0 throw_speed = 4 throw_range = 4 + sharp = 1 + edge = 1 matter = list("metal" = 15000) origin_tech = "materials=2;combat=1" attack_verb = list("chopped", "torn", "cut") diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 5bc87bdb91..c54853355e 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -64,6 +64,7 @@ attack_verb = list("hit", "pierced", "sliced", "attacked") var/drill_sound = 'sound/weapons/Genhit.ogg' var/drill_verb = "picking" + sharp = 1 var/excavation_amount = 100 diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index e76bed96d7..4f324805a2 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -52,6 +52,7 @@ brainmob.real_name = H.real_name brainmob.dna = H.dna brainmob.timeofhostdeath = H.timeofdeath + brainmob.stat = 0 if(brainmob.mind) brainmob.mind.assigned_role = "Positronic Brain" if(H.mind) diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 2620a20964..c39fe115ac 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -111,19 +111,16 @@ return 1 if("hurt") + var/datum/unarmed_attack/attack = M.species.unarmed - M.attack_log += text("\[[time_stamp()]\] [M.species.attack_verb]ed [src.name] ([src.ckey])") - src.attack_log += text("\[[time_stamp()]\] Has been [M.species.attack_verb]ed by [M.name] ([M.ckey])") - msg_admin_attack("[key_name(M)] [M.species.attack_verb]ed [key_name(src)]") + M.attack_log += text("\[[time_stamp()]\] [pick(attack.attack_verb)]ed [src.name] ([src.ckey])") + src.attack_log += text("\[[time_stamp()]\] Has been [pick(attack.attack_verb)]ed by [M.name] ([M.ckey])") + msg_admin_attack("[key_name(M)] [pick(attack.attack_verb)]ed [key_name(src)]") var/damage = rand(0, 5)//BS12 EDIT if(!damage) - if(M.species.attack_verb == "punch") - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - else - playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) - - visible_message("\red [M] has attempted to [M.species.attack_verb] [src]!") + playsound(loc, attack.miss_sound, 25, 1, -1) + visible_message("\red [M] tried to [pick(attack.attack_verb)] [src]!") return 0 @@ -133,20 +130,16 @@ if(HULK in M.mutations) damage += 5 - if(M.species.attack_verb == "punch") - playsound(loc, "punch", 25, 1, -1) - else - playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) + playsound(loc, attack.attack_sound, 25, 1, -1) - visible_message("\red [M] has [M.species.attack_verb]ed [src]!") + visible_message("\red [M] [pick(attack.attack_verb)]ed [src]!") //Rearranged, so claws don't increase weaken chance. if(damage >= 5 && prob(50)) visible_message("\red [M] has weakened [src]!") apply_effect(2, WEAKEN, armor_block) - if(M.species.punch_damage) - damage += M.species.punch_damage - apply_damage(damage, BRUTE, affecting, armor_block) + damage += attack.damage + apply_damage(damage, BRUTE, affecting, armor_block, sharp=attack.sharp, edge=attack.edge) if("disarm") diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 3583b6822e..0688f13428 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -59,6 +59,36 @@ heal_overall_damage(0, -amount) hud_updateflag |= 1 << HEALTH_HUD +/mob/living/carbon/human/proc/adjustBruteLossByPart(var/amount, var/organ_name, var/obj/damage_source = null) + if(species && species.brute_mod) + amount = amount*species.brute_mod + + if (organ_name in organs_by_name) + var/datum/organ/external/O = get_organ(organ_name) + + if(amount > 0) + O.take_damage(amount, 0, sharp=is_sharp(damage_source), edge=has_edge(damage_source), used_weapon=damage_source) + else + //if you don't want to heal robot organs, they you will have to check that yourself before using this proc. + O.heal_damage(-amount, 0, internal=0, robo_repair=(O.status & ORGAN_ROBOT)) + + hud_updateflag |= 1 << HEALTH_HUD + +/mob/living/carbon/human/proc/adjustFireLossByPart(var/amount, var/organ_name, var/obj/damage_source = null) + if(species && species.burn_mod) + amount = amount*species.burn_mod + + if (organ_name in organs_by_name) + var/datum/organ/external/O = get_organ(organ_name) + + if(amount > 0) + O.take_damage(0, amount, sharp=is_sharp(damage_source), edge=has_edge(damage_source), used_weapon=damage_source) + else + //if you don't want to heal robot organs, they you will have to check that yourself before using this proc. + O.heal_damage(0, -amount, internal=0, robo_repair=(O.status & ORGAN_ROBOT)) + + hud_updateflag |= 1 << HEALTH_HUD + /mob/living/carbon/human/Stun(amount) if(HULK in mutations) return ..() @@ -138,11 +168,11 @@ //Damages ONE external organ, organ gets randomly selected from damagable ones. //It automatically updates damage overlays if necesary //It automatically updates health status -/mob/living/carbon/human/take_organ_damage(var/brute, var/burn, var/sharp = 0) +/mob/living/carbon/human/take_organ_damage(var/brute, var/burn, var/sharp = 0, var/edge = 0) var/list/datum/organ/external/parts = get_damageable_organs() if(!parts.len) return var/datum/organ/external/picked = pick(parts) - if(picked.take_damage(brute,burn,sharp)) + if(picked.take_damage(brute,burn,sharp,edge)) UpdateDamageIcon() hud_updateflag |= 1 << HEALTH_HUD updatehealth() @@ -172,7 +202,7 @@ if(update) UpdateDamageIcon() // damage MANY external organs, in random order -/mob/living/carbon/human/take_overall_damage(var/brute, var/burn, var/sharp = 0, var/used_weapon = null) +/mob/living/carbon/human/take_overall_damage(var/brute, var/burn, var/sharp = 0, var/edge = 0, var/used_weapon = null) if(status_flags & GODMODE) return //godmode var/list/datum/organ/external/parts = get_damageable_organs() var/update = 0 @@ -182,7 +212,7 @@ var/brute_was = picked.brute_dam var/burn_was = picked.burn_dam - update |= picked.take_damage(brute,burn,sharp,used_weapon) + update |= picked.take_damage(brute,burn,sharp,edge,used_weapon) brute -= (picked.brute_dam - brute_was) burn -= (picked.burn_dam - burn_was) @@ -227,7 +257,7 @@ This function restores all organs. zone = "head" return organs_by_name[zone] -/mob/living/carbon/human/apply_damage(var/damage = 0,var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/sharp = 0, var/obj/used_weapon = null) +/mob/living/carbon/human/apply_damage(var/damage = 0, var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/sharp = 0, var/edge = 0, var/obj/used_weapon = null) handle_suit_punctures(damagetype, damage) @@ -252,11 +282,15 @@ This function restores all organs. switch(damagetype) if(BRUTE) damageoverlaytemp = 20 - if(organ.take_damage(damage, 0, sharp, used_weapon)) + if(species && species.brute_mod) + damage = damage*species.brute_mod + if(organ.take_damage(damage, 0, sharp, edge, used_weapon)) UpdateDamageIcon() if(BURN) damageoverlaytemp = 20 - if(organ.take_damage(0, damage, sharp, used_weapon)) + if(species && species.burn_mod) + damage = damage*species.burn_mod + if(organ.take_damage(0, damage, sharp, edge, used_weapon)) UpdateDamageIcon() // Will set our damageoverlay icon to the next level, which will then be set back to the normal level the next mob.Life(). diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 12a16567c5..b5be2cae84 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -233,7 +233,7 @@ emp_act if(armor >= 2) return 0 if(!I.force) return 0 - apply_damage(I.force, I.damtype, affecting, armor , is_sharp(I), I) + apply_damage(I.force, I.damtype, affecting, armor , is_sharp(I), has_edge(I), I) var/bloody = 0 if(((I.damtype == BRUTE) || (I.damtype == HALLOSS)) && prob(25 + (I.force * 2))) diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index 9f448d57e6..465bf7adc2 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -189,6 +189,29 @@ /mob/living/carbon/human/proc/GetSpecialVoice() return special_voice + +/* + ***Deprecated*** + let this be handled at the hear_say or hear_radio proc + This is left in for robot speaking when humans gain binary channel access until I get around to rewriting + robot_talk() proc. + There is no language handling build into it however there is at the /mob level so we accept the call + for it but just ignore it. +*/ + +/mob/living/carbon/human/say_quote(var/message, var/datum/language/speaking = null) + var/verb = "says" + var/ending = copytext(message, length(message)) + if(ending=="!") + verb=pick("exclaims","shouts","yells") + else if(ending=="?") + verb="asks" + + return verb + + + + /mob/living/carbon/human/proc/handle_speech_problems(var/message) var/list/returns[3] var/verb = "says" diff --git a/code/modules/mob/living/carbon/monkey/npc.dm b/code/modules/mob/living/carbon/monkey/npc.dm index 34f77bc75f..f863558605 100644 --- a/code/modules/mob/living/carbon/monkey/npc.dm +++ b/code/modules/mob/living/carbon/monkey/npc.dm @@ -86,14 +86,4 @@ mob/living/carbon/monkey/react_to_attack(mob/M) emote("me", 2, "whimpers fearfully!") npc_fleeing = M - fleeing_duration = 30 - - -/*/mob/living/proc/apply_damage(var/damage = 0,var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/slash = 0, var/used_weapon = null) - if(!client && !stat) - if(damage > 10) - if(prob(40) || health == 100) - emote("me", 2, pick("screams loudly!", "whimpers in pain!")) - else if(health == 100 || (damage > 0 && prob(10))) - emote("me", 1, pick("flails about wildly!", "cringes visibly!", "chimpers nervously.")) - return ..()*/ \ No newline at end of file + fleeing_duration = 30 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index 08387d0d35..028e93e5bb 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -12,9 +12,9 @@ var/primitive // Lesser form, if any (ie. monkey for humans) var/tail // Name of tail image in species effects icon file. var/language // Default racial language, if any. + var/unarmed //For empty hand harm-intent attack + var/unarmed_type = /datum/unarmed_attack var/secondary_langs = list() // The names of secondary languages that are available to this species. - var/attack_verb = "punch" // Empty hand hurt intent verb. - var/punch_damage = 0 // Extra empty hand attack damage. var/mutantrace // Safeguard due to old code. var/breath_type = "oxygen" // Non-oxygen gas breathed, if any. @@ -49,6 +49,9 @@ var/race_key = 0 var/icon/icon_template +/datum/species/New() + unarmed = new unarmed_type() + /datum/species/proc/create_organs(var/mob/living/carbon/human/H) //Handles creation of mob organs. //This is a basic humanoid limb setup. H.organs = list() @@ -102,6 +105,7 @@ name = "Human" language = "Sol Common" primitive = /mob/living/carbon/monkey + unarmed_type = /datum/unarmed_attack/punch flags = HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR @@ -114,8 +118,7 @@ deform = 'icons/mob/human_races/r_def_lizard.dmi' language = "Sinta'unathi" tail = "sogtail" - attack_verb = "scratch" - punch_damage = 5 + unarmed_type = /datum/unarmed_attack/claws primitive = /mob/living/carbon/monkey/unathi darksight = 3 @@ -138,8 +141,7 @@ language = "Siik'maas" secondary_langs = list("Siik'tajr") tail = "tajtail" - attack_verb = "scratch" - punch_damage = 5 + unarmed_type = /datum/unarmed_attack/claws darksight = 8 cold_level_1 = 200 //Default 260 @@ -162,6 +164,7 @@ deform = 'icons/mob/human_races/r_def_skrell.dmi' language = "Skrellian" primitive = /mob/living/carbon/monkey/skrell + unarmed_type = /datum/unarmed_attack/punch flags = IS_WHITELISTED | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR @@ -172,6 +175,7 @@ icobase = 'icons/mob/human_races/r_vox.dmi' deform = 'icons/mob/human_races/r_def_vox.dmi' language = "Vox-pidgin" + unarmed_type = /datum/unarmed_attack/claws //I dont think it will hurt to give vox claws too. warning_low_pressure = 50 hazard_low_pressure = 0 @@ -205,7 +209,7 @@ icobase = 'icons/mob/human_races/r_armalis.dmi' deform = 'icons/mob/human_races/r_armalis.dmi' language = "Vox-pidgin" - attack_verb = "slash" + unarmed_type = /datum/unarmed_attack/claws/armalis warning_low_pressure = 50 hazard_low_pressure = 0 @@ -225,7 +229,7 @@ breath_type = "nitrogen" poison_type = "oxygen" - flags = NO_SCAN | NO_BLOOD | HAS_TAIL | NO_PAIN | IS_WHITELISTED + flags = NO_SCAN | NO_BLOOD | HAS_TAIL | NO_PAIN blood_color = "#2299FC" flesh_color = "#808D11" @@ -261,8 +265,7 @@ icobase = 'icons/mob/human_races/r_diona.dmi' deform = 'icons/mob/human_races/r_def_plant.dmi' language = "Rootspeak" - attack_verb = "slash" - punch_damage = 5 + unarmed_type = /datum/unarmed_attack/diona primitive = /mob/living/carbon/monkey/diona warning_low_pressure = 50 @@ -307,7 +310,7 @@ icobase = 'icons/mob/human_races/r_machine.dmi' deform = 'icons/mob/human_races/r_machine.dmi' language = "Tradeband" - punch_damage = 2 + unarmed_type = /datum/unarmed_attack/punch eyes = "blank_eyes" brute_mod = 0.5 @@ -328,3 +331,32 @@ blood_color = "#1F181F" flesh_color = "#575757" + +//Species unarmed attacks + +/datum/unarmed_attack + var/attack_verb = list("attack") // Empty hand hurt intent verb. + var/damage = 0 // Extra empty hand attack damage. + var/attack_sound = "punch" + var/miss_sound = 'sound/weapons/punchmiss.ogg' + var/sharp = 0 + var/edge = 0 + +/datum/unarmed_attack/punch + attack_verb = list("punch") + +/datum/unarmed_attack/diona + attack_verb = list("lash", "bludgeon") + damage = 5 + +/datum/unarmed_attack/claws + attack_verb = list("scratch", "claw") + attack_sound = 'sound/weapons/slice.ogg' + miss_sound = 'sound/weapons/slashmiss.ogg' + damage = 5 + sharp = 1 + edge = 1 + +/datum/unarmed_attack/claws/armalis + attack_verb = list("slash", "claw") + damage = 10 //they're huge! they should do a little more damage, i'd even go for 15-20 maybe... diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 333cc07380..5431a2775a 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -8,7 +8,7 @@ Returns standard 0 if fail */ -/mob/living/proc/apply_damage(var/damage = 0,var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/used_weapon = null) +/mob/living/proc/apply_damage(var/damage = 0,var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/used_weapon = null, var/sharp = 0, var/edge = 0) if(!damage || (blocked >= 2)) return 0 switch(damagetype) if(BRUTE) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 508ff93e23..c3075bcc13 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -53,11 +53,8 @@ signaler.signal() var/absorb = run_armor_check(def_zone, P.flag) - if(absorb >= 2) - P.on_hit(src,2) - return 2 if(!P.nodamage) - apply_damage((P.damage/(absorb+1)), P.damage_type, def_zone, absorb, 0, P) + apply_damage(P.damage, P.damage_type, def_zone, absorb, 0, P, sharp=is_sharp(P), edge=has_edge(P)) P.on_hit(src, absorb, def_zone) return absorb @@ -72,7 +69,7 @@ src.visible_message("\red [src] has been hit by [O].") var/armor = run_armor_check(zone, "melee", "Your armor has protected your [zone].", "Your armor has softened hit to your [zone].") if(armor < 2) - apply_damage(O.throwforce*(speed/5), dtype, zone, armor, O.sharp, O) + apply_damage(O.throwforce*(speed/5), dtype, zone, armor, O, sharp=is_sharp(O), edge=has_edge(O)) if(!O.fingerprintslast) return diff --git a/code/modules/mob/living/silicon/robot/component.dm b/code/modules/mob/living/silicon/robot/component.dm index 37677f49af..cee310ae59 100644 --- a/code/modules/mob/living/silicon/robot/component.dm +++ b/code/modules/mob/living/silicon/robot/component.dm @@ -33,7 +33,7 @@ installed = -1 uninstall() -/datum/robot_component/proc/take_damage(brute, electronics, sharp) +/datum/robot_component/proc/take_damage(brute, electronics, sharp, edge) if(installed != 1) return brute_damage += brute diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm index b8d3025db1..7c2dc565a4 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -266,10 +266,8 @@ if(!module) module = new /obj/item/weapon/robot_module/drone(src) - var/dat = "Drone modules\n" - dat += {"Close -
-
+ var/dat = "Drone modules\n" + dat += {" Activated Modules
Module 1: [module_state_1 ? "[module_state_1]" : "No Module"]
@@ -310,7 +308,7 @@ dat += resources - src << browse(dat, "window=robotmod&can_close=0") + src << browse(dat, "window=robotmod") //Putting the decompiler here to avoid doing list checks every tick. /mob/living/silicon/robot/drone/use_power() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 75bc772a9a..1d0dd77e28 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -561,9 +561,6 @@ if(istype(WC)) C.brute_damage = WC.brute C.electronics_damage = WC.burn - else //This will nominally mean that removing and replacing a power cell will repair the mount, but I don't care at this point. ~Z - C.brute_damage = 0 - C.electronics_damage = 0 usr << "\blue You install the [W.name]." @@ -601,8 +598,12 @@ user << "You close the cover." opened = 0 updateicon() - else if(mmi && wiresexposed && isWireCut(1) && isWireCut(2) && isWireCut(3) && isWireCut(4) && isWireCut(5)) + else if(wiresexposed && isWireCut(1) && isWireCut(2) && isWireCut(3) && isWireCut(4) && isWireCut(5)) //Cell is out, wires are exposed, remove MMI, produce damaged chassis, baleet original mob. + if(!mmi) + user << "\The [src] has no brain to remove." + return + user << "You jam the crowbar into the robot and begin levering [mmi]." sleep(30) user << "You damage some parts of the chassis, but eventually manage to rip out [mmi]!" @@ -662,6 +663,9 @@ C.installed = 1 C.wrapped = W C.install() + //This will mean that removing and replacing a power cell will repair the mount, but I don't care at this point. ~Z + C.brute_damage = 0 + C.electronics_damage = 0 else if (istype(W, /obj/item/weapon/wirecutters) || istype(W, /obj/item/device/multitool)) if (wiresexposed) @@ -1028,10 +1032,8 @@ if(!module) pick_module() return - var/dat = "Modules\n" - dat += {"
Close -
-
+ var/dat = "Modules\n" + dat += {" Activated Modules
Module 1: [module_state_1 ? "[module_state_1]" : "No Module"]
@@ -1059,16 +1061,11 @@ else dat += text("[obj]: \[
Activate | Deactivated\]
") */ - src << browse(dat, "window=robotmod&can_close=0") + src << browse(dat, "window=robotmod") /mob/living/silicon/robot/Topic(href, href_list) ..() - if (href_list["mach_close"]) - var/t1 = text("window=[href_list["mach_close"]]") - unset_machine() - src << browse(null, t1) - return if (href_list["showalerts"]) robot_alerts() diff --git a/code/modules/mob/living/silicon/robot/robot_damage.dm b/code/modules/mob/living/silicon/robot/robot_damage.dm index 58f2042826..ed66f1ae49 100644 --- a/code/modules/mob/living/silicon/robot/robot_damage.dm +++ b/code/modules/mob/living/silicon/robot/robot_damage.dm @@ -62,7 +62,7 @@ var/datum/robot_component/picked = pick(parts) picked.heal_damage(brute,burn) -/mob/living/silicon/robot/take_organ_damage(var/brute = 0, var/burn = 0, var/sharp = 0) +/mob/living/silicon/robot/take_organ_damage(var/brute = 0, var/burn = 0, var/sharp = 0, var/edge = 0) var/list/components = get_damageable_components() if(!components.len) return @@ -86,11 +86,11 @@ var/datum/robot_component/armour/A = get_armour() if(A) - A.take_damage(brute,burn,sharp) + A.take_damage(brute,burn,sharp,edge) return var/datum/robot_component/C = pick(components) - C.take_damage(brute,burn,sharp) + C.take_damage(brute,burn,sharp,edge) /mob/living/silicon/robot/heal_overall_damage(var/brute, var/burn) var/list/datum/robot_component/parts = get_damaged_components(brute,burn) diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm index 295100772a..0811a52cd8 100644 --- a/code/modules/mob/living/silicon/say.dm +++ b/code/modules/mob/living/silicon/say.dm @@ -34,7 +34,7 @@ if (src.client.handle_spam_prevention(message,MUTE_IC)) return - message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) + message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) if (stat == 2) return say_dead(message) @@ -84,7 +84,7 @@ switch(message_mode) if("department") switch(bot_type) - if(IS_AI) + if(IS_AI) AI.holopad_talk(message) if(IS_ROBOT) log_say("[key_name(src)] : [message]") @@ -131,7 +131,6 @@ log_say("[key_name(src)] : [message]") P.radio.talk_into(src,message,message_mode,verb,speaking) return - return ..(message,speaking,verb) @@ -178,14 +177,14 @@ return var/verb = say_quote(message) - + var/rendered = "Robotic Talk, [name] [verb], \"[message]\"" for (var/mob/living/S in living_mob_list) if(S.robot_talk_understand && (S.robot_talk_understand == robot_talk_understand)) // This SHOULD catch everything caught by the one below, but I'm not going to change it. if(istype(S , /mob/living/silicon/ai)) - var/renderedAI = "Robotic Talk, [name] [verb], \"[message]\"" + var/renderedAI = "Robotic Talk, [name] [verb], \"[message]\"" S.show_message(renderedAI, 2) else S.show_message(rendered, 2) @@ -193,14 +192,13 @@ else if (S.binarycheck()) if(istype(S , /mob/living/silicon/ai)) - var/renderedAI = "Robotic Talk, [name] [verb], \"[message]\"" + var/renderedAI = "Robotic Talk, [name] [verb], \"[message]\"" S.show_message(renderedAI, 2) else S.show_message(rendered, 2) var/list/listening = hearers(1, src) listening -= src - listening += src var/list/heard = list() for (var/mob/M in listening) @@ -210,7 +208,7 @@ var/message_beep verb = "beeps" message_beep = "beep beep beep" - + rendered = "[voice_name] [verb], \"[message_beep]\"" for (var/mob/M in heard) diff --git a/code/modules/mob/living/simple_animal/bees.dm b/code/modules/mob/living/simple_animal/bees.dm index 76e1de9457..45ece9f6df 100644 --- a/code/modules/mob/living/simple_animal/bees.dm +++ b/code/modules/mob/living/simple_animal/bees.dm @@ -41,7 +41,7 @@ if(worn_helmet) sting_prob -= min(worn_helmet.armor["bio"],30) // Is your helmet sealed? I can't get to 30% of your body. if( prob(sting_prob) && (M.stat == CONSCIOUS || (M.stat == UNCONSCIOUS && prob(25))) ) // Try to sting! If you're not moving, think about stinging. - M.apply_damage(min(strength,2)+mut, BRUTE) // Stinging. The more mutated I am, the harder I sting. + M.apply_damage(min(strength,2)+mut, BRUTE, sharp=1) // Stinging. The more mutated I am, the harder I sting. M.apply_damage((round(feral/10,1)*(max((round(strength/20,1)),1)))+toxic, TOX) // Bee venom based on how angry I am and how many there are of me! M << "\red You have been stung!" M.flash_pain() diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 6342497bdb..48dc61b08e 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -34,7 +34,7 @@ for(var/spell in construct_spells) spell_list += new spell(src) -/mob/living/simple_animal/construct/Die() +/mob/living/simple_animal/construct/death() ..() new /obj/item/weapon/ectoplasm (src.loc) for(var/mob/M in viewers(src, null)) diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm index 98ab4560a3..6eccd808c0 100644 --- a/code/modules/mob/living/simple_animal/friendly/crab.dm +++ b/code/modules/mob/living/simple_animal/friendly/crab.dm @@ -46,7 +46,7 @@ if(prob(50)) user << "\red \b This kills the crab." health -= 20 - Die() + death() else GetMad() get diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 69871c3fa4..41bdbfe323 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -222,7 +222,7 @@ var/global/chicken_count = 0 pixel_y = rand(0, 10) chicken_count += 1 -/mob/living/simple_animal/chicken/Die() +/mob/living/simple_animal/chicken/death() ..() chicken_count -= 1 diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 2687827d38..f897d2de56 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -134,7 +134,7 @@ M << 'sound/effects/mousesqueek.ogg' ..() -/mob/living/simple_animal/mouse/Die() +/mob/living/simple_animal/mouse/death() layer = MOB_LAYER if(client) client.time_died_as_mouse = world.time diff --git a/code/modules/mob/living/simple_animal/friendly/slime.dm b/code/modules/mob/living/simple_animal/friendly/slime.dm index 95d451fd90..2a1f9f4347 100644 --- a/code/modules/mob/living/simple_animal/friendly/slime.dm +++ b/code/modules/mob/living/simple_animal/friendly/slime.dm @@ -70,7 +70,7 @@ overlays += "aslime-:33" -/mob/living/simple_animal/slime/adult/Die() +/mob/living/simple_animal/slime/adult/death() var/mob/living/simple_animal/slime/S1 = new /mob/living/simple_animal/slime (src.loc) S1.icon_state = "[src.colour] baby slime" S1.icon_living = "[src.colour] baby slime" diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index 4f50ef31e4..007872c3c1 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -162,7 +162,7 @@ M.show_message("\red [src] makes an odd warbling noise, fizzles, and explodes.") explosion(get_turf(loc), -1, -1, 3, 5) eject_brain() - Die() + death() /mob/living/simple_animal/spiderbot/proc/update_icon() if(mmi) @@ -200,7 +200,7 @@ ..() -/mob/living/simple_animal/spiderbot/Die() +/mob/living/simple_animal/spiderbot/death() living_mob_list -= src dead_mob_list += src diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm index 0d96e85d12..b46cdb58a7 100644 --- a/code/modules/mob/living/simple_animal/hostile/alien.dm +++ b/code/modules/mob/living/simple_animal/hostile/alien.dm @@ -87,7 +87,7 @@ damage = 30 icon_state = "toxin" -/mob/living/simple_animal/hostile/alien/Die() +/mob/living/simple_animal/hostile/alien/death() ..() visible_message("[src] lets out a waning guttural screech, green blood bubbling from its maw...") playsound(src, 'sound/voice/hiss6.ogg', 100, 1) diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index b375755f54..0036d3c153 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -135,7 +135,7 @@ var/mob/living/carbon/human/H = target_mob var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg") var/datum/organ/external/affecting = H.get_organ(ran_zone(dam_zone)) - H.apply_damage(damage, BRUTE, affecting, H.run_armor_check(affecting, "melee")) + H.apply_damage(damage, BRUTE, affecting, H.run_armor_check(affecting, "melee"), sharp=1, edge=1) return H else if(isliving(target_mob)) var/mob/living/L = target_mob diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm index cdefaa644e..b0b02f656f 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -44,7 +44,7 @@ ranged = 1 -/mob/living/simple_animal/hostile/hivebot/Die() +/mob/living/simple_animal/hostile/hivebot/death() ..() visible_message("[src] blows apart!") new /obj/effect/decal/cleanable/blood/gibs/robot(src.loc) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 2dcbe0d949..31e6f38c3e 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -116,7 +116,7 @@ L += mechas_list return L -/mob/living/simple_animal/hostile/Die() +/mob/living/simple_animal/hostile/death() ..() walk(src, 0) diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index bf02fadbfb..d239e88c6d 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -41,7 +41,7 @@ if(.) emote("growls at [.]") -/mob/living/simple_animal/hostile/mimic/Die() +/mob/living/simple_animal/hostile/mimic/death() ..() visible_message("\red [src] stops moving!") del(src) @@ -107,7 +107,7 @@ ..() icon_state = initial(icon_state) -/mob/living/simple_animal/hostile/mimic/crate/Die() +/mob/living/simple_animal/hostile/mimic/crate/death() var/obj/structure/closet/crate/C = new(get_turf(src)) // Put loot in crate @@ -141,7 +141,7 @@ var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/ca ..(loc) CopyObject(copy, creator) -/mob/living/simple_animal/hostile/mimic/copy/Die() +/mob/living/simple_animal/hostile/mimic/copy/death() for(var/atom/movable/M in src) M.loc = get_turf(src) diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm index 8f1a738ec3..0e0e50c07e 100644 --- a/code/modules/mob/living/simple_animal/hostile/pirate.dm +++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm @@ -47,7 +47,7 @@ weapon1 = /obj/item/weapon/gun/energy/laser -/mob/living/simple_animal/hostile/pirate/Die() +/mob/living/simple_animal/hostile/pirate/death() ..() if(corpse) new corpse (src.loc) diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm index 1b9529b15d..03d7cb758f 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm @@ -157,7 +157,7 @@ hostile_drone = 0 walk(src,0) -/mob/living/simple_animal/hostile/retaliate/malf_drone/Die() +/mob/living/simple_animal/hostile/retaliate/malf_drone/death() src.visible_message("\blue \icon[src] [src] suddenly breaks apart.") ..() del(src) diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm index 6e8b9b8490..d89db259b3 100644 --- a/code/modules/mob/living/simple_animal/hostile/russian.dm +++ b/code/modules/mob/living/simple_animal/hostile/russian.dm @@ -45,7 +45,7 @@ casingtype = /obj/item/ammo_casing/a357 -/mob/living/simple_animal/hostile/russian/Die() +/mob/living/simple_animal/hostile/russian/death() ..() if(corpse) new corpse (src.loc) diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 520c5016f0..ff9aba71a4 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -35,7 +35,7 @@ faction = "syndicate" status_flags = CANPUSH -/mob/living/simple_animal/hostile/syndicate/Die() +/mob/living/simple_animal/hostile/syndicate/death() ..() if(corpse) new corpse (src.loc) @@ -157,7 +157,7 @@ max_n2 = 0 minbodytemp = 0 -/mob/living/simple_animal/hostile/viscerator/Die() +/mob/living/simple_animal/hostile/viscerator/death() ..() visible_message("\red [src] is smashed into pieces!") del src diff --git a/code/modules/mob/living/simple_animal/hostile/tree.dm b/code/modules/mob/living/simple_animal/hostile/tree.dm index d0ac951fcc..7f44f8a9b1 100644 --- a/code/modules/mob/living/simple_animal/hostile/tree.dm +++ b/code/modules/mob/living/simple_animal/hostile/tree.dm @@ -50,7 +50,7 @@ L.Weaken(3) L.visible_message("\the [src] knocks down \the [L]!") -/mob/living/simple_animal/hostile/tree/Die() +/mob/living/simple_animal/hostile/tree/death() ..() visible_message("\red [src] is hacked into pieces!") new /obj/item/stack/sheet/wood(loc) diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index 79d41a16a9..5740e51b1e 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -101,7 +101,7 @@ /mob/living/simple_animal/parrot/proc/perch_player) -/mob/living/simple_animal/parrot/Die() +/mob/living/simple_animal/parrot/death() if(held_item) held_item.loc = src.loc held_item = null @@ -496,7 +496,7 @@ var/mob/living/carbon/human/H = parrot_interest var/datum/organ/external/affecting = H.get_organ(ran_zone(pick(parrot_dam_zone))) - H.apply_damage(damage, BRUTE, affecting, H.run_armor_check(affecting, "melee")) + H.apply_damage(damage, BRUTE, affecting, H.run_armor_check(affecting, "melee"), sharp=1) emote(pick("pecks [H]'s [affecting]", "cuts [H]'s [affecting] with its talons")) else diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 30ba30f6ad..906acdbfb2 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -82,7 +82,7 @@ if(health < 1) - Die() + death() if(health > maxHealth) health = maxHealth @@ -405,13 +405,11 @@ statpanel("Status") stat(null, "Health: [round((health / maxHealth) * 100)]%") -/mob/living/simple_animal/proc/Die() - living_mob_list -= src - dead_mob_list += src +/mob/living/simple_animal/death() icon_state = icon_dead stat = DEAD density = 0 - return + return ..() /mob/living/simple_animal/ex_act(severity) if(!blinded) diff --git a/code/modules/mob/living/simple_animal/worm.dm b/code/modules/mob/living/simple_animal/worm.dm index eff10add30..0e803545e2 100644 --- a/code/modules/mob/living/simple_animal/worm.dm +++ b/code/modules/mob/living/simple_animal/worm.dm @@ -168,7 +168,7 @@ newHead.Attach(newHeadPrevious) if(die) - newHead.Die() + newHead.death() del(src) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 6efec2f7ec..b063cb7bc1 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -160,12 +160,11 @@ O.gender = gender O.invisibility = 0 - if(mind) //TODO mind.transfer_to(O) if(O.mind.assigned_role == "Cyborg") O.mind.original = O - else if(mind&&mind.special_role) + else if(mind && mind.special_role) O.mind.store_memory("In case you look at this after being borged, the objectives are only here until I find a way to make them not show up for you, as I can't simply delete them without screwing up round-end reporting. --NeoFite") else O.key = key @@ -175,11 +174,12 @@ if(O.mind.assigned_role == "Cyborg") if(O.mind.role_alt_title == "Android") O.mmi = new /obj/item/device/mmi/posibrain(O) - if(O.mind.role_alt_title == "Robot") - O.mmi = new /obj/item/device/mmi/posibrain(O) //Ravensdale wants a circuit based brain for another robot class, this is a placeholder. - else - O.mmi = new /obj/item/device/mmi(O) - O.mmi.transfer_identity(src)//Does not transfer key/client. + else if(O.mind.role_alt_title == "Robot") + O.mmi = null //Robots do not have removable brains. + else + O.mmi = new /obj/item/device/mmi(O) + + if(O.mmi) O.mmi.transfer_identity(src) //Does not transfer key/client. callHook("borgify", list(O)) diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 72b26c939a..acd9efcb65 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -70,9 +70,9 @@ if(prob(probability)) droplimb(1) else - take_damage(damage, 0, 1, used_weapon = "EMP") + take_damage(damage, 0, 1, 1, used_weapon = "EMP") -/datum/organ/external/proc/take_damage(brute, burn, sharp, used_weapon = null, list/forbidden_limbs = list()) +/datum/organ/external/proc/take_damage(brute, burn, sharp, edge, used_weapon = null, list/forbidden_limbs = list()) if((brute <= 0) && (burn <= 0)) return 0 @@ -95,7 +95,7 @@ //If limb took enough damage, try to cut or tear it off if(body_part != UPPER_TORSO && body_part != LOWER_TORSO) //as hilarious as it is, getting hit on the chest too much shouldn't effectively gib you. if(config.limbs_can_break && brute_dam >= max_damage * config.organ_health_multiplier) - if( (sharp && prob(5 * brute)) || (brute > 20 && prob(2 * brute)) ) + if( (edge && prob(5 * brute)) || (brute > 20 && prob(2 * brute)) ) droplimb(1) return @@ -159,7 +159,7 @@ if(possible_points.len) //And pass the pain around var/datum/organ/external/target = pick(possible_points) - target.take_damage(brute, burn, sharp, used_weapon, forbidden_limbs + src) + target.take_damage(brute, burn, sharp, edge, used_weapon, forbidden_limbs + src) // sync the organ's damage with its wounds src.update_damages() @@ -223,35 +223,7 @@ This function completely restores a damaged organ to perfect condition. /datum/organ/external/proc/createwound(var/type = CUT, var/damage) if(damage == 0) return - // first check whether we can widen an existing wound - if(wounds.len > 0 && prob(max(50+owner.number_wounds*10,100))) - if((type == CUT || type == BRUISE) && damage >= 5) - var/datum/wound/W = pick(wounds) - if(W.amount == 1 && W.started_healing()) - W.open_wound(damage) - if(prob(25)) - owner.visible_message("\red The wound on [owner.name]'s [display_name] widens with a nasty ripping voice.",\ - "\red The wound on your [display_name] widens with a nasty ripping voice.",\ - "You hear a nasty ripping noise, as if flesh is being torn apart.") - return - - //Creating wound - var/datum/wound/W - var/size = min( max( 1, damage/10 ) , 6) - //Possible types of wound - var/list/size_names = list() - switch(type) - if(CUT) - size_names = typesof(/datum/wound/cut/) - /datum/wound/cut/ - if(BRUISE) - size_names = typesof(/datum/wound/bruise/) - /datum/wound/bruise/ - if(BURN) - size_names = typesof(/datum/wound/burn/) - /datum/wound/burn/ - - size = min(size,size_names.len) - var/wound_type = size_names[size] - W = new wound_type(damage) - + //moved this before the open_wound check so that having many small wounds for example doesn't somehow protect you from taking internal damage //Possibly trigger an internal wound, too. var/local_damage = brute_dam + burn_dam + damage if(damage > 15 && type != BURN && local_damage > 30 && prob(damage) && !(status & ORGAN_ROBOT)) @@ -259,17 +231,56 @@ This function completely restores a damaged organ to perfect condition. wounds += I owner.custom_pain("You feel something rip in your [display_name]!", 1) + // first check whether we can widen an existing wound + if(wounds.len > 0 && prob(max(50+(number_wounds-1)*10,90))) + if((type == CUT || type == BRUISE) && damage >= 5) + //we need to make sure that the wound we are going to worsen is compatible with the type of damage... + var/list/compatible_wounds = list() + for (var/datum/wound/W in wounds) + if (W.can_worsen(type, damage)) + compatible_wounds += W + + var/datum/wound/W = pick(compatible_wounds) + W.open_wound(damage) + if(prob(25)) + //maybe have a separate message for BRUISE type damage? + owner.visible_message("\red The wound on [owner.name]'s [display_name] widens with a nasty ripping voice.",\ + "\red The wound on your [display_name] widens with a nasty ripping voice.",\ + "You hear a nasty ripping noise, as if flesh is being torn apart.") + return + + //Creating wound + var/wound_type = get_wound_type(type, damage) + var/datum/wound/W = new wound_type(damage) + //Check whether we can add the wound to an existing wound for(var/datum/wound/other in wounds) - if(other.desc == W.desc) - // okay, add it! - other.damage += W.damage - other.amount += 1 + if(other.can_merge(W)) + other.merge_wound(W) W = null // to signify that the wound was added break if(W) wounds += W +/datum/organ/external/proc/get_wound_type(var/type = CUT, var/damage) + //if you look a the names in the wound's stages list for each wound type you will see the logic behind these values + switch(type) + if(CUT) + if (damage <= 5) return /datum/wound/cut/small + if (damage <= 15) return /datum/wound/cut/deep + if (damage <= 25) return /datum/wound/cut/flesh + if (damage <= 50) return /datum/wound/cut/gaping + if (damage <= 60) return /datum/wound/cut/gaping_big + return /datum/wound/cut/massive + if(BRUISE) + return /datum/wound/bruise + if(BURN) + if (damage <= 5) return /datum/wound/burn/moderate + if (damage <= 15) return /datum/wound/burn/large + if (damage <= 30) return /datum/wound/burn/severe + if (damage <= 40) return /datum/wound/burn/deep + if (damage <= 50) return /datum/wound/burn/carbonised + /**************************************************** PROCESSING & UPDATING ****************************************************/ @@ -388,15 +399,12 @@ This function completely restores a damaged organ to perfect condition. if(prob(1 * wound_update_accuracy)) owner.custom_pain("You feel a stabbing pain in your [display_name]!",1) - // slow healing var/heal_amt = 0 - if (W.damage < 15) //this thing's edges are not in day's travel of each other, what healing? - heal_amt += 0.2 - - if(W.is_treated() && W.damage < 50) //whoa, not even magical band aid can hold it together - heal_amt += 0.3 + // if damage >= 50 AFTER treatment then it's probably too severe to heal within the timeframe of a round. + if (W.is_treated() && W.wound_damage() < 50) + heal_amt += 0.5 //we only update wounds once in [wound_update_accuracy] ticks so have to emulate realtime heal_amt = heal_amt * wound_update_accuracy @@ -800,8 +808,8 @@ This function completely restores a damaged organ to perfect condition. else . = new /icon(owner.race_icon, "[icon_name]_[g]") -/datum/organ/external/head/take_damage(brute, burn, sharp, used_weapon = null, list/forbidden_limbs = list()) - ..(brute, burn, sharp, used_weapon, forbidden_limbs) +/datum/organ/external/head/take_damage(brute, burn, sharp, edge, used_weapon = null, list/forbidden_limbs = list()) + ..(brute, burn, sharp, edge, used_weapon, forbidden_limbs) if (!disfigured) if (brute_dam > 40) if (prob(50)) diff --git a/code/modules/organs/wound.dm b/code/modules/organs/wound.dm index 3df9e206c9..a789248627 100644 --- a/code/modules/organs/wound.dm +++ b/code/modules/organs/wound.dm @@ -3,8 +3,6 @@ WOUNDS ****************************************************/ /datum/wound - // stages such as "cut", "deep cut", etc. - var/list/stages // number representing the current stage var/current_stage = 0 @@ -18,38 +16,42 @@ // amount of damage the current wound type requires(less means we need to apply the next healing stage) var/min_damage = 0 - // one of CUT, BRUISE, BURN - var/damage_type = CUT - - // whether this wound needs a bandage/salve to heal at all - var/needs_treatment = 0 - // is the wound bandaged? - var/tmp/bandaged = 0 + var/bandaged = 0 // Similar to bandaged, but works differently - var/tmp/clamped = 0 + var/clamped = 0 // is the wound salved? - var/tmp/salved = 0 + var/salved = 0 // is the wound disinfected? - var/tmp/disinfected = 0 - var/tmp/created = 0 - + var/disinfected = 0 + var/created = 0 // number of wounds of this type - var/tmp/amount = 1 + var/amount = 1 + // amount of germs in the wound + var/germ_level = 0 + /* These are defined by the wound type and should not be changed */ + + // stages such as "cut", "deep cut", etc. + var/list/stages + // internal wounds can only be fixed through surgery + var/internal = 0 // maximum stage at which bleeding should still happen, counted from the right rather than the left of the list // 1 means all stages except the last should bleed var/max_bleeding_stage = 1 + // one of CUT, BRUISE, BURN + var/damage_type = CUT + // whether this wound needs a bandage/salve to heal at all + // the maximum amount of damage that this wound can have and still autoheal + var/autoheal_cutoff = 15 + - // internal wounds can only be fixed through surgery - var/internal = 0 - // amount of germs in the wound - var/germ_level = 0 // helper lists var/tmp/list/desc_list = list() var/tmp/list/damage_list = list() + New(var/damage) created = world.time @@ -62,42 +64,58 @@ src.damage = damage - // initialize with the first stage - next_stage() - - // this will ensure the size of the wound matches the damage - src.heal_damage(0) - - // make the max_bleeding_stage count from the end of the list rather than the start - // this is more robust to changes to the list max_bleeding_stage = src.desc_list.len - max_bleeding_stage + + // initialize with the appropriate stage + src.init_stage(damage) bleed_timer += damage // returns 1 if there's a next stage, 0 otherwise - proc/next_stage() - if(current_stage + 1 > src.desc_list.len) - return 0 - - current_stage++ + proc/init_stage(var/initial_damage) + current_stage = stages.len + + while(src.current_stage > 1 && src.damage_list[current_stage-1] <= initial_damage / src.amount) + src.current_stage-- src.min_damage = damage_list[current_stage] src.desc = desc_list[current_stage] - return 1 - - // returns 1 if the wound has started healing - proc/started_healing() - return (current_stage > 1) + // the amount of damage per wound + proc/wound_damage() + return src.damage / src.amount + // checks whether the wound has been appropriately treated - // always returns 1 for wounds that don't need to be treated + // always returns 1 for wounds that are too minor to need treatment proc/is_treated() - if(!needs_treatment) return 1 + if(src.wound_damage() <= autoheal_cutoff) + return 1 if(damage_type == BRUISE || damage_type == CUT) return bandaged else if(damage_type == BURN) return salved + + + // Checks whether other other can be merged into src. + proc/can_merge(var/datum/wound/other) + if (other.type != src.type) return 0 + if (other.current_stage != src.current_stage) return 0 + if (other.damage_type != src.damage_type) return 0 + if (!(other.is_treated()) != !(src.is_treated())) return 0 + if (!(other.bandaged) != !(src.bandaged)) return 0 + if (!(other.clamped) != !(src.clamped)) return 0 + if (!(other.salved) != !(src.salved)) return 0 + if (!(other.disinfected) != !(src.disinfected)) return 0 + //if (other.germ_level != src.germ_level) return 0 + return 1 + + proc/merge_wound(var/datum/wound/other) + src.damage += other.damage + src.amount += other.amount + src.bleed_timer += other.bleed_timer + src.germ_level = max(src.germ_level, other.germ_level) + src.created = max(src.created, other.created) //take the newer created time // checks if wound is considered open for external infections // untreated cuts (and bleeding bruises) and burns are possibly infectable, chance higher if wound is bigger @@ -128,7 +146,7 @@ amount -= healed_damage src.damage -= healed_damage - while(src.damage / src.amount < damage_list[current_stage] && current_stage < src.desc_list.len) + while(src.wound_damage() < damage_list[current_stage] && current_stage < src.desc_list.len) current_stage++ desc = desc_list[current_stage] src.min_damage = damage_list[current_stage] @@ -141,118 +159,98 @@ src.damage += damage bleed_timer += damage - while(src.current_stage > 1 && src.damage_list[current_stage-1] <= src.damage) + while(src.current_stage > 1 && src.damage_list[current_stage-1] <= src.damage / src.amount) src.current_stage-- src.desc = desc_list[current_stage] src.min_damage = damage_list[current_stage] + // returns whether this wound can absorb the given amount of damage. + // this will prevent large amounts of damage being trapped in less severe wound types + proc/can_worsen(damage_type, damage) + if (src.damage_type != damage_type) + return 0 //incompatible damage types + + if (src.amount > 1) + return 0 + + //with 1.5*, a shallow cut will be able to carry at most 30 damage, + //37.5 for a deep cut + //52.5 for a flesh wound, etc. + var/max_wound_damage = 1.5*src.damage_list[1] + if (src.damage + damage > max_wound_damage) + return 0 + + return 1 + + proc/bleeding() // internal wounds don't bleed in the sense of this function - return ((damage > 30 || bleed_timer > 0) && !(bandaged||clamped) && (damage_type == BRUISE && damage >= 20 || damage_type == CUT && damage >= 5) && current_stage <= max_bleeding_stage && !src.internal) + return ((wound_damage() > 30 || bleed_timer > 0) && !(bandaged||clamped) && (damage_type == BRUISE && wound_damage() >= 20 || damage_type == CUT && wound_damage() >= 5) && current_stage <= max_bleeding_stage && !src.internal) /** CUTS **/ /datum/wound/cut/small // link wound descriptions to amounts of damage max_bleeding_stage = 2 stages = list("ugly ripped cut" = 20, "ripped cut" = 10, "cut" = 5, "healing cut" = 2, "small scab" = 0) + damage_type = CUT /datum/wound/cut/deep max_bleeding_stage = 3 stages = list("ugly deep ripped cut" = 25, "deep ripped cut" = 20, "deep cut" = 15, "clotted cut" = 8, "scab" = 2, "fresh skin" = 0) + damage_type = CUT /datum/wound/cut/flesh max_bleeding_stage = 3 stages = list("ugly ripped flesh wound" = 35, "ugly flesh wound" = 30, "flesh wound" = 25, "blood soaked clot" = 15, "large scab" = 5, "fresh skin" = 0) + damage_type = CUT /datum/wound/cut/gaping max_bleeding_stage = 2 - stages = list("gaping wound" = 50, "large blood soaked clot" = 25, "large clot" = 15, "small angry scar" = 5, \ - "small straight scar" = 0) + stages = list("gaping wound" = 50, "large blood soaked clot" = 25, "large clot" = 15, "small angry scar" = 5, "small straight scar" = 0) + damage_type = CUT /datum/wound/cut/gaping_big max_bleeding_stage = 2 stages = list("big gaping wound" = 60, "healing gaping wound" = 40, "large angry scar" = 10, "large straight scar" = 0) - - needs_treatment = 1 // this only heals when bandaged + damage_type = CUT datum/wound/cut/massive max_bleeding_stage = 2 stages = list("massive wound" = 70, "massive healing wound" = 50, "massive angry scar" = 10, "massive jagged scar" = 0) - - needs_treatment = 1 // this only heals when bandaged + damage_type = CUT /** BRUISES **/ /datum/wound/bruise stages = list("monumental bruise" = 80, "huge bruise" = 50, "large bruise" = 30,\ "moderate bruise" = 20, "small bruise" = 10, "tiny bruise" = 5) - - needs_treatment = 1 // this only heals when bandaged + max_bleeding_stage = 3 + autoheal_cutoff = 30 damage_type = BRUISE -/datum/wound/bruise/monumental - -// implement sub-paths by starting at a later stage - -/datum/wound/bruise/tiny - current_stage = 5 - needs_treatment = 0 - -/datum/wound/bruise/small - current_stage = 4 - needs_treatment = 0 - -/datum/wound/bruise/moderate - current_stage = 3 - needs_treatment = 0 - -/datum/wound/bruise/large - current_stage = 2 - -/datum/wound/bruise/huge - current_stage = 1 - /** BURNS **/ /datum/wound/burn/moderate stages = list("ripped burn" = 10, "moderate burn" = 5, "moderate salved burn" = 2, "fresh skin" = 0) - - needs_treatment = 1 // this only heals when bandaged - damage_type = BURN /datum/wound/burn/large stages = list("ripped large burn" = 20, "large burn" = 15, "large salved burn" = 5, "fresh skin" = 0) - - needs_treatment = 1 // this only heals when bandaged - damage_type = BURN /datum/wound/burn/severe stages = list("ripped severe burn" = 35, "severe burn" = 30, "severe salved burn" = 10, "burn scar" = 0) - - needs_treatment = 1 // this only heals when bandaged - damage_type = BURN /datum/wound/burn/deep stages = list("ripped deep burn" = 45, "deep burn" = 40, "deep salved burn" = 15, "large burn scar" = 0) - - needs_treatment = 1 // this only heals when bandaged - damage_type = BURN - /datum/wound/burn/carbonised stages = list("carbonised area" = 50, "treated carbonised area" = 20, "massive burn scar" = 0) - - needs_treatment = 1 // this only heals when bandaged - damage_type = BURN /datum/wound/internal_bleeding internal = 1 - stages = list("severed vein" = 30, "cut vein" = 20, "damaged vein" = 10, "bruised vein" = 5) - max_bleeding_stage = 0 - - needs_treatment = 1 + autoheal_cutoff = 5 + max_bleeding_stage = 0 //all stages bleed. It's called internal bleeding after all. diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 324492a3bd..62d4fb19d4 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -750,5 +750,6 @@ src.visible_message("\red [name] shatters.","\red You hear a small glass object shatter.") status = LIGHT_BROKEN force = 5 + sharp = 1 playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) update() diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 0b5c5e9a56..b1b3df0672 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -201,7 +201,7 @@ in_chamber.on_hit(M) if (in_chamber.damage_type != HALLOSS) - user.apply_damage(in_chamber.damage*2.5, in_chamber.damage_type, "head", used_weapon = "Point blank shot in the mouth with \a [in_chamber]") + user.apply_damage(in_chamber.damage*2.5, in_chamber.damage_type, "head", used_weapon = "Point blank shot in the mouth with \a [in_chamber]", sharp=1) user.death() else user << "Ow..." diff --git a/code/modules/projectiles/guns/alien.dm b/code/modules/projectiles/guns/alien.dm index 1a2889e08c..6aa16bc08e 100644 --- a/code/modules/projectiles/guns/alien.dm +++ b/code/modules/projectiles/guns/alien.dm @@ -5,6 +5,7 @@ name = "alloy spike" desc = "It's about a foot of weird silver metal with a wicked point." sharp = 1 + edge = 0 throwforce = 5 w_class = 2 icon = 'icons/obj/weapons.dmi' diff --git a/code/modules/projectiles/guns/projectile/bow.dm b/code/modules/projectiles/guns/projectile/bow.dm index 3d80063aa6..912b5f2f1e 100644 --- a/code/modules/projectiles/guns/projectile/bow.dm +++ b/code/modules/projectiles/guns/projectile/bow.dm @@ -9,6 +9,7 @@ throwforce = 8 w_class = 3.0 sharp = 1 + edge = 0 /obj/item/weapon/arrow/proc/removed() //Helper for metal rods falling apart. return diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index 07bf9bd0f6..19806429a3 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -183,7 +183,7 @@ playsound(user, fire_sound, 50, 1) user.visible_message("[user.name] fires [src] at \his head!", "You fire [src] at your head!", "You hear a [istype(in_chamber, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!") if(!P.nodamage) - user.apply_damage(300, BRUTE, affecting) // You are dead, dead, dead. + user.apply_damage(300, BRUTE, affecting, sharp=1) // You are dead, dead, dead. return ..() diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index dfc898f575..cc38efa29e 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -6,6 +6,7 @@ nodamage = 0 flag = "bullet" embed = 1 + sharp = 1 on_hit(var/atom/target, var/blocked = 0) if (..(target, blocked)) @@ -17,6 +18,7 @@ stun = 5 weaken = 5 embed = 0 + sharp = 0 /obj/item/projectile/bullet/weakbullet/beanbag //because beanbags are not bullets name = "beanbag" @@ -47,6 +49,8 @@ /obj/item/projectile/bullet/burstbullet//I think this one needs something for the on hit name = "exploding bullet" damage = 20 + embed = 0 + edge = 1 /obj/item/projectile/bullet/stunshot @@ -56,6 +60,7 @@ weaken = 10 stutter = 10 embed = 0 + sharp = 0 /obj/item/projectile/bullet/a762 damage = 25 diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index 70a5e9e326..f426eefb2f 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -17,7 +17,8 @@ icon_state= "bolter" damage = 50 flag = "bullet" - + sharp = 1 + edge = 1 on_hit(var/atom/target, var/blocked = 0) explosion(target, -1, 0, 2) diff --git a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm index 64cd2c3e94..93c61ece1c 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm @@ -77,7 +77,7 @@ armor_duration /= 10 //Apply the damage! - target.apply_damage(force, BRUTE, affecting, armor_block) + target.apply_damage(force, BRUTE, affecting, armor_block, sharp=0) // You are going to knock someone out for longer if they are not wearing a helmet. if(affecting == "head" && istype(target, /mob/living/carbon/)) @@ -125,6 +125,8 @@ throw_range = 5 item_state = "beer" attack_verb = list("stabbed", "slashed", "attacked") + sharp = 1 + edge = 0 var/icon/broken_outline = icon('icons/obj/drinks.dmi', "broken") /obj/item/weapon/broken_bottle/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index ba8fe0390f..bed9a298fb 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -16,6 +16,7 @@ possible_transfer_amounts = null //list(5,10,15) volume = 15 w_class = 1 + sharp = 1 var/mode = SYRINGE_DRAW on_reagent_change() diff --git a/code/modules/research/xenoarchaeology/finds/finds_misc.dm b/code/modules/research/xenoarchaeology/finds/finds_misc.dm index 874bd907a4..e3e0d96197 100644 --- a/code/modules/research/xenoarchaeology/finds/finds_misc.dm +++ b/code/modules/research/xenoarchaeology/finds/finds_misc.dm @@ -5,6 +5,9 @@ force = 8.0 throwforce = 15.0 icon_state = "phoronlarge" + sharp = 1 + edge = 1 + /obj/item/weapon/shard/phoron/New() src.icon_state = pick("phoronlarge", "phoronmedium", "phoronsmall") diff --git a/code/modules/research/xenoarchaeology/geosample.dm b/code/modules/research/xenoarchaeology/geosample.dm index a2ea98a430..401ae13cd3 100644 --- a/code/modules/research/xenoarchaeology/geosample.dm +++ b/code/modules/research/xenoarchaeology/geosample.dm @@ -20,6 +20,7 @@ icon = 'icons/obj/xenoarchaeology.dmi' icon_state = "sliver1" //0-4 w_class = 1 + sharp = 1 //item_state = "electronic" var/source_rock = "/turf/simulated/mineral/" var/datum/geosample/geological_data diff --git a/code/modules/surgery/braincore.dm b/code/modules/surgery/braincore.dm index 767cef719a..b89c48275b 100644 --- a/code/modules/surgery/braincore.dm +++ b/code/modules/surgery/braincore.dm @@ -62,7 +62,7 @@ fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) user.visible_message("\red [user]'s hand slips, cutting a vein in [target]'s brain with \the [tool]!", \ "\red Your hand slips, cutting a vein in [target]'s brain with \the [tool]!") - target.apply_damage(50, BRUTE, "head", 1) + target.apply_damage(50, BRUTE, "head", 1, sharp=1) /datum/surgery_step/brain/saw_spine allowed_tools = list( @@ -114,7 +114,7 @@ fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) user.visible_message("\red [user]'s hand slips, cutting a vein in [target]'s brain with \the [tool]!", \ "\red Your hand slips, cutting a vein in [target]'s brain with \the [tool]!") - target.apply_damage(30, BRUTE, "head", 1) + target.apply_damage(30, BRUTE, "head", 1, sharp=1) if (ishuman(user)) user:bloody_body(target) user:bloody_hands(target, 0) @@ -151,7 +151,7 @@ fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) user.visible_message("\red [user]'s hand slips, jabbing \the [tool] in [target]'s brain!", \ "\red Your hand slips, jabbing \the [tool] in [target]'s brain!") - target.apply_damage(30, BRUTE, "head", 1) + target.apply_damage(30, BRUTE, "head", 1, sharp=1) /datum/surgery_step/brain/hematoma allowed_tools = list( @@ -181,7 +181,7 @@ fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) user.visible_message("\red [user]'s hand slips, bruising [target]'s brain with \the [tool]!", \ "\red Your hand slips, bruising [target]'s brain with \the [tool]!") - target.apply_damage(20, BRUTE, "head", 1) + target.apply_damage(20, BRUTE, "head", 1, sharp=1) ////////////////////////////////////////////////////////////////// // SLIME CORE EXTRACTION // diff --git a/code/modules/surgery/eye.dm b/code/modules/surgery/eye.dm index b65aaf9608..9977271c76 100644 --- a/code/modules/surgery/eye.dm +++ b/code/modules/surgery/eye.dm @@ -104,7 +104,7 @@ var/datum/organ/external/affected = target.get_organ(target_zone) user.visible_message("\red [user]'s hand slips, stabbing \the [tool] into [target]'s eye!", \ "\red Your hand slips, stabbing \the [tool] into [target]'s eye!") - target.apply_damage(10, BRUTE, affected) + target.apply_damage(10, BRUTE, affected, sharp=1) eyes.take_damage(5, 0) /datum/surgery_step/eye/cauterize diff --git a/code/modules/surgery/face.dm b/code/modules/surgery/face.dm index b3569b0887..7c04800f5a 100644 --- a/code/modules/surgery/face.dm +++ b/code/modules/surgery/face.dm @@ -98,7 +98,7 @@ var/datum/organ/external/affected = target.get_organ(target_zone) user.visible_message("\red [user]'s hand slips, tearing skin on [target]'s face with \the [tool]!", \ "\red Your hand slips, tearing skin on [target]'s face with \the [tool]!") - target.apply_damage(10, BRUTE, affected) + target.apply_damage(10, BRUTE, affected, sharp=1, sharp=1) /datum/surgery_step/face/cauterize allowed_tools = list( diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm index 1ee3408b41..dc0af3936a 100644 --- a/code/modules/surgery/generic.dm +++ b/code/modules/surgery/generic.dm @@ -228,7 +228,7 @@ msg = "\red [user]'s hand slips, damaging several organs in [target]'s lower abdomen with \the [tool]" self_msg = "\red Your hand slips, damaging several organs in [target]'s lower abdomen with \the [tool]!" user.visible_message(msg, self_msg) - target.apply_damage(12, BRUTE, affected) + target.apply_damage(12, BRUTE, affected, sharp=1) /datum/surgery_step/generic/cauterize allowed_tools = list( diff --git a/code/modules/surgery/headreattach.dm b/code/modules/surgery/headreattach.dm index eb5c696426..038ba1dfcd 100644 --- a/code/modules/surgery/headreattach.dm +++ b/code/modules/surgery/headreattach.dm @@ -189,4 +189,4 @@ var/datum/organ/external/affected = target.get_organ(target_zone) user.visible_message("\red [user]'s hand slips, damaging connectors on [target]'s neck!", \ "\red Your hand slips, damaging connectors on [target]'s neck!") - target.apply_damage(10, BRUTE, affected) + target.apply_damage(10, BRUTE, affected, sharp=1) diff --git a/code/modules/surgery/robolimbs.dm b/code/modules/surgery/robolimbs.dm index 3be16401be..f4af506c63 100644 --- a/code/modules/surgery/robolimbs.dm +++ b/code/modules/surgery/robolimbs.dm @@ -85,7 +85,7 @@ affected = affected.parent user.visible_message("\red [user]'s hand slips, tearing flesh on [target]'s [affected.display_name]!", \ "\red Your hand slips, tearing flesh on [target]'s [affected.display_name]!") - target.apply_damage(10, BRUTE, affected) + target.apply_damage(10, BRUTE, affected, sharp=1) /datum/surgery_step/limb/prepare @@ -166,4 +166,4 @@ var/datum/organ/external/affected = target.get_organ(target_zone) user.visible_message("\red [user]'s hand slips, damaging connectors on [target]'s [affected.display_name]!", \ "\red Your hand slips, damaging connectors on [target]'s [affected.display_name]!") - target.apply_damage(10, BRUTE, affected) + target.apply_damage(10, BRUTE, affected, sharp=1) diff --git a/icons/mob/human_races/robotic.dmi b/icons/mob/human_races/robotic.dmi index cf7767f452..e98d2e3512 100644 Binary files a/icons/mob/human_races/robotic.dmi and b/icons/mob/human_races/robotic.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 698b86c70c..05d27bcc06 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index 4335ec3d6e..b0a8806035 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -296,7 +296,7 @@ "afJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/security/prison) "afK" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) "afL" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) -"afM" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass_security{id_tag = "BrigFoyer"; layer = 2.8; name = "Brig"; req_access_txt = "63"},/turf/simulated/floor{icon_state = "redfull"; dir = 9},/area/security/brig) +"afM" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass_security{id_tag = "BrigFoyer"; layer = 2.8; name = "Brig"; req_access_txt = "63"},/turf/simulated/floor{icon_state = "redfull"; dir = 9},/area/security/lobby) "afN" = (/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "afO" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "afP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Evidence Storage"; req_access = null; req_access_txt = "3"},/turf/simulated/floor,/area/security/warden) @@ -392,7 +392,7 @@ "ahB" = (/obj/machinery/photocopier,/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1475; listening = 1; name = "Station Intercom (Security)"; pixel_x = -30; pixel_y = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/newscaster/security_unit{pixel_x = -30; pixel_y = 30},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "ahC" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/security/brig) "ahD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) -"ahE" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/security{name = "Equipment Storage"; req_access_txt = "1"},/turf/simulated/floor,/area/security/brig) +"ahE" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/security{name = "Equipment Storage"; req_access_txt = "1"},/turf/simulated/floor,/area/security/main) "ahF" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/paper{info = "4 Deployable Barriers
4 Portable Flashers + Wrench
3 Sets of Riot Armor
1 Bulletproof Vest
1 Ablative Vest
1 Bomb Suit
1 Biohazard Suit
1 Chemical Implant Kit
1 Tracking Implant Kit
1 Loyalty Implant Kit
1 Box of Spare Handcuffs
1 Box of flashbangs
1 Box of spare R.O.B.U.S.T. cartridges
3 Riot shields
3 Stun Batons
3 Energy Guns
3 Laser Rifles
6 Gas Masks"; name = "Armory Inventory"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "ahG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/warden) "ahH" = (/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/main) @@ -417,7 +417,7 @@ "aia" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "aib" = (/obj/machinery/door_timer/cell_4{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/security/brig) "aic" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) -"aid" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/hallway/primary/fore) +"aid" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/maintenance/fsmaint) "aie" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "aif" = (/obj/structure/table/reinforced{icon_state = "table_vertical"},/obj/machinery/door/window/brigdoor{dir = 8; name = "Warden's Desk"; req_access_txt = "3"},/obj/machinery/door/window/eastleft,/turf/simulated/floor/plating,/area/security/warden) "aig" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor,/area/security/main) @@ -892,7 +892,7 @@ "arh" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore) "ari" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor,/area/hallway/primary/fore) "arj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/main) -"ark" = (/obj/structure/filingcabinet/filingcabinet,/turf/simulated/floor{icon_state = "dark"},/area/security/brig) +"ark" = (/obj/structure/filingcabinet/filingcabinet,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "arl" = (/obj/structure/closet/secure_closet/security,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/item/device/flashlight/flare,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/main) "arm" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor,/area/maintenance/fsmaint) "arn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/security/hos) @@ -962,7 +962,7 @@ "asz" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass{name = "Hydroponics Pasture"; req_access_txt = "28"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "asA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{dir = 9; icon_state = "green"},/area/hydroponics) "asB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/crew_quarters/kitchen) -"asC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/hallway/primary/port) +"asC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/maintenance/port) "asD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/hallway/secondary/entry) "asE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/storage/art) "asF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor,/area/hallway/primary/port) @@ -1016,7 +1016,7 @@ "atB" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/tactical) "atC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "green"; dir = 8},/area/hydroponics) "atD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/wood,/area/crew_quarters/bar) -"atE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/hallway/primary/port) +"atE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/storage/primary) "atF" = (/turf/simulated/floor{icon_state = "dark"},/area/security/tactical) "atG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/bar) "atH" = (/turf/simulated/wall,/area/hallway/secondary/entry) @@ -1111,7 +1111,7 @@ "avs" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "avt" = (/turf/simulated/floor/plating,/area/hallway/secondary/entry) "avu" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/hallway/secondary/entry) -"avv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/hallway/primary/port) +"avv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/maintenance/fpmaint2) "avw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/command{icon_state = "door_closed"; lockdownbyai = 0; locked = 0; name = "Gateway Access"; req_access_txt = "62"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/gateway) "avx" = (/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Central Hallway North"; dir = 2},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central) "avy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plating,/area/maintenance/fpmaint) @@ -1350,7 +1350,7 @@ "azX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "azY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "azZ" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry) -"aAa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/wall,/area/hallway/secondary/entry) +"aAa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/port) "aAb" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/extinguisher_cabinet{pixel_x = -27},/turf/simulated/floor,/area/storage/tools) "aAc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aAd" = (/obj/machinery/camera{c_tag = "Port Hallway 2"; dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/primary/port) @@ -1654,7 +1654,7 @@ "aFP" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/plating,/area/maintenance/port) "aFQ" = (/obj/machinery/door/airlock/command{name = "Conference Room"; req_access = null; req_access_txt = "19"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/bridge/meeting_room) "aFR" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/bar) -"aFS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/weapon/cigbutt,/turf/simulated/floor/plating,/area/maintenance/port) +"aFS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/weapon/cigbutt,/obj/structure/disposalpipe/tagger/partial{name = "Sorting Office"; sort_tag = "Disposals"},/turf/simulated/floor/plating,/area/maintenance/port) "aFT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/bridge/meeting_room) "aFU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/crew_quarters/bar) "aFV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/carpet,/area/library) @@ -1751,8 +1751,8 @@ "aHI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/crew_quarters/sleep/sec) "aHJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/wall,/area/lawoffice) "aHK" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/wall,/area/lawoffice) -"aHL" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/wall,/area/hallway/primary/fore) -"aHM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "lawyer_blast"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/hallway/primary/fore) +"aHL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/port) +"aHM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/sortjunction/wildcard,/turf/simulated/floor/plating,/area/maintenance/port) "aHN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters/sleep) "aHO" = (/obj/structure/filingcabinet,/turf/simulated/floor/wood,/area/library) "aHP" = (/turf/simulated/floor/wood,/area/library) @@ -1808,7 +1808,7 @@ "aIN" = (/turf/simulated/floor{dir = 1; icon_state = "bluecorner"},/area/hallway/primary/central) "aIO" = (/turf/simulated/floor,/area/hallway/primary/central) "aIP" = (/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/primary/central) -"aIQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "lawyer_blast"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/hallway/primary/fore) +"aIQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/wall,/area/security/vacantoffice) "aIR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor,/area/hallway/primary/central) "aIS" = (/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/hallway/primary/central) "aIT" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep/bedrooms) @@ -1837,13 +1837,13 @@ "aJq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 6; icon_state = "whitehall"},/area/crew_quarters/fitness) "aJr" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor/wood,/area/library) "aJs" = (/obj/structure/window/basic{dir = 8},/turf/simulated/floor/beach/water{tag = "icon-seadeep"; icon_state = "seadeep"},/area/crew_quarters/fitness) -"aJt" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "red"; dir = 5},/area/security/checkpoint2) +"aJt" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/wall,/area/maintenance/fsmaint) "aJu" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/simulated/floor/wood,/area/library) "aJv" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/camera{c_tag = "Fitness Room West"; dir = 4},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters/fitness) "aJw" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor,/area/crew_quarters/fitness) "aJx" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor,/area/crew_quarters/fitness) "aJy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light/small,/turf/simulated/floor,/area/crew_quarters/fitness) -"aJz" = (/obj/structure/closet/secure_closet/security,/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/checkpoint2) +"aJz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "lawyer_blast"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/lawoffice) "aJA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva) "aJB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aJC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/crew_quarters/fitness) @@ -1868,7 +1868,7 @@ "aJV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/storage/primary) "aJW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/storage/primary) "aJX" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Primary Tool Storage"},/turf/simulated/floor,/area/storage/primary) -"aJY" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint2) +"aJY" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "red"; dir = 5},/area/security/checkpoint2) "aJZ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/primary/port) "aKa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aKb" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/primary/port) @@ -2016,7 +2016,7 @@ "aMN" = (/obj/effect/decal/cleanable/blood/gibs/robot,/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aMO" = (/obj/structure/morgue,/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) "aMP" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) -"aMQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/security/checkpoint2) +"aMQ" = (/obj/structure/closet/secure_closet/security,/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/checkpoint2) "aMR" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = -28},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) "aMS" = (/obj/machinery/camera{c_tag = "Chapel North"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aMT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) @@ -2054,12 +2054,12 @@ "aNz" = (/turf/simulated/floor{desc = ""; icon_state = "L14"},/area/hallway/primary/central) "aNA" = (/turf/simulated/floor{icon_state = "L16"},/area/hallway/primary/central) "aNB" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=EVA2"; location = "Dorm"},/turf/simulated/floor,/area/hallway/primary/central) -"aNC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/checkpoint2) +"aNC" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint2) "aND" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aNE" = (/obj/effect/landmark/start{name = "Bartender"},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aNF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/crew_quarters/sleep/bedrooms) "aNG" = (/turf/simulated/floor/carpet,/area/crew_quarters/bar) -"aNH" = (/obj/structure/closet/wardrobe/red,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/checkpoint2) +"aNH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access_txt = "1"},/turf/simulated/floor/plating,/area/security/checkpoint2) "aNI" = (/obj/machinery/light/small{dir = 8},/obj/structure/stool/bed,/obj/machinery/alarm{pixel_y = 23},/obj/item/weapon/bedsheet/mime,/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep/bedrooms) "aNJ" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aNK" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/hallway/primary/fore) @@ -2098,7 +2098,7 @@ "aOr" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/port) "aOs" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor,/area/crew_quarters/locker) "aOt" = (/obj/machinery/light_switch{pixel_y = 28},/obj/structure/table/woodentable,/obj/item/weapon/book/manual/security_space_law{pixel_x = -3; pixel_y = 5},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/wood,/area/crew_quarters/sleep/sec) -"aOu" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/security/checkpoint2) +"aOu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/checkpoint2) "aOv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/hallway/primary/port) "aOw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/hallway/primary/port) "aOx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Port Hallway"; dir = 1},/turf/simulated/floor,/area/hallway/primary/port) @@ -2328,7 +2328,7 @@ "aSN" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/storage/emergency2) "aSO" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/disposalpipe/segment,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters/fitness) "aSP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/crew_quarters/toilet) -"aSQ" = (/obj/machinery/camera{c_tag = "Security Checkpoint"; dir = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/checkpoint2) +"aSQ" = (/obj/structure/closet/wardrobe/red,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/checkpoint2) "aSR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/storage/tools) "aSS" = (/turf/simulated/floor,/area/storage/tools) "aST" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Auxiliary Tool Storage"; dir = 2},/turf/simulated/floor,/area/storage/tools) @@ -2338,7 +2338,7 @@ "aSX" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/bridge) "aSY" = (/turf/simulated/floor{icon_state = "red"; dir = 1},/area/bridge) "aSZ" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/bridge) -"aTa" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "red"},/area/security/checkpoint2) +"aTa" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/security/checkpoint2) "aTb" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/bridge) "aTc" = (/obj/machinery/computer/station_alert,/turf/simulated/floor{dir = 5; icon_state = "blue"},/area/bridge) "aTd" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/bridge) @@ -2346,7 +2346,7 @@ "aTf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/bridge) "aTg" = (/turf/simulated/floor{icon_state = "whitehall"; dir = 5},/area/bridge) "aTh" = (/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) -"aTi" = (/obj/machinery/door/airlock/security{name = "Security Checkpoint"; req_access = null; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor,/area/security/checkpoint2) +"aTi" = (/obj/machinery/camera{c_tag = "Security Checkpoint"; dir = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/checkpoint2) "aTj" = (/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) "aTk" = (/obj/structure/stool/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar) "aTl" = (/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) @@ -2962,8 +2962,8 @@ "beX" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/light,/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Clothing Storage"},/turf/simulated/floor{dir = 10; icon_state = "neutral"},/area/crew_quarters/fitness) "beY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/sortjunction/flipped{dir = 2; name = "Engineering Break Room"; sortType = "Engineering Break Room"},/turf/simulated/floor,/area/hallway/primary/aft) "beZ" = (/obj/structure/closet/wardrobe/chemistry_white,/turf/simulated/floor{dir = 2; icon_state = "whiteyellowcorner"},/area/medical/chemistry) -"bfa" = (/obj/item/stack/sheet/cardboard,/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) -"bfb" = (/obj/machinery/camera{c_tag = "Cargo Bay Storage"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) +"bfa" = (/turf/simulated/floor{icon_state = "red"},/area/security/checkpoint2) +"bfb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/wall,/area/security/checkpoint2) "bfc" = (/obj/machinery/camera{c_tag = "Cargo Delivery Office"; dir = 4; network = list("SS13")},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{dir = 8; icon_state = "brown"},/area/quartermaster/office) "bfd" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/crew_quarters/fitness) "bfe" = (/obj/structure/filingcabinet/filingcabinet,/turf/simulated/floor{icon_state = "arrival"; dir = 4},/area/quartermaster/office) @@ -3135,7 +3135,7 @@ "bio" = (/obj/machinery/computer/communications,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bip" = (/obj/structure/table/woodentable,/obj/item/device/eftpos{eftpos_name = "Captain EFTPOS scanner"},/turf/simulated/floor/wood,/area/crew_quarters/captain) "biq" = (/obj/structure/table/woodentable,/obj/item/weapon/melee/chainofcommand,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/wood,/area/crew_quarters/captain) -"bir" = (/obj/machinery/camera{c_tag = "Medbay Patient Isolation Access"; dir = 4; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/patient_wing) +"bir" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/security{name = "Security Checkpoint"; req_access = null; req_access_txt = "1"},/turf/simulated/floor,/area/security/checkpoint2) "bis" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) "bit" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/asmaint2) "biu" = (/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) @@ -3143,10 +3143,10 @@ "biw" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/medical/research{name = "Research Division"}) "bix" = (/turf/simulated/wall,/area/medical/chemistry) "biy" = (/obj/machinery/atmospherics/valve{dir = 4},/obj/machinery/light,/turf/simulated/floor{dir = 4; icon_state = "warnwhite"},/area/rnd/mixing) -"biz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "psych"; name = "Mental Health Privacy Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/patient_wing) +"biz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "psych"; name = "Mental Health Privacy Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/psych) "biA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/sign/fire{pixel_y = -32},/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_on"; on = 1},/turf/simulated/floor/engine,/area/rnd/mixing) "biB" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Mental Health"; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) -"biC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "psych"; name = "Mental Health Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) +"biC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "psych"; name = "Mental Health Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/psych) "biD" = (/turf/simulated/wall,/area/medical/ward) "biE" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Sub-Acute C"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/patient_c) "biF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "medprivc"; name = "Patient Privacy Shutters"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/medical/patient_c) @@ -3290,11 +3290,11 @@ "bln" = (/obj/structure/closet/secure_closet/cargotech,/turf/simulated/floor,/area/quartermaster/storage) "blo" = (/obj/machinery/light{dir = 1},/obj/machinery/alarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/quartermaster/storage) "blp" = (/turf/simulated/floor,/area/quartermaster/storage) -"blq" = (/obj/machinery/door_control{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = -1; pixel_y = 24; req_access_txt = "31"},/turf/simulated/floor,/area/quartermaster/storage) +"blq" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "scanhideside"; name = "Diagnostics Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/sleeper) "blr" = (/obj/structure/sign/poster{pixel_x = 0; pixel_y = 0},/turf/simulated/wall,/area/quartermaster/storage) "bls" = (/obj/machinery/photocopier,/turf/simulated/floor,/area/quartermaster/office) "blt" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = "QM Office"; name = "QM Office"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/quartermaster/miningdock) -"blu" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/quartermaster/office) +"blu" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "blv" = (/turf/simulated/floor{dir = 4; icon_state = "yellowpatch"},/area/hallway/primary/aft) "blw" = (/obj/structure/table/reinforced,/obj/item/clothing/glasses/science,/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) "blx" = (/obj/structure/table/reinforced,/obj/machinery/ignition_switch{id = "Xenobio"; pixel_x = -6; pixel_y = 4},/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) @@ -3313,7 +3313,7 @@ "blK" = (/obj/machinery/light{dir = 1},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (EAST)"; icon_state = "comfychair_teal"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "blL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/weapon/wrench,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "blM" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/storage/tech) -"blN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "scanhideside"; name = "Diagnostics Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) +"blN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "blO" = (/obj/machinery/requests_console{department = "Tech storage"; pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/storage/tech) "blP" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/aft) "blQ" = (/obj/effect/decal/cleanable/blood/oil{amount = 0},/turf/simulated/floor/plating,/area/maintenance/aft) @@ -3391,7 +3391,7 @@ "bnk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bnl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "toxin_test_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bnm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "toxin_test_airlock"; name = "interior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"bnn" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) +"bnn" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/patient_wing) "bno" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/incinerator) "bnp" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/incinerator) "bnq" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "virology_pump"},/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -3485,7 +3485,7 @@ "bpa" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) "bpb" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Miscellaneous Reseach Maintenance"; req_access_txt = "47"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/rnd/misc_lab) "bpc" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/central) -"bpd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) +"bpd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/patient_wing) "bpe" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) "bpf" = (/obj/machinery/door_control{id = "misclab"; name = "Test Chamber Blast Doors"; pixel_x = 6; pixel_y = 30; req_access_txt = "47"},/obj/structure/stool,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) "bpg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) @@ -3550,10 +3550,10 @@ "bqn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/hallway/primary/central) "bqo" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/hallway/primary/central) "bqp" = (/obj/machinery/computer/skills{icon_state = "medlaptop"},/obj/structure/table,/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/crew_quarters/heads) -"bqq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virologyaccess) +"bqq" = (/obj/machinery/vending/medical,/turf/simulated/floor{icon_state = "white"},/area/medical/patient_wing) "bqr" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/recharger/wallcharger{pixel_x = 0; pixel_y = 30},/turf/simulated/floor,/area/crew_quarters/heads) "bqs" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/engine/chiefs_office) -"bqt" = (/turf/simulated/floor{icon_state = "white"},/area/medical/virologyaccess) +"bqt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/medical/patient_wing) "bqu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/engine/chiefs_office) "bqv" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/space/rig/elite,/obj/item/clothing/shoes/magboots,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/elite,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "bqw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's Desk"; departmentType = 6; name = "Chief Engineer RC"; pixel_x = 0; pixel_y = -34},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor,/area/engine/chiefs_office) @@ -3567,7 +3567,7 @@ "bqE" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/captain,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "bqF" = (/obj/structure/table/woodentable,/obj/item/device/camera,/obj/item/weapon/storage/photo_album{pixel_y = -10},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "bqG" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain) -"bqH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/virologyaccess) +"bqH" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/patient_wing) "bqI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) "bqJ" = (/turf/simulated/floor{icon_state = "white"},/area/medical/ward) "bqK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "yellowcorner"},/area/hallway/primary/aft) @@ -3725,8 +3725,8 @@ "btG" = (/obj/structure/noticeboard{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/engine/break_room) "btH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"},/area/crew_quarters/sleep/engi) "btI" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/vending/wallmed1{pixel_x = -26},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/ward) -"btJ" = (/obj/machinery/vending/medical,/turf/simulated/floor{icon_state = "white"},/area/medical/virologyaccess) -"btK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/medical/virologyaccess) +"btJ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/cmo) +"btK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "staffroom"; name = "Staff Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbreak) "btL" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor,/area/medical/sleeper) "btM" = (/turf/simulated/floor{icon_state = "bluecorner"},/area/medical/surgeryobs) "btN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{name = "Xenobiology Research"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) @@ -3939,8 +3939,8 @@ "bxM" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/hop,/turf/simulated/floor,/area/crew_quarters/heads) "bxN" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor,/area/crew_quarters/heads) "bxO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/cigbutt,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bxP" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virologyaccess) -"bxQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/virologyaccess) +"bxP" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/cmo) +"bxQ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/cmo) "bxR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/engine/engine_eva_maintenance) "bxS" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/engine/engine_eva_maintenance) "bxT" = (/turf/simulated/wall,/area/engine/engine_eva_maintenance) @@ -3999,8 +3999,8 @@ "byU" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "byV" = (/turf/simulated/wall,/area/maintenance/asmaint2) "byW" = (/obj/machinery/camera{c_tag = "Research Dock"; dir = 2; network = list("SS13","Research")},/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/medical/research{name = "Research Division"}) -"byX" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) -"byY" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) +"byX" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/cmo) +"byY" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/cmo) "byZ" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor,/area/hallway/primary/central) "bza" = (/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/medical/research{name = "Research Division"}) "bzb" = (/obj/structure/closet/crate,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/assembly/prox_sensor,/obj/item/device/flashlight,/obj/machinery/atmospherics/pipe/simple/hidden/supply{color = "#4444FF"; dir = 4},/obj/item/weapon/storage/backpack,/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -4146,8 +4146,8 @@ "bBL" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/plating,/area/medical/genetics) "bBM" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Janitor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "bot"},/area/janitor) "bBN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"bBO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "staffroom"; name = "Staff Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) -"bBP" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) +"bBO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) +"bBP" = (/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = 21},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bBQ" = (/mob/living/simple_animal/mouse/white,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/rnd/storage) "bBR" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/camera{c_tag = "Toxins Storage"; dir = 4; network = list("SS13","Research")},/turf/simulated/floor,/area/rnd/storage) "bBS" = (/obj/machinery/camera{c_tag = "Toxins Test Chamber North"; network = list("Toxins Test Area")},/obj/machinery/light{dir = 1},/turf/simulated/floor/airless,/area/rnd/test_area) @@ -4162,8 +4162,8 @@ "bCb" = (/turf/simulated/floor{dir = 2; icon_state = "warnwhite"},/area/crew_quarters/hor) "bCc" = (/turf/simulated/floor{dir = 6; icon_state = "warnwhite"},/area/crew_quarters/hor) "bCd" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"bCe" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) -"bCf" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "acute2"; name = "Acute Two Privacy Shutters"; opacity = 0},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/medbay2) +"bCe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) +"bCf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/medical/medbay3) "bCg" = (/obj/structure/lattice,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 32},/turf/space,/area) "bCh" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/simulated/floor,/area/quartermaster/miningdock) "bCi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/iv_drip,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor{dir = 6; icon_state = "whitered"},/area/medical/patient_b) @@ -4184,11 +4184,11 @@ "bCx" = (/turf/simulated/floor/engine,/area/rnd/misc_lab) "bCy" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "CMO's Office"; req_access_txt = "40"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/cmo) "bCz" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central) -"bCA" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) +"bCA" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medical Equipment"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bCB" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/primary/central) "bCC" = (/obj/structure/sign/securearea{pixel_y = 32},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/hallway/primary/central) "bCD" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/hallway/primary/central) -"bCE" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) +"bCE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/chemistry) "bCF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/medical/genetics) "bCG" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "hazard door west"},/turf/simulated/floor,/area/hallway/primary/central) "bCH" = (/obj/machinery/atm{pixel_y = 32},/turf/simulated/floor,/area/hallway/primary/central) @@ -4604,7 +4604,7 @@ "bKB" = (/obj/structure/table,/obj/item/weapon/folder/white{pixel_y = 10},/obj/item/weapon/clipboard,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/item/weapon/stamp/cmo,/turf/simulated/floor{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/cmo) "bKC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/cmo) "bKD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/aft) -"bKE" = (/obj/machinery/door/poddoor/shutters{dir = 2; id = "qm_warehouse"; name = "Warehouse Shutters"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/quartermaster/storage) +"bKE" = (/obj/machinery/status_display,/turf/simulated/wall,/area/medical/chemistry) "bKF" = (/obj/machinery/sparker{id = "Xenobio"; pixel_x = -25},/turf/simulated/floor/engine,/area/rnd/misc_lab) "bKG" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/hallway/primary/aft) "bKH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) @@ -4636,7 +4636,7 @@ "bLh" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor/plating,/area/storage/tech) "bLi" = (/obj/machinery/door/airlock/maintenance{name = "Mining Maintenance"; req_access_txt = "48"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/quartermaster/miningdock) "bLj" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Toxins Launch Room"; req_access_txt = "8"},/turf/simulated/floor,/area/rnd/mixing) -"bLk" = (/obj/structure/disposalpipe/sortjunction/wildcard{dir = 1},/turf/simulated/wall,/area/quartermaster/storage) +"bLk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposaloutlet{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plating,/area/quartermaster/office) "bLl" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor,/area/janitor) "bLm" = (/obj/structure/table,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/machinery/requests_console{department = "Janitorial"; departmentType = 1; pixel_y = -29},/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/floor,/area/janitor) "bLn" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light,/turf/simulated/floor,/area/janitor) @@ -4725,7 +4725,7 @@ "bMS" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bMT" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Medicine Storage"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bMU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) -"bMV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) +"bMV" = (/obj/machinery/door/poddoor/shutters{dir = 2; id = "qm_warehouse"; name = "Warehouse Shutters"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/quartermaster/storage) "bMW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bMX" = (/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bMY" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) @@ -4954,7 +4954,7 @@ "bRn" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bRo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) "bRp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"bRq" = (/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = 21},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) +"bRq" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/quartermaster/storage) "bRr" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bRs" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteredcorner"},/area/medical/research{name = "Research Division"}) "bRt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -4964,7 +4964,7 @@ "bRx" = (/obj/machinery/light{dir = 1},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "whiteblue"},/area/medical/research{name = "Research Division"}) "bRy" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bRz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/crew_quarters/heads) -"bRA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) +"bRA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/wall,/area/quartermaster/office) "bRB" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/medical/research{name = "Research Division"}) "bRC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bRD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "whiteredcorner"},/area/medical/research{name = "Research Division"}) @@ -5070,22 +5070,22 @@ "bTz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/quartermaster/storage) "bTA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/port) "bTB" = (/turf/simulated/wall,/area/maintenance/incinerator) -"bTC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/office) -"bTD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/port) +"bTC" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) +"bTD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/port) "bTE" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plating,/area/storage/emergency) "bTF" = (/obj/machinery/light{dir = 1},/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bTG" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bTH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/port) "bTI" = (/obj/machinery/light/small{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/crew_quarters/captain) -"bTJ" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/wall,/area/quartermaster/office) -"bTK" = (/obj/structure/disposaloutlet{dir = 1},/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plating,/area/quartermaster/office) +"bTJ" = (/obj/structure/disposaloutlet{dir = 1},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/office) +"bTK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/sortjunction/untagged{dir = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) "bTL" = (/obj/structure/stool/bed/chair{dir = 4},/obj/effect/landmark/start{name = "Cargo Technician"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/quartermaster/office) "bTM" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/port) "bTN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/quartermaster/storage) "bTO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) "bTP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door_control{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "31"},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) -"bTQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) -"bTR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/wall,/area/quartermaster/storage) +"bTQ" = (/obj/structure/closet/crate/medical,/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) +"bTR" = (/obj/structure/closet/crate,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) "bTS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) "bTT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/port) "bTU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) @@ -5102,7 +5102,7 @@ "bUf" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bUg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bUh" = (/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) -"bUi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) +"bUi" = (/obj/item/stack/sheet/cardboard,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) "bUj" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "virology_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bUk" = (/obj/structure/closet/crate/internals,/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) "bUl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) @@ -5110,7 +5110,7 @@ "bUn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/maintenance/port) "bUo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/maintenance/port) "bUp" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/wall,/area/maintenance/port) -"bUq" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/tagger/partial{name = "Disposals"; sort_tag = "Disposals"},/turf/simulated/floor,/area/quartermaster/office) +"bUq" = (/obj/machinery/camera{c_tag = "Cargo Bay Storage"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) "bUr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/crew_quarters/locker/locker_toilet) "bUs" = (/obj/machinery/camera{c_tag = "Locker Room Toilets"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) "bUt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet) @@ -5118,23 +5118,23 @@ "bUv" = (/obj/item/weapon/stock_parts/console_screen,/obj/structure/table,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/matter_bin,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "white"},/area/rnd/lab) "bUw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plating,/area/storage/emergency) "bUx" = (/obj/structure/rack{dir = 1},/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bUy" = (/obj/structure/closet/crate/medical,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) +"bUy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/port) "bUz" = (/turf/simulated/floor{icon_state = "warnwhite"; dir = 1},/area/rnd/lab) "bUA" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "warnwhite"; dir = 1},/area/rnd/lab) -"bUB" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) +"bUB" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) "bUC" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/quartermaster/storage) "bUD" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 4; icon_state = "warnwhitecorner"},/area/rnd/lab) "bUE" = (/obj/machinery/newscaster{pixel_x = -27; pixel_y = 1},/turf/simulated/floor{icon_state = "warnwhite"; dir = 1},/area/rnd/lab) "bUF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/captain) "bUG" = (/obj/machinery/door/airlock/command{name = "Head of Personnel"; req_access = null; req_access_txt = "57"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/crew_quarters/heads) -"bUH" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) +"bUH" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage) "bUI" = (/obj/structure/table,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/micro_laser,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "white"},/area/rnd/lab) "bUJ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 8; icon_state = "warnwhite"},/area/rnd/lab) "bUK" = (/obj/machinery/atmospherics/valve,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bUL" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central) "bUM" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless,/area) -"bUN" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/quartermaster/storage) -"bUO" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/quartermaster/storage) +"bUN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/turf/simulated/floor/plating,/area/maintenance/port) +"bUO" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/tagger/partial{name = "Sorting Office"; sort_tag = "Disposals"},/turf/simulated/floor,/area/quartermaster/office) "bUP" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/simulated/floor,/area/rnd/lab) "bUQ" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -30; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/item/device/megaphone,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bUR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/wall/r_wall,/area/crew_quarters/captain) @@ -5145,12 +5145,12 @@ "bUW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/latexballon,/turf/simulated/floor/plating,/area/maintenance/port) "bUX" = (/obj/item/weapon/table_parts,/turf/simulated/floor/plating,/area/construction) "bUY" = (/obj/machinery/computer/rdconsole/core,/turf/simulated/floor,/area/rnd/lab) -"bUZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/medical/medbay2) +"bUZ" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/turf/simulated/floor,/area/quartermaster/storage) "bVa" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/primary/central) "bVb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "medbayquar"; name = "Medbay Emergency Quarantine Shutters"; opacity = 0},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/medical/sleeper) "bVc" = (/obj/machinery/conveyor{dir = 4; id = "packageExternal"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor{icon_state = "floorgrime"},/area/hallway/primary/central) "bVd" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/weapon/packageWrap,/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/crew_quarters/heads) -"bVe" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medical Equipment"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) +"bVe" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/quartermaster/office) "bVf" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/turret_protected/ai_upload) "bVg" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/primary/central) "bVh" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/weapon/aiModule/nanotrasen,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) @@ -5322,14 +5322,14 @@ "bYr" = (/turf/simulated/wall/r_wall,/area/engine/engine_monitoring) "bYs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/engine/engine_airlock) "bYt" = (/obj/machinery/door/airlock/maintenance_hatch{frequency = 1379; icon_state = "door_closed"; id_tag = "engine_airlock_exterior"; locked = 0; name = "Engine Airlock Exterior"; req_access_txt = "10"},/turf/simulated/floor/plating,/area/engine/engine_airlock) -"bYu" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/sleeper) +"bYu" = (/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/quartermaster/office) "bYv" = (/obj/structure/table/reinforced,/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor,/area/engine/engine_monitoring) "bYw" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engine/engine_monitoring) "bYx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor,/area/engine/engine_monitoring) "bYy" = (/obj/structure/grille,/obj/structure/grille,/turf/simulated/wall/r_wall,/area/atmos) "bYz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/engine/engine_airlock) "bYA" = (/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume{dir = 8; frequency = 1379; id = "engine_airlock_pump"},/turf/simulated/floor/plating,/area/engine/engine_airlock) -"bYB" = (/obj/machinery/status_display,/turf/simulated/wall,/area/medical/sleeper) +"bYB" = (/obj/structure/disposalpipe/sortjunction{dir = 1; name = "Sorting Office"; sortType = "Sorting Office"},/turf/simulated/floor,/area/quartermaster/office) "bYC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/virology) "bYD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/stool/bed/chair/office/dark,/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/engine/engine_monitoring) "bYE" = (/obj/structure/table/reinforced,/obj/machinery/door_control{desc = "A remote control-switch for the engine control room blast doors."; id = "EngineBlast"; name = "Engine Room Blast Doors"; pixel_x = 0; pixel_y = 0; req_access_txt = "10"},/turf/simulated/floor,/area/engine/engine_monitoring) @@ -5775,7 +5775,7 @@ "chc" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area) "chd" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area) "che" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/solar/port) -"chf" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass_mining{name = "Cargo Bay"; req_access_txt = "31"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/quartermaster/storage) +"chf" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/quartermaster/office) "chg" = (/obj/machinery/atmospherics/binary/pump{dir = 0; icon_state = "intact_on"; name = "Waste In"; on = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/atmos) "chh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/workshop) "chi" = (/obj/structure/extinguisher_cabinet{pixel_x = 25},/turf/simulated/floor,/area/engine/workshop) @@ -5969,7 +5969,7 @@ "ckO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engine/workshop) "ckP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engine/workshop) "ckQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engine/hallway) -"ckR" = (/obj/structure/disposalpipe/sortjunction/untagged{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "brown"},/area/quartermaster/office) +"ckR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/quartermaster/office) "ckS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Workshop"; req_access_txt = "11"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/workshop) "ckT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/engine/storage_hard) "ckU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/plating,/area/engine/storage_hard) @@ -6133,7 +6133,7 @@ "cnW" = (/obj/structure/table,/obj/item/weapon/storage/box/monkeycubes,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cnX" = (/turf/simulated/floor{icon_state = "whitehall"; dir = 4},/area/rnd/xenobiology) "cnY" = (/obj/structure/closet/l3closet/scientist,/obj/machinery/light{dir = 8},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/rnd/xenobiology) -"cnZ" = (/obj/structure/disposalpipe/sortjunction{dir = 8; name = "Disposals"; sortType = "Disposals"},/turf/simulated/floor,/area/quartermaster/office) +"cnZ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/bedsheetbin,/obj/structure/table,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor{icon_state = "dark"},/area/medical/biostorage) "coa" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/starboard) "cob" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating/airless,/area/solar/starboard) "coc" = (/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -6332,13 +6332,13 @@ "crN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "solar_xeno_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "crO" = (/obj/machinery/meter{frequency = 1443; id = "dloop_atm_meter"; name = "Distribution Loop"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/visible/supply{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/turf/simulated/floor,/area/atmos) "crP" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/obj/machinery/meter{frequency = 1443; id = "wloop_atm_meter"; name = "Waste Loop"},/turf/simulated/floor,/area/atmos) -"crQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/medical/virologyaccess) -"crR" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/medical/virologyaccess) +"crQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/medical/patient_wing) +"crR" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/medical/patient_wing) "crS" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/obj/machinery/meter,/turf/simulated/floor,/area/atmos) "crT" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/machinery/meter,/obj/machinery/firealarm{pixel_y = 24},/turf/simulated/floor,/area/atmos) "crU" = (/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/visible/supply{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/simulated/floor,/area/atmos) "crV" = (/obj/structure/stool/bed/chair/comfy/brown,/obj/effect/landmark/start{name = "Psychiatrist"},/turf/simulated/floor{icon_state = "bcarpet06"},/area/medical/psych) -"crW" = (/obj/structure/table,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/medical/virologyaccess) +"crW" = (/obj/structure/table,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/medical/patient_wing) "crX" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/decal/cleanable/blood/oil{amount = 0},/turf/simulated/floor/plating,/area/maintenance/asmaint) "crY" = (/obj/machinery/computer/atmos_alert,/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor,/area/engine/engineering_monitoring) "crZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor,/area/medical/morgue) @@ -6377,7 +6377,7 @@ "csG" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Monitoring Room"; req_access_txt = "11"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/engineering_monitoring) "csH" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/engine/engineering_monitoring) "csI" = (/obj/machinery/light_construct,/obj/structure/rack,/obj/item/clothing/suit/storage/hazardvest,/obj/item/device/flashlight,/turf/simulated/floor,/area/construction) -"csJ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/bedsheetbin,/obj/structure/table,/turf/simulated/floor{icon_state = "dark"},/area/medical/biostorage) +"csJ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area/medical/virologyaccess) "csK" = (/obj/structure/table,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/cable_coil,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = 3},/turf/simulated/floor/plating,/area/construction) "csL" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/structure/lattice,/turf/space,/area) "csM" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/atmos,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/atmos,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/northleft{name = "Atmospherics Hardsuits"; req_access_txt = "24"},/turf/simulated/floor,/area/engine/engine_eva) @@ -7050,7 +7050,7 @@ "cFD" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/syndicate_station/start) "cFE" = (/turf/unsimulated/wall,/area/start) "cFF" = (/obj/effect/landmark/start,/turf/unsimulated/floor,/area/start) -"cFG" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{req_one_access_txt = "12;39"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area/medical/virologyaccess) +"cFG" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area/medical/virologyaccess) "cFH" = (/turf/space,/area/shuttle/constructionsite/station) "cFI" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor,/area/hallway/primary/aft) "cFJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/hallway/primary/aft) @@ -7954,7 +7954,7 @@ "cWX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cWY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cWZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/locker_room) -"cXa" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor,/area/medical/virologyaccess) +"cXa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/medical/virologyaccess) "cXb" = (/obj/structure/closet/secure_closet/engineering_personal,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/engine/locker_room) "cXc" = (/obj/structure/closet/secure_closet/engineering_personal,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/engine/locker_room) "cXd" = (/obj/structure/mirror{pixel_y = 32},/obj/structure/sink{pixel_y = 16},/obj/machinery/light_switch{pixel_x = -27; pixel_y = 0},/turf/simulated/floor{dir = 2; icon_state = "whiteyellowcorner"},/area/crew_quarters/sleep_male/toilet_male{name = "\improper Engineering Washroom"}) @@ -8064,7 +8064,7 @@ "cZd" = (/obj/structure/closet/crate/freezer/rations,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cZe" = (/obj/structure/stool/bed/roller,/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cZf" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) -"cZg" = (/turf/simulated/wall,/area/medical/virologyaccess) +"cZg" = (/turf/simulated/floor,/area/medical/virologyaccess) "cZh" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/green,/turf/simulated/floor,/area/tcommsat/computer) "cZi" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/tcommsat/computer) "cZj" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor,/area/tcommsat/computer) @@ -8155,7 +8155,7 @@ "daQ" = (/obj/machinery/door/airlock/centcom{name = "Holding Cell"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "daR" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) "daS" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/turret_protected/tcomsat) -"daT" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor,/area/medical/virologyaccess) +"daT" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "bluecorner"},/area/medical/virologyaccess) "daU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/locker_room) "daV" = (/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "daW" = (/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor,/area/engine/locker_room) @@ -8165,8 +8165,7 @@ "dba" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/locker_room) "dbb" = (/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dbc" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) -"dbd" = (/obj/machinery/light/small,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/camera{c_tag = "Virology Access"; dir = 8; network = list("SS13")},/turf/simulated/floor{icon_state = "bluecorner"},/area/medical/virologyaccess) -"dbe" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/medical/virologyaccess) +"dbd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/maintenance/asmaint) "dbf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "dbg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/meter,/turf/simulated/floor/plating,/area/turret_protected/tcomsat) "dbh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/turret_protected/tcomsat) @@ -8693,7 +8692,6 @@ "dli" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/research_outpost/tempstorage) "dlj" = (/obj/structure/sign/science{desc = "A warning sign which reads 'ANOMALOUS MATERIALS'"; name = "\improper ANOMALOUS MATERIALS"; pixel_x = 32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/research_outpost/hallway) "dlk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) -"dll" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{req_one_access_txt = "12;39"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area/medical/virologyaccess) "dlm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/research_outpost/hallway) "dln" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dlo" = (/obj/machinery/door/window/westleft{dir = 8; name = "Locker room"; opacity = 0; req_access_txt = "65"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor,/area/research_outpost/hallway) @@ -10472,10 +10470,6 @@ "dYw" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored) "dYz" = (/obj/machinery/portable_atmospherics/canister,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/power) "dYA" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor,/area/quartermaster/office) -"dYB" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/turf/simulated/floor,/area/quartermaster/office) -"dYC" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor,/area/quartermaster/office) -"dYD" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/quartermaster/office) -"dYE" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/quartermaster/storage) "dYF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dYG" = (/obj/machinery/atmospherics/pipe/simple/visible/supply,/obj/structure/disposalpipe/sortjunction/flipped{dir = 1; sortType = "Atmospherics"; name = "Atmospherics"},/turf/simulated/floor,/area/atmos) "dYH" = (/obj/machinery/door/airlock/maintenance{name = "Incinerator Access"; req_access_txt = null; req_one_access_txt = "5;12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/incinerator) @@ -10677,8 +10671,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiadiadjadkadlaldalcaloalhaavadqadraaPaaaabTadsalbadtacoacHalaaduabTadvadwadxadyalGaceaceaceakSakWaceapRaqnaqPaqWarfapRaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiadCadDadEadDalxalvalBalAadIadJanoaaPaaaabTabTalralsacoalKalUabTabTadOalVadxalWaaVaceadRadSalFalMadVadWadWalqarnadWadWaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiadZaeaakdakcakbakaajZajYaaJaehaeiaaPaaaaaaabTaejajXacoajWaemabTaenaaVajVaepajUaaVaeraesaetajSajTaewaexaeyajRaeAaktadWadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiakAaeCakzakyaaPaeFaeFaeFaeFaeFabTabTakxaeHakIabTabTaeJakFakGaeMakHakEaePaeQaeRakBakCaeUakDaeWakwaeYaeZafaafbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcaaaaaaaaaafcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafdafeaquafgaqvalAaaParkafjafjafjafjaenaroaqwafmaqDafoaenafpakBafqafraqEaqGaqHaqFaqFaqJaqMafyaqIafAaqRafCafDafEafFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiakAaeCakzakyaeFaeFaeFaeFaeFaeFabTabTakxaeHakIabTabTaeJakFakGaeMakHakEaePaeQaeRakBakCaeUakDaeWakwaeYaeZafaafbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcaaaaaaaaaafcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafdafeaquafgaqvalAaeFarkafjafjafjafjaenaroaqwafmaqDafoaenafpakBafqafraqEaqGaqHaqFaqFaqJaqMafyaqIafAaqRafCafDafEafFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafGarSarUafJaloarVaeFafLarqafNafOafNafPafQarWafSaqXafUafVafWarjarlarrarsartaruarvarzarNarQaruarRarXarYagkaglagmadWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcaaaaaaafcaaaaaaafcafcafcafcafcafcafcaaaaaaafcaaaaaaafcaaaaaaaaaaaaaaaaaiagnaaxagoaoGaoFaoEaeFagsapkafNaoIagvaenagwaoHagyaplagAaenagBanAagDagEagFapnagHagIagJapmagJagHagLagMapoagOagPagQappaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcaaaafcafcafcafcafcafcafcafcafcaaaafcafcafcafcaaaaaaaaaaaaaaaaaiagSanbagUagVaqpalAaeFagXaqqagZaqragXabTahbagfahdafTahfaenagBanAagDahgapqapZaqoapUapUapTapUapWapXaqsaqtahqahqahrahsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10686,11 +10680,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcaaaafcafcafcafcafcafcafcafcafcaaaafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaaaaaiahSaoDalAaaPahUaozahWaoBahYahZaiaaoCaicaonaieaifaigaotagDaiiaodaofagHagIagJagIaikailaimadWadWainaioadWaipaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaaaaaiaiqantansaaPaitanqaivaniahYaixaiyangahDanBaiBahGaiCanAagDaiDanzanvanyanuaiIagHaiJaiKaiLacfaceaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcaaaaaaaaaaaaaeFaeFaeFaeFagXaiManPanOaeFaiPanMaiRaniahYaenaiSanGaiUanFaiWaenaiXanEaeUaiZakBanCaceajbajcajdajeajfajgajhaceaceacfacfacfacfacfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajiaaaaaaaaaajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcaaaaaaaafaaaaeFajjajkajlajmajnagbagcaeFajqageajqagdajqaenahbagfajtafTahfaeFaeFahEajvajwafXagaaceafZajAajAajBaceahVajhajhaceajDajEajFajFajGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcaaaaaaaafaaaaeFajjajkajlajmajnagbagcaeFajqageajqagdajqaenahbagfajtafTahfaenaeFahEajvajwafXagaaceafZajAajAajBaceahVajhajhaceajDajEajFajFajGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcaaaaaaaafaaaaeFahCajIajJajKajLaeVaeXaffaffafhaflafnaffafsaiwafnaftafhafuaiYaflafxafwafBafzafIafHafRafKakeakfakgakhakiakjakkaklakmaknakoahTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajiaaaaaaajiaaaaaaajiajiajiajiajiajiajiaaaaaaajiaaaaaaajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcaaaaafaafaeFakqakraksafkafYakvaeOaeLaeNaezaeuaeqahvaeTahzaeoaeSaezaevagTaeuaeqaeoaeoaelaeKaeIaiRaeGaeEaeDakNahaajhakPaceaklakQajFajFakRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiaaaajiajiajiajiajiajiajiajiajiaaaajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcaaaaaaaafaeFaeFaeFaeFaeFaeFaeFaeFaebakTakUaeFaeFagXakVaecakXakYakZaeeafMagXaeFaeFaeFaedaekaeFalealfalgaegalialjalealkaceaceacfacfacfacfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiaaaajiajiajiajiajiajiajiajiajiaaaajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcaaaaaaafcafcafcafcafcafcafcaaaaaaafcafcafcafcaaaaaeaaaaafaafaafaafaeFalmalnadXadYadTadUadPafialuadKalwadQalyalzadMadLalCadKalDalEadPadNadFaeFalHalIalJadHalLagraleakPalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalOalOalOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPalPalPalQalQaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiaaaajiajiajiajiajiajiajiajiajiaaaajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcafcaaaaaaaafaeFaeFaeFaeFaeFaeFaeFaeFaebakTakUaeFaeFagXakVaecakXakYakZaeeafMagXaeFaeFaeFaedaekalealealfalgaegalialjalealkaceaceacfacfacfacfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiaaaajiajiajiajiajiajiajiajiajiaaaajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcaaaaaaafcafcafcafcafcafcafcaaaaaaafcafcafcafcaaaaaeaaaaafaafaafaafaeFalmalnadXadYadTadUadPafialuadKalwadQalyalzadMadLalCadKalDalEadPadNadFalealHalIalJadHalLagraleakPalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalOalOalOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPalPalPalQalQaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiaaaajiajiajiajiajiajiajiajiajiaaaajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaalQalQalPalQalQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafamqaeFaefalTadpaeFadAadBalXalYalZadoambaeBafvameacUamgalCagpamialYamjadGadFaleamlammammacCammagialeakPalNaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalOalOalOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaaaaafaaaampaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaaaampaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafamqacQaeFamsamtadmaeFadgadhacXamyamzamAamBacWacVamEacUamFalCamAamGamHacSacIacFaleamLamMammacCammadnaleakPalNaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaalOalOalOalOalOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafamOaafalPaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafamPaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcafcafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafamqamqaeFacjackabZacaacgaciaeFaeFaeFagXamWamFabWamYacBanaadzagXaeFaeFaeFacAacnacmaczacyanhaclammabzaleakPalNaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalOalOalOaaaaaaaaaaaaaaaaaaalPalPalPalPalPaaaaaaaaaankaaaaaaaaaalPalPalQalQalQaaaaaaajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10701,10 +10695,10 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafapwapwapwapwapwaafaoWaafapwapwapwapwapwaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxapxapyapxapzapxapAapAapBapCapDapAapAapAapAapAapAapAapAapAapEapFapGapHapIapJapKapLaleapMapNapOapPakuamxapiahnahoajhajhajhacpajhahuahpapYallaqaaqbalOalOalOalOalOaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaafaoPaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaafaoWaaaaaaaaaaafaaaaaaaaaampaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxaqcaqdapxapxaqeapEaqfapEapEapEapEapEapEapEapEapEapEapEaqgapEaqhapEaqiapEapEapEaleaqjaqkaqlaqmajHamoapiahkahjahiahhaheahcamwahmahlalNalNalNajhalOalOalOalOalOaaaaaaaaaaaaaaaaaaalPaafaojaojaojaojaojaafaoPaafaojaojaojaojaojaafalPaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafaolaolaolaolaolaafaoWaafaolaolaolaolaolaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxaqxaqAaqCaqyaqzagNagRaqBaqBaqBaqBaqBaqBaqBagGagzagCagzaraaqLaqKaqLagKaqNaqLaqOaleapiapiapiapiapiapSamfaqQagWaqSajCaqUaqVajhalNamhagYalNaaaaaaaaaalOalOalOaaaaaaaaaaaaaaaaaaaaaalPaafaoMaoNaoNaoNaoNaoOaoPaoQaoRaoRaoRaoRaoSaafalPaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqYaqZaqYaaaaaaaaaaaaaaaaaaaaaalPaafaoTaoUaoUaoUaoUaoVaoWaoXaoYaoYaoYaoYaoZaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxapaagxapxarbarbarcaguarbarbarbareareareakKargareaXcarhariaghaidalNaggalNarmalNalNakJagjagjbbNagjakpalpakOakMakLakLakLamaagjagtamcagqalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafapvapvapvapvapvaafaoPaafapvapvapvapvapvaafalPaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafarwarxarwaaaaaaaaaaaaaaaaaaaaaalPaafapwapwapwapwapwaafaoWaafapwapwapwapwapwaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapxaryaHDapxarEatVatXaNYaOtatYarbaWvarGarHarIarJarKaHMaMJaFsaNKaHLarPaLEaLGaLGaLGaLGaNoaLJaLGaNoaLGaNraNnaLvaKWaNeaMTaNaajhaMNalNasdasealNaaaaafaKEaKzaKzaKDaKzaKzaKjaafaaaaaaaaaalQaaaaaaaaaaafaaaaaaaaaaoPaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasjaPXaslaaaasmaPYasoaaaaafaspaqYaspaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaaaaoWaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxapxapxapxaHDapxarEarAatXatWaOWasrarbaWwarIarIarIarJasuaIQaswasxaOXaXcaMLaIkaMKaMKaMKaMUaOAaOBaGVaOCaGVaGVaGVaGVaGVaOyarTaMzasPasPasPasPasPasPasPasPaLMasRasRasRasRasRaLMasPaaaaaaaaaalPaafaojaojaojaojaojaafaoPaafaojaojaojaojaojaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasTasUasTasSasVasWasVasSaafaspaJoaOkaaaaaaaaaaaaaaaaaaaaaalPaafaolaolaolaolaolaafaoWaafaolaolaolaolaolaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafapxasZataapxaHDapxauParAatXatWasqauNarbatearIatfatfarJatgaIQapAapEaOYaXcaNDaNFaNIaSLaHqaHratoatpaGVaNObkqaNUaNpaRiaRQaSfarTaYEatAaJsavYaRgaKkaQBaRxasPaNgasRasRasRasRasRaLMasPaafaaaaaaalQaafaoMaoNaoNaoNaoNaoOaoPaoQaoRaoRaoRaoRaoSaafalPaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqYaqZaqYaaaaaaaaaaaaaaaaaaaaaalPaafaoTaoUaoUaoUaoUaoVaoWaoXaoYaoYaoYaoYaoZaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxapaagxapxarbarbarcaguarbarbarbareareareakKargarearearhariaghaidalNaggalNarmalNalNakJagjagjbbNagjakpalpakOakMakLakLakLamaagjagtamcagqalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafapvapvapvapvapvaafaoPaafapvapvapvapvapvaafalPaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafarwarxarwaaaaaaaaaaaaaaaaaaaaaalPaafapwapwapwapwapwaafaoWaafapwapwapwapwapwaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapxaryaHDapxarEatVatXaNYaOtatYarbaWvarGarHarIarJarKaJzaMJaFsaNKaJtarPaLEaLGaLGaLGaLGaNoaLJaLGaNoaLGaNraNnaLvaKWaNeaMTaNaajhaMNalNasdasealNaaaaafaKEaKzaKzaKDaKzaKzaKjaafaaaaaaaaaalQaaaaaaaaaaafaaaaaaaaaaoPaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasjaPXaslaaaasmaPYasoaaaaafaspaqYaspaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaaaaoWaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxapxapxapxaHDapxarEarAatXatWaOWasrarbaWwarIarIarIarJasuaOzaswasxaOXalNaMLaIkaMKaMKaMKaMUaOAaOBaGVaOCaGVaGVaGVaGVaGVaOyarTaMzasPasPasPasPasPasPasPasPaLMasRasRasRasRasRaLMasPaaaaaaaaaalPaafaojaojaojaojaojaafaoPaafaojaojaojaojaojaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasTasUasTasSasVasWasVasSaafaspaJoaOkaaaaaaaaaaaaaaaaaaaaaalPaafaolaolaolaolaolaafaoWaafaolaolaolaolaolaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafapxasZataapxaHDapxauParAatXatWasqauNarbatearIatfatfarJatgaOzapAapEaOYalNaNDaNFaNIaSLaHqaHratoatpaGVaNObkqaNUaNpaRiaRQaSfarTaYEatAaJsavYaRgaKkaQBaRxasPaNgasRasRasRasRasRaLMasPaafaaaaaaalQaafaoMaoNaoNaoNaoNaoOaoPaoQaoRaoRaoRaoRaoSaafalPaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHasTatIasTatHasVatJasVatHatKatLatMaPLatOatOatPatKatKaafaaaalPaafaoTaoUaoUaoUaoUaoVaoWaoXaoYaoYaoYaoYaoZaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafapxaJpatRatSapbapxarEarAatXatWasqarEarbauaaubaucaucaudaueaOzapAapEapFalNaNDaNFaHyaPqaHqaHrauhauiaGVaPHaPCaOEaOEaOFaOGaOParTaSOauqaJsavYavYaKkaSFaMmaTsaODasRasRasRasRasRaOSasPasPasPaaaalQaaaapvapvapvapvapvaafaoPaafapvapvapvapvapvaaaampaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHauzauAauBatHauCauDauEatHaqYaqYauFauGauHauIauJaKFatKaaaaaaampaaaapwapwapwapwapwaafaoWaafapwapwapwapwapwaaaalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagapxauLapaapxaHDapxarEarAaAqarCasqarBarbaHAauSauTauTaLxaHCaKLaHsaHtaJbaHvaHwaHxaHyaHzaHqaHravdauiaGVaGVaGVaGWaGWaGXaGVaGVarTaJvaJqaJsavYavYaKkaKoaJCaKiaGZasRasRasRasRasRaGUaGSavqavraaaalQaaaaafaaaaafaafaaaaaaaoPaaaaaaaafaaaaaaaafaaaalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHavsavtavuatHavsavtavuatHaBcaAJaAtaAtaAtaAtaBOaBearwaaaaaaalPaaaaafaaaaafaafaaaaaaavAaaaaaaaafaaaaaaaafaaaalPaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaagapxapxapxapxaHDapxarbarbarbarbarbaBVaHIaHHaHGaHGaHGaHGaHKaHJaNqapEaJmalNaIjaIkaIhaIiaHYaIfaHNaHVaNQaLlavPavRavRaTIavRaKSavVavWavhaKPaviaviaKPaLcaKXaLaawbasRasRasRasRasRawbawcawdaweaaaalQalQalPaaaaaaaafaaaaaaaoPaaaaafaafaafaafalPalPalPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10713,64 +10707,64 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxRaxSaxTaxUaxVaxTaxTaxWaxUaxTaxXaxYaxZaxZaVtatKaEOatLaafaafaaaaaaaaaaaaaaaaafaybaycaydbdBayfaaaaafaaaaaaaaaaaaaaaapxapaapxaygayhayiayiayiayiayiayiayiayjaygaykaylaylaylaylaylaylaylaQnaynaxrayoaypayqayrbdCbbraPaaPdaywayxaypayyaxrayzapEayAalNaQvaNFaNIbdEaHqaHravdbdFayDaxFaxFayEayFayGbeDayIavVbdHbdcbbUbbUbbUbaNbaTaPnbavbdGasRasRasRasRasRbdIasPasPasPaaaaaaaaaaafaafaafaafaaaaySaVuaySaaaaafaaaaaaaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafatHayUayVayUayWaxTaxTayXayUayVayUayYaxSaxVaWtatHaEOatKatKazaatOatOatOatOatPatKazbazcazdazeazbapxapxawoawpawqapxapxapxapaaryaygaaaaafaaaaafaaaaafaaaaafaaaaygaykaylazfazgazhaziazjaylaQnapaaxrazkazkazlazmaznazoaPpaBdazrazsaztaztaxrayzapEazualNaQvaNFaHybdEaHqaHrauhazvbbOazxazyazzazAazBazBazCazBasPbeXbfGbeFbeGbeHbeObeEasPbdLasRasRasRasRasRbdKasPaafaaaaaaaaaaaaaafaafaaaaafazLazMbdMazOazPaafaaaaaaaafaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafazQasSazRavtazSazTazUazVazWazSavtazXazYasSazZaZOatHbdwbdJbdJbdJbdJbdJbdJaBebezaAeazbaAfaAgaAhazbbghapaapaapaapaapaapaapaapaaAjaygaafaAkaAkaAkaAkaAkaAkaAkaafaygaykaylaAlaAmaAnaAoaAlaylaQnaApaxraxraxraxraYQaAraypaAsaAraYRaxraxraxraxrayzapEaAualNaQvaNFaHybdEaHqaHravdaAvazBazBazBazBazBazBaAwaAxaAyazBasPasPasPasPbgobgrasPasPbdKasRasRasRasRasRbdKasPaaaaaaaaaaaeaaaaaaaaaaaaaafaAAaABbdTaADaAAaafaaaaaaaafaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxRayVaAEaAFaAFaAFaAFaAGayVaxRaAHasSaAIbeAatHaAKaAKaAKaAKaAKaAKaAKaDlbfxbfzazbbckaANaAOazbaAPaAQaAPaAPaAPaAPaAPaAPaAPaAPaARaaaaAkaASaATaAUbbTaAWaAkaaaaygaykaylaAlaAXbewaAZaAlaylaQnapxaxraBaaBbazlbebaBdazoazpaBdbeuazsaBfaBfaxrayzapEayAalNbdZaIkaIhbdEbejbelavdaAvaHraBiaAxaBjaBjazBaAwaBkaAyazBaBlaBmaBnaBobhDaULaBqaafbfBbfdbfdbfdbfdbfdbfgaafaaaaaaaaaaaaaaaaaaaaaaaaaafaAAaBuaBvaBwaAAaafaaaaaaaBqaBqaBqaBqaBqbhqbhCaBqaBqaBqaBqaBqaBqaBqbgHaBFaBFaBFaBGaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaBHaBIaBJaBIaBIaDRaDSaBIaBIaBJaBMaBNasSaKhaLRaQlaJzaJYaBSaBTaBUaJtaAKaDlaPOatKazbazbaBXaBYaARaBZaCaaCbaCcaCdaCeaCfaCgaXEaCiaARaafaAkaQmaCkaClaCmaCnaAkaafaygaykaylaCoaCpaCqaCpaCraylaQnaCsaxrayoaypaCtaCuaAraCvaAsaAraCwaCxaypaCyaxrayzapEayAalNaQvaIAaIDaQxaIvaHraCAaCBaHraCCaAxaAxaAxazCaCDaCEaCFazBaCGaCHaCIaCJaYFaULaBqaaaaafaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaAAaZbaCMaCNaAAaBqaCOaCPaBqaQSaQDaQDaQDaQDaQDaQDaQFaRdaRdaRdaRdaRfaRdaRdaRdaRhaDaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBHaBMaBIaDbaDcaDcaDdaDeaDfaDgaDhaDcaDcaDiaDjayUayWaZuaAKaNHaOuaDnaDoaDnaNCaMQaMZaDsaqYaZnaDuaDvaAcaDwaDxaDyaDzaDzaDzaDAaDzaDzaDBaCaaARaaaaAkaRAaRTaRVaCmaSaaAkaaaaygaykaylaRuaDHaDIaDJaRyaylaQnaDLaxraxraxraxraDMaAraypaDNaBdaDOaTuaypaDQaVHaVzaVAaVpaVwaKJaVGaShaShaShaSEaScaVdaQjaTnbabaSPaSPaSPaUgaSPaTFaTTaTUaTVaUkaUGaVQaULaBqaBqaBqaBqaBqaBqaBqaBqaBqaCOaCPaBqaBqaBqaCOaEjaEkaBqaBqaAAaAAaElaEmaAAaEnaVqaVoaVoaVsaEsaEsaEsaEsaEsaWyaVraEuaEuaEuaEuaUNaEuaEyaEyaVnaEyaEyaEyaEyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaEBaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSayWaEHaAKaSQaTaaEKaELaEMaENaAKaQIaRqaAcaEQaAcaERaqYaAPaESaDBaDzaDzaDzaDzaDzaDzaETaWjaWgaVJaVIaWMaWNaWKaWLaWJaAkaafaygaWIaWpaWuaWxaWqaWsaWkaWpaZdaZcaxraFmaypazlaFnaBdazoaFoaAraCwaVvaypaFqaVHaWTaFsaFtaXcbdZagjagjagjagjaVEaVFaWSaVxaVybazaVxaXfaVxaXeaVxaXgaXhaFGaFHaFIaBoaXjaXmaXXaXVaXVaXCaYcaXYaXYaXYaXYaXYbaCaXYaXYaYwaYgaYeaXnaYHaYGaYxaWOaWPaWQaWQaWQaWRaEsaEsaGeaEsaGfaGgaGhaEsaEuaWUaEuaGjaXlaXkaGmaGnaGoaIbasHaGraGsaGtaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXoaDcaDcaBJaDcaEEaDcaEEaGxaEEaDcaEEaDcaEFaEGazSayWaGyatHatHaTiaYKaYPaYKaQlaQlaYJaYNaYOaYLaYMaYLaYLbakbajaGKaGLaGLaGLaGMaGLaGLaGNaGOaARaaaaZXaAkayJaUlayJaAkaAkaaaaygavOaylbaiaZIaZiaZqaZDaZEaZhbglaxraHbaypaCxaCuaAraypaAsaAraCwaZgaypaHdawGaYhaHfaHgaUnaYfalNalNalNalNalNaHjaYbazBaHlaAxazBaHmazBaHnazBaHobcvbcwbcNbczbdNbcXaYUbdlbdmbbvbdAbbwbbvbbvbbxbbzbbybbAbbybbFbbybbybbibcubcbbawbawbbEbaSbawbaxbawbaWaYIaHOaHPaHQaHRaHSaHTaEsaHUbaXaEuaHWaHXaYiaHZaGnaIaaIbasHaIcaEyaEyaEyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxRayVaAEaAFaAFaAFaAFaAGayVaxRaAHasSaAIbeAaAKaAKaAKaAKaAKaAKaAKaAKaDlbfxbfzazbbckaANaAOazbaAPaAQaAPaAPaAPaAPaAPaAPaAPaAPaARaaaaAkaASaATaAUbbTaAWaAkaaaaygaykaylaAlaAXbewaAZaAlaylaQnapxaxraBaaBbazlbebaBdazoazpaBdbeuazsaBfaBfaxrayzapEayAalNbdZaIkaIhbdEbejbelavdaAvaHraBiaAxaBjaBjazBaAwaBkaAyazBaBlaBmaBnaBobhDaULaBqaafbfBbfdbfdbfdbfdbfdbfgaafaaaaaaaaaaaaaaaaaaaaaaaaaafaAAaBuaBvaBwaAAaafaaaaaaaBqaBqaBqaBqaBqbhqbhCaBqaBqaBqaBqaBqaBqaBqbgHaBFaBFaBFaBGaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaBHaBIaBJaBIaBIaDRaDSaBIaBIaBJaBMaBNasSaKhaLRaQlaMQaNCaBSaBTaBUaJYaAKaDlaPOatKazbazbaBXaBYaARaBZaCaaCbaCcaCdaCeaCfaCgaXEaCiaARaafaAkaQmaCkaClaCmaCnaAkaafaygaykaylaCoaCpaCqaCpaCraylaQnaCsaxrayoaypaCtaCuaAraCvaAsaAraCwaCxaypaCyaxrayzapEayAalNaQvaIAaIDaQxaIvaHraCAaCBaHraCCaAxaAxaAxazCaCDaCEaCFazBaCGaCHaCIaCJaYFaULaBqaaaaafaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaAAaZbaCMaCNaAAaBqaCOaCPaBqaQSaQDaQDaQDaQDaQDaQDaQFaRdaRdaRdaRdaRfaRdaRdaRdaRhaDaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBHaBMaBIaDbaDcaDcaDdaDeaDfaDgaDhaDcaDcaDiaDjayUayWaZuaAKaSQaTaaDnaDoaDnaOuaNHaMZaDsaqYaZnaDuaDvaAcaDwaDxaDyaDzaDzaDzaDAaDzaDzaDBaCaaARaaaaAkaRAaRTaRVaCmaSaaAkaaaaygaykaylaRuaDHaDIaDJaRyaylaQnaDLaxraxraxraxraDMaAraypaDNaBdaDOaTuaypaDQaVHaVzaVAaVpaVwaKJaVGaShaShaShaSEaScaVdaQjaTnbabaSPaSPaSPaUgaSPaTFaTTaTUaTVaUkaUGaVQaULaBqaBqaBqaBqaBqaBqaBqaBqaBqaCOaCPaBqaBqaBqaCOaEjaEkaBqaBqaAAaAAaElaEmaAAaEnaVqaVoaVoaVsaEsaEsaEsaEsaEsaWyaVraEuaEuaEuaEuaUNaEuaEyaEyaVnaEyaEyaEyaEyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaEBaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSayWaEHaAKaTibfaaEKaELaEMaENaAKaQIaRqaAcaEQaAcaERaqYaAPaESaDBaDzaDzaDzaDzaDzaDzaETaWjaWgaVJaVIaWMaWNaWKaWLaWJaAkaafaygaWIaWpaWuaWxaWqaWsaWkaWpaZdaZcaxraFmaypazlaFnaBdazoaFoaAraCwaVvaypaFqaVHaWTaFsaFtaXcbdZagjagjagjagjaVEaVFaWSaVxaVybazaVxaXfaVxaXeaVxaXgaXhaFGaFHaFIaBoaXjaXmaXXaXVaXVaXCaYcaXYaXYaXYaXYaXYbaCaXYaXYaYwaYgaYeaXnaYHaYGaYxaWOaWPaWQaWQaWQaWRaEsaEsaGeaEsaGfaGgaGhaEsaEuaWUaEuaGjaXlaXkaGmaGnaGoaIbasHaGraGsaGtaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXoaDcaDcaBJaDcaEEaDcaEEaGxaEEaDcaEEaDcaEFaEGazSayWaGyaAKbfbbiraYKaYPaYKaQlaQlaYJaYNaYOaYLaYMaYLaYLbakbajaGKaGLaGLaGLaGMaGLaGLaGNaGOaARaaaaZXaAkayJaUlayJaAkaAkaaaaygavOaylbaiaZIaZiaZqaZDaZEaZhbglaxraHbaypaCxaCuaAraypaAsaAraCwaZgaypaHdawGaYhaHfaHgaUnaYfalNalNalNalNalNaHjaYbazBaHlaAxazBaHmazBaHnazBaHobcvbcwbcNbczbdNbcXaYUbdlbdmbbvbdAbbwbbvbbvbbxbbzbbybbAbbybbFbbybbybbibcubcbbawbawbbEbaSbawbaxbawbaWaYIaHOaHPaHQaHRaHSaHTaEsaHUbaXaEuaHWaHXaYiaHZaGnaIaaIbasHaIcaEyaEyaEyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaIdaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSaIeawzawyawxawuawuawuawzawCawDawzawAaImaInawBauKauKaAPaGOaIpaCaaIqaGOaGOaIraIsaItaIuaARaaaawaaaaavMavNavMaaaaafaaaaygavOaylaIyaIzavZaIBaICaylavyavzaxraIEaypazlaIFaIGazoaIHaIIaIJaIKaILaIMawGaBsaIOaIPavxaBKaISaaaaaaaUnaIUaIVaBLazBaIXaAxaAxaAxaCEaAxaAxaAxauOaBoaKyaBoaBoavJaBoaJcaBoaJdavHavGaJgaJhaJiaJjaJkavFaJjavEaJjaJjaJjaJjavDaJjaJjavCaJjaJjaJjaJjasIayRayvaAzaAiaBraBpazHaEsazIavpavlavmavnazFayNayPazDazEasHaIbaJDaJEaJFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaJIaBIaDbaDcaDcaDcaJJaDcaDcaJKaDcaDcaDiaJLaJMayWaxTaJNaJOaJOaJOaJOaJOaJOaJOaJPasDatHaPRasCaPRatKaAPaJSaJTaJUaJVaJVaJVaJVaJWaJXavvayLaJZavaaKbaKcavbaKeaKbaKbaKfaygavcaylaylaylavwayJayLawGaUnavkaxraxraxraxraKlaKmaCxaCxaKnayHawGawGaxraxraIOaIOaIOaIOaKpaKqaKraKsaUnaKtaIVaKuazBazBazBazBazBazBazBazBazBauOaKwaKvaKxaIZauMavIaKBaKCaJdauyauWauXaKGaKHaJjaKIauVaKKawtaKKaKMaKNaKOauQaKQaKRauxaKTauUaKVaJjauwauvaKYaJraKZavjaJuaysaEsaLbauuaLdavfauoaveaunaEuaEyaLhasHaIbaLiaLjaLkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaJIaBIaDbaDcaDcaDcaJJaDcaDcaJKaDcaDcaDiaJLaJMayWaxTaJNaJOaJOaJOaJOaJOaJOaJOaJPasDatKatKavvatKatKaAPaJSaJTaJUaJVaJVaJVaJVaJWaJXatEaARaJZavaaKbaKcavbaKeaKbaKbaKfaygavcaylaylaylavwayJayLawGaUnavkaxraxraxraxraKlaKmaCxaCxaKnayHawGawGaxraxraIOaIOaIOaIOaKpaKqaKraKsaUnaKtaIVaKuazBazBazBazBazBazBazBazBazBauOaKwaKvaKxaIZauMavIaKBaKCaJdauyauWauXaKGaKHaJjaKIauVaKKawtaKKaKMaKNaKOauQaKQaKRauxaKTauUaKVaJjauwauvaKYaJraKZavjaJuaysaEsaLbauuaLdavfauoaveaunaEuaEyaLhasHaIbaLiaLjaLkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaBIaBJaBIaBIaDRaDSaBIaBIaBJaJIaLmasSaLnaxTawXaLoaLoaLpaLoaLqatHaLraLsasDaLtaLuaACaLwazwaLyaLzaLAaLzaLzaLzaLzaLzaLzaLzaLBaLCazNaAdaLFaLFayTaLHaLFaLFaLFaLIazKaLKaLLaLFazJaLNaLOaLPawvawwaMkaLSawiaIPaLTaLTaLTaLTaLTaLTaLUaLVaLWaLXaLYaLZaMaaMbaMcaIOaIOaIOaDGaMeaMfaMeaMgaMhaMiaMjaIOaMkawhaBoaMlaxMaOOaMoaMnaMpaxKaMraMsaMtaJdaxLaMvaMwaMwaMxaJjaMyaxJaMAaxBaMAaMAaMCaMDaxDaMDaMFayOayCayQaMDaJjasIarZaHPaHPaCXaDFaHPaHPaEsaMOaMPaEuaytaMRaHZavTaEuaMSaymayeaIbaEyaEyaEyaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXayVaMVaAFaAFaAFaAFaMWayVawXaAHasSaAIaMXaMYavLavSaNbaNbaNcatHaNdaLsaxAaNfaLuaxzaNhaNiaNjaNkaNlaLzaLzaLzaLzaLzaLzaLzaxhaxiaxuaLzaLzaLzaxpayuaLzaLzaLzaLzaxvaLzaLzaLzaxtaNmaLuaLPaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaNsaNtaNuaNvaNwaNxaNyaNzaNAaIOaIOaIOaLPaIOaIOaIOaIOaIOaIOaIOaIOaNBbNwaCjaCWaCQaMpaNEaMpaMpawEaNGaMsavKaJdawFawJawSaNLaNMaJjaNNawTaNPawHaNRaNSaJjaNTawIaNTaJjaJjaJjavCaJjaJjasIarZaNVaHPaHPaNWaHPaNXaEsaEuaEuaEuaEuaEuaEuavQaEuaIbaIbasHaIbaNZaOaaEyaaaaafaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafazQasSaMYavtazSaObaOcaOdaOeazSavtaOfaOgasSayWaxTaMYaOhaOiaNbaNbaNcatHaOjaLsasDaNfaLuasXaLAaLzaLzaLzaChaEzaBPaLzausardaOmaOraALatmarMaOmaOvaOwaOxathatlatkatjatiatcatbatbasYatdaNmaLuaLPaIOaOHaIOaOIaOIaOIaOIaOIaOIaOIaOIaOJaOKaOIaOIaOIaOIaOLaOIaOIaOIaOIaOIaOMaONaOIaOIaOIaOIaOIaOIaOIaIOaIOaIOaBoaAYasOaOQaOQaOQaORasQaNGaMsaBQaJdaJdaJdaJdaJdaOUaJjaOVasKasLasNaNPaNPaJjaOZasMaPbaPcaPbaPbasJaPeaJjasIarZaPfaPfaPgaPhaPiaPiaPjaEsaPkaPlaPmaEyaskaVbasbaIbaIbasHaIbaEyaPsaEyaPtaPtaPtaPuaPvaPwaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafatHaxRayVaJMayWaxTaxTayXaJMayVaJMaPxawYaPyaxTaxRaPzaPzaLpaPzaLqatHaPAaLsasDatHaPRasCatzaPBaPEaPEaPEaPEaPEaPFaPGaPEaPEaPEaPRaPRatEaPIaPJaPIaPKasGaPMaLzaLAaPNasFaPPaPQaLAaLzaPRaPRaUnaIOaIOaIPaPTaKraKraPUaPUaPUaPUaPVawGawRaxqaPZaQaaQaaQbaQcaQaaQdaQeaQfawGaQgaPUaPUaPUaPUaKraKraQhaINaIOaIOaBoaQiashaQkaQkaQkaQkasyassasiaQoavXarFdZFaQsaQtaQuaJdaJdaszaQwasBaQyaQzaJjaQAasAaQCaQCaQCaQCascaQEaJjasaarZaQGaHPaPgaPhaHPaHPaQHaEsarOaQJaQKaEyaQLarpaPraSoaPoasgaIbaQQaQRaEyasfaQTaPtaQUaQVaQWaafaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafatHaxRayVaJMayWaxTaxTayXaJMayVaJMaPxawYaPyaxTaxRaPzaPzaLpaPzaLqatHaPAaLsasDaPBaPBasCatzaPBaPEaPEaPEaPEaPEaPFaPGaPEaPEaPEaPEaPEasEaPIaPJaPIaPKasGaPMaLzaLAaPNasFaPPaPQaLAaLzaPRaPRaUnaIOaIOaIPaPTaKraKraPUaPUaPUaPUaPVawGawRaxqaPZaQaaQaaQbaQcaQaaQdaQeaQfawGaQgaPUaPUaPUaPUaKraKraQhaINaIOaIOaBoaQiashaQkaQkaQkaQkasyassasiaQoavXarFdZFaQsaQtaQuaJdaJdaszaQwasBaQyaQzaJjaQAasAaQCaQCaQCaQCascaQEaJjasaarZaQGaHPaPgaPhaHPaHPaQHaEsarOaQJaQKaEyaQLarpaPraSoaPoasgaIbaQQaQRaEyasfaQTaPtaQUaQVaQWaafaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXaQXaxTaQYaPyaxTaxTaQZaQYaxTaQXaPyaxTaxTaxTaRaaRbaRbaRbaRbaRbaRbaRbaRcatUaPBaReaufaFvautaumaRjaRkaRlaRmaRnaRoaRpaukaRraRsaRtaujaRvaRwaxIaPKatwaPMaPMaRzaPMaugaPSaPSaRBaRCaPSaPSaPSaRDaIOaIPaREaaaaaaaaaaaaaaaaaaaaaaPWaRFaRGaRHaRIaRJaRKaRJaRLaRMaRNaROaPWaaaaaaaaaaaaaaaaaaaaaaRPaINaIOauZaRRaRSatDaQoaQoaQoaQoaQoaRUatGaQoaQoaQoaQraMpaRWaRXaRYaRZatxaSbatyaSdaSeaJdaPbatCaSgaSgaSgaSgatTaSiaJjasIarZaSjaSjaPgaPhaSkaSkaSlaEsaEsaSmaEsaEyaLhatZaulaulaulatNaTJaEyaEyaEyaSpaSqaSraSsaStaSuaafaafaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaxRaSvaSwaSvaSvaSvaSvaSvaSvaSwaSvaSvaSxaxTaxTaSyaxTatQaSzaxTaSAaSBaSCaSDatuaPBaReattbeRaPEaSHaRnaRnaRnaRnaRnaRoaSIaRnaRnaRnaRtasEaSJaSKauRaPKatwaPMaSMaSNaupatvaPSasnaSRaSSaSTaSUaSVaIOaIOaIPaREaaaaaaaaaaaaaPWaPWaPWaPWaSWaSXaSYaSZauYaTbaTcaTdaTeaTfaTgaPWaPWaPWaPWaaaaaaaaaaaaaRPaINaIOaIOaThaQoatnaTjaTkaQoaTlaTmaCIatqaToaTkaQoaQraMpaTpaRXaTqaTratraTtatsaTvaRXaTwaTxaTyaSgaTzaTAaSgaTBaPbaJjasIarZaQGaHPaPgaPhaHPaHPaHPaTCaTDaHPaTEaEyarDastaSoaSoaSoasgaIbaIbaEyaTKaSsaSsaSsaSsaStaTLaTMaTMaTNaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasSaTOaTPaTPaTPaTPaTPaTPaTPazYasSatHaTQaTRatHatHaTSaFuaTSaTSaTSaBgaTSaBgaPBaReattbeRaPEaTXaRnaRnaTYaTZaUaaUbaTYaRnaRnaRnaUcasEaUdaUeaUfaPKaFkaPMaUhaUiaUjaFpaPSaAbaSUaSUaSSaSUaUmaIOaIOaIPaKqaPVaUnaUoaPWaPWaUpaUqaUraUsaUtaUtaUuaUvaUtaUuaUvaUtaUwaUxaUyaUzaUAaPWaPWaUoaUnaUBaUCaINaIOaIOaBoaUDatnaToaTkaQoaUEaUFaQoaFjaUHaTkaQoaQraMpaUIaRXaUJaFzaFyaUMaFxaUOaRXaUPaUQaURaSgaUSaUTaSgaUUaUVaJjasIarZaUWaUWaPgaPhaUXaHPaHPaUYaHPaUZaVaaEyaIbaTGaTHaSoaTGaFwaQqaVfaEyaVgaSsaSsaSsaSsaSsaVhaViaVjaVkaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaafaVmazTaxVaxTaAaaEwaEvaEtaEraEXaEWaEVaEUaEPaEIaEAaOqaEqaPEaVBaRnaRnaTYaUaaVCaVDaTYaRnaRnaRnaRtasEaPKaPKaEfaPKaEgaEhaEhaEhaEhaEoaEiaEpaSSaSSaSSaHcaUmaIOaIOaIPaLTaLTaVKaVLaVMaPWaVNaTbaUtaVOaUtaUtaUtaUtaVPaUtaUtaUtaVRaVSaVSaVTaVUaPWaVVaVLaVWaVXaLTaINaIOaIOaThaQoatDaQoaQoaQoaVYaVZaQoaFjaWaaTkaQoaQraMpaWbaRXaWcaWdaWeaWfaFiaUOaWhaJdaPbaURaWiaSgaSgaSgaUUaPbaJjaFharZaEsaEsaFgaPhaWlaWmaHPaWnaWoaKZaFfaFaaymaFdaFeaFcaFdaFbaymaEZaFaaEYaWzaSsaSsaSsaWAaWBaWCaTMaWDaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasSaTOaTPaTPaTPaTPaTPaTPaTPazYasSatHaTQaTRaTSaTSaTSaFuaTSaTSaTSaBgaTSaBgaPBaReattbeRaPEaTXaRnaRnaTYaTZaUaaUbaTYaRnaRnaRnaUcasEaUdaUeaUfaPKaFkaPMaUhaUiaUjaFpaPSaAbaSUaSUaSSaSUaUmaIOaIOaIPaKqaPVaUnaUoaPWaPWaUpaUqaUraUsaUtaUtaUuaUvaUtaUuaUvaUtaUwaUxaUyaUzaUAaPWaPWaUoaUnaUBaUCaINaIOaIOaBoaUDatnaToaTkaQoaUEaUFaQoaFjaUHaTkaQoaQraMpaUIaRXaUJaFzaFyaUMaFxaUOaRXaUPaUQaURaSgaUSaUTaSgaUUaUVaJjasIarZaUWaUWaPgaPhaUXaHPaHPaUYaHPaUZaVaaEyaIbaTGaTHaSoaTGaFwaQqaVfaEyaVgaSsaSsaSsaSsaSsaVhaViaVjaVkaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaafaVmazTaxVaxTaIQaEwaEvaEtaEraEXaEWaEVaEUaEPaEIaEAaOqaEqaPEaVBaRnaRnaTYaUaaVCaVDaTYaRnaRnaRnaRtasEaPKaPKaEfaPKaEgaEhaEhaEhaEhaEoaEiaEpaSSaSSaSSaHcaUmaIOaIOaIPaLTaLTaVKaVLaVMaPWaVNaTbaUtaVOaUtaUtaUtaUtaVPaUtaUtaUtaVRaVSaVSaVTaVUaPWaVVaVLaVWaVXaLTaINaIOaIOaThaQoatDaQoaQoaQoaVYaVZaQoaFjaWaaTkaQoaQraMpaWbaRXaWcaWdaWeaWfaFiaUOaWhaJdaPbaURaWiaSgaSgaSgaUUaPbaJjaFharZaEsaEsaFgaPhaWlaWmaHPaWnaWoaKZaFfaFaaymaFdaFeaFcaFdaFbaymaEZaFaaEYaWzaSsaSsaSsaWAaWBaWCaTMaWDaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaWEaWFaWGayWaWHaGlaGzaGqaGBaGAaGDaGCaGEaGqaGGaGFaGIaYCaFXaPEaWVaRnaWWaWXaYdaYAaYBaWYaWYaWYaXaaXbaFYaXdaGcaGbaGaaFZaReaReaXiaPBaGdaPSaIoaIlaHFaHEaHBaHpaIRaIOaIOaIOaIOaXpaXqaXraXsaXtaXuaUtaXvaXwaXxaXyaXzaXAaXBaIWaXDaKUaXFaXtaXGaXHaXIaXJaXKaXLaXMaXNaXOaIOaXPaBoaRSatnaXQaTkaQoaXRaXSaQoaFjaToaTkaQoaQraXTaRWaRXaWcaRXaXUaRXaGJaUOaXWaJdaQAaURaSgaSgaSgaSgaUUaQEaJjaYDaGRaXZaYaaQOaQPaPgaPgaPgaPgaPgaPgaFVaEyaIbaTGaTHaSoaTGaTHaIbasHaEyaSnaSsaSsaSsaSsaYkaYlaYmaafaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaYnaCTbdSbcGaYoaBgaYpaYqaYraYraYraYraYsaYtaTSaYuaYvaOlaCSaYyaYyaYyaYzaYyaOsaRnaTWaUKaWZaWZaPDaSGaFOaFPaFEaFDaFJaFFaFAaIgaFCaFBaFLaFKaFMaYSaYSaYSaYTaUnaHhaIOaYVaYWaYXaYYaYZaZaaPWaHkaHiaZeaZfaPWaPWaPWaPWaPWaPWaPWaPWaPWaHeaXwaZkaZlaPWaZaaYZaZmaGTaYWaZoaIOaIOaThaQoaZpaQoaQoaQoaFHaQoaQoaFUaQoaZraZraZraZraZsaZtaKAaRXaRXaRXaZvaZwaZxaJdaZyaZzaSgaZAaZAaZBaZzaZCaJjaFWaBDaZFaZGaPgaPgaPgaPgaZHaPgaPgaPgaFVawKaIbaPoaPraSoaPoaPraIbasHawKaYjaSsaSsaZJaSsaSsaZKaYmaafaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaZLaZMaWGbdUaZNaBWaZPaZQaZRaZSaZTaYraZUaZVaTSaZWbaEaOlaCSaZYaZZbaaaCLaYybacbadbaeaPEbafbagbahaOnaPEaCRaBtbalbalbalbalaHubalbalbanbaobaobaobapbaobaqaUnbasbatbauawGawGawGbaAaFTbaAbayaFQbaybaAbaBbaBbaBbaBbaBbaBbaBbaBbaBaCVbaDbbubaDaPWaPWaPWawGawGawGaZoaIOaIOaUnbaFbaGaBlbaHaQobaIaQobaJbaKbaLaZrbaMaFRbaOaJdaJdaJdbaPbaQbaQbaQaJdaJdaJdbaRaSgaSgaLeaFNbaUbaVaGwaJjaBEaBDbaYaEsbaZbbabbbaWmbbcbbabbdaWmbbeaEybbfaQMaQNbbgaQMaQNaIbbbhaEyaDkbbjbbkaSsaSsbblbbmaYmaafaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlbdVaxRbbnbdWbboaBgbbpbbpbbqaAMbbsbbqbbtbbpaTSaQpaOTaGHaByaBzaBzaBAaBBaBzbbBbadbbCaPEbafbagbbDaGPaPEaBxaBtbalbbGbbHbbHazqbbIbalbbJbbKbbLbbMbarbarbaraUnaIOaIOaYVawGbbPbbQbbRbbSaBRaFraFlbbWbaAbaBbbXbbYbbZbcaaBhbccbcdbaBaCVbcebcfbcgbchbcibcjaAVbdsawGbcmbcnbcnaUnbcqbcqaBoaBobcoaThbcobcpaBoaBoaRRaBoaBoaBobcqbcrbcrbcrbcrbcrbcrbcsbcrbcqaxfbctbctaCKaZFaZFaZFaxebcqaBEaBDbaYaEsaEsaEsaEsaEsarZaEsaEsaEsaEsaEyaBCbcAawKavUawKbcyaxdbcqaPtbcBaSsbcCaSsaSsaWAbcDbcEaTMaWDaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazQasSbcFaAFaWGatHatHatHatHatHatHbjoayZaBgaTSaTSaTSaTSaTSaTSaTSaTSaTSbmRbmRaOlaCSaZYbcIbcJbcKaYybcLbcMaDEaPEbafbagbcOaOpaPEaBxaBtbalbbHbcQbcQbbHbcQbalbbJbcRbcSbcSbcTbcUbcVbarbcWaIOaYVaGpbcYbgCbdabdbbdbbdaaGibddbaAbaBbdebdfbdgbdhbdibdjbdkaGYaHabdnbdobclbdpbdqbdrbclaLgawGazGbdtaIOaNsbdubdvaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbdxaZFaZFaZFaZFaZFaZFaZFaZFbdyaZFaZFaZFaZFaZFaZFaZFaBDbdzaDPaDTaCYaDUaCYaDVaCYaDXaDWaDYaCYaDZaCYaEaaEbaCYaCYaCYaCYaCYaCYaEcaEdaEebdObcCaSsaSsaSsaVkbdPaVjaVkaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaaaaafbdRazTcDadmkcGedmxdmxdmxdmxdmxdmxdmJdmzdmLdmKdmMaOlaCSaYyaYybdXbdYaYyaPEaPEaCUaPEbafbeabcOaOoaPEaFSaBtbalbecbedbbHbcQbeebalbbJbefbcSbcSbcSbegbehbarbeiaIOaYVaGkbekbgCbembenbeobepaGibeqbaAbaBberbesbetbetbetayabevbaBaCVbexbclbclbdpbeybdrbclaLfawGayBaIOaIOaNsbdubdvaZFaZFaZFaZFaZFaZFaZFbeBaZFaZFaZFaZFaZFaZFbeCaCYaCYaCYaCYaCYaCYaCZaCYaCYaCYaCYaCYaCYaCYayKaDDaDCaDtaZFaZFaZFaZFaZFaBDaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbeIbdzbeJaSsaSsbcCaSsaSsbeKbeLaTMaTMaTNaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaWEaWFbeMbdUbeNbUVbePbePbeQbePbePbePbeRaPBaPBaPBaPBaOlaCSaZYbeSbeTbeUaYybeVbeWbUWaPEaPEaPEaPEbUmaPEaBxaBtbalbUHbbHbcQbfabfbbalbbJbarbfcbcSbcSbPhbfebarbULaIOaYVbTrbfhbgCbembfibfjbepaGibfkbaAbflbfmbfnbetbfobetbdfbfpbfqaCVbfrbfsbftbfubfubfvbclbfwawGcpvcuScpzcvvcxRdPwdPxdTPdPxcqMdPxcqPdTQbTtdTSctbctbctaaZFaZFaZFaZFbfDaZFbfybfOaZFctccoOctdbfIbWUcqYbfIbfKdTUdTVdTWaZFaZFaZFaZFaZFbfObfPbfDaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbdzbfQbfRbfSbfTbfUbfVbbmbfWaafaaaaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQdmOdmNcNOdmPbfXbePbfYbfZbgabgabgbbgcbgdbgebgebgebgebPBbUubUrbUrbUtbUsbUrbUobUobUpbUobUnbUlbUlbSbbRubTDbUBbUCbUybbHbbHbUkbUibalbTKbarbgybcSbcSbPhbgzbgAbffaIOaYVbaAbgCbTpbdabdabdabdaaGibgEbaAbaBbgFbgGbWJbgIbgJbgGbgKbaBaCVbURbUQbgNbgObgPbgQbgRbgSawGcmKaHfclMawGbTqbTqbgUbgUbgUbgUcmTcmTcsUcsVcsrcsscsVcsUcmTcmTcmTckbckbckbckbckbbcqbcqcmVbhbbhbbhbbhbbhbbktcmWbcqcsYcnucoabhkbhkbhlbhlbhlbhlbhlbhmbhnbhnbhobhnaZFbhnbhobhnbhnbhpbTqcoNcoNbNtbhrbhgaPtaPtaPtaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaZLaZMbeMbdUbhsbePbhtbePbhubhvbePbePbePaRebhwbhxbhxbTHaYyaZYbhzbcJbhAaYybUabTZbTTbTSbTVbTUbTXbTWbTYbTXbTMbTNbMVbTPbTObTObTQbTRbTJbTbbhSbcSbcSbTLbhUbhVbffaIObhWbaAbhXbaAbhZbVnbibbSOaGibaAbaAbaBbiebifbigbihbiibijbikbaBaCVbTybimckrbiobipbgQbclbiqawGcjwckLclFawGcqlcqncqSbTncrDcrGcrMcsncqUcqVcrAcrBcogcofcpscoYcmTcmIchOcmUcpMckbcqkcpNciicptbVUcktcktclSbktcggbiSbiScksbiSbiUbiUbhlbiVbiWbiXbhlbiYbiZbiYbhlbhmbhnbhpbNtbSQbTibSQbNtbThbTgbNtbjebTEbjgbhgaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaaadmRaMYbbnbdWbjhbePbjibePbjjbjkbjlbQYbePbjnaReaXibcHbTjaYyaYyaYyaYyaYyaYybTAbjrbjsaRebjtbalbalbalbTzbalbalbalbKEbalbalbalbalbLkbTCbRFbjzbcSbcSbPhbjAbgAbSwaIObSybaAbjCbaAbaAbaAbaAbaAbTkbaAbTmbTlbjGbjHbbXbjIbbXbjJbjKbTvbTxbTybjNbclbjObjPbgQbjQbjRbaDbSNaIObDbcgQcglcgPcgjcfLcgkchMcfMcfQchochocgRcgScjtcjpciHciEciDciCciBciAckcckbcjDcgechNcgecjvcjucgecgfbktcggbiSbkwcfKcgdbkzbkAbkBbkCbkDbkCbSjbkFbkGbkHbhlbkIbkJbkKbNtbSzbSEbSDbSMbNHbSAbNtbkRbkSbkTbhgaaaaaaaaaaaeaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazQasSbcFaAFaZMaTPaTPaTPbkUaTPbkVayWdmSaxTbePbkWbkXbkYbkZblablbblcbldbldbldbldbXnbWDbWDbWDbTXbTXbTXbWCblhblhblhblibalbljblkbWEblmblnblodYEblqblrblsbcSblubVHbgAbjzbcSbXvbWwbWxbWxbWRbEvbWMbXmbWXbWLbZTbWIbXmbWTbXkbXjbXibTvbTvbTvbTvbWHbTvbTvbTvbTvbWjbWGbWQbWSbWObWPbWKbWNbWsbWFbWVaIObDbbgUdVHdVIdVJcsXcslbgUcsodUTcjtcjtcjtcjtcjtcjpdVzdVydVBdVAdVDdVCdVuckbdVwdVvcskcgecjvcjucgedVLbktcggdVNbYedVMbYbbXHbXMbXFbXGbXGbXGbXUbXWbXAbXzbXybXxbXEbXDbXhbXgbXebNHbXcbXbbXfbNtbmPbkSbmsbhgaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmQdmUdmTdmWdmVdmXdmXdmZdmYaxTbePbmSbmTbkZbmUbePbePbePaPBbmVbmWbmXbmYbmXbmXbmXbmYbmXaPBaPBbalbalbalbmZbalblpblpbnablpblpblpdYEblpbnbdYDdYBdYCbWebWdbWdbWdbWabWcbVYbVcbVgbWibWncrpbWfbWfbWhbWgbWqbWpbVsbWrbWobnxbnybnzbnAbnBbnCbnzbnDbnxbPVbTybnFbnGbnFbaDbaDbaDbWAbaDdUZaIObDbcgQcglcgPdVadVbbWBbgUdUSdUTdUXdUYdUVdUWdVndVmdVldVkcmTdVpdUEdVodVfdVedVddVccrZdVidVhdVgdVidVqbUedVrdVsdTXbnYdTYboabobbocbodboebofbofbogbkCbohbhlbWvbojbokbNtbVZbVAbVzbUJbVVbVXbNtbmPbkSborbhgaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaabmQdnbdnadncaxSaxSaxSbosaxSaxSbePbotboubovbkZbePaaaaaaaaaaafaafbowbowbowbowbowbowbowaaaaaaboxboybozboAboBblpblpblpblpblpblpbUNbUOchfckRcnZdYAboEboFbarbarbVGbVHbaraUnboHboIbVEaUnboLboMboMbNsboMbVFbUGboMabLboQboRbnzboSbnBboSbnzboTboQbPVbVkboVbfuboWbVybVBbVDbUFbnFbpcaIObDbbgUbWmcqndUQdURdUNbixdUOdUPdUJdUKdULbVWdUGdUFdUIdUHcmTckbdUEdUDdUAckbdUCdUBdUydUxdUzdUzdUvdUwbktcggbiSdUubkxbkxboabpybpzbpAbpBbpCbpCbpDbpEbpFbhlbpGbojbpHbNtbUYbUTbUPbUJbNHbUIbNtbkRbkSbpMbhgaaaaaaaaaaaaaafbpNbpObMebpObMebpObpQaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadndaxRdnednebpRaTPbpSazQasSbpTbpSbePbpUbpVbpWbpXbePaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaabpYbpZblpbqabqbbqbbqbbqbbqbbqcbqbbqbbqbbqdbqebqfbUqbqhbqibarbqjbPhbqkbqlbtfbffbqnbqoaUnaUnboMbqpbVdbqrbXdbTuboMbTwbVfbVhbqxbqybqzbqybqAbVibVjbTxbVkbqEbfubqFbaDbqGbnFbTIbnFbpcaIOcrobgUdUjdUkdUhdUidUgbixdUedUfdUcdUddUadUbbZzdUsdUrdUqdUpbPZdUodUnbPZbPZbPZbPZdUmdUlbPZbPZbktdTZbktcggbiSdTXbnYdTYbrabrbbrcbrdbrebrebrebpDbkCbrfbrgbrhbkJbVlbNtbUEbUAbUzbUDbNHbUvbNtbUwbmrbhgbhgaaaaaaaaaaaaaafbrobrpbrqbrrbrrbrsbroaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlbdVaxRbbnbdWbboaBgbbpbbpbbqaAMbbsbbqbbtbbpaTSaQpaOTaGHaByaBzaBzaBAaBBaBzbbBbadbbCaPEbafbagbbDaGPaPEaBxaAabalbbGbbHbbHazqbbIbalbbJbbKbbLbbMbarbarbaraUnaIOaIOaYVawGbbPbbQbbRbbSaBRaFraFlbbWbaAbaBbbXbbYbbZbcaaBhbccbcdbaBaCVbcebcfbcgbchbcibcjaAVbdsawGbcmbcnbcnaUnbcqbcqaBoaBobcoaThbcobcpaBoaBoaRRaBoaBoaBobcqbcrbcrbcrbcrbcrbcrbcsbcrbcqaxfbctbctaCKaZFaZFaZFaxebcqaBEaBDbaYaEsaEsaEsaEsaEsarZaEsaEsaEsaEsaEyaBCbcAawKavUawKbcyaxdbcqaPtbcBaSsbcCaSsaSsaWAbcDbcEaTMaWDaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazQasSbcFaAFaWGatHatHatHatHatHatHbjoayZaBgaTSaTSaTSaTSaTSaTSaTSaTSaTSbmRbmRaOlaCSaZYbcIbcJbcKaYybcLbcMaDEaPEbafbagbcOaOpaPEaHLaHMbalbbHbcQbcQbbHbcQbalbbJbcRbcSbcSbcTbcUbcVbarbcWaIOaYVaGpbcYbgCbdabdbbdbbdaaGibddbaAbaBbdebdfbdgbdhbdibdjbdkaGYaHabdnbdobclbdpbdqbdrbclaLgawGazGbdtaIOaNsbdubdvaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbdxaZFaZFaZFaZFaZFaZFaZFaZFbdyaZFaZFaZFaZFaZFaZFaZFaBDbdzaDPaDTaCYaDUaCYaDVaCYaDXaDWaDYaCYaDZaCYaEaaEbaCYaCYaCYaCYaCYaCYaEcaEdaEebdObcCaSsaSsaSsaVkbdPaVjaVkaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaaaaafbdRazTcDadmkcGedmxdmxdmxdmxdmxdmxdmJdmzdmLdmKdmMaOlaCSaYyaYybdXbdYaYyaPEaPEaCUaPEbafbeabcOaOoaPEaFSaAabalbecbedbbHbcQbeebalbbJbefbcSbcSbcSbegbehbarbeiaIOaYVaGkbekbgCbembenbeobepaGibeqbaAbaBberbesbetbetbetayabevbaBaCVbexbclbclbdpbeybdrbclaLfawGayBaIOaIOaNsbdubdvaZFaZFaZFaZFaZFaZFaZFbeBaZFaZFaZFaZFaZFaZFbeCaCYaCYaCYaCYaCYaCYaCZaCYaCYaCYaCYaCYaCYaCYayKaDDaDCaDtaZFaZFaZFaZFaZFaBDaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbeIbdzbeJaSsaSsbcCaSsaSsbeKbeLaTMaTMaTNaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaWEaWFbeMbdUbeNbUVbePbePbeQbePbePbePbeRaPBaPBaPBaPBaOlaCSaZYbeSbeTbeUaYybeVbeWbUWaPEaPEaPEaPEbUmaPEbUNbUybUCbUBbUHbTRbUibUqbalbbJbarbfcbcSbcSbPhbfebarbULaIOaYVbTrbfhbgCbembfibfjbepaGibfkbaAbflbfmbfnbetbfobetbdfbfpbfqaCVbfrbfsbftbfubfubfvbclbfwawGcpvcuScpzcvvcxRdPwdPxdTPdPxcqMdPxcqPdTQbTtdTSctbctbctaaZFaZFaZFaZFbfDaZFbfybfOaZFctccoOctdbfIbWUcqYbfIbfKdTUdTVdTWaZFaZFaZFaZFaZFbfObfPbfDaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbdzbfQbfRbfSbfTbfUbfVbbmbfWaafaaaaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQdmOdmNcNOdmPbfXbePbfYbfZbgabgabgbbgcbgdbgebgebgebgebPBbUubUrbUrbUtbUsbUrbUobUobUpbUobUnbUlbUlbSbbRubTDaBtbalbTQbbHbbHbUkbTKbUCbTJbarbgybcSbcSbPhbgzbgAbffaIOaYVbaAbgCbTpbdabdabdabdaaGibgEbaAbaBbgFbgGbWJbgIbgJbgGbgKbaBaCVbURbUQbgNbgObgPbgQbgRbgSawGcmKaHfclMawGbTqbTqbgUbgUbgUbgUcmTcmTcsUcsVcsrcsscsVcsUcmTcmTcmTckbckbckbckbckbbcqbcqcmVbhbbhbbhbbhbbhbbktcmWbcqcsYcnucoabhkbhkbhlbhlbhlbhlbhlbhmbhnbhnbhobhnaZFbhnbhobhnbhnbhpbTqcoNcoNbNtbhrbhgaPtaPtaPtaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaZLaZMbeMbdUbhsbePbhtbePbhubhvbePbePbePaRebhwbhxbhxbTHaYyaZYbhzbcJbhAaYybUabTZbTTbTSbTVbTUbTXbTWbTYbTXbTMbTNbTObTPbTObTObTCbTNbRAbTbbhSbcSbcSbTLbhUbhVbffaIObhWbaAbhXbaAbhZbVnbibbSOaGibaAbaAbaBbiebifbigbihbiibijbikbaBaCVbTybimckrbiobipbgQbclbiqawGcjwckLclFawGcqlcqncqSbTncrDcrGcrMcsncqUcqVcrAcrBcogcofcpscoYcmTcmIchOcmUcpMckbcqkcpNciicptbVUcktcktclSbktcggbiSbiScksbiSbiUbiUbhlbiVbiWbiXbhlbiYbiZbiYbhlbhmbhnbhpbNtbSQbTibSQbNtbThbTgbNtbjebTEbjgbhgaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaaadmRaMYbbnbdWbjhbePbjibePbjjbjkbjlbQYbePbjnaReaXibcHbTjaYyaYyaYyaYyaYyaYybTAbjrbjsaRebjtbalbalbalbTzbalbalbalbMVbalbalbalbRqbalbLkbRFbjzbcSbcSbPhbjAbgAbSwaIObSybaAbjCbaAbaAbaAbaAbaAbTkbaAbTmbTlbjGbjHbbXbjIbbXbjJbjKbTvbTxbTybjNbclbjObjPbgQbjQbjRbaDbSNaIObDbcgQcglcgPcgjcfLcgkchMcfMcfQchochocgRcgScjtcjpciHciEciDciCciBciAckcckbcjDcgechNcgecjvcjucgecgfbktcggbiSbkwcfKcgdbkzbkAbkBbkCbkDbkCbSjbkFbkGbkHbhlbkIbkJbkKbNtbSzbSEbSDbSMbNHbSAbNtbkRbkSbkTbhgaaaaaaaaaaaeaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazQasSbcFaAFaZMaTPaTPaTPbkUaTPbkVayWdmSaxTbePbkWbkXbkYbkZblablbblcbldbldbldbldbXnbWDbWDbWDbTXbTXbTXbWCblhblhblhblibalbljblkbWEblmblnbloblpblpblrblsbYBchfckRbgAbjzbcSbXvbWwbWxbWxbWRbEvbWMbXmbWXbWLbZTbWIbXmbWTbXkbXjbXibTvbTvbTvbTvbWHbTvbTvbTvbTvbWjbWGbWQbWSbWObWPbWKbWNbWsbWFbWVaIObDbbgUdVHdVIdVJcsXcslbgUcsodUTcjtcjtcjtcjtcjtcjpdVzdVydVBdVAdVDdVCdVuckbdVwdVvcskcgecjvcjucgedVLbktcggdVNbYedVMbYbbXHbXMbXFbXGbXGbXGbXUbXWbXAbXzbXybXxbXEbXDbXhbXgbXebNHbXcbXbbXfbNtbmPbkSbmsbhgaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmQdmUdmTdmWdmVdmXdmXdmZdmYaxTbePbmSbmTbkZbmUbePbePbePaPBbmVbmWbmXbmYbmXbmXbmXbmYbmXaPBaPBbalbalbalbmZbalblpblpbnablpblpblpblpblpbnbbYubndbcSbWebWdbWdbWdbWabWcbVYbVcbVgbWibWncrpbWfbWfbWhbWgbWqbWpbVsbWrbWobnxbnybnzbnAbnBbnCbnzbnDbnxbPVbTybnFbnGbnFbaDbaDbaDbWAbaDdUZaIObDbcgQcglcgPdVadVbbWBbgUdUSdUTdUXdUYdUVdUWdVndVmdVldVkcmTdVpdUEdVodVfdVedVddVccrZdVidVhdVgdVidVqbUedVrdVsdTXbnYdTYboabobbocbodboebofbofbogbkCbohbhlbWvbojbokbNtbVZbVAbVzbUJbVVbVXbNtbmPbkSborbhgaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaabmQdnbdnadncaxSaxSaxSbosaxSaxSbePbotboubovbkZbePaaaaaaaaaaafaafbowbowbowbowbowbowbowaaaaaaboxboybozboAboBblpblpblpblpblpblpblpblpbUZbjzbVedYAboEboFbarbarbVGbVHbaraUnboHboIbVEaUnboLboMboMbNsboMbVFbUGboMabLboQboRbnzboSbnBboSbnzboTboQbPVbVkboVbfuboWbVybVBbVDbUFbnFbpcaIObDbbgUbWmcqndUQdURdUNbixdUOdUPdUJdUKdULbVWdUGdUFdUIdUHcmTckbdUEdUDdUAckbdUCdUBdUydUxdUzdUzdUvdUwbktcggbiSdUubkxbkxboabpybpzbpAbpBbpCbpCbpDbpEbpFbhlbpGbojbpHbNtbUYbUTbUPbUJbNHbUIbNtbkRbkSbpMbhgaaaaaaaaaaaaaafbpNbpObMebpObMebpObpQaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadndaxRdnednebpRaTPbpSazQasSbpTbpSbePbpUbpVbpWbpXbePaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaabpYbpZblpbqabqbbqbbqbbqbbqbbqcbqbbqbbqbbqdbqebqfbUObqhbqibarbqjbPhbqkbqlbtfbffbqnbqoaUnaUnboMbqpbVdbqrbXdbTuboMbTwbVfbVhbqxbqybqzbqybqAbVibVjbTxbVkbqEbfubqFbaDbqGbnFbTIbnFbpcaIOcrobgUdUjdUkdUhdUidUgbixdUedUfdUcdUddUadUbbZzdUsdUrdUqdUpbPZdUodUnbPZbPZbPZbPZdUmdUlbPZbPZbktdTZbktcggbiSdTXbnYdTYbrabrbbrcbrdbrebrebrebpDbkCbrfbrgbrhbkJbVlbNtbUEbUAbUzbUDbNHbUvbNtbUwbmrbhgbhgaaaaaaaaaaaaaafbrobrpbrqbrrbrrbrsbroaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbrubrvbrwbrxblpblpblpbrybrybrybryboAblpblpblpbnbbqgbqTbrzboZbrCbrDbrEbPhbcSbrFbRgbffbqnbrHbrIbrJbNNbrLbPPbrNbPObNMboMaafbrQbrRbnzbqybrSbqybnzbrTbrUbPVbPWbrWbrXbrYbaDbrZbnFbOlaUnbpcbNybNdbNzbNAbNCbNDbPKbIibixbPMbPQbLDbPRbPubPSbLDbLDbPYbPUbPZbPZbQxbQpbQFbIrbQIbQHbQSbQJbQVbPZbJqbRabQWbQXbRfbRhbRbbRbbPGbsEbkBbsFbrebrebrebsGbkCbsHbrhbsIbsIbPHbrhbNEbNKbNJbNIbNHbNLbNtbmPbsPbhgaaaaaaaaaaaaaaaaafbsQbsRbrqbrrbrqbNBbMeaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbsTbsUbsTbsVbsWblpblpblpblpblpblpboAblpbsXbalbalbsYbcSbndboCbtabtbbtcbPhbcSbcSbtdaIObqnbtebtfbtgbPrbtibtjbtkbPqbNxboMaafbrUbrUbIgbtobtpbnzbtqbOvbNgbPpbNqbtvbtvbtvbtvbtvbtvbMsawGbLTaHfaHfawGbMcbMmbLUbMubPfbixbOUbOYbPubPvbPsbPtbOibOhbLVbNUbOybOubOkbOjbOCbOBbOAbOzbMbbOFbOEbODbNubPAbPAboDbPCbPDbPDbPDbtZbHWbkBbubbkCbkCbucbPgbkCbuebkIbufbugbORbkIbMtbMCbMvbMNbxBbrhbNtbuobhgbhgbupbuqbuqbuqburbkIbrobrrbrqbrrbrrbvYbroaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaeaaaaaaaaabowbowbowbowbowbowbowbusbutbusbuublpblpblpbrybrybrybryboAblpbuvbuwbalbuxbcSbndboCbuybuzbtcbOxbuBbqfbuCbuDbuEbpcbuFbtgbuGbuHbuIbuJbOmbMfboMbLQbLubKubOnbuRbrSbuRbOvbOwbuTbuTbNqbuUbuVbuWbuXbuYbuZbMkawGbvcaIOaIOawGbLSbMnbMrbMBbMSbMTbMUbnebMLbMPbHhbMRbNabMZbNcbNbbApbHvbMYbMWbNlbNkbNGbNobNfbNebNibNhbMjbMlbMhbMibiSbvybvzbMgbvBbvBbkBbvCbvDbvEbkBbNVbkCbvGbGRbvIbvJbOebvLbvMbOfbvObvPbvQbsIbkJbHabGWbHjbHFbHMbvVbvVbInbvWbvXbpObMebJgbMebpObvZaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbwabrvbwbbwcblpblpblpblpblpblpblpboAblpbuvbwdbalbwebegbndbncbqfbwgbqfbNFbcSbrFbRdbffaIObpcbuFbtgboMbwibwjbwkbwlbMdboMbGfbGebGvbGrbNgbNjbNmbNnbwubGIbwwbNqbGCbwybwzbwAbwBbwBbnTbINbambdDaIRbgUbEIbLRbLNbLPbeZbixbLYbLZbLDbLXcbObLWbFNbLDbLAbLzbPZbPZbPZbDcbDcbHfbIIbHfbAqbLJbLGbAqbAqbAqbAqbLybiSbiSbkIbkIbkIbxbbkBbkBbkBbkBbkBbMMbxebxfbxgbxhbxibMobMpbMpbMqbxmbojbxnbxobxpbEHbDZbEKbFsbMpbEJbMpbFMbkIbupbuqburbFSbkIbGbaaaaafaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbusbutbusbxubxvblpblpbxwbSRbSSbSRbSXbSRbSYbTabSTbSUbSVbzmbFnbSWbTcbTdbSVbxFbxGbRgbffaIObxHbxIbxJboMbxKbxLbxMbxNbSdbRzcfDcdQcawcarbSubSvbSsbStbSkbSrbSebShbybbycbycbydbyebyfbQEbtvcbPbDNbONbgUbixcbQcciccjbYubYBcaWcbabPucbccbebLWcdabPucdkbWubRSceEceJceFbDccckccFccEbAqbSCbTsbRebRvbAybAqbwNbRybRBbRwbRxbRpbRpbRibRmbRpbRtbRrbRsbREbRDbRpbRCbQubSPbyPbyQbSLbySbrhbrhbrhbySbZGbYPbyVbupburbkIbojbvVbyWbHEbXwbXJbzabXLaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbzcbzdbzcbzebzfbzgbzgbzgbzgbzgbzhbPLblpbuvbzjbalbzkbOXbsZbwfbzoboEbRZbzqbzrbarbarbffaIObztbzubtgboMbzvbzwbzxbwjbQTboMbWzbVobXubLQbQwbzEbQDbuTbQvbzIbzJbNqbzKbzLbzMbzNbyebyfbQEbtvbpcbDNbNwbOHbOLbOMbOJbOKbEpbXtbXrbXsbLDbLDbLDbVebUZbPZbWybWubXqbXpbXobOSbDcbNvbVRbVQbWtbRcbQUbQKbRjbQabYcbrBbYObZMbZNbZObvMbvMbArbvMbAsbvMbOfbQqbQqbQqbQsbQrbQtbAvbAwbAxbRTbAzbAAbABbACbySbykbQObAFaafaafbkIbTGbUcbTobTobSibSKbKMbkIaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbAKbALbAMbalbalbANbrvbrvbrvbAObalbalbAPbAQbARbalbASbASbASbRKbASbAUbRLbAWbAXbAYbAUbffaIObRHbBaaUnboMawGawGawGawGbQlboMbLQbRUbLQbRJbQnbQobQnbuTbuTbuTbuTbNqawGawGawGawGawGbtvbPobtvbpcbVabuDbVbbUSbQkbUUbRGbUdbUfbUgbrAbTFbRqbUbbRAbVKbVJbVMbVLbVxbVwbVIbVCbQcbVpbVvbVtbVmbPTbQbbQabOQbPEbAqbQmbSJbzCbrhbrhbrhbzCbQjbzCbzCbELbQhbQiblTblTbBUbKjbOqbBWbAwbBXbQZbBZbCabCbbCcbySbykbQObCdaaaaaabkIbOGbOIbkIbvWbkIbkIbvWbkIaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabCgaafaaaaaaaaaaaabASbChbNpbQRbCkbAUbQQbCmbCnbCobAUbffaIObQMbQLbQNbQLbPzbPebPIbPFbPNbPJbQfbQPaXNbCzbOobCBbCCbCDaIOaIOaMibDbaMjaNsbCubCGbCHaCzbPdbOpbpcbDNbSHbymbymbSBbSBbSBbymbymbSmbSxbRXbRYbScbSgbRYbRXbRWbRVbRSbRRbRQbRPbDcbRObRNbRMbRIbOtbOrbAybAgbNrbAqbRkbCTbzCbPbbPcbFUbOWbOZbPabOObELbOPbOTbIZblTblTbQdbOqbBWbDubDvbPXbDxbDybDzbDAbySbykbOgbyVbyVbyVbyVbyVbkIbkIaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabASbDCbDDbDmbDFbDGbDnbDIbDlbDKbAUbffbDLbDiaIOaIOaIObDbaNsbCubCGbDNaIOaIObDdaIOaIObDPbDQbDRaIOaIOaIOaIObDbaIOaNsbCubCGbDSaXNbDYaXNbFrbENbyZbymbEbbBxbBxbBxbEebEdbEgbEfbEibEhbzGbEjbyXbyYbCZbDabDcbDebDfbDgbDcbDhbDkbDwbDEbAgbCQbCRbAgbAgbAqbksbCTbzCbEqbEobEybEtbEsbErbEMbELbEBbEzbEmbEmblTbDqbEnbECbEDbEEbEFbDzbDtbyjbyUbySbykbyTbzsbzbbzQbzzbyVaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbEPbEQbEQbFgbtybtybjBbjBbjBbjBbEOaafaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbwabrvbwbbwcblpblpblpblpblpblpblpboAblpbuvbwdbalbwebegbndbncbqfbwgbqfbNFbcSbrFbRdbffaIObpcbuFbtgboMbwibwjbwkbwlbMdboMbGfbGebGvbGrbNgbNjbNmbNnbwubGIbwwbNqbGCbwybwzbwAbwBbwBbnTbINbambdDaIRbgUbEIbLRbLNbLPbeZbixbLYbLZbLDbLXcbObLWbFNbLDbLAbLzbDcbDcbDcbDcbDcbHfbIIbHfbAqbLJbLGbAqbAqbAqbAqbLybiSbiSbkIbkIbkIbxbbkBbkBbkBbkBbkBbMMbxebxfbxgbxhbxibMobMpbMpbMqbxmbojbxnbxobxpbEHbDZbEKbFsbMpbEJbMpbFMbkIbupbuqburbFSbkIbGbaaaaafaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbusbutbusbxubxvblpblpbxwbSRbSSbSRbSXbSRbSYbTabSTbSUbSVbzmbFnbSWbTcbTdbSVbxFbxGbRgbffaIObxHbxIbxJboMbxKbxLbxMbxNbSdbRzcfDcdQcawcarbSubSvbSsbStbSkbSrbSebShbybbycbycbydbyebyfbQEbtvcbPbDNbONbgUbixcbQcciccjbCEbKEcaWcbabPucbccbecbOcdabPucdkbWubRSceEceJceFbDccckccFccEbAqbSCbTsbRebRvbAybAqbwNbRybRBbRwbRxbRpbRpbRibRmbRpbRtbRrbRsbREbRDbRpbRCbQubSPbyPbyQbSLbySbrhbrhbrhbySbZGbYPbyVbupburbkIbojbvVbyWbHEbXwbXJbzabXLaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbzcbzdbzcbzebzfbzgbzgbzgbzgbzgbzhbPLblpbuvbzjbalbzkbOXbsZbwfbzoboEbRZbzqbzrbarbarbffaIObztbzubtgboMbzvbzwbzxbwjbQTboMbWzbVobXubLQbQwbzEbQDbuTbQvbzIbzJbNqbzKbzLbzMbzNbyebyfbQEbtvbpcbDNbNwbOHbOLbOMbOJbOKbEpbXtbXrbXsbLDbLDbLDbCAbCfbLDbWybWubXqbXpbXobOSbDcbNvbVRbVQbWtbRcbQUbQKbRjbQabYcbrBbYObZMbZNbZObvMbvMbArbvMbAsbvMbOfbQqbQqbQqbQsbQrbQtbAvbAwbAxbRTbAzbAAbABbACbySbykbQObAFaafaafbkIbTGbUcbTobTobSibSKbKMbkIaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbAKbALbAMbalbalbANbrvbrvbrvbAObalbalbAPbAQbARbalbASbASbASbRKbASbAUbRLbAWbAXbAYbAUbffaIObRHbBaaUnboMawGawGawGawGbQlboMbLQbRUbLQbRJbQnbQobQnbuTbuTbuTbuTbNqawGawGawGawGawGbtvbPobtvbpcbVabuDbVbbUSbQkbUUbRGbUdbUfbUgbrAbTFbBPbUbbCebVKbVJbVMbVLbVxbVwbVIbVCbQcbVpbVvbVtbVmbPTbQbbQabOQbPEbAqbQmbSJbzCbrhbrhbrhbzCbQjbzCbzCbELbQhbQiblTblTbBUbKjbOqbBWbAwbBXbQZbBZbCabCbbCcbySbykbQObCdaaaaaabkIbOGbOIbkIbvWbkIbkIbvWbkIaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabCgaafaaaaaaaaaaaabASbChbNpbQRbCkbAUbQQbCmbCnbCobAUbffaIObQMbQLbQNbQLbPzbPebPIbPFbPNbPJbQfbQPaXNbCzbOobCBbCCbCDaIOaIOaMibDbaMjaNsbCubCGbCHaCzbPdbOpbpcbDNbSHbymbymbSBbSBbSBbymbymbSmbSxbRXbBObScbSgbRYbRXbRWbRVbRSbRRbRQbRPbDcbRObRNbRMbRIbOtbOrbAybAgbNrbAqbRkbCTbzCbPbbPcbFUbOWbOZbPabOObELbOPbOTbIZblTblTbQdbOqbBWbDubDvbPXbDxbDybDzbDAbySbykbOgbyVbyVbyVbyVbyVbkIbkIaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabASbDCbDDbDmbDFbDGbDnbDIbDlbDKbAUbffbDLbDiaIOaIOaIObDbaNsbCubCGbDNaIOaIObDdaIOaIObDPbDQbDRaIOaIOaIOaIObDbaIOaNsbCubCGbDSaXNbDYaXNbFrbENbyZbymbEbbBxbBxbBxbEebEdbEgbEfbEibEhbzGbEjbCUbtJbCZbDabDcbDebDfbDgbDcbDhbDkbDwbDEbAgbCQbCRbAgbAgbAqbksbCTbzCbEqbEobEybEtbEsbErbEMbELbEBbEzbEmbEmblTbDqbEnbECbEDbEEbEFbDzbDtbyjbyUbySbykbyTbzsbzbbzQbzzbyVaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbEPbEQbEQbFgbtybtybjBbjBbjBbjBbEOaafaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaabERbESbBTbESbEUaaaaaaaaabASbASbEVbEWbDmbEWbEXbEYbEZbFdbFbbAUbFcbffbEwbFebuDbFfbFybFAbFhbFibuEaIObFjbEuaZjbEvbFaaIObDSaXNaXNaXNaXNbDWbjvbFobFpbFqbFrbFCbFJbFHbuDbuEaIObymbFmbBxbFlbETbBxbEdbFubFtbFzbFxbFwbFvbFEbFFbFBbFDbFKbFQbFGbDcbDcbHfbHfbHfbAqbEGbExbEAbElbEkbAqbksbCTbzCbFRbFPbFUbFTbFWbFVbFXbELbFYbEzbEmbEmbkIbFIbFZbFLbADbyHbFObGabAGbAHbAIbySbAJbxAbxAbxAbBNbAZbAFaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbGjbmNbGhbmNbtybjBbjBbjSbmLbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGpbGqbvRbMQbGpbGsbGtbGubASbvHbEWbGwbBbbGybGzbGAbGAbBcbuSbAUbGDbGDbBibGDaUnaUnaUnaUnaUnaUnaUnbGFbGFbGFbGFaUnbBgbBfbBeaUnbGHbGHbGHbBhbAfaUnaUnaUnaUnbAVbAubGKaIUaKtbzYbymbzXbBxbBxbBxbAebAcbApbAobzGbzZbAbbAabvxbzGbzObzPbyzbyAbyCbvwbzTbzUbEcbAgbAgbAgbAtbAybATbAgbAqbksbhQbhQbhQbhQbhQbhQbhQbhQbhQbhQbBRbBQbBqbBqbkIbBnbBdbHqbrhbjfbjfbjfbvTbvUbvSbjfbjfbjfbjfbjfbgqbgpbHxaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagbxXbmNbmNbtnbjBbjBbjSbjSbBSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBTbHBbHCbHBbBTbHDbHGbSfbJebJdbHHbEWbHIbHJbAUbHKbHLbBrbHNbAUbHObHObBBbGDaaaaaaaaaaaabGFbBvbHRbvAbHTbHUbHVbCtbBVbHXbBYbCtbHZbCjbCpbClbBGbBDbBKbBJbBMbCvbCwbzlbBobGKbGKbymbBmbBlbBlbBkbymbBCbBybBwbBubBtbBsbBpbCsbCybCqbCrbBHbBIbBEbBFbCNbCObFkbCIbBLbCFbBjbAgbAgbCJbAqbksbhQbwnbwpbCxbxrbCMbxtbxsbwQbhQbCLbCKbDpbDpbkIbwxbCVbBWbxBbDjbDMbDObDTbDUbDrbDsbDHbDJbDXbjfbIhbCWbyVbngbngbngbngbngaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabxYbjBbxXbjBbjBbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGpbHBbHBbHBbKfbJfbEWbKLbKObXSbEWbEWbJhbJibAUbAUbAUbJRbAUbAUbJvbJlbJDbJnaaabJCbJpbJBbJrbJsbHVbJtbJubJPbJKbJbbJybJxbJwbJbbCSbJobJEbJFbJGbJHbJIbGHbGHbJJbJcbDobJQbJNbJUbJSbJZbJWbJWbJWbIDbICbJabIFbzGbJjbJMbJLbIxbzGbIybIzbEcbIAbIBbIBbIubIvbEcbAqbIwbAqbAqbAqbAqbAqbAqbksbhQbKFbKvbCxbCxbCxbCxbCxbCYbhQbKtbEzbKpbKpblTbKjbKsbKrbKqbKgbKgbKgbKgbKhbIYbIYbKibKobJYbjfbCPbKdbJTbJObJXbJVbJAbJzaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbtybjBbptbpubpubjSbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBTbHCbHCbHCbBTbKKdmidmhbKNdmjbEWbKPbLsbltbLibKVbKVbKZbKWbKVbKDbjwbKQbKYaaabGLbLabLbbLcbLdbHVbLebLfbLgbLhbCtbKHbKGbKRbCtbLlbLmbLnbLobLpbLqbLrbKUboNbKSbKIbGKbPybPybKnbymbFmbBxbFlbETbBxbHcbKcbFtbKmbKlbKkbKebKBbKCbGXbGYbLxbIAbIBbIBbIubKxbEcbKwbKzbKAbmobKybKbbKabkybksbhQbCxbLEbCxbCxbCxbCxbCxbDVbhQbLCbEzbHPbHPblTbLObojbBWbMabIYbIYbLFbLHbLIbLKbIYbLLbLMbLBbLwbLvbDBbLtbLjbKXbKTbJAbKJaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabjBbjBbkQbjSbjSbjSbjSbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaabGpbMwbMxbMybGpbMzbGtbGubASbASbMAbMAbMAbASbASbGDbJkbJkbGibJkbJkbJkblPbKYaaabGLbMDbMEbMFbMGbMHbMIbMJbMGbMGbMKbGBbGlbGkbGHbGHbGHbGHbGHbGHbMObGHbGHbyKbGGbGmbGKbPycpqasZbymbEbbBxbBxbBxbHdbCfbApbFtbCebGZbHbbBtbGVbBPbGXbGYbBObGSbGTbGUbGNbGObEcbGPbGcbGdbmobGgbHgbHebkybksbhQbhQbIpbCxbCxbCxbCxbhQbhQbhQbIobHYbHPbHPblTbHQbojbBWbCXbHAbHybHzbHtbHubHrbHsbHnbHpbGEbGxbGMbGJbGQbngbHlbHkbGobGnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbjBbjSbjSbjSbjSbjSbjSbjXbjSbHmbjSbjSbjSbjSbjSbjBbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNObESbNPbESbNQdnfaafaaaaaabASbNRbNSbNTbASaaabGDccpcbybzibJkbJkbJkblPbKYaaabGLbNWbNXbNYbNZbHVbOabObbOcbOdbGFbIabIqbIcbIbbIdbIdbIdbIdbIdbIdbItbIdbIebIebIEbGKbGKbGKbGKbymbymbHwbHwbHwbymbPZbHvbHobCAbHibzGbBubCUbCEbIlbImbPZbIkbEcbEcbEcbEcbEcbIjbIfbBAbmobHSbIsbCibkybksbhQbIMbIVbIUbIRbIQbITbISbIMblUbIPbIObIZblTblTbJmbojbOVbngbngbjfbjfbjfbjfbIWbjfbIXbIYbIHbjfbIhbCWbyVbngbIKbIJbIGbngaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabjBbulbulbulbulbulbulbILbjSbuPbulbHmbjSbjSbjSbjSbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafcbxbGDbGDbGDbGDbJkblQblPbPiaaabPjbJpbPkbPlbPmbHVbHVbPnblOblMbmqbmwblSblRbCtbgXbgXbgXbgXbgXbgXbgXbgXbPwbPxboobonbmAbmybGKbymblCblBblDblDblGblNblIblHblKblJblYblXbmabmbbmcbmdbmebmfbmgbmiblVbmkbidbmlbmmbmnbmobmpblfblebkybksbhQblyblxblwbicbicbicblzblEblUbkIblAblTblTbQebgnbojbojbQgaafbjcblZblWbjabmvbjablFbmtbnEbjfblLbnHbmjbngbnwbnjbnjbolaagaagaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabombmNbmNbmNbmNbmNbmNbmNbmMbmLbjSbjSbjSbjSbmObmLbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaBcaCcaCcaDcaEbGDccfbJkbmKbGDaaaaaaaaaaaabGFbQybQzbQAbQBbGFbQCbCtbmIbmHbmJbCtbgXbmEbmGbmFbmCbmBbmDbfNbfNbfNbfNbfNbfNbkjbnZbnXboUboXbBzboObpkbpjbpibphbpobpnbnIbpdbnIbnJbnnbnvbnNbnObnLbnMbnObnSbnPbnQbnVbnWbnubnUbmubmxbmzbnhbpbbpabpfbpebplbpgbpqbpgbpsbprbRlbmhbnfbRnbojbgnbojbojbRoaafbjcbjdbjdbopboqboKboPboYbpwbjfbgqbgpbUKbngbngbngbngbngaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabjBbpubpubpubpubpubpubpvbjSbptbpubkabjSbjSbjSbjSbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaabGpbMwbMxbMybGpbMzbGtbGubASbASbMAbMAbMAbASbASbGDbJkbJkbGibJkbJkbJkblPbKYaaabGLbMDbMEbMFbMGbMHbMIbMJbMGbMGbMKbGBbGlbGkbGHbGHbGHbGHbGHbGHbMObGHbGHbyKbGGbGmbGKbPycpqasZbymbEbbBxbBxbBxbHdbHcbApbFtbxQbGZbHbbBtbGVbxPbGXbGYbtKbGSbGTbGUbGNbGObEcbGPbGcbGdbmobGgbHgbHebkybksbhQbhQbIpbCxbCxbCxbCxbhQbhQbhQbIobHYbHPbHPblTbHQbojbBWbCXbHAbHybHzbHtbHubHrbHsbHnbHpbGEbGxbGMbGJbGQbngbHlbHkbGobGnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbjBbjSbjSbjSbjSbjSbjSbjXbjSbHmbjSbjSbjSbjSbjSbjBbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNObESbNPbESbNQdnfaafaaaaaabASbNRbNSbNTbASaaabGDccpcbybzibJkbJkbJkblPbKYaaabGLbNWbNXbNYbNZbHVbOabObbOcbOdbGFbIabIqbIcbIbbIdbIdbIdbIdbIdbIdbItbIdbIebIebIEbGKbGKbGKbGKbymbymbHwbHwbHwbymbymbHvbHobyXbHibzGbBubCUbyYbIlbImbEcbIkbEcbEcbEcbEcbEcbIjbIfbBAbmobHSbIsbCibkybksbhQbIMbIVbIUbIRbIQbITbISbIMblUbIPbIObIZblTblTbJmbojbOVbngbngbjfbjfbjfbjfbIWbjfbIXbIYbIHbjfbIhbCWbyVbngbIKbIJbIGbngaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabjBbulbulbulbulbulbulbILbjSbuPbulbHmbjSbjSbjSbjSbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafcbxbGDbGDbGDbGDbJkblQblPbPiaaabPjbJpbPkbPlbPmbHVbHVbPnblOblMbmqbmwblSblRbCtbgXbgXbgXbgXbgXbgXbgXbgXbPwbPxboobonbmAbmybGKbymblCblBblDblDblGblqblIblHblKblJblYblXbmabmbbmcbmdbmebmfbmgbmiblVbmkbidbmlbmmbmnbmobmpblfblebkybksbhQblyblxblwbicbicbicblzblEblUbkIblAblTblTbQebgnbojbojbQgaafbjcblZblWbjabmvbjablFbmtbnEbjfblLbnHbmjbngbnwbnjbnjbolaagaagaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabombmNbmNbmNbmNbmNbmNbmNbmMbmLbjSbjSbjSbjSbmObmLbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaBcaCcaCcaDcaEbGDccfbJkbmKbGDaaaaaaaaaaaabGFbQybQzbQAbQBbGFbQCbCtbmIbmHbmJbCtbgXbmEbmGbmFbmCbmBbmDbfNbfNbfNbfNbfNbfNbkjbnZbnXboUboXbBzboObpkbpjbpibphbpobpnbnIblNbnIbnJblubnvbnNbnObnLbnMbnObnSbnPbnQbnVbnWbnubnUbmubmxbmzbnhbpbbpabpfbpebplbpgbpqbpgbpsbprbRlbmhbnfbRnbojbgnbojbojbRoaafbjcbjdbjdbopboqboKboPboYbpwbjfbgqbgpbUKbngbngbngbngbngaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabjBbpubpubpubpubpubpubpvbjSbptbpubkabjSbjSbjSbjSbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkfcbncbocbpbJkbgsbJkbJkbgtbGDbguaaaaaaaaabGFbGFbGFbGFbGFbGFbGFbCtbhybhibhhbCtbgXbhBbgwbgxbgxbgwbgvbfNbgMbgLbgDbgBbfNbhGbymbymbfCbfAbfFbfEbBzbggbgibhHbfJbcPbgfbfLbgTbgVbgWbgYbgjbgkbbVbcZbgkbhfbhjbhEbhIbhabhcbhdbinbilbGKbhYbCTbhNbhNbhJbicbiubisbicbicbiabSlbgmbSnbojbSobgnbojbSpbSqaafbjcbjdbjbbjabiAbjabivbiybjmbjfbgqbgpbjubitbyVaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbjBbjSbjSbjSbjSbjSbjSbjXbjSbkabjSbjSbjSbjSbjSbjBbjBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccecaCcaCcaDcbtbiLbkebGDbkubGDccgbkvbkEccgccgbjFbjLbjMbgZbjTbjUblvbYpbjqbjxbllbjybgwbjEbjDbiNbiMbiObfNbiQbiPbjpbiRbfNbkibsabjZbjYbjWbjVbiTbiTbkhbkgbkkbiDbkdbkcbkbbiDbiDbiBbiCbizbidbirbhFbhebiKbiIbiJbiGbiHbiEbiFbiGbklbGKbksbCTbknbkrbkobkMbkLbkPbkNbhQbhQbrhbiwbrhbrhbrhbhTbxqbhRbrhbjfbjfbjfbjfbjfbkmbjfbjfbjfbjfbjfbgqbgpblgbkpbyVaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabjBbjBbkQbjSbjSbjSbjSbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQchdalQalQalQalQalQaaaaaaaaaaaaaaaaaaaafaafaaabxWbxTbxTbxTbxVbxTbxTbxRbxSccgbwobwhccgbwJbwKbwHbwIbwDbwGbwtbwvbwSbwObfHbxUbwMbgwbjEbwLbxjbiMbxdbfNbiQbiPbxcbxabfNbxObPybymbvnbvlbtRbvobtLbtXbvebvdbiDbvfbvkbvjbuObiDbuQbvFbvNbwUbqtbxQbxPbiKbvrbvsbiGbvtbvubuabiGbtQbGKbtPbCTbhQbhQbhQbhQbhQbvqbhQbhQbwqbwmbvvbxlbxxbrhbiwbxEbvabrhbxybwCbwTbwrbwsbwYbxkbumbwVbumbumbuLbunbAEbyVbyVbyVaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbtybjBbuPbulbulbjSbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbAdbzWbsKbzRbvpbthbzBbzFbzHccgbzSbzVccgccgbAlbAmbAnbAhbAibAjbAkbYpbyNbyRbyObyxbyJbyMbyLbzDbyJbyJbyybzpbznbzAcjcbfNbkjbqZbqZbqZbqZbywbqZbqZbqZbysbyrbiDbyvbqJbytbtDbiDbylbynbzybwUbqtbxQbqtbiKbwWbwXbiGbyibwZbyhbwFbwEbtTbwPbwRbwRbwRbwRbwRbwRbygbwRbwRbygbwRbyBbwRbygbtSbyobypbyqbtSbyubxAbxAbxAbxCbxDbxAbxAbxAbxAbxAbxzbyabxZbVNbVObyVbyVbyVbyVaaaaafaaaaaaaaaanmanmanmaafaaaaaaaafaaaaaaaafaaaaaabxYbjBbxXbjBbjBbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbsBbsBbsKbsMbsLbthbtlbsNbsOccgbqvbqsbqubqCbqDbqwbrKbrPbqQbqIbqKbqVbqUbeYbqSbstbrMbrGbribsdbsebsdbsvbsubsjbjpbshbfNbkjbqZbqYbqWbqRbqXbqWbqBbqLbqPbqNbpxbppbqJbqJbsmbiDbsnbsobsibwUbqtbqHbqqbiKbsfbsgbiGbrObrVbsbbiGbssbidbvKboNbrkbrkbsaboJboGboibnRbnKbrjbGKbXOcdjbsrbqMbsqbqObrnbqMbnibrmbpJbpJbpIbyVbyVbrlbpJbpJbpIbyVbyVbAEbnkbnmbnlbWWbpmbWYbWZbXabXabXabXabXabXabXabXabXabXabXabXabXabXabXabXabpKbpLbpLbpPbjBbjBbjSbjSbqmbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSFbSFbSFbSFbSFbSFbSFbuibujccgccgccgccgccgbukbuAbuKbuKbuKbuMbuNbYpbjqbjxbtsbjybttbtxbtubtEbtCbtGbfNbtVbtHbtYbtWbfNbsSbqZbsCbslbslbskbtMbkObqZbspbscbiDbtIbtFbqJbtDbiDbtAbtBbtzbwUbqtbtKbtJbiKbszbsAbiGbiGbiGbiGbiGbssbidbidbidbfMcmHbtObGKbXObXPbXQbGKbGKaaaaaaaaaaaabudbuhbtNbtUbudaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyVbXVbswbXXbyVbyVbyVbyVaaaaafaaaaaaaaaanmanmanmaafaaaaaaaafaaaaaaaafaafaafbtrbtwbtmbtnbtybjBbjBbjSbmLbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccecaCcaCcaDcbtbiLbkebGDbkubGDccgbkvbkEccgccgbjFbjLbjMbgZbjTbjUblvbYpbjqbjxbllbjybgwbjEbjDbiNbiMbiObfNbiQbiPbjpbiRbfNbkibsabjZbjYbjWbjVbiTbiTbkhbkgbkkbiDbkdbkcbkbbiDbiDbiBbiCbizbwUbhebhFbhebiKbiIbiJbiGbiHbiEbiFbiGbklbGKbksbCTbknbkrbkobkMbkLbkPbkNbhQbhQbrhbiwbrhbrhbrhbhTbxqbhRbrhbjfbjfbjfbjfbjfbkmbjfbjfbjfbjfbjfbgqbgpblgbkpbyVaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabjBbjBbkQbjSbjSbjSbjSbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQchdalQalQalQalQalQaaaaaaaaaaaaaaaaaaaafaafaaabxWbxTbxTbxTbxVbxTbxTbxRbxSccgbwobwhccgbwJbwKbwHbwIbwDbwGbwtbwvbwSbwObfHbxUbwMbgwbjEbwLbxjbiMbxdbfNbiQbiPbxcbxabfNbxObPybymbvnbvlbtRbvobtLbtXbvebvdbiDbvfbvkbvjbuObiDbuQbvFbvNbwUbhebhFbqHbiKbvrbvsbiGbvtbvubuabiGbtQbGKbtPbCTbhQbhQbhQbhQbhQbvqbhQbhQbwqbwmbvvbxlbxxbrhbiwbxEbvabrhbxybwCbwTbwrbwsbwYbxkbumbwVbumbumbuLbunbAEbyVbyVbyVaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbtybjBbuPbulbulbjSbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbAdbzWbsKbzRbvpbthbzBbzFbzHccgbzSbzVccgccgbAlbAmbAnbAhbAibAjbAkbYpbyNbyRbyObyxbyJbyMbyLbzDbyJbyJbyybzpbznbzAcjcbfNbkjbqZbqZbqZbqZbywbqZbqZbqZbysbyrbiDbyvbqJbytbtDbiDbylbynbzybwUbhebhFbhebiKbwWbwXbiGbyibwZbyhbwFbwEbtTbwPbwRbwRbwRbwRbwRbwRbygbwRbwRbygbwRbyBbwRbygbtSbyobypbyqbtSbyubxAbxAbxAbxCbxDbxAbxAbxAbxAbxAbxzbyabxZbVNbVObyVbyVbyVbyVaaaaafaaaaaaaaaanmanmanmaafaaaaaaaafaaaaaaaafaaaaaabxYbjBbxXbjBbjBbjSbjSbjSbjSbjSbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbsBbsBbsKbsMbsLbthbtlbsNbsOccgbqvbqsbqubqCbqDbqwbrKbrPbqQbqIbqKbqVbqUbeYbqSbstbrMbrGbribsdbsebsdbsvbsubsjbjpbshbfNbkjbqZbqYbqWbqRbqXbqWbqBbqLbqPbqNbpxbppbqJbqJbsmbiDbsnbsobsibwUbhebpdbnnbiKbsfbsgbiGbrObrVbsbbiGbssbidbvKboNbrkbrkbsaboJboGboibnRbnKbrjbGKbXOcdjbsrbqMbsqbqObrnbqMbnibrmbpJbpJbpIbyVbyVbrlbpJbpJbpIbyVbyVbAEbnkbnmbnlbWWbpmbWYbWZbXabXabXabXabXabXabXabXabXabXabXabXabXabXabXabXabpKbpLbpLbpPbjBbjBbjSbjSbqmbjSbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSFbSFbSFbSFbSFbSFbSFbuibujccgccgccgccgccgbukbuAbuKbuKbuKbuMbuNbYpbjqbjxbtsbjybttbtxbtubtEbtCbtGbfNbtVbtHbtYbtWbfNbsSbqZbsCbslbslbskbtMbkObqZbspbscbiDbtIbtFbqJbtDbiDbtAbtBbtzbwUbhebqtbqqbiKbszbsAbiGbiGbiGbiGbiGbssbidbidbidbfMcmHbtObGKbXObXPbXQbGKbGKaaaaaaaaaaaabudbuhbtNbtUbudaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyVbXVbswbXXbyVbyVbyVbyVaaaaafaaaaaaaaaanmanmanmaafaaaaaaaafaaaaaaaafaafaafbtrbtwbtmbtnbtybjBbjBbjSbmLbjSbjBbjBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbSFbSGcnjcngcnhcnQbSFcrKcrFcrwcrvcrEcrCcrrcrrcrucnEcnEcnDcnFbAkbYpbjqbjxcnCbwMcnzctfcnBcnwcnxcnybfNbtVcnpcnqdTTbfNbkjbqZdZLdZOdZOdZMdZNbqZdYtdZPdZQbiDdZTdZRdZSdZHbiDdZGbtBcrVbwUcrRcrQcrWbiKdZKdZJbiKcrXbPwbiddZUbssdZVdZWbidbfMdWwdXGbGKaaaaafaaaaaaaafaaaaaaaaaaaaccBcWWcWYcWXccBaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYUbYUcoebYWbYUaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcrLbEQbEQbFgbtybtybjBbjBbjBbjBbEOaafaafaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaafaafbTebTebTebTebTebTebTebTebTebTebTebTebTeaaaaaacmobSGbSGbSGbSGcmAbSFcqicqgcqfcqecqdcpVcqccpVcpUcpTcpScpQcpOcpLcqjcqwcmCcWSbgXbgXbgXbgXbgXbgXbgXbfNbfNcmBbfNbfNbfNbkjbqZbqZdZrdZsdZtdZubqZcqxcqDcqTbiDbkdbiDbiDbiDbiDbwUdZydZzbwUcqXcqWcqXbiKcsJdZBbiKbPybPybiddZDbssbidbidbidbfMcpWcmNbGKaaaaafaaaaaaaafaaaaaeaaaaaacrfcWTcWVcWUcrfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYUcqQcmGbZVbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaabTecnScqacnSbTecnOcpYcnObTecnMcpZcnMbTeaaaaaacphbSGcpXbSGbSGcpRbSFcFVcFUcQKcFXcRqcRpcFMcFKcFRbqVbqVcFTbqVbqKcFIcFJbjxcpCcpDcpucpucpEcXbcXccoMcXdcpwcpxcpyeaqcoMbkjbEaeaxbMXbMXeaveaweaDeaEdLbdPueazeaAeayeaeeaeeaudXBbwUbGKcZgdhOcZLdaTcZgbGKbiKbiKbPybPybidbssbsseareasbidbfMbGKbGKbGKaaaaafaaaaaaaafaaaaaaaaaaaacWzcWQcRYcRScWzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYUcaycqbcaAbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaabTecnScnRcnSbTecnOcnPcnObTecnMcnNcnMbTeaaaaaacphbSGbSGbSGcpicoIcoHcsOcsNcvgcuVcsWcsPcsMcsEcsmcoycoEcoDcoCbAkbYpcpdcpbcpccpgcpfcpecpfcWZcoWcoMdZZcoZcpacoXdZZcoMbkjbEaeabbMXbOsbMXeaaeageahcCNeajeaceadeaeeafeaeeandXBciZboNcFGcEycExcXadllboNboNboNboNcEzbidbidbidbidbidbidbfMbGKaafaafaafcbfaafaafaafaafaafaafaafccQbudcCKcylccQaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYUcbjcpjcblbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaabTecrgcnicrebTecrccnfcrbbTecracnccqZbTeaaaaafcphcrdbSGbSGcqqbWbbSFdPYdPVcvgcvgdPTcvgcvgcvgcvgcrzbYpcrxcrybAkbYpdRPcrlbyOcrhcricrkcridbacrqcrscrtcrmcrncoMcoMcoMbkjbEaeboebrebsebpebqebiebjdQhebhebmebnebkeblebcebbebadQabJNdbedQedQddbddXFbyDbXPbXQbGKbvKboNboNboNboNboNboNciNbGKaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaabuddQidQSdQRbudaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaacbZccacrNcccccdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaafaafbTebTebTebTebTebTebTebTebTebTebTebTebTeaaaaaacmobSGbSGbSGbSGcmAbSFcqicqgcqfcqecqdcpVcqccpVcpUcpTcpScpQcpOcpLcqjcqwcmCcWSbgXbgXbgXbgXbgXbgXbgXbfNbfNcmBbfNbfNbfNbkjbqZbqZdZrdZsdZtdZubqZcqxcqDcqTbiDbkdbiDbiDbiDbiDbwUdZydZzbwUcqXcqWcqXbiKcnZdZBbiKbPybPybiddZDbssbidbidbidbfMcpWcmNbGKaaaaafaaaaaaaafaaaaaeaaaaaacrfcWTcWVcWUcrfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYUcqQcmGbZVbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaabTecnScqacnSbTecnOcpYcnObTecnMcpZcnMbTeaaaaaacphbSGcpXbSGbSGcpRbSFcFVcFUcQKcFXcRqcRpcFMcFKcFRbqVbqVcFTbqVbqKcFIcFJbjxcpCcpDcpucpucpEcXbcXccoMcXdcpwcpxcpyeaqcoMbkjbEaeaxbMXbMXeaveaweaDeaEdLbdPueazeaAeayeaeeaeeaudXBbwUbwUbwUdhOcZLcZgbiKbiKbiKbiKbPybPybidbssbsseareasbidbfMbGKbGKbGKaaaaafaaaaaaaafaaaaaaaaaaaacWzcWQcRYcRScWzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYUcaycqbcaAbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaabTecnScnRcnSbTecnOcnPcnObTecnMcnNcnMbTeaaaaaacphbSGbSGbSGcpicoIcoHcsOcsNcvgcuVcsWcsPcsMcsEcsmcoycoEcoDcoCbAkbYpcpdcpbcpccpgcpfcpecpfcWZcoWcoMdZZcoZcpacoXdZZcoMbkjbEaeabbMXbOsbMXeaaeageahcCNeajeaceadeaeeafeaeeandXBciZboNcsJcEycExcXacFGboNboNboNboNcEzbidbidbidbidbidbidbfMbGKaafaafaafcbfaafaafaafaafaafaafaafccQbudcCKcylccQaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYUcbjcpjcblbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaabTecrgcnicrebTecrccnfcrbbTecracnccqZbTeaaaaafcphcrdbSGbSGcqqbWbbSFdPYdPVcvgcvgdPTcvgcvgcvgcvgcrzbYpcrxcrybAkbYpdRPcrlbyOcrhcricrkcridbacrqcrscrtcrmcrncoMcoMcoMbkjbEaeboebrebsebpebqebiebjdQhebhebmebnebkeblebcebbebadQabJNdbddQedQddaTbCTbyDbXPbXQbGKbvKboNboNboNboNboNboNciNbGKaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaabuddQidQSdQRbudaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaacbZccacrNcccccdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaafaafbTecqocdMcqpbTecdWcdMcdXbTecdLcdMcdNbTeaaaaafcqrbSGbSGbSIcqqcqybSFdPAdPvcqvcqucqtcqscqAcqAcqAcqBcqAcmpcqzbAkbAkbjqcqIcqJcpDcqCcqCcqHdaUdaWcoMcqOcYGcqNcqKcqLcoMbkjbEaeaLeaMeaNeaOeaPbEaeaFdPDeaHdXBeaIeaJeaKeaSeaRdXBbfMbPydXFeaUeaTeaQdXFaaaaaaaaabGKbGKbGKbXObXPbXPbXQbGKbGKbGKaaaaaaaaabudbudbudbudbudbudbudbudbuddPHdPSdPPbudaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaafccSdaXccSaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachdaafaafaafaaaaafcsLaafcsLaafcdmaafcdlaafcdmaafcdlaafaafaaabSFcsKbUXcsIdbicszbQGcsBcsAbQGcsCcsDcmJcmJdTDcmJchBcsGcsFchBcsHcstcsucsvcswcaOcaOcaOcaOcsxcsycaOcjXcjXcjXcjXcjXcjXbkjbEaebRebPebQebNebObEaeaFdTLebMdXBebKebIebJebHebGdXBbfMbPydXFebFdeBdcxdXFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaabudcnbcmXcmYdTJdTKcdydTHcfcdTIdTFdTEdTGcrHaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafcebceccebaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaafcsgclgcshclgcshclgccWclgccUclgccWclgccUclgccVbQGbQGbQGbQGbQGbQGbQGbQGcrPcrOcrUcrTcrSdQTdQWdQVdQUchBcsadZEcrYchBcaTchwchtcaOcsdcsecsbcscchhcaPcaOdRMdRMcsfclLclLcjXbkjbEabEaebxebybEabEabEaebvckYebwdXBdXBdXBebuebCdXBdXBbfMcpqdXFdYWdYcdYddXFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafbudccCcoLccCdRNcmEcbWdTCcfcdRUdTAdRUbudbudaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafaaaceWaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/tools/mapmerge/clean_map_git.sh b/tools/mapmerge/clean_map_git.sh index 6ff986e0ba..0a5f4cc786 100644 --- a/tools/mapmerge/clean_map_git.sh +++ b/tools/mapmerge/clean_map_git.sh @@ -1,9 +1,7 @@ #!/bin/sh -MAPFILE='tgstation.2.1.3.dmm' +MAPFILE='tgstation2.dmm' -git show HEAD:_maps/map_files/$MAPFILE > tmp.dmm -java -jar MapPatcher.jar -clean tmp.dmm '../../_maps/map_files/'$MAPFILE '../../_maps/map_files/'$MAPFILE -dos2unix -U '../../_maps/map_files/'$MAPFILE +git show HEAD:maps/$MAPFILE > tmp.dmm +java -jar MapPatcher.jar -clean tmp.dmm '../../maps/'$MAPFILE '../../maps/'$MAPFILE rm tmp.dmm -