From 4722c9a864bab8f9fb06a024be9310895feccaaa Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 24 Nov 2014 09:59:46 +1030 Subject: [PATCH 01/56] WIP on refactoring the context-based combat PR --- baystation12.dme | 1 + code/modules/clothing/clothing.dm | 5 + code/modules/clothing/shoes/magboots.dm | 30 ++- code/modules/mob/living/carbon/human/human.dm | 16 -- .../living/carbon/human/human_attackhand.dm | 109 +++------- .../mob/living/carbon/human/human_defines.dm | 2 +- .../mob/living/carbon/human/species.dm | 148 -------------- .../mob/living/carbon/human/unarmed_attack.dm | 193 ++++++++++++++++++ 8 files changed, 261 insertions(+), 243 deletions(-) create mode 100644 code/modules/mob/living/carbon/human/unarmed_attack.dm diff --git a/baystation12.dme b/baystation12.dme index 98342a0dea2..dc952412e30 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1009,6 +1009,7 @@ #include "code\modules\mob\living\carbon\human\logout.dm" #include "code\modules\mob\living\carbon\human\say.dm" #include "code\modules\mob\living\carbon\human\species.dm" +#include "code\modules\mob\living\carbon\human\unarmed_attack.dm" #include "code\modules\mob\living\carbon\human\update_icons.dm" #include "code\modules\mob\living\carbon\human\whisper.dm" #include "code\modules\mob\living\carbon\human\alien\alien.dm" diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index dc242cd23fe..c2253046845 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -547,3 +547,8 @@ BLIND // can't see anything hastie.emp_act(severity) ..() +/obj/item/clothing/shoes/proc/can_stomp() + return 0 + +/obj/item/clothing/shoes/proc/handle_stomp() + return 0 \ No newline at end of file diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index 7a1016efa98..b8d2ae95318 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -22,10 +22,36 @@ icon_state = "magboots1" user << "You enable the mag-pulse traction system." user.update_inv_shoes() //so our mob-overlays update - + examine(mob/user) ..(user) var/state = "disabled" if(src.flags&NOSLIP) state = "enabled" - user << "Its mag-pulse traction system appears to be [state]." \ No newline at end of file + user << "Its mag-pulse traction system appears to be [state]." + +/obj/item/clothing/shoes/magboots/can_stomp() + if(!magpulse) + return 0 + +/obj/item/clothing/shoes/magboots/handle_stomp(var/mob/living/carbon/human/target, var/mob/living/carbon/human/user, var/datum/organ/external/affecting) + + if(!(target.lying) || !(user.canmove)) + return 0 + + visible_message("\red [user] raises one of \his magboots over [target]'s [affecting.display_name]...") + + user.attack_move = 1 + + if(do_after(user, 20)) + if(user.canmove && !user.lying && target.Adjacent(user) && target.lying) + visible_message("\red [user] stomps \his magboot down on [target]'s [affecting.display_name] with full force!") + target.apply_damage(rand(20,30), BRUTE, affecting, target.run_armor_check(affecting, "melee")) + playsound(loc, 'sound/weapons/genhit3.ogg', 25, 1, -1) + user.attack_move = 0 + + user.attack_log += text("\[[time_stamp()]\] Magboot-stomped [target.name] ([target.ckey])") + target.attack_log += text("\[[time_stamp()]\] Has been magboot-stomped by [user.name] ([user.ckey])") + msg_admin_attack("[key_name(user)] magboot-stomped [key_name(target)]") + return 1 + return 0 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index eca9bec9ce5..2774d4c3d86 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -708,22 +708,6 @@ number += 2 return number -/mob/living/carbon/human/proc/magboot_stomp(mob/living/carbon/human/H as mob, datum/organ/external/affecting) - visible_message("\red [src] raises one of \his magboots over [H]'s [affecting.display_name]...") - attack_move = 1 - if(do_after(usr, 20)) - if(src.canmove && !src.lying && src.Adjacent(H) && H.lying) - visible_message("\red [src] stomps \his magboot down on [H]'s [affecting.display_name] with full force!") - apply_damage(rand(20,30), BRUTE, affecting, run_armor_check(affecting, "melee")) - playsound(loc, 'sound/weapons/genhit3.ogg', 25, 1, -1) - attack_move = 0 - - src.attack_log += text("\[[time_stamp()]\] Magboot-stomped [H.name] ([H.ckey])") - H.attack_log += text("\[[time_stamp()]\] Has been magboot-stomped by [src.name] ([src.ckey])") - msg_admin_attack("[key_name(src)] magboot-stomped [key_name(H)]") - return 1 - return 0 - /mob/living/carbon/human/get_combat_buff(var/damage) if(check_special_role("Ninja") || check_special_role("Changeling")) damage += 3 // We assume Ninjas and Changelings are slightly better in combat than the usual human diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 1679430589a..1dedd68252d 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -94,121 +94,78 @@ attack_generic(H,rand(1,3),"punched") return + if(attack_move) return 0 + // See if they can attack, and which attacks to use. var/datum/unarmed_attack/attack = H.species.unarmed if(!attack.is_usable(H)) attack = H.species.secondary_unarmed if(!attack.is_usable(H)) return 0 - if(attack_move) return 0 - var/damage = rand(1, 5) + var/damage = rand(1, attack.damage) var/block = 0 var/accurate = 0 - var/target_zone = check_zone(H.zone_sel.selecting) // The zone that was targeted - var/hit_zone = target_zone // The zone that is actually hit + var/hit_zone = H.zone_sel.selecting var/datum/organ/external/affecting = get_organ(hit_zone) - // Check for magboot attack - if(src.lying && H.canmove && !H.lying && H.shoes && istype(H.shoes, /obj/item/clothing/shoes/magboots)) - var/obj/item/clothing/shoes/magboots/mboots = H.shoes - if(mboots.magpulse) - return H.magboot_stomp(src, affecting) + // Check for stomp attack. + if(H.shoes && H.shoes.can_stomp()) + return shoes.handle_stomp(src, H, affecting) switch(src.a_intent) if("help") // We didn't see this coming, so we get the full blow - damage = 5 + damage = attack.damage accurate = 1 if("hurt", "grab") // We're in a fighting stance, there's a chance we block - if(prob(20) && src.canmove && !(src==H)) + if(src.canmove && src!=H && prob(20)) block = 1 if (M.grabbed_by.len) // Someone got a good grip on them, they won't be able to do much damage - damage = max(0, damage - 2) + damage = max(1, damage - 2) if(src.grabbed_by.len || src.buckled || !src.canmove || src==H) accurate = 1 // certain circumstances make it impossible for us to evade punches // Process evasion and blocking + var/miss_type = 0 + var/attack_message if(!accurate) if(prob(80)) - hit_zone = ran_zone(target_zone) + hit_zone = ran_zone(hit_zone) if(prob(15) && hit_zone != "chest") // Missed! - playsound(loc, attack.miss_sound, 25, 1, -1) - var/atk_verb = pick(attack.attack_verb) - visible_message("\red [H] attempted to [atk_verb] [src]!") - visible_message("\red [pick("The [pick(attack.attack_noun)] barely missed their [affecting.display_name]!", "[src] managed to dodge the [pick(attack.attack_noun)] narrowly!")]") + attack_message = "[H] attempted to [pick(attack.attack_verb)] [src], but the [attack.attack_noun] missed!" + miss_type = 1 - H.attack_log += text("\[[time_stamp()]\] attempted to [atk_verb] [src.name] ([src.ckey]) (dodged)") - src.attack_log += text("\[[time_stamp()]\] Dodged attack by [H.name] ([H.ckey])") - msg_admin_attack("[key_name(H)] attempted to [pick(attack.attack_verb)] [key_name(src)] (dodged)") - return 0 - if(block) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - visible_message("\red [H] went for [src]'s [affecting.display_name] but was blocked!") + if(!miss_type && block) + attack_message = "[H] went for [src]'s [affecting.display_name] but was blocked!" + miss_type = 2 - H.attack_log += text("\[[time_stamp()]\] attempted to [pick(attack.attack_verb)] [src.name] ([src.ckey]) (blocked)") - src.attack_log += text("\[[time_stamp()]\] Blocked attack by [H.name] ([H.ckey])") - msg_admin_attack("[key_name(H)] attempted to [pick(attack.attack_verb)] [key_name(src)] (blocked)") + if(!attack_message) + attack.show_attack(H, src, hit_zone, damage) + else + H.visible_message("[attack_message]") + + playsound(loc, ((miss_type) ? (miss_type == 1 ? attack.miss_sound : 'sound/weapons/thudswoosh.ogg') : attack.attack_sound), 25, 1, -1) + H.attack_log += text("\[[time_stamp()]\] [miss_type ? (miss_type == 1 ? "Missed" : "Blocked") : "[pick(attack.attack_verb)]ed"] [src.name] ([src.ckey])") + src.attack_log += text("\[[time_stamp()]\] [miss_type ? (miss_type == 1 ? "Was missed by" : "Has blocked") : "Has Been [pick(attack.attack_verb)]ed"] by [H.name] ([H.ckey])") + msg_admin_attack("[key_name(H)] [miss_type ? (miss_type == 1 ? "has missed" : "was blocked by") : "has [pick(attack.attack_verb)]ed"] [key_name(src)]") + + if(miss_type) return 0 - // Handle the attack logs - attack.combat_log(H, src, hit_zone, damage) - - H.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 [H.name] ([H.ckey])") - msg_admin_attack("[key_name(H)] [pick(attack.attack_verb)]ed [key_name(src)]") - // Apply possible buffs damage = H.get_combat_buff(damage) - var/armor_block = run_armor_check(affecting, "melee") // IMPORTANT: To run armor check after attack log as it produces a log itself - var/numb = rand(0, 100) - if(damage >= 5 && armor_block < 2 && !(src == H) && numb <= damage*5) // 25% standard chance - switch(hit_zone) // strong punches can have effects depending on where they hit - if("head") - // Induce blurriness - visible_message("\red [src] stares blankly for a few moments.", "\red You see stars.") - apply_effect(damage*2, EYE_BLUR, armor_block) - if("l_arm", "l_hand") - if (l_hand) - // Disarm left hand - visible_message("\red [src] [pick("dropped", "let go off")] \the [l_hand][pick("", " with a scream")]!") - drop_l_hand() - if("r_arm", "r_hand") - if (r_hand) - // Disarm right hand - visible_message("\red [src] [pick("dropped", "let go off")] \the [r_hand][pick("", " with a scream")]!") - drop_r_hand() - if("chest") - if(!src.lying) - visible_message("\red [pick("[src] was sent flying backward a few metres!", "[src] staggers back from the impact!")]") - step(src, get_dir(get_turf(M), get_turf(src))) - apply_effect(0.4*damage, WEAKEN, armor_block) - if("groin") - visible_message("\red [src] looks like \he is in pain!", (gender=="female")?"\red Oh god that hurt!":"\red Oh no, not your[pick("testicles", "crown jewels", "clockweights", "family jewels", "marbles", "bean bags", "teabags", "sweetmeats", "goolies")]!") - apply_effects(stutter=damage*2, agony=damage*3, blocked=armor_block) - if("l_leg", "l_foot", "r_leg", "r_foot") - if(!src.lying) - visible_message("\red [src] gives way slightly.") - apply_effect(damage*3, AGONY, armor_block) - else if(damage >= 5 && !(src == H) && numb+damage*5 >= 100 && armor_block < 2) // Chance to get the usual throwdown as well (25% standard chance) - if(!src.lying) - visible_message("\red [src] [pick("slumps", "falls", "drops")] down to the ground!") - else - visible_message("\red [src] has been weakened!") - apply_effect(3, WEAKEN, armor_block) - - // Sum up species damage bonus at the very end so xenos don't get buffed stun chances - damage += attack.damage // 3 for human/skrell, 5 for tajaran/unathi - - playsound(H.loc, attack.attack_sound, 25, 1, -1) + var/armour = run_armor_check(affecting, "melee") + // Apply additional unarmed effects. + attack.apply_effects(H,src,armour,damage,hit_zone) // Finally, apply damage to target - apply_damage(damage, BRUTE, affecting, armor_block, sharp=attack.sharp, edge=attack.edge) + apply_damage(damage, BRUTE, affecting, armour, sharp=attack.sharp, edge=attack.edge) if("disarm") M.attack_log += text("\[[time_stamp()]\] Disarmed [src.name] ([src.ckey])") diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 72b7d1f1db7..8d85c914de9 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -45,7 +45,7 @@ //Equipment slots var/obj/item/wear_suit = null var/obj/item/w_uniform = null - var/obj/item/shoes = null + var/obj/item/clothing/shoes/shoes = null //Why aren't we defining all of these as their most commonly used object type? var/obj/item/belt = null var/obj/item/gloves = null var/obj/item/glasses = null diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 50ae104da5f..c15ef31be70 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -493,154 +493,6 @@ return 0 -//Species unarmed attacks -/datum/unarmed_attack - var/attack_verb = list("attack") // Empty hand hurt intent verb. - var/attack_noun = list("fist") - var/damage = 0 // Extra empty hand attack damage. - var/attack_sound = "punch" - var/miss_sound = 'sound/weapons/punchmiss.ogg' - var/shredding = 0 // Calls the old attack_alien() behavior on objects/mobs when on harm intent. - var/sharp = 0 - var/edge = 0 - -/datum/unarmed_attack/proc/is_usable(var/mob/living/carbon/human/user) - if(user.restrained()) - return 0 - - // Check if they have a functioning hand. - var/datum/organ/external/E = user.organs_by_name["l_hand"] - if(E && !(E.status & ORGAN_DESTROYED)) - return 1 - - E = user.organs_by_name["r_hand"] - if(E && !(E.status & ORGAN_DESTROYED)) - return 1 - - return 0 - -/datum/unarmed_attack/proc/combat_log(mob/living/carbon/human/M as mob, mob/living/carbon/human/T as mob, zone, damage) - var/datum/organ/external/affecting = T.get_organ(zone) - M.visible_message("[M] [pick(attack_verb)] [T] in the [affecting.display_name]!") - playsound(M.loc, attack_sound, 25, 1, -1) - -/datum/unarmed_attack/bite - attack_verb = list("bite") // 'x has biteed y', needs work. - attack_sound = 'sound/weapons/bite.ogg' - shredding = 0 - damage = 3 - sharp = 0 - edge = 0 - -/datum/unarmed_attack/bite/eye_tooth - attack_verb = list("bite") // 'x has biteed y', needs work. - attack_sound = 'sound/weapons/bite.ogg' - shredding = 0 - damage = 5 - sharp = 1 - edge = 1 - -/datum/unarmed_attack/bite/is_usable(var/mob/living/carbon/human/user) - if (user.wear_mask && istype(user.wear_mask, /obj/item/clothing/mask/muzzle)) - return 0 - return 1 - -/datum/unarmed_attack/punch - attack_verb = list("punch") - attack_noun = list("fist") - damage = 3 - -/datum/unarmed_attack/punch/combat_log(mob/living/carbon/human/M as mob, mob/living/carbon/human/T as mob, zone, damage) - var/skill = M.skills["combat"] - var/datum/organ/external/affecting = T.get_organ(zone) - var/organ = affecting.display_name - - if(!skill) skill = 1 - damage = Clamp(damage, 1, 5) - - if(T == M) - M.visible_message("\red [M] [pick(attack_verb)]ed \himself in the [organ]!") - return 0 - if(!T.lying) - switch(zone) - if("head") - // ----- HEAD ----- // - switch(damage) - if(1 to 2) M.visible_message("\red [M] slapped [T] across \his cheek!") - if(3 to 4) M.visible_message("\red [M] struck [T] in the head[pick("", " with a closed fist")]!") - if(5) M.visible_message("\red [M] gave [T] a resounding slap to the face!") - if("chest", "l_arm", "r_arm", "l_hand", "r_hand") - // -- UPPER BODY -- // - switch(damage) - if(1 to 2) M.visible_message("\red [M] slapped [T]'s [organ]!") - if(3 to 4) M.visible_message("\red [M] [findtext(zone, "hand")?"[pick(attack_verb)]ed":pick("[pick(attack_verb)]ed", "shoulders")] [T] in \his [organ]!") - if(5) M.visible_message("\red [M] rammed \his [pick(attack_noun)] into [T]'s [organ]!") - if("groin", "l_leg", "r_leg") - // -- LOWER BODY -- // - switch(damage) - if(1 to 2) M.visible_message("\red [M] gave [T] a light kick to the [organ]!") - if(3 to 4) M.visible_message("\red [M] [pick("kicked", "kneed")] [T] in \his [organ]!") - if(5) M.visible_message("\red [M] landed a strong kick against [T]'s [organ]!") - if("l_foot", "r_foot") - // ----- FEET ----- // - switch(damage) - if(1 to 4) M.visible_message("\red [M] kicked [T] in \his [organ]!") - if(5) M.visible_message("\red [M] stomped down hard on [T]'s [organ]!") - else if (M.loc != T.loc) - M.visible_message("\red [M] [pick("stomped down hard on", "kicked against", "gave a strong kick against", "rams their foot into")] [T]'s [organ]!") - else - M.visible_message("\red [M] [pick("punches", "throws a punch", "strikes", "slaps", "rams their [pick(attack_noun)] into")] [T]'s [organ]!") - - -/datum/unarmed_attack/diona - attack_verb = list("lash", "bludgeon") - attack_noun = list("tendril") - damage = 5 - -/datum/unarmed_attack/claws - attack_verb = list("scratch", "claw", "goug") - attack_noun = list("claws") - attack_sound = 'sound/weapons/slice.ogg' - miss_sound = 'sound/weapons/slashmiss.ogg' - damage = 5 - sharp = 1 - edge = 1 - -/datum/unarmed_attack/claws/combat_log(mob/living/carbon/human/M as mob, mob/living/carbon/human/T as mob, zone, damage) - var/skill = M.skills["combat"] - var/datum/organ/external/affecting = T.get_organ(zone) - var/organ = affecting.display_name - - if(!skill) skill = 1 - damage = Clamp(damage, 1, 5) - - if(T == M) - M.visible_message("\red [M] [pick(attack_verb)]ed \himself in the [organ]!") - return 0 - - switch(zone) - if("head") - // ----- HEAD ----- // - switch(damage) - if(1 to 2) M.visible_message("\red [M] scratched [T] across \his cheek!") - if(3 to 4) M.visible_message("\red [M] [pick(attack_verb)]ed [pick("", "the side of")][T] [pick("head", "neck")][pick("", " with spread [pick(attack_noun)]")]!") - if(5) M.visible_message("\red [M] [pick(attack_verb)]ed [T] across \his face!") - if("chest", "l_arm", "r_arm", "l_hand", "r_hand", "groin", "l_leg", "r_leg", "l_foot", "r_foot") - // ----- BODY ----- // - switch(damage) - if(1 to 2) M.visible_message("\red [M] scratched [T]'s [organ]!") - if(3 to 4) M.visible_message("\red [M] [pick(attack_verb)]ed [pick("", "the side of")][T]'s [organ]!") - if(5) M.visible_message("\red [M] digs \his [pick(attack_noun)] deep into [T]'s [organ]!") - -/datum/unarmed_attack/claws/strong - attack_verb = list("slash") - damage = 10 - shredding = 1 - -/datum/unarmed_attack/bite/strong - attack_verb = list("maul") - damage = 15 - shredding = 1 /datum/hud_data var/icon // If set, overrides ui_style. diff --git a/code/modules/mob/living/carbon/human/unarmed_attack.dm b/code/modules/mob/living/carbon/human/unarmed_attack.dm new file mode 100644 index 00000000000..fad9efc5216 --- /dev/null +++ b/code/modules/mob/living/carbon/human/unarmed_attack.dm @@ -0,0 +1,193 @@ +//Species unarmed attacks +/datum/unarmed_attack + var/attack_verb = list("attack") // Empty hand hurt intent verb. + var/attack_noun = list("fist") + var/damage = 0 // Extra empty hand attack damage. + var/attack_sound = "punch" + var/miss_sound = 'sound/weapons/punchmiss.ogg' + var/shredding = 0 // Calls the old attack_alien() behavior on objects/mobs when on harm intent. + var/sharp = 0 + var/edge = 0 + +/datum/unarmed_attack/proc/is_usable(var/mob/living/carbon/human/user) + if(user.restrained()) + return 0 + + // Check if they have a functioning hand. + var/datum/organ/external/E = user.organs_by_name["l_hand"] + if(E && !(E.status & ORGAN_DESTROYED)) + return 1 + + E = user.organs_by_name["r_hand"] + if(E && !(E.status & ORGAN_DESTROYED)) + return 1 + + return 0 + +/datum/unarmed_attack/proc/apply_effects(var/mob/living/carbon/human/user,var/mob/living/carbon/human/target,var/armour,var/attack_damage,var/zone) + + var/stun_chance = rand(0, 100) + + // Reduce effective damage to normalize stun chance across species. + attack_damage = min(1,attack_damage - damage) + + if(attack_damage >= 5 && armour < 2 && !(target == user) && stun_chance <= attack_damage * 5) // 25% standard chance + switch(zone) // strong punches can have effects depending on where they hit + if("head") + // Induce blurriness + target.visible_message("[target] stares blankly for a few moments.", "You see stars.") + target.apply_effect(attack_damage*2, EYE_BLUR, armour) + if("l_arm", "l_hand") + if (target.l_hand) + // Disarm left hand + target.visible_message("[src] [pick("dropped", "let go off")] \the [target.l_hand][pick("", " with a scream")]!") + target.drop_l_hand() + if("r_arm", "r_hand") + if (target.r_hand) + // Disarm right hand + target.visible_message("[src] [pick("dropped", "let go off")] \the [target.r_hand][pick("", " with a scream")]!") + target.drop_r_hand() + if("chest") + if(!target.lying) + target.visible_message("[pick("[target] was sent flying backward a few metres!", "[target] staggers back from the impact!")]") + var/turf/T = step(src, get_dir(get_turf(user), get_turf(target))) + if(T.density) // This will need to be expanded to check for structures etc. + target.visible_message("[target] slams into [T]!") + else + target.loc = T + target.apply_effect(attack_damage * 0.4, WEAKEN, armour) + if("groin") + target.visible_message("[target] looks like \he is in pain!", "[(target.gender=="female") ? "Oh god that hurt!" : "Oh no, not your[pick("testicles", "crown jewels", "clockweights", "family jewels", "marbles", "bean bags", "teabags", "sweetmeats", "goolies")]!"]") + target.apply_effects(stutter = attack_damage * 2, agony = attack_damage* 3, blocked = armour) + if("l_leg", "l_foot", "r_leg", "r_foot") + if(!target.lying) + target.visible_message("[src] gives way slightly.") + target.apply_effect(attack_damage*3, AGONY, armour) + else if(attack_damage >= 5 && !(target == user) && (stun_chance + attack_damage) * 5 >= 100 && armour < 2) // Chance to get the usual throwdown as well (25% standard chance) + if(!target.lying) + target.visible_message("[pick("slumps", "falls", "drops")] down to the ground!") + else + target.visible_message("[target] has been weakened!") + target.apply_effect(3, WEAKEN, armour) + +/datum/unarmed_attack/proc/show_attack(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone, var/attack_damage) + var/datum/organ/external/affecting = target.get_organ(zone) + user.visible_message("[user] [pick(attack_verb)] [target] in the [affecting.display_name]!") + playsound(user.loc, attack_sound, 25, 1, -1) + +/datum/unarmed_attack/bite + attack_verb = list("bite") // 'x has biteed y', needs work. + attack_sound = 'sound/weapons/bite.ogg' + shredding = 0 + damage = 3 + sharp = 0 + edge = 0 + +/datum/unarmed_attack/bite/eye_tooth + attack_verb = list("bite") // 'x has biteed y', needs work. + attack_sound = 'sound/weapons/bite.ogg' + shredding = 0 + damage = 5 + sharp = 1 + edge = 1 + +/datum/unarmed_attack/bite/is_usable(var/mob/living/carbon/human/user) + if (user.wear_mask && istype(user.wear_mask, /obj/item/clothing/mask/muzzle)) + return 0 + return 1 + +/datum/unarmed_attack/punch + attack_verb = list("punch") + attack_noun = list("fist") + damage = 3 + +/datum/unarmed_attack/punch/show_attack(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone, var/attack_damage) + var/skill = user.skills["combat"] + var/datum/organ/external/affecting = target.get_organ(zone) + var/organ = affecting.display_name + + if(!skill) skill = 1 + + if(target == user) + user.visible_message("\red [user] [pick(attack_verb)]ed \himself in the [organ]!") + return 0 + + if(!target.lying) + switch(zone) + if("head") + // ----- HEAD ----- // + switch(attack_damage) + if(1 to 2) user.visible_message("\red [user] slapped [target] across \his cheek!") + if(3 to 4) user.visible_message("\red [user] struck [target] in the head[pick("", " with a closed fist")]!") + if(5) user.visible_message("\red [user] gave [target] a resounding slap to the face!") + if("chest", "l_arm", "r_arm", "l_hand", "r_hand") + // -- UPPER BODY -- // + switch(attack_damage) + if(1 to 2) user.visible_message("\red [user] slapped [target]'s [organ]!") + if(3 to 4) user.visible_message("\red [user] [findtext(zone, "hand")?"[pick(attack_verb)]ed":pick("[pick(attack_verb)]ed", "shoulders")] [target] in \his [organ]!") + if(5) user.visible_message("\red [user] rammed \his [pick(attack_noun)] into [target]'s [organ]!") + if("groin", "l_leg", "r_leg") + // -- LOWER BODY -- // + switch(attack_damage) + if(1 to 2) user.visible_message("\red [user] gave [target] a light kick to the [organ]!") + if(3 to 4) user.visible_message("\red [user] [pick("kicked", "kneed")] [target] in \his [organ]!") + if(5) user.visible_message("\red [user] landed a strong kick against [target]'s [organ]!") + if("l_foot", "r_foot") + // ----- FEET ----- // + switch(attack_damage) + if(1 to 4) user.visible_message("\red [user] kicked [target] in \his [organ]!") + if(5) user.visible_message("\red [user] stomped down hard on [target]'s [organ]!") + else if (user.loc != target.loc) + user.visible_message("\red [user] [pick("stomped down hard on", "kicked against", "gave a strong kick against", "rams their foot into")] [target]'s [organ]!") + else + user.visible_message("\red [user] [pick("punched", "threw a punch", "struck", "slapped", "rammed their [pick(attack_noun)] into")] [target]'s [organ]!") + + +/datum/unarmed_attack/diona + attack_verb = list("lash", "bludgeon") + attack_noun = list("tendril") + damage = 5 + +/datum/unarmed_attack/claws + attack_verb = list("scratch", "claw", "goug") + attack_noun = list("claws") + attack_sound = 'sound/weapons/slice.ogg' + miss_sound = 'sound/weapons/slashmiss.ogg' + damage = 5 + sharp = 1 + edge = 1 + +/datum/unarmed_attack/claws/show_attack(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone, var/attack_damage) + var/skill = user.skills["combat"] + var/datum/organ/external/affecting = target.get_organ(zone) + + if(!skill) skill = 1 + attack_damage = Clamp(attack_damage, 1, 5) + + if(target == user) + user.visible_message("\red [user] [pick(attack_verb)]ed \himself in the [affecting.display_name]!") + return 0 + + switch(zone) + if("head") + // ----- HEAD ----- // + switch(damage) + if(1 to 2) user.visible_message("\red [user] scratched [target] across \his cheek!") + if(3 to 4) user.visible_message("\red [user] [pick(attack_verb)]ed [pick("", "the side of")][target] [pick("head", "neck")][pick("", " with spread [pick(attack_noun)]")]!") + if(5) user.visible_message("\red [user] [pick(attack_verb)]ed [target] across \his face!") + if("chest", "l_arm", "r_arm", "l_hand", "r_hand", "groin", "l_leg", "r_leg", "l_foot", "r_foot") + // ----- BODY ----- // + switch(damage) + if(1 to 2) user.visible_message("\red [user] scratched [target]'s [affecting.display_name]!") + if(3 to 4) user.visible_message("\red [user] [pick(attack_verb)]ed [pick("", "the side of")][target]'s [affecting.display_name]!") + if(5) user.visible_message("\red [user] digs \his [pick(attack_noun)] deep into [target]'s [affecting.display_name]!") + +/datum/unarmed_attack/claws/strong + attack_verb = list("slash") + damage = 10 + shredding = 1 + +/datum/unarmed_attack/bite/strong + attack_verb = list("maul") + damage = 15 + shredding = 1 \ No newline at end of file From 309cf59f717ba472dc683b480f16cc68b3f24e4e Mon Sep 17 00:00:00 2001 From: Amunak Date: Sat, 29 Nov 2014 19:59:06 +0100 Subject: [PATCH 02/56] Supermatter shards now don't announce anything --- code/modules/supermatter/supermatter.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm index 8e74323d6e7..496f823d4db 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -149,7 +149,7 @@ alert_msg = safe_alert lastwarning = world.timeofday - if(!istype(L, /turf/space) && alert_msg) + if(!istype(/obj/machinery/power/supermatter/shard) && !istype(L, /turf/space) && alert_msg) radio.autosay(alert_msg, "Supermatter Monitor") if(damage > explosion_point) @@ -363,4 +363,4 @@ return /obj/machinery/power/supermatter/RepelAirflowDest(n) - return \ No newline at end of file + return From cc576db68365979a3c74d35d7c334233db4cff39 Mon Sep 17 00:00:00 2001 From: Amunak Date: Sat, 29 Nov 2014 20:33:37 +0100 Subject: [PATCH 03/56] Fixed compile error because I don't know how istype() works --- code/modules/supermatter/supermatter.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm index 496f823d4db..c2a8d2ebf76 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -149,7 +149,7 @@ alert_msg = safe_alert lastwarning = world.timeofday - if(!istype(/obj/machinery/power/supermatter/shard) && !istype(L, /turf/space) && alert_msg) + if(!istype(src, /obj/machinery/power/supermatter/shard) && !istype(L, /turf/space) && alert_msg) radio.autosay(alert_msg, "Supermatter Monitor") if(damage > explosion_point) From 9cf2b467b98669f7753e248a0deb363cbbdefb15 Mon Sep 17 00:00:00 2001 From: Neerti Date: Sat, 29 Nov 2014 14:49:08 -0500 Subject: [PATCH 04/56] Fixes the 'drone' sprite for borgs. The eyes are now actual eye sprites instead of attached to the base sprite. No more pumping 40 shots into a secborg and wondering why it won't die. Adds option for medical module to use the medical drone sprite. Adds sprite for surgery and mining. Mining will no longer use a medical sprite (why???) --- .../modules/mob/living/silicon/robot/robot.dm | 5 +++-- icons/mob/robots.dmi | Bin 160146 -> 155563 bytes 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 3db1a97d7e8..32c4b062d81 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -249,7 +249,7 @@ var/list/robot_verbs_default = list( module_sprites["Basic"] = "Miner_old" module_sprites["Advanced Droid"] = "droid-miner" module_sprites["Treadhead"] = "Miner" - module_sprites["Drone"] = "drone-medical" + module_sprites["Drone"] = "drone-miner" if("Crisis") module = new /obj/item/weapon/robot_module/crisis(src) @@ -260,6 +260,7 @@ var/list/robot_verbs_default = list( module_sprites["Standard"] = "surgeon" module_sprites["Advanced Droid"] = "droid-medical" module_sprites["Needles"] = "medicalrobot" + module_sprites["Drone" ] = "drone-medical" if("Surgeon") module = new /obj/item/weapon/robot_module/surgeon(src) @@ -271,7 +272,7 @@ var/list/robot_verbs_default = list( module_sprites["Standard"] = "surgeon" module_sprites["Advanced Droid"] = "droid-medical" module_sprites["Needles"] = "medicalrobot" - module_sprites["Drone"] = "drone-medical" + module_sprites["Drone"] = "drone-surgery" if("Security") module = new /obj/item/weapon/robot_module/security(src) diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi index 28f4696dc57a912127e01e67287bf4a84e093224..04202fe3134ef304cf6dfa972d319d99df312195 100644 GIT binary patch literal 155563 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 E01vtC-v9sr literal 160146 zcmagF1yog0_b<9>l~lSr6a=M9KtensASf-Nba%HPC@G*Ic_`^l>5`J}Zjo*daj3VB z-}k@wzH#3eZwxl)>^OU`wPyY1Z_fSsm6AOE9jZGJ1mVM;%c?>U#v*FFg$<6Bv6Fd& z9V3r7nohFDj)o5Ac24HDHW1{NR2bJ1F(XJ6G%);{sC($mJD5wE=e}`is0*%eoVe7} z&xY~$+wTTd&^CAzx)4v5{)*CBH<&!TrgS`Z6u#upoA>d(VbZJK+qm0B?ev~mz3Jh| zA0wy9&~T1W{;2@-lcmdc98xK(UpUFW&xx(OLc=wGbVt0w)w7b7kO~o2eHQf~B`1VE zPxv!g*YkG&7ud3z?=%>d!1+s!+Gjzcr+RC?{kW&c=lqVuh+Y&>l9HP8PqS?+TQ-(@3OFkv`ea zq*^~N7W&*?Xorib{i>q;6N&36I5_(nbx;F!5Pt>3A1S66#YfK59UnUJr?)-S;qS5< zquDq6>kcgDeT~$NT>m8r(FCgH?DtZJjA2wIG*z?G^HpQCx!3>?3V8AJk zg+YPS-SXaHf`a$oMhfrPkH`>87>+!2!RKH)^P$(h;cbftp zSf)5#VyfgyE;5gOtvCBluDx|d3#_-yUUQ0Z^1NOa%kY1Ir`4b_Pc5k*<-FeKt)&uH zWWO2zV!VpE=J%>hjc|>3{v{o@uHiOEeXq3mk*?klrg*`;>ffH0#KvCl`j-n|`OxAY z9WR!PII=F?Cz3KDM0Ak|Ys!~?-Qu4z+^5AZy~`O-&P#u-%4OUb+g^OY9P7iC1Evotx)wlPxma*?|nflloY^yrVSw2H2ns$3_ z^kA393l=JG*7DI){+`osB2(OJ+dqo1XV=MWPG8PblhpZDXIr!t&RG=Bo$_xcrXx3b z6gO4Qja)zVJPGT~rrG$VyZYjqOX1v$Gcs~?ppBwEa!y-Go|^h6JZMOrH;&W&Jn54F zZP#5jL-~WB6qS-Wy z{Lfi%#2y0sx@2l<17D2YDYiW9CYxvA|GmS=*dlh)$SRSX3iyKtvnwi&smBp8<2Pz! zvMQrVqnR@cTL_!Ga`rhfNPezmWj62sK1r!_y#h@`P2dO5wPxqQ3;kH*@UeE^M-;ty zAEl|FA#-c=p0gO(!pZ>y1)gXgEgm+Xw*(wANbg*!VWq%J*)YRu7Q8kZ)L^||IdBoS zqKxf5?rd;->nuhNu15O?MwRnocq)%YxBEHV`LY+Gwa$iH@ZXC*s~zY>qnTPuYqg2` zkRgBk_<`=eTX7o?6TJz7s%Lbw^EOxW@?n~dVBXH zJIkq>)gfwG6`IAb68}cQgMJYT#g;@!QXYqDewKg5YF_yOmak=29w9k~KubD!SmMQ= zVe#+$`8gbZqcu$1e}k?c6c)pgmuF#9t;67}HPLAf7D5~Tz0u&&t!Kz`=ok+>!1wvk zS^TD>Dm5&cUryz__g-dKdt5rl>EmHjT1jGWwP^n8^jk2Z8+j-%#NT!O+@R^+Tn_LpCUHk{^$f(u#wxwjjeNs=+Xk}%V^Q8;YEgu22ab7=eH{Ku$s*&$ zu!T??ZpoV<3ds*6*fbC~2HWL5x4G_ZA%Ell+%QWl>81v4?SCsMK_}W7uTc^KbB}}S z%SOhK&(n{pJ>!}$~SWv9#T9G;ML zwvhC{2X5&mD^(bVo_Tr5B#sbVNc{F<#`A+A%^98WkpuQbiKj0PemvLg1e#K?)oelb z*3bJ=X-ff{R(s(rB{?VB=_3n_Tp{|H4~lpw(;@0Jj-*j4YdO5M#kx&xSB700f7c*6 z%@KY4pnRC!lF(C}PB^VNFK^>)*Wl4vAxDU5X!`f8yv>I;)t(RB2l@}1l~7Nrz#hVZ z-~*<$*p=UeaNekSk8dHalemxE#7}poE4Px;)6@0quaR3qqZ1PYSo@Ujzy{}yzxiYm z^ezKK84>+)hDE=1rnN=fI~?IMq4+IxO!W`iqPbY*^anXG{E-Vjf~qWpIiDHIln!A_ zh{iS8L#^G7C;lSPE@la%YH?pQOAQmeyG%MU52O4n<|(`l#umMCxuA7VaPbe*BlVLX zb*`U{Xq#Rm%eX8L@RH|{z=|Goy4KAZgN0rITgA+d&(v8XM+kAjAW&vY?`UIz_xwJ` zvIhQA&A(4>rdJN0J85x{h@MQD!oLad^VjE_Pm`1DIt`WEREtdzc!M90D4Q)e8feY&hHBs7@?lY~;k&85TB=2U->1+rSNn5SJhfqJ) zP=ES5QscY2J~VE$&8z~=QmSflDi+KGII!qrxcYi|1iaEGJ@fauBw4}Ao)WU#?bK>`YtPE!Yy z$MI=eIL7vCM-t1V4R$*D=j8=Fp&NMGw6L&v;5LpSY?2|dbr!#s_>}wjeH5O;*Gb^Z zw6;bl%B@X;9;vXvYKf$3-`$+TqMbzi*hBq<3Wr~ih^?3w>c8Ak{>Ji9uOqqM)c$e} zO_*}(rsMh4ODGt!dVn(@TJK6miLfkpsA5dQl(>arF#AFh& zXSWauv2}Acj3jq%&w1abLCs01u96Rf$?GK4h&J}3bW||k?=ElX%wD2rQzR?mp&JQzYWo4z;%v|^@DA+mhMsl9;RsBl^*BXog z)C3P0f|?8H$Tk<=tH$c#(Qsi8lgdpQoG`Mpt=V&2XO6JXafTxWjrDxd4PF@CD9io! z=*OUr@ z{?c_L=-+~x=qAksX#MTCkX5d|{%P?KpL*8fF1%S2 zL)z~BPyORM-!iE~{fV7S#L8|iLi`3o{WMr$ztQXhmK@uI{Tq^X6S!_Ko95XT$jdLT z`TAT}f7tc8mMkyCuMLe-B0(tzAtt(A-5l+8(j0 z8$KpFbMNtt#my^@HzrXi#oi=mbP-y6^G_uHzqtQ$)k8aTLxefe6+drrXmI60D?s_F z?e{Ofhf_E{ttk7;dDesZUb^^j>KrKRUBL z(O5@?LA`XcpLubaEjQ5KW$Wmlx#6?9gjP6ks;DLoOJ?3MyZ77W{)*%s21J zY0YRoL_I$eYwL*K5Qf+g-u^g6%%25T&gARM0UKs2w+?BGId-BNKVZ+0cydnezWYW< zO)Wa>6sz$eb_68+5GoJ#cMPAI!}PNKNQd$bogWbAkpcxPYil>V_See782w8uxMf_* z`xjSII0Io(`dg;LTu7O2bml?3RJo2yRap^nr-<8y zqj0W*EAnOy1?KL`J$^`mcj8btr&zExJoj!6G4($;pdskIo!O;5+Rfh``vBJT0G;4L z$YI%>b^-82150)V8Ev|Qaw?-nT1wqEozTVEYhC@=RZ}??ukly2)PBs)D4X?ej;Gu; zJeV|$#G3a$ovX%gkEoPv76evjvO@U!_V__|tpsXiwIyM>n1i9ttg8NRZmvsFP)f_t z`SNx+n&}fhA=DMBk`#DVme%j zf11vbB1m%6v2q~HNa$ycf*KB5(MCWabBk<){w&rOqkaSr9EHv(w_ar4$-TZZr1j0) zN*q!fxVcSfXNb*BS>~YBit-N6XvX1Ki#amdJ51jqd<&d&lYjrl4rrMPCZHAVeN{iY zcI3VGrO~`5;DB$8=b4*1NrKVk(<)q)-UNScWPwrj?D;)_tt5|vCp_57kAA}i8~)}r zrSD$@JrhnN%se?z4mu)KK&=5i8}jlJ?siElxS00p`J__SSaxWXWb%vJ=$Gh z1!Cm3OP#4GlLY9sQG){>4Ixts}yJVu2%0 zi|dka#47P96(1Nk_x%H$*+g>o(HtSJ-@mSXN*7L$OIF2?Ew>9z7w%p;NHXS7!r9Mz zy))oJ<}i*-8f`D+K<~Mo8sb;mb?=R6d$V)9U(fA-@!WM&T8s?GFMAK|WXQP9@AbVe zOQ;cPZ8@qYvIyTeWjix9ADdJ;88vy16@5R(aG64J)Fdb=m)WE++Z4f_h5 z@Yu7vq@!9#CF>Yx^!XE8CinLec~ zu+!(!PAbH9ol1*LZ5LB=Qr`g5Bu8sdgO!bbVR;Gy4~+H_I(dx2Cje$%#NMx<;7GJJCz0N9aaRY*sy7pBcA88f z=@8UnPy(OXAt)_Uevpxu2jKkTA6~ca(QB?{;INRV?34&yZgP{}?@P~VfB*hnF+Dx4 zzN$nU-~}6gkOP|!D}F8ItM)OyHw-b2c2z?fqIz$u5(7#6fMgY+Sxh_FR4c7AABm{t zv^PnoH+nL|^n_MCR5T}=pQ!mhlrbA}_*7?RCKVtG6C`&WE*2IRa_fgeoalY{A(H=J z;wNU@Cka$)qo=IEy+NF3J2&uyjejc}tvQ zh2;hpsT+hF7__hC{8o`{tL|VZ6QO#^IF4OMb@O3zSYC^$k2(si16WAl<-G&~UhXRBTEQ;@x;4?MuwQ~!G9i^=Uym!rX& zI|;K!xyj;!0$CRqmr?y}gl*kURZf%AR(Tk_W5)$IHwg`uEnL0gV8IM{Dled*pny1V z0r?Sik4+aK7_hxpT>HDZym%`ldw{K$Uti@G6#U8xr_Q(*g_)RS6~Q9>M+Q3^%F3d< z6(It4HAY7QCzoCSz`9h7C9DB0Mmcm1Rv71pav@9>*n_P1H{DNTy>Zrt8(*@lB;<7@{x`{{+56A~U<$C5Tp0$ULDkYLG(j*c z)2oY^xVT_NYN2OW&I$GP;{1Ywo1LxQ-0RTsiqa-no1_3d&-Ly7U?obspefTd;rExC z&TZW2c9eelL0c~}_sHP_0k=zlWc2OPz(vhtNI8YTlTC$W&pY@V=FM0Pd9q^K}va+5{n52OS zE=mZ;N{%@`ru|xo*39f^l985%rlqA-SjD&+$*qG12|J|rmxV^73{03t$>O!DYI-H& zg3opL?TnA>C!d8z@1cAR9vWdgNMOP@BI);A8WD$IF5aoe*iI{t&CJZ~wx50H>Pd)~ zXudY#2yQc%^rGEYlJ4*odqN;S=4RAyC0=WV_51n|eb&Y`Uw%qouQ{VfeKAU;yhb88 z2K`g|nWqYgF9wvCC(%f?zd|BL=$&eGW76(kdG6NWXxJ`9 zVBioy&@=1CTl9)~WxDW=Rfn{nKQ$wLrz^}oXm`fhs7A6BM-ZW*p-T=m+p&M`gvmy7 zxz}?;9>6q6(B#pQbnxDG*GlA~KaMkrA;`^3;6-*u&>E%#>Z7?Jw3H)+5F|dGIVk2J zsR-BBx9SV)z#Fyp2wJgMIy%(GXXyTr%l4#yTQFhU7D77KSfQ?+_{#Tkh5qNxh;r%q z|D`9-cIMy9%YGaBeYRF%g z#QchFz4|xWzG27uBtP~XYOF4<>JZ~POGoF62oJ>P37ZCl`W%s1OO|4y-Bw{Wy3`xp z=aj*18&s1f&8(q#n&}s%77is$i*xT6J8k5&WaH>@^lUf`vfK|*rFNHi9-Vnp zAr0srE<|@^Q`F_9S1(+M@cjJzyO6DfNq^GR15T^h>gf1* z)z!PuRDte;1CNFX<3$l5WfpI2@!QzyaGXUJhy;V0*_aQF2E8Pg#*OE2UdxE)r;dsQ zH?~B%^uG)m_s*S{J)E4JrDj9v-}zEIkV&M-UtVi#Yg=ryFmH&6=?Qn`&CF!lfb-Wk z1DPn2qH$u&_&y=@xyYWsXh(4xMW!HPpsXGECJ70Ntl}eeFf=I!z&K?~qWk;VNCBVw zF(?RI!S}}O3RqX_<*XwbbaB}j;pgY~Yh;81ZJj(D^yF`pKhxESC@&nR+J3bY zPWqFjh|yom$(L{3!O;OtlDaFAz4c0GAM|8kfV$9I6{7wn_pVxu|FYs^WI~61|AfA; z_oyY(JAZsNEZa6yY%{wS?H~G!>|9x23p?{_3=Dhoh@t|-%YT&3S`-itjL3I*ofzW< zUh2YLByT{)dHKp|G4N&Q6K^pTM@r6js-u#V!~1NT@S(1zzf?NM;a{lHF&$)>h;B`$ zn_>@Tl<&ICIW5`=pS+u4u`1xpCOagCFd&i|($(DOS_AG<7*Jm!2Q|R*nH;~-kTP*- z#Le?fF792rdS&%w@t?SOcz7)8!ou*psSiasYd^+sXmHKkW*{c5AszgSCWU2lIk@t@ zQ7TI_exfW{_kjHc1JNg{m=wSf197Oah^AE6{TiTZT8Mnb@e6R87yra`;F?)grS3~R z;G}(iA-|Ws+;GZp3th=FAq9;b6ODAQ!8Ek-Zbm74)4)nccpLCQToZiD4mIyBrkqFo z+m}gz3F(rh?zWv4OOSlYG8WlVb(LjR0;g3@!*^ic-uSM z!$vS7kU2dzA3LNc)xCA|gZUvaV2+91^>jGk&6qita**2Tf0e?H_Z5EYr)W)OT+` z$!A-BPwT5O=K8_N#y8)fkTB2|{Y%;-?l^^k4>5Sc_c2;!OfG$zejtxCZ2*!2QVf`@ zb2a=`v-bXUcMeD}fx}zO6aOx4(?an=7=zY62y$P)ew}nFd;37;6hU)q;qK|VmkM#4lhD=d?5sLr-ErOj zFeRqm7z||T9P{{#83vDpN0n&D4_ws%cKJHIW2=T@yB6qq56GVoBnbu>-FuYpd(-up z0m*_(P+`<$ekH|V5Z_2?G;XgIi%29a?0Xn4nJ3&emp~Wh=;6t&22~jb-LUvwQ3}2lcCxtXg^`{=Zm^QTFoG=t^$? zGgo(59A6om$sc)Z z3F)E{CaQDUX^ot-sn5v!x%dHh@NB1Am}Dbw4|sXR?;Xv^q{jQw^pQXuM#jc1Mb1AJ zUcBJvC4i5!e5oyMH1Aomo0bP!sTse$OfgW{@v`arFv~#lCR_1~;p4{U>h|WlP&Sr< z%VWDD`?^HGy~0656x{{nbYVFlf1p`P_g|oo1RC z{_H0>Qqtpv(L7t@h~@C|RwlupEDR8zL@VOa)+(O;-z>`O2ZJfB@!R~#|I!)e|C@)Y zncK}2?G&E+7dJra5nSn`<7~HCEkua|exl05#TYiS(JbMJVKW=KDFP@Y-O8Txx4K%i z4=Zf=p%SPi0r;k9Zl3$)+qZU5;UMYQJ8h!G!}csIl79d=3lasMw}0dvhK=BLT)+#cK~sZ?6d(*0-KMVZ9QmettH{5f(sL@=iHCIm ziMgljvVbF`1IFWtVV9}&k4!1i-TmZzfw3Lu`92p6zSFADo|m&OhDb4%FOpq`7GS|; zmI?y5g3nW`->IM`jD7U25Kuzqmgo`|DB8oz^~p{~MQV`Dj8uNU@{#<|VlYZI0P^;n z*Oos2rZ(tdZNbjYVmNo5Nl@^g?5xvD-Oa<=A=@A=KFk^T;?FU!$d8%YEVJua%K^!s zs~Mfixlz`H?uZspF}H}Yf-WEyPfLXT9g1*bCfFK4w;N?FbcuS= zDLGy{N-z%@O``;X$^nBb8&&u?IYVLC)2j}Q;EQRqND}wUV7^5Yz7%q1tKVPy$Fp$P zC2!+7qs5?kN&PtCg@ma~1zMTMQGcGwVgSxAyXcC$$XGn9|Ma|=j zP5%EcHiWt}70o~tTWsvuFzN-R9Um$!Shz2%k_5O$TDDb@bdCrUmFzbGt6YoSgVzP7 z{-!9Qu}|?X7A#TP5oB+@@8&g%W-)L7)L`;M1k#j)&nOhBB)8EY}SdUQ{+Q}Ggn z&VH*BrT)H&40P*RVCfkac4_?&=ki%?e$D_z`u3E~z6j;s>tDbC0cIE^TFgCV>Mko7>P$pQy9id-;a5j0_lj$hO{J^R zu&;4foh0r1@4@L;AG5JB6izWT5I7!}x+=SZ>l363!<)uZ#l9E|av^)=FaBXJw4+k} zKmdunweHn*eE3l-LF5~&n{5J_peoX8lBCmg2J~Q*aj~&gRF*XP^>un57S{f!7XT#Q zvB&~nUxJU)>pUS@7wpI@xx2wMNP@By|0J^`twAurP*&Z+|JLM_QU}(WCTx%Yo_Xcu z{OlS^lmazn%dyd)YZ>HMjI1`&_Mo)iNp(*)P{SC(aifX!aZzHnYf6 z+JL){?fcnfji2s3HE$ssVd_fn3-L^QRNZzJ6%3PJB?MPoJbu z`rH>+ZQmVE?C0Jo$npln&l@@z^W%$L)_3y-FWYk9*OKxPXj>~FBOjZAk9aQvjYf4c z)Iz1ag-XT-TAN!`GfhvOjVJffn>iy_4MudH>huXgv%86$gMX=^yelc^)sm9i!B?G2 z2hy8a;;kjlDj{On*4|aE9uIr*&Nw^v z+WZX8QanCR`h23k%k&W5dMo8n4QH*Ai?Ou(MYhWYu>}iE%(RQ>3ekx42y-yF{nuz1 z2U2%_6iP28joeAVO8$@9h#g)$r*a^&_POhm9P=7qYIvI$UVw16W)=}?KC!i1ZD_OB z$BF;N)>C%U!sqF)5S+%-Dg>qHo7jrI{H_(LApa3=N_e{|tFCPt-@36^Z>Eorn!sSW zWdH8X>h%5rd*=#R{qi162|W(;DVf$zuNBEwp|^TT3DmhU2k=%2w~K6>3v$Kpsfsd_ z$H{y~pKPu}*j^5X==;vOVEopGn>=gqySot#L4+znlQ#X7yqF41`47FuX6cW_N_qa* zQcH~+rSKYu=$&kr51`P!jZ}=>!rmz}A0ILFB{>=3|GqwFS@>vL-UF{CeGLs96lWDU zuvT73;6$$Pd-sv}1^S{B@t1LG&n=f0joGq7TI|5_CPel|;rzmJq)F$o`SWMvpQ#^V zI$#7DdH0ndDfUm4cTU(zz|d(aQ$pK=n+ALCT=laGI_KAcm6n%zq8_TMt~%A1|JVbug3+ucAzDQ}xZ8!0m0TE0s5Y z43M~=co$5Hci6xzfIox$$o0L3RII7eb+xo|7l=wiZ?p?;-BfDcrBeQzemEIQ)Ung5 z0OtvQWJCTSvf)!lObt@dW$Tpwl$;-5lLj#X^S(if&K}K>FX`)(OOVBhB>H1POJyE! z=sX|ial6oA%wOluT?ZB?Tp0eD^mki1nJH}*K(n3o5qlOv`w1MLVV!zGZ?@s0crE&a zULlm?J^Q1P7yQ@Uw#}S0G@f7ZYEcmbru%$+>`dreS5J?Op&>J%&`O-Q)H@N?Hgi;J zIP8p%M|_jVg)X+7Xx%Q3PL$hE_NL0&m6An2MoD%x=f2J!EH_n_N5uFa9y|4RN&xbV zHy_+5BjrkoMB=|pGj)yQq}5K12zTa_vs6|go7YobG222!{Xr9>qr!T@2??~o{Urkjunf7*O?d(w=l`imbZ##001yg>jgN377Ic(3pou zm{(GF#t4JoBpK+H^G@xurLQ`1L)gtgI~k zH#HR%4K0R67Gd+aD4xf!47BE?M%Db&SXvbb!lA>TE|RR1r}IE;enh41e~|-Guj4~W z**UEzaNGd6oAzD)^;x@EuVH`Ab%Bwc9Y;}7aZB^=% zcd8eB>c)XQXe51T3_HS}!X>`7 z%!Dk^-!qH+lM%yaE}J;|aWJaZ>70B09{^$DY}Nzp1dF49@V!myN5#{8~b+J>#llIL4_`SKTeN+g{MKH zql`JkhX#;YK~2ZV$h2luW2|I!TQHDFdBWb@ZYYj9-_~!D+9xN7FB#p(+(Hl?JTa9T04tBcdlvx5~h2J>lps3Vd-^7`t+aC@>;#d)`Y z?(u@uq|?14d?}&1k%Yuj7LsAb$I0PU((vzl-UtK|!|d^V$6*;`f-w@)qtG^8hCZ~v zpnXo|6Pd`aQ*xNIH7=@|F9Z~0MtEEc9Dr4#`L)44X(i^1#b@_kqS?N)0u$mVtHUI*c zJWq7c!GE-bTFw52uPCnb`)MC1N(@fP+mD(HB7F<4lBqX>=I3|BLWYhpniViy43}Cz za*Rk|excdX&+`8C5tn@V2U;B(q@nLE&@Xx8g-0j;bA;^@SZ12|6WTvd@v`qm-)1Mw z=N%llKY&|NgOeKR&Src}VdfCiyoqm0ciO>uvQ~C{2^@8l$6mPQx3|qYpOk8J%u@tlWUFM{fHxd;$Bq3#$%V z^Vh#7cP|x1yd>zsD)0B+{L!?UuIPSI^KFvCr|Qh zX#M|H=(@B^0znPTWs@ncZOKWQK+iSVr88NwEwSkVQIK`r>x;jKO`;wt4CLvb!<1Rb z7lH}tpUKEzsLS!zi$GswrusH%=Dhm7*ziGBVtt~R-onySOn^HYq{i?8-{L+`_eWGz zR8n|LmZ2XCH|>toB`2pFy(MlMOu}wD-06PK*E+<7T?P0D!b-aP{|ufb#HJoxcZy{GQe@>YwmV#?mn`QN`(B6(HNY! zp7#QfUrNH>u>>tm@pNZoX8wAtOAtKb{Qat14uZ)3CJx4PucK<2m@*8ad}<<4S zWJB$_%gJe0+vsLj6d{Lp%tXmTc%4^rU=wur5sxyvtrsrY z^lhrIt7}ks6a*!gf#>cs*40mAjlB-L*(vx;!je^Kh(UieC=9*jCI|Yvgz#8$sdMKE zBw0=irW=L~x}#ZPGrJ(R$*)i>jvTXzZ#KK%2Q;EZ+N+$l>4)S~x2T&oY5q{?VMK8+ zii|a@#0)s2gSM1AckUc}OG=u0_fU_CJeGKeF($I4>6mxmr6f?46dwxmQxbA=9Xg?@ z1yqcy=yoFlRWr9{{P#ZcO&E)vbof7i9iFhq_|evFFwQxR{Joe|B>Y(ZAyPBnHqhqA zeW4z``J6T9(-iGhzgh3a0q0NZIH!vfA;aH)Lj9Y3=avSX1LfM=RVeq3Y;WpzYZaRA z+JmU4#My9uc<1U|A@TYF3KO?vZaFVBsA(!0`)v$38+$X~c)13om@Ba%2`N7KHrA!J z!B;5ll-|AoOd*44xvq-J&?XwBSFCZ9q#KhCl6LFapLd}zppdF#Q-jrXxyrNiW%*ZX zLBUI0OmwK#vQ=G8jgjcq{^xzwTkjju4BA6Tr-SgRqpNm!uKwtVBYQbakboaoIQzi= zz*8w+_X%!z?7>9E?Vaskw%zHrEStjWYr>ZG;S|R^kCKn=#a%{ZkOAX-vDA{L-z0Pi zqi+kj$X9DGJl`_h&Y)9zR}}wXM|rZ=T1OhL@Rk0pkNa@-4Iy{atm=0TNhd*@(Kz9xq2YKgoJ(C!MwZ&pcDohy$5wnB=yVK zbp3qG{nl;ix8MLw_%TUzsd5#F_WldN?v*HCghsZm;p; zyAON4Ua@sh>JtDmFpiT*Y1{WsWnztYew%9h6gfhF{=5mOf@?^`j9d8NaT*jV%S;dL zov!>g9Zt8wgica?yBf{=IN`97nen2%?+bgKa|^n|7Gzc{_C>%@cdvJ&mAof<_d$y+ za%iq!r#6Gw8~Ln$Y;ec-)HQB#gkF-uSR&cXH(kEtZMO79Bn@e!|J3Yk*x$b8wF2@a()Bfyip@`BK{mxkjXH%|88KdQavki5_I!3F2-16E zkB-^_Zt*8Lmk46nPLPhtOqS$gtI8y=9akO>-XJ~d3O`)=sVwCc(KAp?FOYA$e)4lE zcFN<_mJD+kXA%4)$YBq>HZWM{ zY70rJtH(B4Gp&?`mnV*}B_u&TJv}OVdJ!OLdvcMSn1~zMiNSSiFTm?rS}f+G$*gEc zICZdy<6i?**>DT7HBo(#8(}z(!A$vG(znq>kR(GaCN?$*Fw{#0<^99-GC_DPUl?UT ztjFd{kP2|UUyLbx=IK5f+eWq)mE%4-iswJxnivqA^SMI4 z19zEpcJVLb?BVs2fLmuV>+OAZTUD=;ticAw=$V?KK#ZjuA+c#V7oS{p)7`q6g-@kd zg?e{5wWe==9jvU+6w@apCfb`s(m{S<65bF)-X%C3TiG;pd>Y~8t@QU~FFB=Xg52yg zqe>YzJll26N6B4J_)JcCsls@1GN%crDQ76|+T&=Iw2R71FWc$1#?`vZHgZ`ej4C;M z>vT@%<3o(j%}9`5J6)+{9F=T^5?WJZD5XZ?HpnKtChF^_vqT9FME$2~YF}exqqlj1 z<3$zaJvTS^*S4*UZbYa7oPhj5P3J0DJ9agY=lKf-1*}6r`%v9VG>tYU#16QH9iRfw z&&!kE|IJXsaG4~9R}cE;hW!!e(NWRS_XzAfZ(wbN2OU&P=hfBU zjbpT_`eR11z?fxt*2Q)+edY?uoAcE2D+DaZ&Age&-NUwMTxcYJ(>KWgm zl0+5PGqEQ=?9=e|hg2@*<`+65#IC%RHzTd`!p@r{^PaAEpvAGU9mwx=KKaAzY^5dh zC1z;6()YkH@^(ed!1@UL#*Ac!GJVoi1`d$*P_@1!iR6i9b|Ws!2rh(50F7n%y~&PA zi*7@$E5$uQW+=17NHsMsT>gMtEY+9&t@c_bJ!c{fKpJtDkXj#b>miJrD z;VHwuIL56H93knjXciJOGK)}ho~rgYv0uNMiMj6n0$xo;P3UnB2 zI`biCmL?uukKA>~y){+1)8Icf{nU{BmR-mzBD80{#;!wSZ+tJaHvBzOl(~gg? z%L1K^ljHvVp;;Rt(8W<|*!il|iv4gc?4v^=v|)`;NlE!#%(ZCeAnFIKt39Z5<>?~| zSrwJLY>Ekiz=B>yeE~fSyNwq%G@?$oK*Nd5BZ|Pz zl@`Z=CpZwrBLk@a$?03Gg+|(mw~qK(FXNZHT*oxW$EE}II>N+->f)t%FOOZ+fBn{8 z&?I-*Wh9mwMk-Z4%*82Gd>K53cqDes(o<_T*$1`8sLWl>u|BdfmA~lh*`EjB>#ts? zUisSZd)4zBR5#+gTWeelBnT+z)HwWjWI4_SqOUz{?pn-c8_M1K{f$#hm%c3JBz}RW z&1-vP;zk1aVVUx`XBskvHXlyMCJY(-TTa_r71FdyF~7%4K)O8zy)V3(<%rqLjwko{ znnbW6kCTP_U3~=iIEi-Y7KVNd{zTjRfRZsN{6ArV-SZna!CIf~w%r`frGh|0N5LJ( znP+)W?|$^iq?h7l0{?BP$@MD1?uQ+Cw_GvcqRx3$E<4jMV=(Ya+4hK8CNmpuG|R>w z@zK?CD9_*SiIahk17X8U$2Wq;yZa-zzvLt5x*NN8msGu1|;SKvQiHZ5euoqh~ zhebxM6NNh2)<8yp32F0PIK(t*5GM9K-EH4rYFj#R1M!&$^0R5iLOc6t$)cC^7I#UK zHv{iXfu|v`yk8WTT`8&gcw?m0X+u?at#+%Z?O>%7F%iSAT(x@k#gVD|*OyACx)+|` zhf?SmTsk_nn+ipR-O>8f2?`=Xe_YjO^GwslCb7&6>GZ;bBSptJr(i+)3rI?62@{2i z82d}x!>ABILKz@42228C!ew&=h0hd2oer`iKaOnqjdV7MKY7CFJ&)B8N^D!;qNNqD z4(cY~fYqgQJPXf{s2-@aoVWuzKR}=PaNj8qiQN@qBBQ>Z#&NBGteSPo{*5t{q$K^c zc%Xjbb_|6l9}8@F3nx$!@3Ctc*VY_0usr7@#bemt#P7E6o4X{sEQd+??;a_-wuL%X zkM4bl{r1g#=iGi15A_b7QsQ1nNXfYi`uj$9U~WJx0M54UodUulJumM?6Z2fW;k$Ym zv1O6J=7In_?_zsI$|&NM>(wEOp;?wF5YwciMJa{AWX z*@$}V+G0TDeQ_cO+SqiwcU>3o#^FtXrJJmE<`kzRR7w&?i|h=L2_{(j%~>q_^r?TN z;I?s`ZkFVBVAxerVPU10_q{&Jq#m6{ARDQ6A^+FI{?bI9m*&DK z2V+R#+X;J+AZ3KNj&sSh*T|qr97Q8wZ#>ARZOo2zFOgf)?jE%nNT(;C{>r3NIJ&rq zo#oXuHSP-QM#?U3`MEwNpwvstP7;-RH9~N z6A=@mhF)oCWH+6Hx2WEMmNykjJIKRzJtXALbF=O)s#8iH47wg+6)ls&0}4h;tulB& z)#HrMEJDKTMe+b7$XHuH9G{qwDP6*mQe{z$B6+G^B6W1U8xGzv<6!Q;Gdx$3lf#iW z@sX5RS20;sjd{TsI&*XpbkL^`%cIW!a-q$gkdSb!M`;2i!g!)OYBWV;X$MEikPg8Ltorz^eHI7Yl9YY9}X%Tm$(}iZ(SE< ztkv`T_pt9Q$OaKj{76~m-!osx-sUs*+eIApiz)l+>FLdz(A+)3H*Z155Bb3G4N**l zDHZ)Hjbo7Pd9yiIYx;P3J!c5hY2@BBZu8gpJg#V&n4#021P*U5gKT`Ti@OS~T z8&lJGw>4e}`GF`ZN^T|8yv%Ch#@l!l zdGwJHt#zrck4a#|WCm!!Hp0M*t*(V{8$1M14QszRA3Q*H*nt8{U!o8O1UjR}x$zA( z4gfOe7Z5WSL32??ZZ2$3TEcnrO#`k+z0JA_%e1xlT|n`I zKS4zd?bsxSIg{>8LlgE{EFx&t+Tf{?^>LT1{qfNg&l7`zlqZEw%Zxp|sT@m1$5B>OoBW;jwP*R`fsVA4NS9bXLB*JUc*I zT|kTHsjNq!okp?A^7yppY~lfl+})6n5ba)9Ik`zMo*7EMlzxlGlWEJslXvQ|w~i^S z4&VA1vic-YH=-Txw-IK@8%@P0slW|8=7#Ub|lfHi{tb13LRnxOt=Df3NG%RFcVr=|4erf(+ zuSCy*z+WwTU%)*m&R+xI@Z-ug&lW|MMDZc9z3-Kvj45eI2z8`%#Dp1C?d(7tdbU~m z+Pm%G_N1R3nO8Ov`}y`CHz$%5v^{AKkjaLiKM&D+#``eCby@8=Vbgp{#)>0>x$ddmqSmUN@wTz~N$tYzm-Rfp)EnU)Z}iKs-JE5->NA)7 zGvBPj-m~dS%a7+rYnG&>cgo7E*UNWS1_n)M*j+FB8ZD1~)|--BxJ>4})`*EyBJaFe zM@%>QHqFcYvQk94q5QIxa25dfw-N=dTf>FsDJuKGe-5a**!RlPx-UUM<-!}Fy$Ya7 z@A?u7`;u_~rx!rr!_=)%5sf1T$Y{mS2^B2m=o0>)kllVM+omfQbVD?ET#Al zJo))((2Bi4)!S39tlg9k1Clp1&_75N&nxE!-kKG#X%-{c!Xp8V8;W8R*Wox9zd~Eo$FH>4cdR84$C$_B;Nlv+gNs|)x6&ySO%g`mMEUXKM}~OmX%>+9 zP*=IdOFKl-hoWM>$+oOcpJ9&ZpINpJn0a4cP|Jv~^B(?^G@>Te`a zTgk2Uv3znMAw1~00`AQpyQ5?Z6U&6Uw?#RXAL_~_3OAg_`|z^)QbEb0%veebyns|K z8Hy)v`7Dz@1la?_YsAyKC!^0|JLTa0X9}H5lgKBq+!kn={5ttoDfhMiI%^v$X*nrk zoL3jpHY5|L>lPKcXZ;DLaUlEY+eV6@b;5W`>4MZR1_jlx@i?hGP0u=9s;iZL9Zx@| zo3-g}^fXxzs%z9R5sI8nn47i2_n<1T-JL3z7X!{26Bb=@c<3OGT+euXQ@nmNQ)QD$ zDUmJ7!^LHVxM?!!qr$&MZGt{0=RKCEMm5O$|1k9xP*Fzh)&nSrl!$bT64Ko%sf46- zDj^Il4MT&{BHbb&A|;&zNJxV;Lw9!$G5_KF?)}%DwM5>bX6Bsp#D4bP!@d0Xul_>2 zD-jrfU_dTb;??c~Bmf2$L2;^{pGM<7V3Ve6n<`p0E^K>qHrk=80-P9pul2TT3OL+8 z{4N1`c2FNK{;^y${v-9?m%SnDiYsjwm@f}kg|p}hyi=l}F+Ba)6A#)NcpsuTVS)DX<6?xl^CGS7;~!v31{lpkHVTbw9~E!~ zVjCGnX%73G8tu0#TLloL+;h}C^ZxeDQ7N_+%Ff zG}_OK6ql6XzfNQ$r19FIhXS}39Wpd1iY_?6%QT+477Vy|O_XbZJUV^qyZs7jImG)Y zUZmcTqc55JkIpO@y+tYaV7J8S#e&cYlsvcJ!e8b*0pnh&0FONIdCtp3Af0`>=Fx5o@*tka zV;Rclxi-IhWk1S|>^#}!9xSi6DLrItx1HDB|0rjX(HD!lUv$f~aWjdGD? zSe=&a-_up{SF1~O1TR#DyPptNX=N&TXK|Jbz zn%8_2$u;z|$mT+XupW4;-O)902umga6-A8iU3ebSa+2CbZ2H5061t0!QcqtBZw#bDBI(NfPbTYe+j zhzmfZluc@X-Bq1G`jUxfk>tGhn6?(a>lip5Lure2iXQ{Q^z%myG!CNK9cAtcdvMgP zJtgIx4CWUM1r)viR1>xd#=C&=0Nd`~+-+}?WRB7KapLmoJHgA!xjRt z_#oB}YltnjIsi>w`@xECI$i*k9FH&3b$7EMYi<5DrDEqiNacmDH*t}7kHOsmwc49C zBp=h?TDOkh)sfq^P@yJ?2Dv9tf&uYxNCRWTxd=6P9mF^g2-EuCPUHLXE?Whc3>rAx zv)g?L+nMBsw7|p-sXpTNmHp~dp+``qKMi3saT ztAX^wn*}UMYxks6S$fO*rcSTRqg5FN<%^s1`BL%IQBCZz*`11vDcb&DdKHxktZyHl z*g~> zzhCih$Y<&5$8NDetL3UZgJsw)2EnyX_Nfx7Bc%Rp95ox=@6Z%V6Bs&=8gJ&9yxWb7 z1ZrYA8Kd{?ZsvCtC0XrgIcdb@=hxI=hE!Ee#PzdvH=;B5jS}Aj@bF$rN(vGT+n()- z{L^{b`&(Ys58MOs2gp^|30gK#`n~YeAYkI&qE!2<^Pe3Yc?uF)wY;QaN`lw!uDpta zLS~xp_?G;JWRp->;n-;x$TZ?&%84{(rTXmN=Jl!}CRY z6_(um^CJanF-TSCWhiI2<4vmutzyPD0k7^|EhzP&8b<5%NMcqmDyS>k;_wR3<6DVf z=8xVMqK{4G7dMzxVs2Dfd%xsqonniT4ozmwR5N#5W`xPIBu3}~47qF`{_TPKlaI?+ z(`$ldb(dm|o{mGSi4l|@#|zoLf`VCL69RBFIy)I9-`kU}4zFt+tDMa<&YOcrI(tOr z&L*&5Gfdx3{=77*z7e%+LCgOA`!Q(z)nOT->8`pNK8k%SWI}kpGe9E)6~(W_hA(|) zJ;BPLuIUNyq8zm2%lytJDJl7a*N(5CbC;-a0vuyL2s0}y5m1N*lk-|yOJu15jh4Q? z{x*!>e3WRIN5-n<(=g_@{!;?K1B{{lwD*4ylnukWBc(P(s*$x$X}XroiDm`dy#1Bj zg1n2J6YmT}JEKheJiGkn!_Cy56gfD4)b49`UkUvS=KN+wZU*x;@AzlHD0TL%;SUm- z3!XrlfPEx#`x!W#W|$7BQCn0S3jz(I!le3AbR0s3q#)yYdM#+{A;jBTYXfHP+^tf`M*<^^xxDG zRucviBn=JKFd0m-|H>VsklTDK(P^6Q#!)M)t2yQ6>XMkMFQY{ZgNVs0W-8HY?_RuJ ziR*(uKL!co?W+g{6H`=P>8PutnYStFu~np4pWB(&e>#)^ai$MyQ$e$T6D>pOg#M|b zct2~(%4Wljfe|ZwZ~C=4qn;vC+``?o0#_J1iD+9twy6w=PN2rp=UF(Phrx;lD-~Et z;8(NzC%%LXO;AL2@{|MEx>4@m% z3eVgMzo#((tlyU)Z2uwx1$x`xjF3CP=Q+u`0@K6`Ox&v*yu2Nrwr_EpRu?-7cps&M zSTPwqB1mgp0p*(&ocH04BtJTHBR;#jX#?v*!21$lP#ZtkzJs*VJp$T&^a$*QT^c-~7(z1X4EbjWdgZ!fekP>d!NiImsklCN) zccxKYEjHFr4cY<_z`b_WC|RL{3PTd!oY&VC=h?fLe_cgcr%V=U0po@07$-~NMR_)rn47}x}%RRDIp;xS}yujn8&h_p|hb_uV3`{3E3=l z#tB_`mBYWp3ai2BEq#Z+i>_@nAj8vWJnCVEJQlQe&5z4`v)hVA8`%?@232ry=)m0s zli??kjA>uvfC@CHp{T1jy#}k^XaoLfZ}3$*4XnxM(wQFgG8Latk5jVm$^;TH0?fA= z=1I-p)N@EQ8ho!Okg*ej^w zk70OJe7uT3imrw=@GLy55cAQPbTkG_94`siggs&q^7-dz@Ow!9Mt3sLA^&Bc;3El| zjDCq4(k~%QT~v@z+dsqOu(L6?yF{s6*^GbdV851x=#NA1HXIb`BC}P zk^69m6zt)xsg})1H;_fXmgjc)nE0NKsh299pL$#gP;BaM!_pE`I+Qwt)1V`XmzZr( zFVK+&_a|^`;=6KaQk3F|G(}ChuyRpIlZbf86N;-<1gR$y>G8C zDIkC*1!-vu!Qlo27B<7$M@cuEYPE}@lx&+n9d_I#4~_>N2jfP_E-tN{YAPQ7o|g{7 zG}{=;xd4a!v}-8mCAakuoxv$Kz-a&e{VS!ZNtEexq$GB^5}zyprQqS=p-Oq6ocNxd zfdK=s{67 zG3*goRj2YR^LK{vW+~)Rc?6Jt6G4Th>X%uTLs=F7Ip*c((TlvNygS5aTl>`4$m}s^ z?wqQ#hu()NNb=|=cU&yEM7T6;;P)>a5lB<-B?!y}bUyU2l!c-Bn@-C*@7irDl5EmZ5UxV-P~Hmkz4GEdXkNC-}nQ zUxt{C)9$~2TLSOnu*J+;H!oMgsTtEZ3JMCkps14*R|5z1?;oy4d`Le?4MQb6jdHOT zN`|d0oRKt7j59*^WzNo9AWtn>&5soGD;#^=44BNk7Xs!VwlAcR_s!YNFW>eeWrRMO z$3PRp>C#2Y*TMBS_vv#$#{S4^$lZPf$arC`?m3u!O_v{(sisJY6wX>X2Y&_l$ibR! zcK5!`D^LYv9X)NLVY5aF;9WH4UrshOcUaqdnni57xn9nldUKcB_{k8z67Xff7yzB5 z;Is6n<0^nTiLYo4D_7?2_Q1G6?PPcxYKy=ekht|{xs%A+PCq;8ahxSruj5lj`nR7Nn*bYo5tQ-6Lqm{%0(I;D@wfS!w;iOk8(JpNd4uybE>I%^QUGqr0AE8BCQvejD5qy>K=w#TKBxYy?+_j zJx+3VaeBs|5b~WyK||AtMUWKa;^3wx@z0-AbB$aPD>8P?2nyKmnDk|}?Fhmc_zcp# z9&v#of`P2jj@Dhtis>aC{04LIezN{O_rjdwv&+BMw}}f!9Tj(9gBLr0oxPTmm36Lp zSlZG$rOk<#kzDe5M#RYLcLl3Gv2mPH*7s~qeMD(UtMXJFK%gH$A!fq{v>Ybzn9+r8zmU#^FFM zdLo7LoA-6vvP>EWO~Yi4@MPzksvQZne}gvAFL<#|Y%dc%4;B{}eTCyW zt-Y{6NpCMA7-N^spx8{c$9~iK1rq6H7HM;=V!ZwL+Ck%f z21h5Owq4Zsl-F{N9WGre0kUvBbt5D8-fK6DoUYgo5A=Ve%-@mG2@+A|E=>k$%WS8q zEH2+V#`>b7?0I?SNx-yR+%wbRhl6#k(&wjo+s$$(?!2}_J z0f_|p@d9~4w}aI7v3@^NvV(@a%If2$22g*AQA6nD?M>P9ZLzr%FWlpYpM!TH3rkB+ zul5P_v%qW@%XWM1o22u0#HZ-!wX4(ZFhDWL0UhJn*_op&7^~1KsX)&|@GTAxPgj|c z$m$`+!HCbFA5l}YZ>Pg}s!K{r$|@>&g>JRAwV63M#;*)EHZCw)0MX2G^WSsnEIJxk z-D!tw%^{P|_2H}LQUu-1i$-*?iE&{*Pb{0C1QTuAkQJSE?inflm2k%d=nUNzyJ4+v zwLti3K;jw>gy<$Xm|u+BFZlUz5o99~CGyo7!fWyn9kMf*a1XAe#!HR*O6#{~)70&E zD^8t8y+tv4NRfi4;o9%fa3pi4PK35mWqg|z!O!KJ9IC8MX z)`*{&g(7J09m|DBL|7bM1#P_5)~>3B7=igUU|BFCI~O)KtP@Wx(76rPTE@n-xhgt3 z>S^mkJF^;9`|7E1$+)DLf9n_;&TL%(-r+-Jv0VS^nlufp?c0L#$w$iIo}O1Tte|I# z)ZWg&nPuf9?IS1>ZmE<2pt;-A8Kzq|QXKt-mFLj0ILv@%L{ zBq`#-DS2*Z*7vYpykY_}8kpuOf^UJIp5AM4GrS_FOJm=bvv{+n+K9uKdj-c+B@32a zg@eB4Z|JH!vQ8Vj{W|OV2W+db;NG!{LJciI>}Q&N8#=DOCqB0woL*R3?c7+hZPzu> z*MHdAJ3dYV9E^cck$-V9yS1h~?cgZ05VRRBqnz=$5pA<);p9FJlFV7Qxx3N69NPgZ zA;i5DI!-`p!5k!Q*SINMvvLUFqLZ_Vva%tA&&tD}VL-q+Ej21V+q>R2>Ah zSelx``vqA_7`5LOH}yt;;`9#=3p>Wf#!jDn7bn42>61?7%2#FhVW6ISDE|t;m=5J@ zjr96yYoqOJ_feeU$w*&+CyT6ZQ<>lL)h9EoVDa=&MU87nh;={s+ z=R(}|7?`*%RwUYi!}JKerqU)w>M%n`lKF}uK@tT8h2-U*WLR#6oyF275Hwtnn6&@q zMcZ0m+uGU^l9F~!O-@!`c)#lp61&AAB8Z~DEEH*#nIc$l5S^r zmoP^n=q^w3BU$oL(xXoy{cGDnKjivOy00C~cXVV2N$s;bx*!n7t4kc;R*G-DQ-idS z13jNe<1|QyUV;nFMO#QjUB~=c>$inIoi3QVBO?h65!QV%f(-41izA^FjtQ^w&eO>T zeo|_;Ma|i7`0jSZHk0Wf%_E!WO!0M%Ty-1V*cG16EsY)lV=wG00N*R+XVz#xpMA9S zLy-CgGn@2d0mFRzS0Ek)7)^eMlc)w^M)Eo!|F#;wX8-fv%q&NcfQn1vy^&qMjWtF_ zTwIP-dq>Ec{s>q8V-aaPFU5Q5=`~-wbMQnwV>}EzJZhEl*|@pm806FEr-^$e*EjKj;raw z@7J#ux3_y`N64b?PH}^~nw$9JvBXqOcK+LUl1I(arna^bV5BuUJ#7y7LY=CT%fit_ zb4-G>&};1WdxRiEJezsI)|W(o1LFSySm&m2KGqvhOGKCa-V@}9_-Up^Xo!f4TKvwE z1WV1!j=8?D^I{{m(xvdMo$4UgmqwuOflMp~jD*w#ck^`=%=;utKNP%*gcMPsCSI@< zQ{>LfZZM^1^T{m_sLmv~xre_BRKCu#{uiUSITFjM^G({sU)KvpZf;?blIP#v*?IJO zpVQW9IH*!Cn$vgs-q2cVA2ybM7_FbKM@A##Z8;~$-*Fwj^k|KUiL3l5p$ubH1&QKc zzrZs^e0VZ5+MJD7sa0PP5^^6*X*t^Q(}Q0p z+QV5@N90ol7MGZrW+hj|L00K(7RUS)9U2xKd;mPbux>m+;|wIo9iVMS;~V_m!gTL{ zxd3P|P?LCQ2+wM%P_Xc_zi;fgs&T&+oGs8G{r#Q8Ly6duh|&Y;!A2)HtSIt~`&(z^ zT}!!SyL3Jhv$=IbtrFqD&VQZZKDQX9^xECo86A=%Mco9ym?PWJI_m6{|D|8`nFxhC zJU_lc~)7`s&-wbr^ z;gONDIyxjJhIQytf>5RCrH?CDCXE>zLuD7Yq@*7iZ2qpuD~NUwBUbZ4Edr{7@R%3{ zC#UkvO(hkT_qSI;CFHLAbK-!(#~>kLY@IaoL+iyeM#fk2)p?zg930WFm6gA)*1Q4m z=*;XaH*}h>X}35^5~7?YfVa1|_uJ6_@yKi^?NFWs)3aZTq#TBQ+B!N*=4bcQ6({bC zs(vq61fOf^=$J3Ibx=(uRr%@Zk*8;5sO#u-DrZUP$jUxbP~O$8672lhv?$0grTegV zYD#bLNk!mzH=yXuk3w?9m)v^BNbhP8o0g`=#^AqO3gW1e^HiZNWn<8G1SBOTl|!v- zn#o9z8sLFHefI3$63%0(;}|ZISc?cwui)Td{|-5HVU_uFfct z`J@v2x!@ti!U>NB$Tn>jP7isE(jz3A3mMZ@sY&0WGY!Q#IUzm0KbH=>jCV(6qS#gC zNa3Z$%c+4mf1g7u^Ei|rZL~p88XaGDLD>UUzAgS&%1$QXQ+tq{?0A%H7+ek<4y!~& z3hh*BYN|L*4NqOroAUYTpw*k+&N&guMlXF4nUPPN(x$z{pFIm^8j)sWXJ6dig*u<4 z?G=qH^DC(d?%^tjCGWYZ*M^sMdvu*k6Bq+Awhr^@pRATOMHCF&F!7g4;>x-(c{PHQSum4R>6C- z4OpOkTZ2o2M((~iWXPKD0XDX@loYT?vYpqjEtc+_|N5Yo=hki`@{s8QVC>w|ELZXO z{|M^rMt!~M4!q1^C}%t6v^0T04Evf}WKFho-%)aBS&YpcoY92wA7*XrCLR456!W!p zpwt%~NWD;7*cDeL3j@Wj4DIlh64aJ}VC!ycRQ&#Z&!q;09z!uVb>`~?(6V^=98Sua zZI-sT%Qm&KQRndcB0FE1C>xO8>q&cfuS{xdl8r+|F|QoGK3wpV*9d0PFJjeFQVu_u zfqLzk><=Z%jcQOHWVFrF5WP|;-4tH%Z@zqnsr3QBmL=AYF8>P1t4CjpGYt)P5V~se zcaWtGu)eSFKI`o4Bys8LunmgP1C^%28bBV~KVc6J40M9fqHbcsN#+ztWwWV4sDG5K zB_kNjt?p=XWk@xaA5lHr_2reM;B%x(L0rVhTt}<`0)g0;lLqLDaC zYdPH>5!;)G#}G)mc7U#e%XtM`S67$M(#i^ShJ_ISvUd~7+!hA|qWg~2+>0mYl0$|M z0Nv=}+Y&=Unh};RXVh&r!!+RX29j`_yraCd$9?d?6nPay)>d09M1KU(hfkxUT3{<^ zXlkDFEiWxW%6K#0U4u`AyuGhGDFUhrl}hFOP9n@x3h7=PbM}3g z@m))bHCkK3L*<@(q1OFFWIXeHq2mt2bD;n6S36_yd|G-%mj5whDgAw*t^k0XggUOPh@ocVWHw6s?X# zFXc0a{mqTK*PE1qAJ1Pj7|?f9927dKNxKC}~0{ZgO_nm669e9vL3KB7i!!r5PfIypb#E+O9TG(=u%bEHHwYQG?&2oX+|*tAL^xF=ZJ=y z;8iEJ^34LO@5sUhWrcIGxJMAM7x8D}qg=Phk=pzlX(sb#>~}_vPL)^3gOd9Pmy|p` zo$_uSoefnM)uE%0&CNCECMTJbl?#1E^luu)388h7Le%e{#pFFKBIj9x7Sr0lXpaO+ zwmvjq@H2Er9N*jkgLLXwat^i}g3y+LwNrSvg$18=1zxg1f!@|qqKCMr2zo<_2l zv_CN$VkprmAE)}$c|xx%5jZP$q@@HLa|)_N5}rrz)|-8=nsqcaEznG}Lqg;nqL+6( zGHbv#t6cJIPF}7pA|W9e%goG70RO))FE2-_arjD|H`(_6Q*FQ3TR2O65@mz&dbeaK z6f~!Ppo*$>-_I<=JBqx@jEigK zqu>x2HOJtH_8Q5b{rb1&t6o0C(z`iH?iq+anUhAcid~D+%1rWVcO>`xiOXSgK8ble zLiZo(*mNqE{Vy~Jm6$4FD_Vg17 z#>d`|1wdD^lcAS?2L}Zsuo)R=hKC8k!FfhJ^9z;5M}g^&hFJo;G7XVy`l4luhwyvMoFHNaty86(kWACDcQtVCNzt2mu zm+-l8Y>lYx{xNwXXkp6NR(^X~)LtETU*4F<_sW zEq6|;SL-OcWSJcc+P`V3?%EF-gOudu=NqHN;?QBVI6;#7Y??c?3%XrIMMZ1t>tB)V zZ2gdcHg{;2{B;2-thTPMyF{%9R24eYMum96Gc$&uk9S`3qW!fAs`T{q^gAb6;Dq4} zCd>-xSNTxERv^b3Qn-Cejbl+)wZIAda9-xZ=tHzFkG z$BI*Td84iqSz`=K$YqV|&7&nG>?VYM16|qY%F1QMsVp{Y46fJDC_K12=dCd$7VhJb zR&PESr{U~e+{TmX;q`1h^Wbh1pf)4H-m~*{674Hy9mA~WoJL@Zh$q|zs777@-bKi( z`Sbnxu&OG43DmVq^pkh-JToWd?fL1}|IYa;55KGMO{sEfGoBhB(bRvgEw`C5UuF+2 zkz$(*%Vgj<_43X}uuH%Wkqc7C(+kc|%z5u|O95;p&B1&$VD0_ijR}zt-yRbY)q&mG z`eS`xr9h?DqxgfxBZY>|4L9#ZN?xXXEolM*f_0+DkA)8JGg)*MSB#7x zUK$YEJEaO=k?@buxb(Nh7Ubs(0IJ22O3dZx=x8eV_Y?f9#*uOL2kE|~ww4S?H;LAK zFp%=;jh#=?X#fsFOhQsURG`A_8Kr$M-9CukH*xs9^6`^UlQ@J}PcxB)v);{R;3}6$4#$EEi9R zo{lcNgCYW?E4GQ|omWV66;e`Cz43Irm}YQV-@%dtCw)c;D*&fr8Ff4K&|VJq_fho=nOp8-e0HoV;Ma`&^RsSYexp=+%71I8#@?3YV{%u|?i& z!gTh~jdf8^rB=d+L}dFtqL-ceCNrV44PPJ|k)CIDytPgYS%ugI{pV4XmjG#&4|m?5 zOL%v7OM2{04U5O~aCZLvW;G7*N0{n#p5llYnEWan`_TXMb?(@Q=U2H+iZ@d8jh?*c zm+M(B;KdNQ=y;KN#ZF8p=<36*AwL!CNs?w;7|z|4#iFRqQxH`>nN7*Fvn%bBBfa$v zy>9sR*SH6@hPzzBT0ei+dL&PN?X{Vak&*Ez4`7r}2ck>aI-4M46B7sL6U30nT>h{9 zSz@j#j-XK?6iqI|IXii;1nov#Elu3z_I5+rmqmmXGDNQR7FYq**Y`sSe)_q~_IRMz zYgwVcCbCw{3a!E>t_cumF(<-@#QRwrawZ7~Cw{$ToX!|V5wu;T*|iW65j|%ZI?>Ny z+qCo5ADK~iXAz-5E69OmQ>OiV0rJLvLGDr~jiy~<-opxVFMl#qfffsErxlq@$PsR#Jm zlt%ZBa)%En=TgGUR1|`tC#gvgDPt?`kV@Xu4roqRSd7c=*B2YMF{Im23#YkG4zp+4 zXtQ6d;0T$YPrYm{o5WwoRFP_qUnCN_WLmtHrn*V|9LmbfET*eSeD)ZI8bQ$V-BeGT z`^j%%&<*Fctpo9()NpM;UhJTpegu=NEPZ34Nu+1@iXHWdl1Vjb3N3}+{& zRt2;ei&KJ$#nsi2m6dmTl93t3oMSWzukHi4=vq?RuJanII8c)&yb2i_dXta3Cul$O zm#EmrcYiT-TL}C@P-m*0x!A`9>}_bg%O9e~`w8jn!cuRMHHOgf8%2~ z$w&&G!W7L6#^;Z=^D5ik1RIFTC~kB1^L)QyXnfKcne}*nnmqSBuqJs(AW__3KK`Lf zhMlBtD<_otJ*&&nGDkf9FI8gOWuNV4VDGqOngoz2|K}Eh zmDbWC)eP7MVBQrJ)Fl4m1?!z^9Dt@fGj${H;KTW7YKpplV2`REKo)>B%n|-Oe>5%l zf-EzSaHp^OkuS?G06O#6=k$;nv+G7x?Emu+>ZkdBZO^-gCI$v3mz8nN%?+q}80%@j zAK#1x8)62!VdpE%Z9@)-O*}z@E*5*$u~iH0NWL}Q2brDeNZHbcXgFBLK$&w(0HA)E zFAc4hv_{@$ovhtRZuUELXR*(i<6|BIc~iRZv{avaUn^acK&)HJOInDJkBfz>coGs4=`k?`Ci?n4S%3sgXxeaH^u)}}tPxBH=8)Sa zA!((hrNh05o;*pf9o@#$3Ap*mWO>FnwaV^(LumG3)=Zx`rn9-$LuAJePI0q@-9@;- zd0Yg_pqva+X4?I#!sfC4%uw;EVwS_vUMU2E#*2E|Xs_yv6lV2(e~lMkjnt%pG_K$7 z@9%9P_Tx&%=Z%WR2}F#F;UhY*o}yw8$2gaIS#KIwkp?&@!s^&BD=w*(PysPXw0?cB zT7PA)KccAbH+*gEeD`W7ocN-1l=$YbH;3TV@Hm;`Uxk;Un3^un*Wlr!#YwT3%lsY+ z_!tl|bkob0lxC-;5k${><2-6T$x6y<9PCmSz10J@MBbx z12P3je*7$+K$z@}x)<(-MwX@{doF5J-*ThRhWww^Xwd)f8q}-|uJOVeLu({yFtY_i z=^ohFmY78hLT*(E&M^7bOdruw{UgdND5Wc1Akn%BP#=_xNe(){l+*l@yhWSrl7w*1 zi$3?Yc%V^ZEHj-N;n8LVvA2A??RH>VIEOpzeNSpFrvCFzvjeVlcY;V6-~2rg=m5XH z54a0>*sE&2AYL2H;uJHf`jDV^3g%P@E-<6Y!2@sJ6*NTpYf%UvkOX<|Oe2BiT=cr< z9efQ)g!X^7#){bWJ|GZNi#M=mvZYrBvV4$q5hodsU2uIpUk{gKGcA-H8X*$IdC28> zVA`}>U0q%4b;*P2<@Nh(SW^adCYkVKa393AQ}TF6Z}C)-C^SgxMd32gd<#We3ARr}?7i z^Ls%P{DG3YNjgI(lAcior`7|Ke!oQ!ecFfZ$W0p5L4nOPk8S`4b%M(TGVJfNtQoMV zAhj_wySlqQyTNLu4|WgF= zJjEyqtX=Khv6Be;rS6=EuXcgk68#;uFfXBiMr#VxF)dFl`-hh8d%&>1i4wxa$3j#Q znEA4sID3%J)~=2x4K`vyN$SEC4twW8@Yh#e7M!OB_x(=bnjQiLJ$o_;J9^)SWV1k^ zgS0rM%V}vnxzkKRq)bhL{TKj$?k3LpqJU@UNEHTDx66grbuFY&L|RrrVC^HA4M-7RS)m#JxMQYND_WX4aSzq7&NsehzHFY zI0LB|p^|v-P`I@o3x2!4O*gvI%3NTqt$D`8%X{l@e@%M1j`3Ha4=sj6{1(hXA^v13 zT_)1tmgCLKx*@Dws2`QRK=rRaeSx%^aw}C+l38&@nK|UDi47VK%=b znJtTkZqcUwy|2;qt|8Evvk&!X^G4=ttvTV$n zC~nx2+%&LY9Q-|?sm*kwonkq66yKGgA)mu=*Tm!+i4^|9TN#o6%xOhz>;pdlNEl86 z>gaD&ry(1ip_TE?rgVZIswl{V9&(?CSYdxD9O1d`~+?7AHROKHPF)wIW9ov z@URK1qufg^e!|WEU~;gtQ_zzM8G33qQc~eLK0nC8&_RInsrXhu6^~>~esG zWpof#*-Lc{-$Y$W&Zd9nhTGYlmq!A=^OxjUiO+SdI}h+*7RSZTy;CHYm%J>3`@=o7 z&M%hK58lGeo+V(vL3D@*h%=;+qN^caWTLH zC_6s~?fG+e$C?$6GuRFB@q-iF2>3#0!$b}+2Yj8x{%1KxGCHp}@$PbYcKcv@i8I-~ z4cGzPaqJEB*$ur;@3a_T1^?*l5JU%+plm-Z{3~Lzx2Xc=04?Af`@gB7`bkft!j5Z8 z57$QCB0jR^Y7TW_`@d6J}hE$jlo}nGABiSIF4#?&GI?uX{{Gh1Ll_L!^mQLhTfSSqqbszbB|-85k~Rk9T1Wg*yp~`& zpBU9`X=9Iu20`?48MuhoBDp9=63#SC{C+Bm0~|&!j(+pZG38h`X#ozsV4(SIW@Gp9YuWCS{fv}P$EcwjOd%A( z+iRZfCoaBig{f1?{7Yn}q|v^D`K^El36$uVs$+eYEQoJ-cb@~a&UFpJK~*77WigEz zCI4rCwt*BBq+h8}@k~10yTt#?1yC~wT6g8HtPO7~%cTy|kH-U&=?4^&5I_tf zJ&20ZEi**}UQ~K)x@8a_3kE|&L&ye4^rMPCnfb9XV$eGQ3$U+_puX@gDq`jJ%gcKV_dK?=zud0Kg`>7u?|x~R%eK?i0QEgg z%(lV7m;^RR#wD;Ic~5TA=s^h5aga_?2bcuJ#>Znogsxu`gJoCV^1eG+RE{h}<0IdI zVr-bu@a3+yW;+67;*IxdlcdPE0y*D^iKnAh!NLo_-%2~YIxOKBF+c2+T&`O5J(xb2 zyNH<8zN?o$rsz0G>VUOZT*zWqhU!NTGUI%nj#M0to0LW&*@aPE`^aGM>3kuOpohu)OKF>`3 zB%Y|boDf{J-Q9VLhgVivDGNGNM&)D(09+Z@sX>Kz{_&$+)?5?X#?v_>MrA2OL#j+a zqz#BHFKc`Q#gX;(sqfmNKx(?5lFXF~#`YIi3PrJLDVQc<=xc;;Ou_>H&GhkI-{fk` z5Idq9`S%V@PwmnJZ2JoFLZLmFbP=$jH|7yE9m1Q;&B>ul>8=L}&ue`S*+AYu04(a? zX>c%?*wa}g&iUslSHdxtCNK+7SVu>NiZ&AlsA|#2$vw(S~mgZ@QZ|3R?TSH z6Y)aYyp(rrk6o>PJ8%i1Yrr1oMX4Y`m9?{56M~3sS2#V&5(rj4k>FteE%1sM{0J;9c)>bg$ zLxhL8FUd0OJi~eMqO|eoA+X+Xy1n*!Z-5QqK828xN`2DB&_LUHnwvK z*3DrT>t(Zj&|UEYh=<(Qhw90f8jk==$n4iNWrO>3`l}goKo$zzsc~F1pF&FiBB zha_*XE|>l%=+Dxv6#-K-{bCXh4vxvU<%;L#EZUb1-Pfw_;e=-{&dxHxps67--{v*U z$ezxN&FC{u5{FrPEdAucYLd{bOVke19He#6VjUdw2N~(4~WKe6Jpj*s8WL(d=MNwPKFgeiaJsaY59r* z6Rg$MRS(q7c}f%t_(irjQK=3j=Lp_5R`G*VM%N(G|3f|ZLMfhcle$3;27z=f0*)sm z3_~KG@zC1(QRe!}3UJNE1@!tig<3%0{3k=y{lLqwneDh`^LDVO=W(KuZ4~fS^ziiT zmblHxQ6qZvs3nF{5PxY9RB1GyKc5s_0~UKm_eDg%FR;&-LWbR5(}MQ{00HxNWx)5$ ziLuSV%+>erJvJ7@)B%?m7{@#n6Qdd*AHT4d=FT)KiHMEASzca7*abPUY;5rcE;6h| zSe|ptQuqUcxH*NVvZ8LTRdai6HAu-l5~Lt}Ga~EpWB`eJFJZd`Gg^DQr0qX+;?f+? zBj+uQ{(J+wX1$FOmOXgVp%p*=e*n7KAYkM3vS@4z6`vfba6lA~j#-kLbDp>gpLT%v^3475Y!~X-*Ms(+E8^% zi}@2VklmSTlLV(Z@ zAdkvPt2+vAae@QQ!5uRf?%VjqbS(-AH%m%y-T6{QmK-_gk-Px#rBA zIm0=3Ua|MS4j+h8gByG}njxD1v^sfL%va3|oI8MK#};%20Xl-}Ho*CgRti1HX6X|| znO6Q2*${(Vi&ryDz&tY-rQZC-D;DU*gO=>h9bwWN0_OnfaZT7(0^<;|*9hpE>Z2jY zS3Gb1&^mb8hSa3omRK7D>>)!jE87b20c-#{3X!>{qKp0QE2TGna=9!a_=d+@hH*sb&( z7d33U!3Ra&imhMCDW1lj$n{g|G1yth#Kdr5(bWc(=WaFuTd3=%NwdgHUXr`Ww@F1oEn2g$vvJyX*NmNOI#iOI6qiwH6^6GX)W>B?~m)t**jU)g$ojJtH za3O>U3sfUDG2 zycev_>*z*iZWVA*Mv4ObM7t@(!d_~(<>}Ucg~HCMJYeU8At?K>KC9GrFC!lNesvT@ z2K9I0(#Ieh3cBJxz_O^JQk)Z z{oLjs;A#8+08bxkKnuF0_)-?iySs~?rr;5*k)whwJ){_#RZFZnQ~=x-FidUDsChtk zAmKvGW~BWHRzE7hyS5|`hXO1>b?Lu0sTgTlS+A!_)82+T=0QsvUAw1XX#5L^R#ZkR z^#xpUjS@2Di_Jf}1IBBrIohu@$&t8m`dK%d@};EU@bDq?&5VIW)W`K1zJU94=WSOf zNL%ELw2e!ic?1`?kkEKMQn79u9i_uME{G`*G`my`Rp`(XVw;WB(;FK>tlDlk;PRcX zI!ufe4cHnqEgFMu$&2I8!m|VXB?_a>3i*Y0KERl={$vEc--m^F8dYvISazRo-S(es zENNIaR+t7h{wEkz$Omj54V2#Ww&z-|-YQaiEVP@Hn7F%3GVbecVDR(7u^x6VC@Gx- zYtjuiL6DJ5-8|@`xwnWVn}Mce6$b6$<5f%|&6ygTeV0@zFocXr^8_c!r<(<_wywl>enH{| z%xDT{*C2`!Yeo?g_m{X|;i}Z6IHl1MTme#!QiG~3=v^#(p)I$hbM8r&LLs0`9|4qb zcrRp21uUu;iyg3|E=ei7@<_%!rqs<$M2V+eW|KPK)7mQYX8!?CEitX!6?b8x=p5vA zySUQN{hze)o$TqJ&fcB5JQLr&7%CYoqfMmbppn$g06st1k|mk_F+!?=ei!D3oQn9o z&=6F6;sIQvmK^CI4-JjzuiFnKkm>I_ZES2@*1ox(Lh+A#Z3V^Vkrc90)$qm-N}4>R z_b5}?J;p^8o4>Cp&W*^9;#=9{d%t_|w>7NR=31dzwmJ3t-=*J+Vm*$R?jUO3K=YGs9GSNh45bMtN8XX~)`;UiL3Y6Fti03h`2*|V;b z)7F>|>yQG4d|0gzFbc?&f^cg7JU31S4NQK>gieH`t@fUi``Pv=Hh|HOMVv@@HUm(5 zO@!2JMyxi{S+nD$E$jo<>?f*zHof1|JE-$O#YsmSHZ5Ok%AfZzUOga=Swuc9y>S`rrlA@O7- zUD+T|yyg%ohU0{=0xod;5f8bNpt$j8rWM7Pl0$&z?aP0}&->czOW{oc0U9l>?bPbt z+1&28AXkrbb6IAR^cp|Iu2|+4J(tl%^h5i*K=IhSSOQd9>>I3}n&;YKFs~oe)Jz+K zszTn7u1gi)b{}rc4zLYSlx1u=j&nt|Wl!f1i|; zw0Q$iOA|wAE64_4Ub>BU2b`wS)6U#?k5rIRy!?eXnYuQ(rla?E8=0SHiE}>-S^ozP zG>Kw#0rT*EBl2+|yE|K$mP*%ux91ZjF)ZYE()WRu#-2vJ$-SJu^X!0ojXs{^Xtud3 z?EH{TyXwJMu)UOvm_Qfh02&^G6QG}lY@t$%IQf%+qO7lwmBp_udJgQ~-s0H3u{)W?N) z=kf7zyY}!qcdl|85I{J=8iPg-H^)iD(<65k0b5ScMBOD>-{P20#;|ed6e=obZT%1% z(wW}LRZ8#bDtvIw&$B@7!)HreMC~rn!Wbdzet1d`8^Hi?S6nir4JYdA&J`Dz>Cr(- zuTK9FpOhO|Rm@2AXEpq2UR}uFU_s;nmij=*B_Y*Dojn=q^D631IC~E@OX33RVU2;1 zOu?N2dR{lLuOB*|YtwlA6MI+>{Dl`CB6_4dNc(`~(zwq{symN!n@Qq(FY>R}ag-@i z;~2a{$BbiQvL}`4-k9+%saszgL_D$$WX*m3yCNn5 zg@^Mfpr{&We?H3clQZ2ooAMd~3CZ8JRr^+*zW)9MfN=w-x{IZ!7?AnFg}|*bm)v!8 zm)^a9vyl%_VSs+b@zmP=_9(RZd;O_|ganaYY_h$tfQ*a~o4K)J)idp{yx-9AsMhqs zP$2Z#{`ZCy-{rN&fuvw#gQ*36OkS=Y`BN3ih}U5fZ>0DFYwxx3W)|OU)2&Ljwzqyn zCL}aGc!LiQVp6YEUQcUDdaF9Xa4H!ZdJ`*Z9GW8aq?+TwgSLF=&IGV@rrzDS)?C}z z=pDyr75kuZ@aIs0G1)=w$;J-ih1&`5>gwtyB!;Z92}6&wV}}ynY@GH#r;f#NgLxl6 zetZWkN$j&j4Piu{eluwSa=+MWvIB%U1Mm@W?hRB?*t5!monmiqFE2m;2@)xSxcYia zgD45D6D4~Uq3Lh+|HjQJw&Dof=w^0-vG7brC=g3I;6)TjB;t%K>Fk2s{D6LT?&p8g z{!T`PYrF|vwB|uPlZcy?kv!n`gG1($qL8fg-te#8JxGiyS7}TXo(^;DXn8TXB-6Y( zvK1&;UcmBBh+H7JJqrZcSNC7H3gUc@Z}wQqH@v2U-r_qD2uM#$yQH+mXEEXh`&`st z#@~75Oq+vWFZmA6fL1c*bG46`&X6y;>>mC_TCbT=)NO5+DkL4QL5|A=EsSmKtc`VD z7m$tSSLD3k?mso9;|?X_oYzYi9y)L800u5xMvd%c(zw#qB2xaYYwcG$b1!%TWDD@| zk9*=HBtIRivGJ*i_jmo{&tf0mGyKS_4FLk2E}8;JxmwRY z6~#skU~({%tNuFr12D9Q-f&)8c{NnMx+r60egG^8PXO1sboMimTLy?y(&@6KpDR$v~> z@6;%>Cxp}pxB4+(yv*ZC$k?%ImU)4ahR)&U^!#@!2AM#ID@i0JLvG!8&&=!I+%&B6 z<&~jeHWbDoAlLECCglF9P(R}3xbUyt^5U7iyd}9sTWf3ZXIW9-W4-o{aEvVY#oy0r zzjv(v&)vbuIjsMBGc7%xyeGCrKmY9Uz#XW&F#}oQwCo(8)bjEdgyYdz+J5i&^`icM zey8kh2@KtzP8Y-d-EvHb$gba4zQ}T<#ff^ zSEi#aUy_)F>K7EGc1r=HT_cAcPW6uUKj~=)Ta$&BJ~i$A%oQ>_rG(NNSIYQyujxE7 zZo{EkVIhC96aU$xz{t2A2ZY|sAL0uGnGh^Z-YCa`qn%BcRgOvvtsoJfteu5&@2WSw zV`bbD+GF$&pdJq_1eGt`ND#}wnD~7DrHLI4C+%g`)r=i;)k3QtvM(z~XK}L^4k8~O z4`E?@nEG1*2fszKG2?ow+xzrT|L;WI6)Dg_9h)5Bbhoo%su z6c%|3RU2C-$Ry%;M5A>E4x|hf7Q4oHOBMtY~ zA%#eK)x%_r+;fACjHalXM5LH(zO&Wk2~B#AmJbwGsT(F|1~epZjaN_uJ_Gw$p_?p6j7j5(OqUUwgw;I?ub7@n##ib9Oa0QU2p2XZf9 zm&T9(g>`c+gy-hHskNr06MjMEm9fk1MUeZ%iuPk;)4Co4a+}2L6*W*=kvyUr?SJ~= zT$c}h7fl@;>^e9!Qh1yu!5w_Hy8+A(Ahm49L3U(e-$GPpUN)tyrQB(!Ss}Wn!H+@_ zaMVy|WM&{+{lh(@TA-914(v7{IjkmxMR|D#(%ioqGaumwrW?sy?hFneX9c$SPrg+D zcewFpw>yDx_5nx7@VrdxpRU$n)$K!xxNvT}E}9TjKpy80e5-0pl$ttR#puoCwr_9T1Ig%DgF-nd|4nSkp z34oS`@{s$YNyfWMebk|G-#9DKHsd__!SY>^% z*)p*q^p|fi8WYi^!pmDcWV!z9#iD3oab1u=3W1YP)xAvGU+cJ~qlrJ`|G}qVAu2Y$ zge1$^QC2QV#fnx!W;=tb$MEY%i=o~q>x2~LPJ*bF(>3^Qv5v}zbpuar=^MRReq+@D z(7+9Uax5SRM9#}I`p%(vgulsx^Ig+=8iu`o`u2UY z>ViF?0+K526Ke#m)u|@zBrp8La<(j zah;pbH1h&dc|MGH5`W`0D&Ls(>Cgy6n$tgx^#{-y2v5KjO#uZK@#z0T=BWi34Q-NJ ztTXXpPH9yR|j#aoSx$bN-*( zttNZR=&n9F;yksCDfRpBWM_30fZ{ zYc)D0!yJgX8k*GS(_kRTYr^_S>^??cQUGzMh4=yy(e>nv;v1iW;_A*uo_fx14tdcm zn&`jJ7;z~mdVf`3uR=9)63Z!xb&^x6@mmKV+}ABLX3~^ZZ=Pm-`CH{zPO+JtU>>tW z!C3L8+z99GAce&}D5gzCpM>&IZ{{BH#K*&1mJ@|l!!-a&N-x@mtE1$b_0OZ8mslD! zN-fw+zS?h}sbhcoHRXh>YuF;Gm7_3Fuj-!({#jQ~!Bqqp2T$yl{co;)6(Vx4$iMPd z(5Pqp@{szQsUSyrhHj(dG4{T`=N+w~xO#<+^CwR&nB24P<41gowMTjRRXsVFn}yI? zkjR;EzK4Jpx&GOu;FJp*!ibJ@Q*<~MqEzq786Yun@wC?fE4|_lvAF!R6o`q}lfg#@ z7+Zqjg^n64Q%@a!KSG7!Ty-kTsW|4=NFPzCJ(Vj*=yr14uN5@4-a-LU*CsnKT0Xya zo&7h8RP(=qY2U;PDM^2n1ZHjMdK9luxepC5uI@k-1EB++z>kYBv^@-Z3@$#X^b?44 zf43HlLApLNYvvm9q!3Ss<@?Lik98l;mF#V>k2NS4P{_Z4;1&RB0C&W6 z_bvfIIgB#cE$h>dqJI5Gt9yy=r*wrza2a!2)h~YL=#m{^*i2_wm3{t1=j*yC8xyHB zPhfIktow9l;uc@9s7Za6lyPl+JuV{hgyHkrWc=uaTdv|<<5H&kc(v5rM5yIQK z3;I$`qy_)AuhxGp6>`p{ZDx_-fML1Ad#zM^IPrRxJ)gUWC-94V%lkCn?Qwd}|K>-O zjJ{bMd6mv`$thF5%6BTe%ta$Dow7p!CROd{;Ac*T`b;J7KkiMS0BQ5LuIxh=7G2=+gaI*f9(IUgaB(3+iOiByF1 z)q$v*rT&Dg6k9Yq9`0D2nS3s(&o$ z~BhL9sj@-f21Ftosn^PXTXKfd!dEXRVqomO03Mh=p zq(dlD+IBn{Bnur_rPDDPA6t<7T8tg5>@@LJmVc&43~Ruam>Q@SL)2t@c)%b;Ej(Of zh7=_rh(K=v%A2F>VjmTpC9y2i1&LjVdo;3t?}=-h_u&{^*Oo$JkA|2F0PECGujl!k z+SpwCG$s>fJ<~u4KQ#+DV52ik>c1Na1K!47ayJ3XZz&rOg)0XK684JZ&?cEEGL|}` z?P;Df)mN`ork9IWewVvlc-{XR+m?v|{s#TFkp4EB&t2(k@}Sx8QNI~(ycTFj%~tqu zdTypZF4l!;flb4c|1vB7SWPXz)ATv?Zr{tg3;2n0Z3m^q)DJsHuCrHCekj<|_AxX< zmraCZbg}VOO>R|eIQ7u?nTnqlT|= ze$OdHtn3TN&6qeXt1F}rwhfc{6dr5H92C+Ydr3EQrW2?GVABd>+tpQPyl8Z{)FEhq zA`q>iY>nb%VxOV(4`9q=ODR=LbZ`(;-MaPIg6_H}I~1$BH(2lhgj6K$$~}YOrtS?> zOXw6QLV*Esw4y`nU3pDRPI!7Ndwq51~%YdfkP2 zGhLNe%2VH>qps3((p5)`k~C}E+U#^oy?H(}(BUDzGK@d5V0AOQ#VZci`gGZ_)(y92 zb-3Ucs4A+Sc-;XibMl>+NyD()5}a+BXwQn6o8zC%i5POCJqo!iaMB)_d`tEGM7lPE(((q>!r|A4Brp=^*CGrcvU#Hd;Kr$^P2femMv(3OC8wlbcZ)*|-oG`ww&{ zB;g8QZRoyuU{YPP(n_+N|&o1UZG@W=mG=sM@V1Xqjxm2Qs{Mjg85Tq6R11{bo4!o%B;bk3!t+G2wa74Fgd3P29Ff`nPhNn0Td0AJ4q7w5wJIv9x$Az26FuSI* z4OI}Ie`=_!6$>Ntzew(Fd{eZtIut;+K8&vR#va#5ap)EjrXKy>HDR{PFkt>txi zCNJIH#+Mf1y)~(Q`Z%P$iF;~M+ zz!*;B{{VpOsLO7e^_OqQ@kZ5B9pPO;(mpw`i|9v z`tCiejWs+Xm}xTZL~nQ{;9_c z5(~_*$3-$SOxxtPAd>Ey!t**`fk8AH?VlWYdwM$VD8S_$lriyCYZal>p!+8 z-eonX`O`J5V^u7+4Xv#-H29s$k&^md*3zj}+EY9YgDMZqnN$2}l)O;6 z?S__G@!5xxCP-O+l`VNV>9TGzp}|$hEHqnv;WDim6Jts0J3C8_>JBGY;`akSebX=F z9Q^Mj9i=>!6`F@?zWc0&QBhI*TH!kChKYOg+VOXZ(BO>k3!Dbz#;cT8!B_i?W8}D| z1E3^2=H@pmqWZ;WDz?8Fyl>II{3Y^PVlmAk=W88dO~d|&jo&wMgWqfa@Fy+)U9mEZ zvWn9!!;oAP{r1Nb|Gqni!PiieAFc~7-9)6MyvXADNyJ4OPA{nKw*?417LH%P4xL>o z=;%J8P-Ng^j~w~@26VCrBdC3fQVM=h5ZU|j8KZd(6B+&-axjepsygr@*_ORNni?c{ zv0_zYOysuF@LTmoP?IndUx&%R7#AFzWU_#(^~+Vd%3iu0y_q0>adWfFC!X&8)ekxJ z4qxq-E^AS<2XCBRMJmeir|k?16;!vmy5@DP0Pq7zNu=k@)LYBl!`_EsSCVyOUxS<0&H@ z*VVt{g{u|LjeJb%Q9r$$ZCIC-#27(wrA}(2`h5^?X&T*mI-ekMqxB{IhzijS+)(z2 zT#IHr>mc!W=lI(bK5~6^$lT6Yqmq%4u`;ox%Ty@JZxY;0H)0co_G3D+kkChl5=AO~W?#za7*IO zjf^@}fiDvJnzW&rCMQ=a?h?;)sJ)hRV`88Myweh;~KxggaA3Gm%?}?1*OHe zZ+!GIv0y92nfGRkZ)ERgYdlhkq>MdER_*=qLp{=}#2bfNypvU~C`K}LaN7>Rb)gq> z_9XwTsL)Ua~`6q5d@wk?XcDZF0 zOZGGU2e~=N0j6~%%#PhQ6$|^fd3mYg-dO2X=o{i!yeFrp?}Sq0uIi2qU&q{K4Lyv1 zur_52F_zj9gbVcElGWOXSB2ctL-gj&CVFKOU3lwhDuHX%QCO-d~*-JbTv&th)Ad4F3;juhS$7Ijg~t21=`)hIJ4ISS>zcH^30 z=x-9t+#|PZphz>PT}f2KpumpU&eclJ%litQBVl=Xhm5qyVsg}>=2>DABahv9Pr_|d z*6WM&qBW~!*l$Ql&Is!KY%iqlJkme#$kmYSUOv!_w7}H0xe*sjVV(gPZuX9>!Ek=^ zpL|0Z3-k&5pX*|}jDSNh4?_Q{_hxlG^0T>mYdJgq{lfJL(~>tv46--W+|u zEh7u+_{*&H=1@s01xggLJTL)P&Ni=D=-PQyJ;UB; zr>y$DW-a0)=j3Z`owpXdlQM^gQ+%6a}z33-qenH22RSQw!Ng^n2ZpM3Yvxdcy z{m0T8dz&|Xv1w+P)9TQ-Xqhm8L4TW9*W-$H&B`Tw!N_+?0m8FQUog0I1G&8&L39}W zPiRei;QZTAB%S#*3z4#%kQppMX$(hB$Sl+_6%8p_T*q2DtoV-ufvIkrzxzY zcp8>t=2*6(y?7$XB;<&fs<0*%y0DJq6R9B z+gqQqN0bc{-5t7rJbOUSESzobzIRASF`Vaqoso(7s$SLJaa8NBcH99DeI*8O@DE;+ z?@`y&a4Qilt&i=ZQc{w(>th1SxoRzaCcQlR=2u*HDqZ@YuN|gwR28x9gyLz$*;Klp z3AVS&T0yZQgu{drpyeDL9l1?Lu6P2_N2~Ss$alcxlK}7`lH255T8fHQP3NsUbY;~0 zlNhwqUs>Dy;fhaGtZFZmloDw+C(TPJhlk%2ayyo{(dAYGScB`zU2SVQbCHzE?+*k7 zBEXjX8xU8m0~+KwaHPlkACpCaI^-OQ9DxLs(5;YdhUU#`h&f63plpzYQnMbFA``*sBBb-}y) zL!)kz{78IZSXkq)|H9Q*oH*zEcS&5Kh4fIT9*rDPmuvquIm$;~DqsyJ&a zQBrLS$LzWFT28dsX}r(SuI2EB4Rn*MG>OwmZF$VkM7_02chdYv7xAfge(nv9`ir(l zDywUIRI-vcDPxim@yKZg`@K%>Fm{{=4tm6W3Dpy%%cR09IU2lkt$2PCL06U5z$k$= zHCi|Ujs6n%P?3&`Err3~%p&A0TXxdvG~nX)?hGuucNA{XB<8Z4VP_Nc)<~W!h^CxH z-qWr$y_^vYoR7FchAVF_y23MIy)xP5Ym><`c{5R$j+i`h*0^e2vwfuSbFj&aq0yD)IiH9)k{HKz=n^~SCJ z&cLWS#;TlAzsj>DnC9=qu>GM##B$08G*CLa{Q6!QsDEq)`T3=9e&4DVnw?Ddi)32r&AJB@%n0!GM)rF_t3=a6mgPNV+1>_mr_a;3Q|UhU)epF$St>3b?v7_s!ot* zZ#uqBrrGkd7%`=#7%j}^RA>9v=dGykCM{GE1BF;fu=`&x-|yal#k6PWeH7m_7WJFs z&ycX_$}gl%EUdJ5BceO*)qv@ha$ILkd=A$*0xnT4Gx%kcZ`@AG2wms+b13&*&K0XwbJ*cfkxNS934`rNzT1pW+HNb^T))swX1C79Ova?GnN=i!E z09h=qvp>tXMjG--8f=&jPj@<57T;Tpj?%*Z&74++Lovw5{j}7Hm!_23T5UiQd-%n6 zjDs@D3z}rIKFKZIw+j-8k`~;91I=$km-eS zY*`&@;I-hH&F;L63vbiw_KI&6Pu-W6Y#d=ZMaeh|6*9t$SFBj4UtGXpT)L#&ejL4= zL(B7klkqqgykIkh0nJib^V-+#Uc@^VECuY}UNwO=qdOl?UFHdv%7~fP;<->(b$>&j zAp)dlVg0B;%*&dBi6C3SR0PL^iGkxX;{o&p5tq419WhYy;$O-=NcyFD#pVs5au2Ir;D?b1M$mJBMZ0-u#k8os_o9Y?UElw{GcrGj@ z_x1Jdx;PC45R-u{8mP;a4F6#tBuMg!!>u@8&P;(K-X<;puIas44T2Nx2XR-{uq?D} zRu;Me_CV}k;D)zRh1H_y#H_IjVI?IcEP%88U@ZxX$o~BK^Q-!PdlyVzxu;E&?d>Gp z%-|sa$-pPFGg}?So8O1)3^k;r<>je-Djr8p3VAzz$)y`WKMiI5MeL%|y&@;0jh$;BlEbUIIIE(|yq_k}$VDW3e@qwZ9E@*KA;w z0ejl?v(<$i)@918{H<+nlNlnG0#93dBq*t=dlMyzA8G!`u+cB_g{r-;U4pW)V_Xil zn|#L4mH=G)g+k%?CE&z)pi8GQkNpL~-qEwNQqa}C2~!RJM)rzMHmem6Y9e&aD*J(? zVxi!h%mBqLkG*~sIX$+r8)so;PZx;*3awlQH~$nmrg|kP;Puv*Dm55?3YFqpT{? zCkeUtpqUty#Rtini<6IvQwa0Shm|ZsY`*PLF^|zE#+bgm(>;-RaqH#9chq9uM^p|y zK@w^5uHkxmdKsGOeiV1^!$^ffj1A@i9H78v@wgCH7aGe)TJA@Ne;vcES_Sz-*YLI8 zy!j2BV3ORA$w%f(Q#B&(QFdE;M|na_B=K6+04N$OagT8uw{}a~yWoL2nWQ}9iWBpQ z1qRH3`svx(*&1X{-8aTcx%?A#I3qy3@Z&b{ttLWC6E6EnFqR6Dt7>p849$&DJc|01 zjme4&GjFx{-SEWtiMF(iZeFF}xTS|~j-zZ_C#i_Xgb~P`Ew<*8KF#@%BQ+^%%fahM zPJrvaXUmHnB!T#N9f_~i?}(F>RFN90YCZk3MQInST5O)KJ2F!`NrseD*N}Vgfw}6U z=eGA?!wYN0xJH?<`;QAumHEy@7(ZI7ivGy;%;B5kIpX};*|8 zaIgFbReBNX+r1JXIAp8HS$Q-O>Vb>k;G@&YLz=;a%`6ITDN2?5ylIR%>b}MOM99eq zjL#8jGUmb9ksDK^+g5Lfol37pHQb$mhvu3*Zp-_N9(tO{hZztZr9HcJYVuMmo`L-n z?0qvc`?FI+-@qd%oSyGZsn8+17;V@SH5nOc)#@to4*SVvJXct3uU!+mOpS_zOA<)> z%xP;pkWC%Fm8cB^3yx~_Ab0t~Zr`Kv(Br2YwHDGyQ9HxC{$=M}oYtH| z?YX~m=8G&d+l#2|av#Td#0;vny9eA{Eat8q*v$mHYrB4jz(MJ-IUHuE{+$AN7l+e5Lz+RrZ&T>%3%cJ-x}96LQ9VxizF^Z+JmH zdtXz)d>-kz*-5sb9)-y#|8IgI3ChkBDQxC zJoRvHlkY|!BtuKs4o^;4I?=bkcI_-=FUQ@xKP9X9{`DEWd$-U29!?IHif841dRWc! z{CT1G!twsn$7DhjPw0HPRh;O^2WR-08>udel3>g$&M0T1vZjXtcH;=!B^F^+xb zQ~2YGY>tRomX+gpZ{DP`YyIYGojx1KXejQpdXFcNmTm=^;k zvyq1`8=T3GCpKkvhZDXF*gzup^yMg>cIOZ8@XFYj^NNpMKKG%N@hfqPxu+3Kj-feu zA;ouFBaf&?ijZhpnoSU`Q+o3zja5*2_}B5&e0$W~{QSA8E$eERUP^-Yv9U21q~+N) z>)N$&T+4J1A&@0aC-goVfEj`~#`T-Gy29yiqPWahSUtNi$(qgL8;Yx#DpI^(Ykb*D>Tj14Ah zHes&t8gdf{1^VC0x6&z@IKRBX^<5_^veyi?89YKKOuaM$Lg$}Prir%43b3cfJ z=I(`f&C%j3l+?kX?Ft5tY^Uf+R!^COStO6eA1lKXPpgr_madRPD9WCNh{UlPE8(y+ zYS&9cIaOwfmfqo2K5|}CYIjCiX0!d#oqIkuPz)mB)(QQfc>Bih6x1d%*!D^YhKB9Ywqdd5xSE-T-}zTesS?PJk{n6&i>iFo#MIg~-20)ENG?S34pgTN-#>PUk(a=xFd-`J~HvZkr!hC#T@-c!oK&j~k zVfJD-j7YU++0Vm3daE?cIUkZgXk2{Indb*VZh)bE2NUou^B4h`)|4Q~4w{=dB`$jz z!x^L31?}Tsvp85ihZr#Sta{`WxXj5#Nlc~h-hqPB>x{VQXjwBUsi+n8`t1lNCZ-6G zde-|%2ynN2!n&Rp- zWJ(B2d*B8X9DUs&a-0twILma_eG0xO+Tk-JK=;S0^$&B%Xxfamwzgg&Cr^l2D6sAq4G^0x@?bK$)wY0M81ax(Kpr1(I_3PIaukhS_mz3rUfKt;FJ32|wK?w{D zgtq+%we8+Evul>>rR8+}{_}^Cg+)eaesM7k`O^H#>vpFq=dDB|#FxmR=%_F$XqU{t z#7Nzqm5;~H^BH-U$&Tb;{rmRJ)Em~C#JEWf-mD0Sd4>Rozv=t{N!;Hp?9tC^U~)Xc z=^r|Q75BBFAp}slp`-3SU0jhfm&4Y64vAR$v&@vg?$GiGau-p%s+-G;L~CG14=5`$ zawIXQ^bp{hX1D#Zw@k&UqDV6l$rL%SiR}gK8i{?8UQ1WT(@=QLQqgaKDHyR8+BM71 zi0QVlE?;4s)#h<>J-z+EzWNPE8w?FjJ4avMQw;?Ol(vSpseE4Dog_sj5WeZ}U%~Y$ zu3gIs`0P<1SpDxGz^=t~{aQt;tM$wfkLwjY{%|}*prwFZCa(OWwI_!hlx(WjZPxzp zo9c_9HLT&{?7*?c;3E0oJsDSKw5=Dz*}RTPbey=GwX`Bemz+D;V+Us~-+jqGT0G-J zI3p+U_i|Wgt>nc6s(EIpkXdX)Tuy;)g@d?GYOa$ed!?hLy(2=F-Oc{S`WJe$;)N1L zorLl$;o0WaGQAH8rZt zNafcTaj42b)c#Xk&<%a{-2-lpd*|CZEq_~qSI|3?EE96Mv7u8c2-fjWZ6oJ&j=mom z4UU$Pg5M&94jsGqG(N#Pwdf#5Ij%fLD7$i_@OW(P_dXa8-^)Lml03$2){|Ws#9i`*eHy6aA3=)lCRd^PEAX^yH2% ze?up%#&VOP^%^W}@HtmAj@?(;s7f^2j3=#Z~^o#m*liJQfy(?&+Gn1D~kQA}&jkjGvM1f<|W0fw(qq z{MxWHwP#keoA|EbDV^j0F)Ft%*~=~yq+x{Z>94oCbLtm4R%mU;hzFl?jWk>0;(fP0 zCX#SBFR|YV?66kW^j1^f{9}+>Tt8btGMK7J@p`2clY0F!i=OuSdIaf|!OyDy9=){O zHgSjHUpRM;&15S{zf_MOhrSuWH&?mC)CygO3ZgZxxu9@ENK$^d^EicJ;oNY#fW{w| zdtz_M<}ykx_3tiIoA%$LO=q{46j@fE+`hex^Kf0)8Tr{^R)a2kusO}}oY9)aQATDc%qnfu zSR9orzXbxCQ)@o=R~#+5{}vz~9~rK44C(smEuvx-dAFnGf?6+0jZ>g5^8=PU^lCyj z$f=zr1f^`a(jTS`tCa4I+sYfLd(~l^zfYoQGG1NVMwXTvmm!B;7Xn!YEWQ3$Q{1XE zKR!H+H{ZvpStz}#M?l#$)YX>ta5Bc}WYcl@MefV;ZdqsKVzp?>%vMn16Th2R;;NhS zmMG}ky*yrh5+uxiNv+e{xy;qn(9pH|_O9~E3$jjjlc9>Ex{UkPi|;nHdoP|HIH8sX zhdfblO`8MQs<}$6N;}ZA)xC)(*}+RZb-Ea_7Tc{vNPGX#sFv52XT#^+NUTqf@i9{g zJu}z4-}ocSThqiQr`rJwa$s$5PizsPBzc2v_(37T)ZX@zqb^P~rOC6cFzmutFBxtX zchc9%5ry1*$L3R#w3jsb4n=n0a3ABQeMbisG+h=tf0A@}Z(&9MPg^mGoU=n4N=y6n z2eXFW6|1Ve=kFSkwD(F=f0u^JDZ2|II#@LqhwA)dvo~hjsg>_NjnGLT`}*BXl&H{n z<)qN;b02+I&Yjo}(UD)2ewmjXE)V|X9nVFgkLg)5vt+(#_I{}du;1v3IBO0b#>fzz z1l{SalrgrP)66naEK1bb3>bS*M*1jtzTKp!qSU3%DR6pZ@W!@~DcQ+}qfM z|L2^KO9wNBD#t}Xy)_#xsvEB9Fn!y~eJ1Yz&uUD|2IKisTn24TP$GlqYY}B_^J7(> z6xdc@C0!D)@V-ekqW88Wt-j<_!f^KsJ-xn!qbPTun`U?gf9rIBvY#O$A$;qW#IUXI zL-B!&IXYF%A{sflG^c6XE`A9cw$I8MLKoW)z7gZ|J7MnO;gjfDcQJH~=iZQM5ou&u z@3oA$of9A$kHlesHp`~5W!m#Tl5Y`7u57ZWtMhMoJz}ibEQL>c>+ap~I0}W=s$r&d zo6?L8P+B!448hR)SizA@O2Gcfw))?M!~X@Pg=VXchV9ZM4wHSIqpJ;C^mw?jUr zH?;ljN*^hs7_aPPslE(CmQ_vpp>DV0w>Cne>D^!aZr3o|N{Kb0-bp?^@5F`XDY!f1Le2w;Ty3ZjB0 z@wM)p%oq+>4E-)6p=+sfj=+AhJSN)yW2EQ&%HH1aLA2Sh(Z*iN(7ss0wEs}?ptLYwL>U@&FP$$-9mViB%Rpqj=YK8(TP>ZIHX`)f4jGRLMmp|I9&9RoAPI)GViU2sPZU^|W2Qssyw6blR0FpTJr#6?ea{laFq5&y5m_jUD?)WQ!dp5Kgyt3pXx zO-6d&^X42VIWJ{7oWM$g6m#W(r?Nt!cOh>{9a2DGwl8=Tu_v$I^u{+J{#a*FWRzq7TpTRK! z+t^`?cu~Ql{#xi}3cD|H`!_jKMP=O`zE)#UpM?G%U>-X;xl7CTO&A-|^)B_>Ek7x( zJ^$=MFaBQm@6(aX;9Y>z(NgvB>X4OD71{8YJ14)%5zwR1GlfPKIL8MYoq+UQoU9hR zF6b~b<4xS(v)YwT0m@j{1Z=%Pzs~NbEbc4uxbX02j;gNO*0f||RuAa{t6%|(zD!}` z`7}n3Vcsy%(>pO+YuqFsU_WNms@x|v>l9HX|H-ZFQR>2Z zh23Y%V&r~-8G1_a%g&gA#}eD`k8N46bRt7~Oj9RI)76w0Qoi`<^SxxI&NEuGM66Y+ zyyU?N4Th!ToqU*1hWYnxg{gL-f9=LS9By6-|ia3V)6-vn?YDHY|Nis zR$`lUh?o3pQpYMc2eXO=HtdD5s%KymG8$vcy`j1cW45)ZbbJp}$cydvKNy)c#_E^sHZ?e_=Y|4{VqIyHDO)r=V{vkb37>1S|kA zZ*QDSARGkXP!mV)D>h%Usn3;b9y5MCHBUVoQPzn(>gY)Ez@W$MIz<|qn`h_dyvobV zBM1k3t35oJ<)hyiRssPlb&&*hqw;8fcXzJo3mx>_c}U<1Kj#bYSKvF<+{d|9)C3ig zmX=2X$PKk=SBJ>uj9l(_DxkT@b{Egp`1Q&1=A37Ikw@qtyr|Rhvg8fIq$lUAsDId-=LLKe>Y?eSONo{70wBtOE4U zuoM<4r*yR{@uytznhG#Ck9aLY2Jq-BPMFOhz=-$CYGC;aI0|B>|m-e;HFdEyBTPN!G33orxTlWW&0TL4M*26Ck@ zQ{@Ife^Xp+A6$OTQZ$>?bV!?W@9Y1xdc#UC2c-Sne!z-XUu*%@-oF^fAw%mwk(xZc z+V|iWd8YLw8&X$iR&-0TLD;N+EMuN7{&l9ZYy_t_kJ&)@I7>%>Ebm*pitGV)*t3@= ztE)rz1}4eg&b$8kanHcm*lxCoWNn1?qEB3_igsv|y522(J&*ITU6t&{4V&bVgs2O5 zl(>ox^!_?{rnZ)iOk&=+=jaos5*_qWRUV7_JdNmOa|44BRZF9kwezgs9Wc4)+O6L}Ykp^WOPn!3?s*3t<8ryj>@UGoi^o%6dT zzPo4W_aN=6BgrLdls1=Prb@N}WI{sOR4=AQJX4>Z8dBuacp|>o)VRi%8GO};b@{=v zHZ}5}tp)4Ia+`wztv_=4av~_0eT~(cAYY%E^V-%IR!w%!A*sitci4IrS>RHR826chwRdPiw0 zO+Z1qQbl_21RH`Ni1d#1UZhD&P^9-7dgv{52qlE%pFGd|z32PSIp8Hp_D-^A_RN~K z?t9I>eo%wu;}A6)B!y*trFQhnw(+)@vL#$MS}W>%T;KE@B2o6hO5OA8_^%^jNIh_r zhF8hpeVL!w2Zu*CNxX9B2GlOa(Rxh3A$9ozZSGsK3xO;59 z_|dp=e?4dYa?q@Q`p?}16BEC^-wjU010||XSnjhyn4+p2&Rg5S&ttIfOe6Jo3kh4r z+doB37pDN*p3OSjhr}I`0XuG(2mO}E03KksoSeRSdN;hDkoWD=qJDFGyZ*TtvbIgd|Yx?>>BftRdIh{~5}8=gzN3 z0fi3DS$tdaL4_5miC2x?za15ZGQcdgo!os?Is+MU$d`_enq`}%Ej&_jjE^=U^ zhlYj@ZWnbQP$)9f(+B4S;&JC-uX;HK8@sL_`=drC&q>v8iyfq`=rL%+!F}AKAgQBE z%oZRR*{6n5i)|Vlr#(#H`%`Z6@sR}eIM8-to$qrur~t9CH>>SmlNG>8(w<6F+0+G{ zc|CFs=#AF286i+cl=k}d9`NWFdgH~i?C8UUoh4zLT~_Icz!uixBqwCW;{8N*@F4>~ zqJ>LmQcfM+EJErd<`CRj)Ku93TOC2n0^2`{I|^?dBKD15tSZ z0;oLwrvF1Q{IUD+zXpjYLUx|t z43dK;sjZ51!u;%>^PCqVGVf))kGOAU-f>WMS1=(_(5UM3{}b!e$MHEcT+ip~2L#Oik`t6iK%oV&PGxt!M!fi8X1Uc7#bw;!Np**vR1D;>0+}{dAov8} zj7c8_ql+4hBa?(h5(uG+WSPanmJd+qqNHOJCUZIO7h7;3-4;yAM3@r1GI($f!JAPG zrYz{qQoH4U9vPddYb`&kQ#uZ_fH4Q_-kmrebo)(inZC3HL1X%mf1l@ZN2}Bu(QL*frB0b4u~*2=l7g<8P%&f`>*{hL*DY ztC%l!b-+XcXT&IPH2+i7H7g=(#WbQ4YK#<<70mK~fSjTG1&(5)`92-By70o$PLv{h zAs#zw;9$a8M<GzT|n<+86@MU9iFM8UJp-ic9>jfnVYxY zX0$_er9$kHa3eLoGD>Z4L+sU-Y@YV+&MFZYdM6r3By(WB&kj?Ie7mmYEv;j_Q{ZT% z2M+tV&ncjp;OAt|R(&D^`r?5Q+BIs{KY5d%B4 zF{HW(E>dFJWLS5MgN6J1OCZYV5=L_-i!x9?bEf*hFcxn0vM@>%iM5U}M#WN6rnCZk zLG=nZ@Q(!_bePlnah|91=9`)qqa?@mNo>Eo=)>X#Uc9#+Eq28CWoAA5cuLX} ze8WiCS|wTVzboDJ%-?_o3n720wp+oE@Q1@%f7^@B=>2?s_dB>Euh7%CVNVY<;*Li> zUsp*#fivH)P)Bxlh5`n_cEa`t9B9H=_odjb9S8!IQ6JptDk0N85eJe~JNx>^(&V?J z=_Z?01j2dhqziidcP3bM*Jb@Y+us=2{sya`&!AJGjxH@O6Zza~`qw3YOy?ubZ0qmk zUgQ?(2eZl+?gVJ7=8I|BI#Drs0WGUE&YM6~^D{_0n*)P26OQ}22NdBQzjQLXqsz#E&T3T$OYr0hC zLS~FNuw+Fu&a5L44=u@2ibl1WRo1wVH?O(5pjr+?!tZ7DD$)n5n~8I6-25kuC%|kC z=>$g#z-K#JCijs>hW2$i$YVn|Rs6W{8BBBIoLzZz`oe4{21s%O$4GwwS>wPA$`Xr6 z-*_7m2+%nYk}%2ox_??_@c21;pmsyxk3XvSXyCQn<^*fYJCeO$hmG-vF=htrM^_-U z#1XdbWK{bjrK3orXu`e<7WWL^Wo6|3Z=e|xM)ljC9MBn_Z1;qu=yJT%@ z-zxs4rDn~vJ5Gbh4DH+$b1;OeonLZNHy?I?WIsRUuo3=wl^Z*IcJ?51$MlO~pV&hx`q#7} z;YL>SU;nyVy=^*u;9I>4K<(V0C8>;}ZTd!*MSv}*LLt@}xP*(TG4lh2tlY!ZPXYt< zk7>~&h5v%s1lYIEuR;V$3|#hJEYYuq1|T+fu{lZ9ju1U#`0M{Rl|>dL^qxD7F{mJP zkk^b*6veVoPtTg(G_xV+!Q`DEE&f#qfMNg>`ML3v#*i*Pca2; zAl|MWfJA!39-iBUGYxxF(3>@4d~YSE+@-Qo<2Z`OSe)(JNbVc4ylugFgo7l}hS{+& zsKGG8A{$mMwMO;K!1_6reIx&i-U@5j$0M@*XJC&vE-l5<)4U)r~KGLjT@#GN~A z8{5ym^l)qG>-2cemWJ?k;lEcqe&(Y&z|1{R%UsxU9|$NZ`9QMr>DDGdS$dN zJv1yQ)H*liU*GJ_*i7(Q)i(?Nps04V88HveHAszi==DF|9!#B;t*_*>j-R;i90XRq zzY}$Q88@t&=IIsNKc7*8ZQdIO&C?%^m?PwTHqx&*osxNU_@HXGY#or#g-1waWfEl2 zT3wh?vn1|D)`BHs!XzDdJqu>Ln!dh=nuyJ6DHwaoG__|Uv~s|g{}O0*bYqL8RGiKH zr0nJLDIr%uJ>}{ey5w~g%!>6MRm7VQ^~Js>beX+HL#1U$1V)z)go3%@*7IO_R63%f zjNcQC#1o$Xn<}s!lA6P(WP~g|Q6q5H+bTVDvjBCa(VS5S_Nc~~v8OYvu!1)6Rgi$D zru*G)m|+qe1d6&Nf-&TIj$cRwGCuAuP+Q)zZ}LT$`VcEp3+#M@>I!)Lwj%1OGc( zms|5Pu7v%qolj5xX8PbVf{trL+}vjU^6d?`Ho$Hp;$^|JFR5IcrdQ=b*7$>@PsweK z;S!E^=U1iG^iSA8S#ZFVpAZQ2r~r}{uZVKL){7v;)42%ckYf`4;Hz)oKOrDXoS<20 z2r2AujUnb{4*+Gydd#dn#ri#Yk)IS9o4$R!Vs*GS2zFUKa9ioQfqs&W+ZrvSmYY?* z{s_up?cL$9PDALRu=$C;7QC&ej2$8jGA_!?et*U%;WUYS)k|w|HXaukUD#D%FI3fa z*uRtZ-cH=cl_HGj*Z!0;@DBzb3^52=MkS>^N%mxgym3IrRJj?@ZFutqJgb~D@AH|g zEAA3ltnVH!hPKxZxe_dl_ETuPCE_B_&PB*ii_yBK-e36t$pt`SD7~v|Zx%%q2oEI~ zc4J2K0s~^q^uzO!eOEop!snLh-f?ZJ$F-wDuSJQ8WQ-k-TD;r5T;*r=w@;^p`k!P0 zBNHdSt)v*+kpsdo%6^^IpW&+w6Rg%gGgUj6RzrSI7{_r3AH!LPbdZqqOg0Ojb$ru9 zd#r7vte>0M!DZW30ip37RnIMh-xx1{4cgg==fN}qpQ_yAowvr=g23Nh|Gl%PW$Uv! zR26%9r${*K517u)d8-T~r6f)BQT_TaQw=^Ht?>1jhyZ*M2Gu`*blkH4uNSh}zL6RK zm#zlxg|EU5=l`A!4r~zFHvgA32L}qs3!7;EuP>?n5ES%E883Oy{&kaMwGCfD9aZB0 zd>#0J?Z+SYSfxFAKYc=gEi>6xYN|(DXKeRpLqK5pe|^=o3&1=0xKwd85JVXRWOvGG zmFUf6Rh{+6uMg&lh<pymnzEYhe3l{4XO5tbWxlB?Q6gJcX3Ix$Pfh{Bde#%g} zv%CExhCI2+RghZ*Io!%(LoF;RS$o#}AbgJHTv%8c$y+ixdHJ%o&`qsc`nw`&ywtN@XH?vqP!+!$?>A#d3>Nx`w{tJd<(MiLo&8!XC@sAx< z;GiN5m96Mg<-+S$$g;0ARF69NPz^zfQd$uzJ?o+yiu$MrqMTg3Ug7Ex@ime5TMwNZ~ebx5V__#kop0d>_CDrRAn&WM{S5rVjMCHG? zNXbSJa8FW{cW(kxs?sh+s%m)w#=TZ1{D^(vrxTz;Ayvm1&+_U(fQ)C^VK7#^C6OtnBMI8i0@5i3PyCmmU zhrUb3$MyU<)4P^Vrw9mIm(AeZZ%J@=!QdCaRFQY9Zewodfxx+VteX4-U|WL5gv1`< zLG&yo?x4=nu-B!ZZq_J|HM$JQG%+Rik(+70N`48gx1fxYh@S@D$fxgVa}iIp!1cqz z;oui~-fk8-cJoRWygsJsmi0*W;`QNWtz78}6Dw>H0cKDEX)bQ!ZSwN+>1R7l`rUyP z^%9aU`v^0XGM=CkZZ}peBrRwD_aY1^Vcdw<&mro6EKQ=|-@V_bPZPf%;@{v$2Z1`L zT6?CiWxqS!oBYYc_dcdg7P8j)tdX&;*0!jp^z;Ktq|Yt-Jg0$!=0T;7Lm`2kh+Fg5 zN;Gaxs%{{vIyTi9rM3mV;rEl%J~w^RUA`d0l;a1km&zYET*)yX$^R!Y>pc;?IELP9DUG+BVoX*P_4!Z zfcgI^>uiK>0YjBuI^uDa160DyDY6q(p=2j&j$j?!e4@5|+6i5G$M)9d*~pJDH5xXk z|8;4vt!!`-sGJD^vjiy=d~eKe)6^$PXeKzHDb4>^8O1-)zo8JNC>XD^-YD7Rf3QGT z_xQp^=_PKGN%So~`BbN2JzIxe0K+bbdjxxG8DktDTNl2Kpg>uMGb` zHslw<=qd)w^uhv=wAUVlfq7O**Pjk%8Vu*l1r9ibT&f)*2l{9k<>goW{LTzfQwGv^ z^kA}4Nd+FRM83af+Dj8mHor`Ksy=wX1APu_2q_TIkG zzWNdg@TMk)7CEA{z()ZF(s}T_nl))8faCYDB(n8yq&NjKKiK=gxLv;OiL17mDFf4i z*Zeow0FiGpxG~E=KC=lMxv*paUgmHIiQF7_f~T&67r8h%#;wn()y_fL#y@}lysWgQ z0s@nkASLrUJw2F4kI4K1pdXu&@d}8U(_Sr-CmFdJk$E6$(`PJT(sL7p_RNUF)rR_` z2Yidqxp%WBC1vZ2f&yDcHD5aXyvcbM3ozQ4D)$utl5ZvoTKu%jUiWg*{+!oG6_~0_ zA)lF7M8Opt2|UN7LIVU6fa<|gXNkQ|l&2l<^3v~Qlq~u@lH-L2y7abHr@wd;zriV0 zg6TWH8;0}ON0|EWZYM+BQG?9z&cLdjfv8A%)8}KRCRGQ3vf14YQcXAG{WbsPWfRhoh>3qN=mQ+!hnPSrM+5vuZ-M$jvBtA!&R;8UMw=#;zVw6M)l4sIQ z)q@N|S3>%Zx64%QTD1OyP$&Kup)QTPgc{2dC#PoP6g|Bz&yHJ<6Z*DSTPnCHxJdH= zhi3inGzA9zYQE_4j(1a*RiBy!9cbvWePMWCTs^`{;{hnkG z+bK0FGX=4fBIt#O4}XJ4AHWMQW_4MW$Rz;w4A9Cfq%(O@>i;ij{7Lf!T;K%Ef&oC3 zV^Z@>+KYUn@q4uq1S`zOgvW$IU!1t(A{U}hb41Xh&3Ok=Cx=x(+B=&OP54bJdlt$g=9 zUchh_g@|r{@!?c&C005YL zueY6gIOMKeOeQljL6h_cKY{YL#Zcq1hf6!c;^z9d8vzrEefo| z*xGipgjaTo&6OTuKbd}msuwiR7VH-xCr(8C*zM0gwbBRW*(PXW>5W#P%%u*jFc5@ zLS+LYWK9>yG!aL{>_X-jlEu#RQ%UkidDr4n1>v^B#h$R-6OH-7A6yfa(sAFT(n+2@ zcqMk}Gj&vK?C0AR6ukYl)~I?7*E zOTWFn!PAWlV0-j{S|boS5W@Tc7%?LMfPdvBaq(1n6ac8J`@DR+%2=lBLJn!Ks$Z0_ z_MFaHZBl2!H+q)cDUxc@MyEOjg;(AMjhh45>rkJSt>QEO)d#a~o<(DW*D0>wW|2}t zY|9dPXCoEuC#!IA7y=}alm{)dnu@^rKeJPNHbplF5DpPXs9=eoY+ENO4bev7-?$25 zFp&ibToeRmg5waNIdK7qqJgX>w)_9nL&U`IV{a;^am&kVG0)Dd1~LGTv(6RhemhK7 z{RoSueZn((I!+^d$Oz)upH9f*QMSv04Tsf~C+p#!xtVd58qX>YmN%#A6j1&%0O76d zi(h+A^$+qHH}>Ru(b9V<5ncBo-mIT}waWuTpj+;42*s(IHZ+ek?PvpB6`)^9CRuQs zwfpIBt^VATMiLL6(i@Zmg!tF$rd}m*#s%(t$*g|2hP_;vd}-JV*2>!+G*+5PjY95; zhN>row5QEfB$ZaW>2J+`MdBzbs&sly%i`Tdsx0j!%Z zM!VuSv$H$Fj#l${+mYkezhB>vUR!pNJ3mvMgX8`58~C-;VE$lF_ZKQDmib&r5i8JO%Z6>2cZPPILxP6NwD=AVYi{3jn63Pd>8?$Pl;pj!68O4{ z;jIgPMFV=j7c=Vl#8OBPLwqJT6ZX2|Qo`PcM932V8&0)~+r?SJ!otv%erzI?V;^k9 z;3QrmlK_g7f{o?Ib%K0$av&M4EG0+-=yd`$P}#B4Ufu1pUMEu}zyv=K77oC`UMro? zZhJMJ1rqg{!vFSkFrG@lfjbLc`Wptun~;?oM>9Jfvn`;V9f&x8sh7s6mCci$G6 zWnrp;D3-cU@y4T^edUR!K=tW-Pa}lP-r@386Kr?3%qGG5{B1*(#USEM#7Xs~Z}7)q zYS)OGw`KRA5YGm{GlnO7(oaEy*+a0QU=#R9P=N<1P+y7W=|+;YdenS2ECD?;v;h0e zmh=VaM2*|muxZ0*=$#?u-0(|~@|}PiIw;Wu-uCI-9>4tXl->pHw>S*yKq!yD~iJlE6BOUm14)OU?d%GMFBs(3`_+#m5M- zLLq{t?m?CW)9GyZroL8GVuBj!)B}2KRi&iUT(=`v)i|X+(iGYeD%Q9j_E)$b`TM7| zSFc`OURilcD7gnR=RoN$_3e00UGe6(=7!0=!5~=_Q%!2TgXt2VG=NVE%*Y=*T>tH*`LRU)=Dq4^^-kbUPPhH zOv}Q(uXDi)P#R&xOdfzn?>2GG)f;xVVTX^fSW3^?>n2>HiO99DW)I5p$pq5Qn66% zj@s1zwNq+5BWOeX_mWjx&w6z?{0M$4DZu4!;K?5%>|Q^gbV*qsY@wJWI(;$}Ke6xB z<$At{%{e*f_G(zd@4&I_gp*>iqv_;(!gbLYg)?lcorhUXY5+HA2)L4+v@>x?bFtZZ zd^>grj{Bw4-rf&ClQ=)c7P+C;4&b%FuDb>9C3cIX&2pKXVv+J_Xf2fWhChz4PwM{i zdZe^TT$&tyK{S6A5sRHk=i5JwgZnn({BZ%NXIel*%CdG!2vl=f_Byun3kx2f5`}L$ z_PUghiqp~2{T^n}g9w2^bVH?#RI-*=I%>Vz%PR3yS`)n6KIyr^=ESiX8?*bdtrG3> zx`+E=;B&-rOo0AIn2+Dvg^|VejnyA~)%BRf!z1Hk#O$cm%8ta$>f(C9l3Z}9`tYE4 z{r>6B9Y3dZC>pi3c2E{bb8>L%RW_R1Z>ie<0)Di8PZ-+%1T<`^l#j|$3kvHNSOd?L zMy$6E?g})p$C=nSq~0I!m@Gyz*us8xHo?SwM~?qaJs=9IHmYK7pIp_wb$lAO>^OqD z%{g?9*%=rnPMR^fbWV+kcqfK`xFk5VaUc{v$PdEz^9L zTk=+Z55c!wN>E-_>Y1fUdKS)3hq9wqw3D)3*^ZYIZj6*qY@U$yhk5!%9=Szsp<^~KPR z=-OwZ2&uZx=i=|;aIO}NtVA&>Bt1vZKSo9go~~+fjSo7mvW^}rg{eFj`EA9pjM&k@ zW*jZkmW|WIw{7vL?%If*q@X5I zR<{2edgr8^XeZZ%dDUB%sjJFncJMqhK-J=+r9;*Rxi4jpeANL@CUbKADSf*E!W4S% zb;dMfVXcH#gqQ5qvtGX6Pd*@0a*j&)WmIa8P$A-kzq+flS|sGgpJ^!Q&OL(KgQE?>0KO&@!WZ4B%L~ zpABytPq)S|@21ve2cNZ3fBE~C`FNq;A@<-7f?7KU%bNVD{Q5EBh z4D&$Y7qy=&QlHiUn)FypR?{eNo2`Z*e6eEwckA3 zIWiWyLsQ_@c^tZ;IdhSCpMK%w;r==4=Yv-@c{RzAWfoW3Q;JsUm}UbhBnHNU+GxJ# z>5H$<+^z{~h$Md|ip<)7wjRTt%pzEp@~rIMt_=kijHc|HQ4ZbpLlZSDys6FKw0-WU zr$lD?Eptx~|I`Gx?C{N>3GYv0;2NsBka=XrB7csjg;{H-hj4=aDsARZP`MIZ78Qqc zAKWHqkR#8_!rMbs8uu4!86WIgM@GI#aoY2S>q*(k>F98}+x=16>Iy>=D}3(ec=q>K zny+h6sRrW#%@#KFj)(zg#Jh`~W$6 z1=E4Mza^8z<}*)mOVM62XCoF@YSC}7vOWt88`m7Zb{xo$)Dn?Q-cT5Hex4E!ZKI|d zZX&uaI=ToM>E^mjihp^h35P+|Tb2X0qbH>|@i?5*?a0L;X2QkatvXL%f~KO~@jFKm zY>tO7-@iNCAFz{Te9>;QP+nsZMf-^whBMQC7#s5?{Lzy0AulPJG>Oitu4YU3-;YqE(yqPhbDlG6dDVp(O0h)FCcsfU zKVqO?n(A8Mg0pNCq#KB`<(~s~FxdXc$)~pmR2NpNQ3k@OW98g^3WaW9up;jUWl@JT z-DkJ<<7M%16}DeT9+mwvmQ$Iu*HYg6bm}}pG;eWv-~lhqGDAI7Y#Z3y#4p`bH{PnI zPCr*wZMF+Qi!9XP(x{BXty~*r%+PkaYAoD4yrzM_J&X-U=nwed9Eis(D^jUaJTApj z{qHrEewP{=MN%L7-BANX`mN!!op0_Xg5Hxaet?lw-5H4^dNpe+t9>E59I5PH^^zoPA_jWcki z4x-_C?N-LlB;YiU)?@#c=QeVxk2D$EnetTDPmh&xVcZ=Uk$HvmR|>9WB^PMpZkwY) z%lzF#M$PYE8V}Zr)h8~-4ICt#muZ?tTvDC zJX18@*OCM0(a40Cnw@r}d^f&@&~*@k0qAgT8R#wJex%9|jJfA+%HEsTp>r;H3i~=Y zF2($~>++?q%*&j1?7D+q!HFZHA&1}5XPnV*0uhdP9~1~mb9z%cBnly*XdVkuf_&8eq=M;8{YUE}>AGuTE22XKS<1ttLD7wgmN8 zXpT=q4Kt4xR43b>Kfguq(RlHHaseWB8#Ww9Y~+rX_m~s?6tkCqI;ZPrBnhq{g;sW^ z?8JaCW~U>WxibFIY-xoT@4_Y92+mCXN%$ZNh5QvP1cQ z$Km$r-$GG-(cd|pE@`oN2B0t=G@tW$fsrS#!D>y7pT~-dD<}EYVkcWsxO{CKu9kyo zyd2@-o2A+4$>k85wGHm3Mi{ms;93o+T>%O!lRzTUC9+a31$4)G#mvCbC;Q3K(H32O zeQ}WHbu2xNoCLXs2Kwa0;`HR;z*Bl?c(_`C0`f9>ze0quvpJ@zd}=EQZAy7Vq{Au+ zC?zyI)^dTU@Pj<4^b!-9Q=Iu(#DMx;so>+CZkv~jg=AfHn8KQ{A#uwxKc}`B z-B)QLONe`IOXgpKZJHm>#X~bt6hD&WuYQUkn4ew$FWIx_2FB5o{tsc>)#JT}Sdrr| z``$BlW=UpF=+@hHU8>7OJUW99c(o+86YEcp@?hejElVZ~K%>(HdF5bmomhq??aTZ? z%_-TEk5#Wm6x$7&oKrS{C=zZhm7n0NJ+9_<)v4UkLPwi%|9{uh4!9B33CKC$9k&2U ziOD;E|N5D*A^eJ>6W|ynyU@_%%k=PWUDhnAW6~93Xc3~e)BSnw_`Y$Jp@CUdspIUo?9sS|#K|8k4d9hp zTj$<-i@hi*5P80SZqJg)S@yoKqoWyI2bO;|w!Uqy|NB%V`9xQOo15Et;MVUrJno^> ztH~|Za@_gFa8_x02%&cUybTRverNgWuhl8ACpXKE`2~*$^M#RjPzD5QoHA_o|Pz-I?2L^BDEOoog=?)g<$Y~fC4`nMTJADP`|5`lI$8*A&Q=1!!t z0m3;B$jVBIQV}!5OEuVI8eftRWK@4qT6b z9%F}XTS{tY3#XB~`*8G_(VkWw6_CGB^7ZxYU`tk3nqgoP5Kl62Gb#Jf^ft@i+HnwK zTIWjIy1bQ)1htlFw*u?R({zy0#dZ67rwgt=YTirL!(9@Px+i096ji>sh3a&u^-N}o1!_)0O$I7|u2^hMHfpBju%jo&!80y-d9w-9nc=Y~X6J!j zvRzxh({E?}`0;zu9Z_mR0`V7K7LJdFpvtM673B~N8m&1?{m-O{^oQbOSS;p8PK04 zHhUom@8eypCAoU_v}e_1;1ih1U}#Ki?_2uPBDe(a+DhMy9w#;7L#j`NO*z3?D=I2L z*+hlAOV%yX{qlI@Iuo<9Ui^j3`8`6XK_FmV+07$56x+cUpU~DcHj;w&U1Ia!eTdzU z2Lky*vZ1G7b}eEnAi<=;(5=xG^KA*E5sVjBLzdm2`9o=p~lNxtF~0 zsX1K%Oa=yw!q(y6wLyI{|4txGgKXakJTsz<{MrhV*G<@H4`yo_2oiuKNzj=SgmGNd zBq#tE1U}|O9)3c~2F1FVv@0ozbGvM!=V_K{gES%pn-ORSqYR$*ZUjX9_{$%Y$fat# zI3kX~Z+VgpPZ{rMtRug|wV#X8c zkTA4ITY9i8X|ilPn|X>^iq?v;z9%ow?&0ClRk047zM*?@P9`R)?Lq;XF7rd zr^vuVZG<#=YBS!XPRCY)+=}YY+{4xTk3HBS(>1mH2UA$a7Q9Dt+1XFBE4$d4_(6v^ zQ=;ebaBR-L*O!p|qA%Uc{Ec?C9qlGzD^mas5Nd&>Gz68Q$X{FHDIT+s8N)cl;UK`K zq3qI)FworH`x3H^R(4|*u7C)=F=KDJ?7T7uw5)dTKN*(t7&z>8ol(Fxm332ge_s!CC_TaqY>*pN;mWpV7BR zouuu{lzjbr9CJ$2>;*qFiRa$@P0s$e%63?!>AD_BH5YN16oKsTAi<3|XdJGCwVB&#Zpc120ODzZ$jE zxTTVM|Cyswlf!F0dE|M*c0_*O@J|^1bgck+_t;8gWLNKTyXprUbtR?L^)dQga`qI0 zhbS7USfaN%+r$k1fbd<-_<$5V@aqei;J!^2T&X%PmM z)gV`S(Iup30-0Lk5CM_rSNfH zr&C<3UVo%r0G0FWtvJr%IJ_+s|K750oxWFG@S%#5>?csEH(!m`+VWo9cAbqB>PM5daJ-I@%;MDTk?ieY@eT?+$JD7K1_nUUT`w+fZZey` z6z%O}FUemBAnM*9%MV=`vS{$?wjl$HNDHgi^bZ0^TVa-*PFJFQPs6vP4MQWwkEhetZ{H zi*oTx)-*AzYy1KCG-{`mhte=W$eD7&O?QF@QJ0$?HGFsaC1bt_R8uIc@ zqlGT$;-+X+v!GB(nhMnr%rTRfq)1Vd`^1C0R+e{tU2)20$i9{25bV#T#Orrm5~epr z#TvwbFQc2iE4RPbetUJ&Ec$Fq9M54=T>tT1+|+JMUi#LqQ&jCbwxBGBmXeARV3SWRpEk`<gcE{Qzzr)d^z51$XsT=9=_Ya^F<>&XWFfkRV zyMdejd)?i<&4gOxz^u;v)03XOyp?{?>?#gVVJ~Ek%xjKk>-K)rCfJUb@#(DV_EKgj zJKLcV+uSm|$8%pRpIldZSFVkET2Y>M0y;Kj4-3ubS+63}ck&?1F!u7BPGC%d2TmXV z5)zUKJXc=>K?5;ZJ~^WR0=8d!iTZf}TCX46A?@64;T?H?_)B!P)1Ap5{jKFS4C>u&YvWtGV)<@|EuSe2 zLTmjt&DxV?Wfa*rmXR+&NFQES7QhZhNsPbG*6$R2c*7F6Kd7e8C?6;T1o^&zyYJq~ z{`kU|r<1Z{wEObA8l2Q82~hoP5bwVpVZHP7Xr4hn^9n~zW8n*_rt|>QTX_P8O}IM|`o&CB+izIOIxN2xJ(2gR#OBf35g%^*~{-Rw~$&XInK{o5H0 zwDWkE+EL&h5ak^hSxHrhN{Nf>clGofu2a0t*eElu)4}XTLU;BmNRZg8LDS#D+2z?( zBiUZCMfXGtZO^lNN%WVB5xWNTAFMl`yU2}@2T?JLJzm(o5Z0QRvRvN)hXy!&sCxCA zIDH>k{`y0ehg~(h#W=5{mmQ_-O*|;FlmlxN1y%wFdgS>&ekc-4e6%e-qMFsNl8{a&!`!Ckj$|6hoUIg5aa7ofot`W7uR+W1l)V1kTCEAA-PzebD83c0Iv>+S zYELLo<_v|%`A8_%B5&B+5NG0JT8?1o#^I#T7HT?Xy`7w5UC+KB@E)w+sK6&2N%06({T4OZIER4ZRF z1e{3U{gV%F=4#sN5M_cnxONDxg?Oo?X}ckaA--F~*_*w;f3N{|G82M%f0j5-(%Dh6 zqoicGemJ#0-}0Gou_-Amy1>DCZfv~iB885#7Am19p?rQGv2k%VwoMf#%L}vXM_oem z@$$Z^cnNy8c58?)X|5FK?^M?K=&yN2MrLMa`_~_p!PQyIJ8D_X_GsWt5Kf()t+5g$ zoH^~LBqt1SHP`ODh8%8FP*O^ZO^MceProK~1=u!IX6J^Ph`q(BzN5`R6SKi3--g*T z-{bM^%a-R6H3^3I=&|SnDTs#z^c)6oBP_Z@;nwZ12PZ5Lf%ZHyzjJW?!+d3poUAh5 z&+4>hF4l>wqy;hnWss27G{4d*yL=MaV3$QH(>T~YJm7G>^86K0eunR=S3^)gw>G_Q zf>OJqsessdykXKD+_c{xbG@!~ z)`pY8W28DX#Fw)SLA3Mq14=_H5LX60w<|LmfTD}c>Ut_0hROW`ARRqDF_~Fe^Ue}; zsD1#a!EuVzBaDE|ZxYZt_VM(>yedP+`gne#KLu2e()Fajq5Ui#`+IE*NyFR2IoTb< zw<%*H!^Sr1$KRFiXn=^~?&}Ph(vR=b^r_!y6u-G5+AZM9;Lf>`*eLc7QKodAWq*G^ zhHewAH40TrDuwA$q{E0!sML^r~Z6n9czVIeP&^SlP;&&%>x@4EF2vNpn?Dq~*kpAG-1 zd~n&FS@q$=cQGj`o33UYrqVMKzerOEZ@$w!R&201G{A3I)nP?ZB=KWAh={~EaHmhE zDjzwxgB$Zo*HZ1@+7A6%Jv3TB+opM;{2yYD^KyPn%=IS$oYKcC^boM6F&I>nd=5e* zd0B07==K3RFHl2+3i1k+21pRHQ2BhYp99OQSXy58neO!iic4E*v~+aKx+SIIxB2+G zEi|-1zhoLu5st6ri!4jN+RDYc!Nh#S@M<4g1v8z{7i_sBz*asO4)t z-I6cc>F#jy$?ntCSh0p%TqgUmdrC8QY+3$m5RbPx5@$QM)(~;o9#&RXem!3Pnovrv z{B;WmT1OpCK}P9=0^nW57Y=92afl!zeZVHTb#1jK<7w3B z*x1__xkgIEy(>o6OUOt3c6;~!A##--Du|R3?&tFI@)KyXHznS4SGsFwd)P0zFFyKX zL3%Q#KV7XU6O&P0&qRtm*U~jGNURDt^Nfj)=aQ3S14StmfYw?A@Go|3@3G51|MFQL zW|C+I#=&zVBZ|t2@V|eR2zwoj7UY$Gd*OA5`TNaH3-H)Fky@-AC9@di?c2AnRF5uR zwYcCN?7qR`^^m}va$dexU0vPP*+vg(J_ep|SUU?fIT-7&#gb(;d2T2{QBG#%^jb&0 zmv$mvmVlK8tR4^rP<7?YmoJkVt4;x4O{zyNpn6}7aAcSj1OmR~Wa_WQIIgMMd#CAG zWM-=&KfmMovu7L*>DBbY-#$U5PgwKqNE~=Ron<4`3}bVyIJayAk_7yWM30P(Wi~dl zSXo&K*suul@#%U>dP${1mQ03ZHS|qQw+{q{w$TWajy0VCv^#FZOWbWm-D);ydbcq7 z3@ErP(6pG2p#R!~@qN-#&L9MiF3VNyE6TvO9|d}U1BEJ4<+uXfyl1AS zr3L}jpC}lfLhir*b0MTVgUEr$oR*Ig6tT>hDn$a(hoK*epRcg9m)TD+^wzYR{|4gu z&T9iVAMQ}olmfp((&fj+(ut4MKRgWEtRLf_O4 z9uV{ch#=8CT4Z3bgAqA5;nr=k%`m)fwZGK)vc{eXa_8#_;9g=dzE8nC0XP4z%N&q# zVZKLC0sbv4E)se^8+Wi;A3&yqKXtQR=}GKD)x5k%I7!TYJR@8!B{Vgk&oP02?nj8- z!vAV|8&>i2IB^rfvcY)#nm&3Nndt-)oES%=4CV8mKOZQmsy5iWL`Ft_ZkY!Y;(e)6 zGlPKf9U#+BqcHV_4E-Q+Pnq6V8U25ld-Hgz+V_8S$&`eoNJ5E_5E9AMJRn0Q^A-;> zQyDUCMTQWSd5%mWQ$?mtLYWImhHc2S&BHd^`&^59p6B!ZeShco&pGFNdTFh_)?Rzv z^L@Rq_kCU0UFlkd`JO_`D!_&6WX9xexLQ)Y6}Cl+rpwn52%=#-_I|1CdHWr#> z_d%&5=pl7GJfYD{mTc`=9rfBxwvWo?CrDSF_Iy9sL~ZX1&v67znJw-=Tmr-4>({Ta2g;|{H#1?qFIqRx;gr0* zf%zvUP8si?KXqWEND8Jm+(}*gxbzgxcM{y8iw(()4mjJ1opiWqtv=89ri9_M z?j!mgJ95oikC;f^Ar889ur;O?cea(3-?3v8*7@tGsHl^J z*zrBHy!g#N-(F(RG#FY9+`V&gVzKPbSDqIx9j-*ynWh@$Ur&F(a2Io<=t0ajA&_0C z7yO@ayXpf!bNrT~XLv+KRn0xXusZZbj{o4BcK&lQvJb>zx_%ZCf+*VPw5z;i zC9)mULR&1DI5;?%2mMZEoF1+Eu&^))GOJn#NkVK4f0$j2;PnEcqP1Dt1%@YMB(ul- zwYW?R*kL28vkxAef?=#wOYcNGbbmh(@F^>-gUqeDE2(b=ShrdpVQG9* zXdDf33gu4XEe2M4dX9E$Z$O!0+EX?!m*b?IRNZ(AxvqmP%y?mE@|W;xRoPkZZ^*5i zHw9b$goj~sNRJLMkx_qtC!nVI_3Iswo2rH=iP=vqsse*iC(L)p*b-Q`jB$8&B!bLG zsgBkoHq*Uj(2$a_q0HspXuG_weFYKR< zhjgiWv1E6MY^GvG9f5ja>b$cEyAnWiz_Z=}F;XhIQw}?>xg)S<(AIY2B)(0!d)ub? zIB(#-I+ix+AvO220~NIXJ>?V?MtN^zE@t}RKnNKh&Uy0zB1!3sVlPUG{O%(ZZR%B0 zF#N7xxk3k9U(QZ^7!nDVbG11I7cl4t@|Y*CNf5G0fui}j5OO5ASx7*j0xs6yOkaz2 zaO?m0xULx$0s}usz*txQ_3PI&h5ogn2?Gwx8qF+Xq7FgOBqrld*4EkLB1EkRg5rcg zs2YJ5K=`O6V)Pr#Xb*amwziND>j_^rqPqy=-s9@`&^dlJ-;B`H(`YJz96Wk-2P_N} zi+VvHxze`n*RZY~cQSJaUs`<7pCNf&s?tRYxDqVnN#l}Ac46(pLCx)@U=}h-c;FiN znN#)SMO4b}`4xLD?QU1UUC}z%4x+!!9$A_#i1+z}t-hp-rR70_YbLW_c4Os9E<)4~ zPt@`Y{;_**B?M+*6u)m$f8bLJzufDAQy+)O>rT$*qPD^2S7QIlhVU2ZZM_^an#v@_NGMrggkKT13L&B^Fr8TxN?`9FR$(J7HuQLaA5HYf|{Qjf%A+v*i3N)MPUA1-~+1mD0ub-19`#8xPkq*U@BbJ&C;f$?nIUT7m z&vY4mfZB6~R-CNpLB^I6_j|@C;F=kh=Z12w4kYBv&s?&ZO5mGqPLF=*R;K@QX}Qt3!z3GOf5bx~6)0#h-ntb}D;Z)^&{`UPx zHP-N^R?xLzId{dsBGgpbMy*sAx6r+ zZjxX}Bl-5l3<^y7`c3n`3a!Y-vg3A! z#{zAxMu=i>?w6BcF6=qEFZmMxehuu(+%4$V<}MMlx*Fe3^n_o61|)F2*@iS}Y8IAc zFX`mY%*dzP7CmVlsY+}jPt%U0_0iw&em^t2i5%9hlybVZw%^J`5=k7oD*3T$O#r){ zh!$4E*_r#T-ZRUD?5vu&!NJg<4H)hQyd>G|8@CDCP8ipoJt6CCCL4Y$w9;r7IJju0 zK!2H(>=Exn%dKoeqNpRM;7k2qt6 zN-&~mC{NC26U*(xd5Mr~b#qoiam~6Fq6S%tT3S0r468IcG4nA zA6A~cA%+XPYG1t?ZF*T4>o@c~^aMkFcv;qpZ*E2gon%w}zFiN5XwLV(wxXlyts(|>-Lm4uB3q~Hm)P0MpugIkdR$$$>ZGpw=_k=b`Kco zS@`%~spGzlTG`_kBXP=czctH}lxFO5%o@Ffx9toIo+ZkMFAaM*W=*!WjT4Y}W&ZL*g@N^z` zvW}=Yc6Nn{+v^E&+`SH`%YVDRu`vw!@Rj3)zyUT<%?hh2nC16})q>LRaC(hv)jkJ(gwVVLV?;rVV>6GRG-{Cg+?^F0{WZ zm%$Q!nUDkTgb`1rh$aE^vR;Ig5QizpfV3>CEW>#>IT{&#G!maE=<<#(CpMrO( zY~W|IZ$a8iZcneJX2m%+sGaS7BUr_4Q$Gqg;m?F-2yfd|RYa-S-g5eQ(#z15!?}3! zY8-jDQ!M#g+ImSTHS82}>#B+hHL@_)%GTJ}k9ZCb+o7K!{%JJf8?WV+w!%&;E^as! zx94Qo3p^}*FY_!ej`M!)L)e8=DLZ>WW$e64(7D!?%z0X*-ZMteW82FYWdHpAvF}dz zr(2(Kj`Y5BFLExywlhPbWi?n7ku7vi$(RUTr_O;6^>z5Tx9=6Zw)cHm=o;|W#7A`u z?fb{cgV`P1!qH)w(l%>UM-_CA&6&33x|Jv#W9rfmBo5JMOnumUVm%ShN zz@|Bu+uEcJ3%lg5!FEmIM}AE5<#t+KR#jd4;XO_q9?!Z6>|1DjJY!5FO-UJ*u<*~R z9Ru;WAMLN4@Ricn*`rr(wO_ttVR3ef+i@VP$KShX-;EpZN9Ss9Ior%$y?()j9=g5V z_o?&neG(M=rsVEOtl=C?y*d@>asND%9ck})2kkL3bkQiR=X|i7_Ws;;W7TkRGBRSD zAxN)93Xc{a=I&eP&{d|W$K_RjT6c9O#Z5hmkBJfT?K5#@Itj%3wvY~IAc&BV z4n;tFf+e1r2_sBIx4S@7gD(VF&>4?^kE=UTV5aKZZgBw!p@S4i?c`ul2T9y@c;6LBZy zbeNJJ*5h8M(kL3vvAqM8)r=%3fz8=$KYde2LYv?O9>;w$hCwrPFOf*>=qUd2EFpm@ z^W9{$6+|3O1?5o5+}vDVlxk@e2}wx6y3;Q-hpiFD#~m`5KA(whG>w&U*uj4-R-M&D zPwxOyG_m`o%@d+gVVAxID=RCHhzKLl?~i+Id|Ow95wO@;+c@$UY11uc_B3Q>%RvU_ zDuwwa1<04Pb@sUSP=l!i%oZx~j<}{TU&KDxt~y~ooT!V-ogs#ZnG%Giz8aE*CO0=f zA2yb)DFm7gMzTySrcv5uAw8dV8-fN)mUbZQnQ%PaT`Lgop97{yqGZL6%>+xn|4w(w ze6vCt@Llt+I_`((mRxogX$2skEw`Nyf%-76eR=^_T+Jtbx4IdH3Qga!(r?lwY{))Y+Y*AR*D3G7JM=Wr|y# z7`gF)MSRow30GVmDfJ&^uUL2gf@=k5urukWT?;yQ<{gJUiGZIEbRf(3CmSJ{i zeGqhXzTfJw!;JHsWhPEImfW4eaamS=l9jUU%{o99p1OziLhFZ+w{|@O{Ei%i?PK8N z3IB(gj$@bX#j)06n;-4*LC>*i3`J>dyfy)k;<;K0Dx(?YE@Y1-si^Nnxom1?Tf02X zBk0n~moMtyJ(gX&AMz6(Ky0<5Hb<=2oxDXQ@D0Md8$k0>{;LViNNq(hs z+qKY!WSKl}NNNxGFz2 zEBr+|6pd~7q|&mei^Td3=QPEwa6k|nTIJ&gB|ZNQBTPtUX3iG`qvyT$p6 z!b`>4EGkE-GV4`UUyf!NZMYy6aP`umeOuU>gO-p0%^y#;_UhX0(3>RRI2GQWhZs6a)Mtzfn>w4c<)J%R4Y~SZOskwj_ zNCL9UwAshO%?=cGuOsANzy2DYHYWAhRA98rZn%I5(0TJ&*Ao!tVAHI9o$ql$^Zg4u zUgqVoQ&+uElRQY_8?ZY<8%`oevs8AY8(BE^I>4>Qy2|J=yO1p4T+I0#N~C z`=ZEW^S94LU?;w4RL!B{r)B+u{xCiqA`>;_t_w?=P}Jk)?hz-|niOP9gKw|+`YzoD z2RsCwB@}i6a{t(R=EW9}cW*$AONBBcuF~0y0bb+U+i(2q%;PI{zPTS(b{u#baQSMq zk4e43cUkY$)FaC4>*oS3%KX%`*}^0bA!>uAfp9llskrEV1}h-Wy78>cdmsCY{Dy~x z0A$tx)+}z*e?MU&C}%|9hYCs0yyxh;OTQhkpEQSO&BYHM*RQ|G|30WIxVvnP@q70BV)+)o zKlqVfVc2Rk)6$(;8i`=yMx-rtTXGhaLM0^ye?voWD#H3&j|MeuV%F?!(!*wML_}Z4 z_%f-m`!4-{jz1aNn!!9*#viZXBUhXr&@bN$xD{P@?F)sJq~xKW2YhCZ(>?vk3Yg12 zDT^jM+eqyi0GeXCeYPO>Q-Dbsa@xXXiWU|};g*9oB`=}N>SS;*9C`>HZPK9?y1GLq z?%$`pliySK-`<_nc>7LquUkZ%3}v>0+h!{#ptE%Ix*Rn7=0{t%O+_-%Y#5)d-;$tP z`t62#=Oe&Akd3cDjLu%a&hpxV_f=Y2m1#kxjp!MrfcGWata?kew|T;Dr-+)PQolav*<-ULU8V_W+^{gB!nEKJc;nubd|pbE zUhQ4r$Pd6uO}#Uz-d7c-``@E`Tf{1_s11qxl?Ji!?s{kMfh$A>*+bA%m^B1$ll)m zH-?C9vK2E`-U+Y-*xhGQQDgJ_qkbc!x_Q(@p`-`U>##TtRPo1;XSK35BV4AMJ6?OZ zxX7SB&C0hhnBetwx5n{+Xd~@-X?vPy&!jNe7xndeWlG*XHnm@qFKy@y#|1s!>IKyQ zl8TUBeA%kLJRJuT*=Tw|&Sej5S5oJ`)O{~Ff9BrZyP-y%ot+whQ@$iTR?{7K(L4nU zT7W@dP1~{L9eq-G;mFe4RoEOe{Jh+f2|WU(0+aJwsf9Y($732j+82Db(u8(pi^O>l zH{16Odcr-Mo1POHC8*3o%>(E(eOAIYo>#~*5G^UzIs36*usyE3;(rGC7>CZ z#*p-FDypNy(E2sPV(k;wICxPzP_GVxO1eRT@yVD&tQVofe%TNs&aV$;l>c~lwp89h zSa>|svM9%axn8fWplhrhL4gLBhPza6K zRd(jB*4iOwmoo$JovR+WC}&E&Oj|YTPfJO8=la52AK$8Te3s^xSqKzV!|c@+`@QIE zae;qV-)~fj8Fw1zwTkz9nC>;>gvUA=^%5SuX7gNgH*yiSaJqqKDI)}|JTd8NpWXLx zrSQ*q-;}r=ujSD>l3de(pWY$?VVy&!BYXT0mH5o||BhAs9|uB-g*XW<;Go9L$axK~ zstsMvPDnY=>anWSo8EKLlUL_a_+Lit3o#C`Xn} zvuENR$G?FO_f@%|Yq`biJE?}b51_P0`pb9J=tuIq4i%s8tdUr|U)*a23G6z$hNQ}8 zWZ<-5+x6q*zRwD3D4X|g{oVI$8aI@*8mh;HA$?BQr?&vhIkrzIyaDKf%yG=1x4Uc8 ze9_WEf=M+G*pU_-#G2DrIP@emg5klt^rggLUoJeB1&mXCUeZ9FL*AQeiu2Q2VVTH7`FLD|_mR#q1Qjv*DDbp*#k zq5(ZCU}S(`_N#9DE(TxwWL?NmGy2tkd9Bg~t!3y>Jr*S+3BYL{F!(^nF|V*)iv-7t z-$duItsTj!MA?7s<}dd_!>_q6amA>W@j-zS*Q2mM>{uBAaf?1oSu+2R?L6n(h8-b z)gT=T*Q(|cmREfJtYs+>zV^2Ny4{Y-_8(}n3~62 zPjw?Rg|Cluyh*~Zh{9V(C&*;~1Z=wQWYZke4YJu^B+qU)yc`dOf`=o;QQRp8`>u{7 zrNH6jn}{l1xzgHar+5C|{9eDu2`dx#5l`MPC5lHrRgdof_#0%3NJ=Ecz4318cB5vj zy}-+-QUyP>lz$39vQ1jlSn*dj@RphRM|L6>u@PU}+Fm(aVT%xHhe4qIAkM+z8s7`x zGWCjYWGeMMo#UQut({d~O$K}nw7b|qS}^SelI3@j;IBDV(ts`KLuV>BtL!;$Sy$~B z*?Ih3NIkGmf=4_^w<|WQX5Uw}{d-n!WnsAQ0#Lq^+ZIZVRs+B^!A)?w|M?2#!wnMK zF%*$TVz-ZQKf#mF31h#y#jw;4U>=u<*?&7f^gc($Iik=rpn{_4m>U8t8IX_cCTUHh ztdF#o;f!7a>KhVc29s}<4BuXN+N#bLwvox3(zZDt0Vks;AWr+NMg!oxagB~L`GdG7 zAh`Hg%El$gPv>)>pEX2F2CVqrL6x~PKVIBJH8>0?9LbK;w^6+g$nTF$amK(;E8xfg zi?PNd3N{UwrENd>{Cu7>(<+%sf!vEH(KYxR+Z*CV0y!k|yXGe}C=IR;s%^8ib{IIX z&Cv8S4sw4`R{8APQ#(~uRCdvieyA3bRFLRFVeI(|xaD`!_mHgeBLJUflXHL$34ssz>Z=op8R?qVmC~RLNAHwkWW62Is7a z#oa%wP6BXEeti)|vHNwEr7fL!4vEn04HGUt=GG6HSAmb9ZB%NPumlMo0UG=zJPTL~ zfFb<+?b|ygLZAN-khF-&tryS$gUTjl-#q`%ST_<|yAnVXxZ-O{N}>RN#wZ*>L!66C z_W0jS24xhvxc$^JX%b)g(7j}4qYLNdka;iBqx5t=N_|F(iGeYTXZz6vVv|i_mBqWH z*B3tmDSM;+@;`X(i1sM$H_3tDL+uGzv=tgF1qif80;M9v@&Px{XK@?% zhRQ)x(I;$G`+sEv%}Au->30-tln_2J9DFZA*-e1jLUysS`2vtOaRCCgptF19*3S!I zNB|V$h1<7Z-o?u;b$dZnyh>;m_dtNG9%Xcvmio;{?*M8H_g#DY8x3#PO~>k16-~2+(N?TE)Aqox@w)B z4(?*pdB(Lo{QR{i94E9=!dKt9>bR!dbXUKA%nQCCXrS=cb0u>;;K7y#@>?B7i|>S8 zakZ|fMr0i}lG3#XZx?ojc{LNY=y`@eJeW7VGC?@_Z*K1vRl0`?l$s|HD4{2Y>$I{u*oe;Y^g@Q5Q@);Z{U_W!SMD%xV=-yR=) zVBQ^hrEa=b^+3h=IE0|Gy1}UhNQn*siJaYSc3$5W1yKH7=V*cvq;z?JoHibLzVVRP zC4u^npNA^eyP&Q`Z6vVnV%U!8%^HL1Co6*ffazZ3Biqdi(dPE8g$!JW zq|)@my$mFK#{Z+QZe8Hw9c_WdJfbA%*!$RLQmKtk;00-IVZC z_QybO&E|aU@xf6%d_QEj6{;OsHILX5YCm0Jc_-4-1SeENhA}Bl(@Pe~+(E9j#hm5cVW8aWaNd3)H{ZVUUYBuaXENdpUCO^`^-b%o5CXmMP z+zYDYt-p)4so2#t>?(I4X)Vl?ZOFMhG#$S^zNNcL6mM(oWzGl@^yw@xyNN#My{{06E@K2~#3O*HPQhT&67mVFd za%=FEH$9sULy#b$b)2{jIa#D1iEX^4K37?Sp7SavAFaA4k0+2y5;t=L8DeWu*l2}6 z>=H4^D0ejitdU&xQF}C)+@5{1#Oz{noa#==Dlj}l1FJ(Y(!4F&V$5Lw z8hO%sKa!Z0rF^&t!V$>H>0hTwX0FBDxX~v3zF03Q>tg6R{a`S0ea^2E?VXgwgOs!8 zNa5XBJaecCKz4xJ`0=--F^n!FT0NV84pwkh7umcZlR}d_xwe}Z*fi7->f>|c z#T7dx_mI{&qz#EY^tl<@md`0w*LZ@0LD-UPH9jE*HQw>1O}E!%T9l_ zTTir|Ww}%uARDj`$5H-IQ4-c*quI#1a3wv53_qFZETA158-usbxRmYU-Y!9ax;nSn zhN6F08Dx^F4Vy#f3|#B5Eu;nM3ra~9cI~2!sOKB=Ats8|6T~r8=Y2XswWuWS75)FLcIeSZi)+llp$ZE^#X*y68UeZk1MpzjzRyyaKHgQ z<3zUF$hHe(G3)z?Y>-32mc7q2hwto!z^PO0fHWW>i0=S4el!T|ad%~a#|@j!|B#33 zwXP{J6&SelivCl`=@osN!_2h_AjkZpo;^D>CWO%+HoW#Ro`7llP(SqCo4#Us zHH|DXx|Q_5j$TCk2(Oh9Eg}3ds4}qBckSsbMxO8V?}?P2M|{fLFC0kp8<}+u4Inq( zp=Mq?CLj<}twx)tjD3XG1RgfG2U;y)6wDVI9vWqqAz1fsHT0XP*yWh z!SwK(jh4Y_=XP#nLmV9?Ya$$*^}aPiHjf-thKu+ds@Pp;w;%FG50zg>cHRGT;Z4QF zV)y6b)3!)YmOmG)761Gu4>{7e`CB;nQ6Hz^|8sH7lTLc;t=_wgD3mMc{#?)-ZoBq7 zJ#Q`K|KlV+(&T^5-z#K-_;H`+ddE+uMx5=d?md4vM35kbe#xlAb8`#k@se6q6+|i3 zp0ejI7Hu5TL*%)UT+_zGsp0<6e?KK-S7}ETZb0(}bS&74EaU`TK?hZ3HA4}tTj!Io zx!BnkxyvuD+Tz#QK3Nj|4Ug1oW`z#cKE0&z?Y^FUwHBz+m)3vGrq*It$3})a3v6kS z26lxj_qsJXOZGE6&7SML`T#LpoQMfysm?0;d)oc|!B%)dL3*7w)H9&2P(}6Pg|9ZR zUZo1a(%->rMe`###dB4HZ{NnAfm5sk`EkbVtsDdX=6Lsl-SsEsv`^V&swyUCat#M2 zct1(%x%%LISwpESR-`G%`$;fklE&0ddCX*SAa>0kX>Z5G z2R>)&tq%RdLaX89IS}DCBZ4HR4DA%ryK_OQo*g+ZSH6o8QSq(&dO!WZq`lY^zsA#8 zvoF4OXcY~|;jYU&!(Aw;0DlVm@3FGkEh#s9_nr;*;qpyQQ+x8@%b2`i?N!@9wc@*P$+ac&qa6sj=RF=`vQ5iuF4vw8c zN}KZ})4%d{d||z#tvxCA4eRxsn1|8DItN^qnh~EjWcb*|B_n%~ym7Sx%*6jfV7f&- z8En{wG4nS=p<2+hm0d}q2PVsQ4`JhhEEmw92aj6p@nH&9ywN5AR~3V^%ldc$sJq9t z_qM~Vt@ZW}^V6H5g41OSku0cm>@+o2b-~73+f=}o&$A#vO*-?Qh#%8=i#|Q$%n0_Y zn&*taDQs+3-yc!EAiB?jG?=DZy$~~!{L9NpY-4!EFF}4UVaYd|>|Nx{`>C4gGY8x)1L7FJz-5p_*;T0%tv{Bdti za1>jTA(7--#-NQF&>RHI;9Rq2E)))cUN=rWd*d_2mIs5PFl$)&LB&uUvl25)b)9rsJJ?X{hgKLxhwQt<;27x-{EqyN)9I6UBAIZ~g zWvLqf9|MoOlx)B<1G1tK4;nhCml`%UHiaS{sE{ln5xZ!wrVj?N90aoo#}9f>F8@C) zCbMVoB+tlX+)TiXJ5 zTi}Iu6nl`g7VE9D=WJXjD(mV#*VR2=n9eAqXT{FOL`Uy|H=cSf6aH+rU2Gv+ z_BlHz9wX!@U3no>8Qiue?tTdU9&DI%ddAlU55kj07yD@6*Hu2~KpoQoe|pky{MAu@ ziM)~AtljeP4f{}A2TQt;BCg>x`>4y4X{LgKfQ=`X6sx*iLM_|{%pD%1FaO|3DF3b6 z6u2U{oFVJ$Jwaja-_nm)diB7gza>~m-|hcFarXa?P*&8+J+1ZLDCL+zZ7?SjqE#@= zEcjz%k>3=AR=V7ZC{hu?5icQ`D*wL|nP? zAK^)kz)yy*g};8J@(-@Bh_fxB7RlgneF-!)f0SgWIVpmPH&sx z9C=KieaHM1C6Zdp_K`w>*u%w^9P1h5L~44@)Q{F6$kR)kVrp}?-<&}`NsW(4v}t6> z07y9yOMxJr5JfHh!#@X&>|Tvg$;cG%X#eqJm)&ib!=MKop$62Te!{i4lw0 zKN}S6UOMKs3$YuCa{^DG=Fk^vpH#tMa}5@>i_K?2IPU4^aF=3Wct2&n>|tR1X5~Ht0ZL59$k2k4@w) zO>vijAYg5ZivO*~mskFEmIA~jaP$2nIbAT)_~a6gvnto#b%+wl-*Wj}nbu5W#itD2mh3+~L+%FG8pNBQ?EhH$~#~ zBNU*6cojH$^c&S%u=4w@9`1xNMCq?zp9Qs{MWPkla=sWT{GWs-`(DfeT zPXx6u<)a)I6YM}-_3H~AsA6CzyW{Fv5Sy`KVJTJ#;63Fki%L$*y1rRwwHr66N_yV- zr{R0km%%j`qN2UZkM9_-264JGSk&lAvFzPfG|3kqgPav|c*C{3AAX~$X-c3C*;3mS z|EV6Rr-#){qw;-QT=i9YDx@Lq^sNlHi24*N)B;>zBw~*;A8_{$0ic^5h6v)0;{$AY zE?p#z01P;_1~{)4Q=^`OR-O45wDBO>O$(^^7D)XKK&cmO4cyS7)lmZnZe`M%JA*S! z{!lVLShK(Uw~`1NcgO;8DdsP?r|w3nVz1q^)#YFc)_?cIE3gIQ(**U5SL6{J|1=nL z@5X%E;}8-XYjxF4-HGs>tAf94aP}Yw!a?9}FKI+nUj91=zxyoo4FzfP#049KA3(=BUeu2@N`9=rwa1(d7%nRS=nMTRd*fMQJ^9*UM^+jkHswo%Fu08 zvxOyug|$!eO30MsG>_Xq%H%B46S*?^Ii&9>n(u$c+?I|ou4R&2{ZO5EAiRQ$P?ztuQ# zyZ>JJh=>onkB58o=w#u>^(|)G*G@{*D6-$_{MaDK_*(@GdH7t$Ql>jDC+?bAA#d}f zqtYso=DHiP{JNP6?R}G7v)M_yoauF}pJyfh=#wDPQOsp=m(Lc)#6CewOjofq#Gn8y!!lYx>(8W7d1ia07>)_d|d^ z*&8~qJDUQR)2_v7#4qWQAI=rBLvQ~?GBP%XC<`-c=7M0H9R^ufp9X_&=k&LG7=6zP z`WBbESN^TBi}0M+phs3#Rw7S3iGa&`SZ()*dtmoH4OHEr!g8Ni~{M9j`(bydtdmft@o>MFm!LfQsWpT`Tjgmdchae198<`25;~zH5Lli`}39Ulwz(CO-vNo~#s$%_}^@4)Y zue$1J=r*XFlWfpx_wPIz%+Zna?=I-gAMd;kTB5GuC*hZ>`?xSsxeqR*`@deSQE(uH zKG*x+))vWyOA{Zcu=5u#@aq%&zm-MWx8$J_D7ZeK;6*d;Yv=|ta zi2R9ahGwErh&GA~PkjX%g%-)up7+Zz*)0Yaw+J8WTu`toYjXGX9E4iCddy#y{4;WE zjzun(tXW|TI zWHmKG9O~NIV@}&wzojVk-$&hZf}n8ce9Tm1PO5yEjOv>7X&pOnV#3G!#Yv0MYdh-! z-TU?|HP1^2nYjGoYiH%CI6YI#*J7OMS9>T)3$4xd05*3bk$`Sd0;ZbD#29dG{^~iy zy*yI`zWHHuTPPT_$FzEHt%2(tCfen=P^!Gge}{Y*@Owd_+QKiJN7_O%=%_kA8KOiOUVzPwiXv@=67` zuUjQw6r6=^S{MTG*Q3tI>Fqq%;*~M&!Pl30E9Zq-b2H~=N=o3d>5;fJb zyxV}+E%mp$g3T-Qn8cU;draX`_=!ZR>_Gjk1Flysp3MDxBD1Sj_-R4PP~gC)hUNb? z?>H=$&H*@R)9uA1Iie%wg`H(hO-+lZ>5Fk4HifznR+vl8)=G62d|<-dCF4$c0lxsW z_W*Wj;*60I5AXyn_lE=XRiFh9&AJM`7^SeavAJkvm6ftY0R{I93cC5`3KKL&52c9w z4AKIe6iQ72q;}gSHN76k$NdpS?0~MXt@ORCtri%fNOTj7sswt={>XsR3C^Rnz&lYQ zQ`*Z1tw2jaS0Th7BnjHL&nf|O_nej%)w^>uHWFPbfxj(21G=6kiME6c9nNImhkcri z2q@zK7e50=s;{pHh=tr|xJBz$HdtvuKjm1$hxL!UT(rSZIb{w=us%PquI_4Mf%fcL zQhB+-J?o;I`}P)M=$ws>z2+WHk4k$TR^e~qV)M!^zW6sQ23+7mURodQs&{5FI;@V( z@IRn`dFXzW+=>BghzG_DDSqliaF7ToGv!0eh4eL@o<4DZjvD(f4s8>L{iEKHUk+gK z0X=PP-e3oC3Z`Yik{Voqk z<8pSGFdTJaS_a()NUJlk&b3F2Yf5qdkX*Qh^?w$G9Q2v&0l}~Aa+dXl82ym#)l89txD3b0wlkz9JtMpwr_1W;C1PN zQxxmdbV$W@dNv-YHA2+3pd+AvLA=LWxb?C1m%35cq~j3%XPZK&aLLNt$N^`^$)9{_ zU@HT(npq47s*epcO5v&cEFa1`PV8GK;N8!TIY53y&Hm%Vy@>oK_y7qx&o@dj1aB2| z6S5|hUq?ooUMh$qZxc#8wG+s7uErBd#-WtaAkMgpv9mOHpyzHe3MwsU1u7JHPvN?HV1VtN<+pUH1DmOuDQ+OmtE4 z-z))cIp&`kjuwZNOyZXn7uV2cWoGtIJt7Lr|6hL+I5rOUN)?aj9yHx|i@y{A&%Ki4 z5_AshYBdYKxYh061}t{7)FI%^SE45}fcLQ3T^~(+IhZL@kBLuIbTo~A=H$fNCX6#%KD_iU4r|rlspg+ znZ)?~#S0aXc+j_TGUY#{e(Q>mMW$478$G%!kV#rKU0lvP)2?sBrER8xX2< z^`U9&pN<|>)1!P7%>CN3;+#ruhv!nXXMiYz&9)h!ViPvt3ceJzUKyx)Jg*s;R_&c& zVZDIa1(yE##S@jEh)${sU?H|s?8|@Bf+uX+@&W_@=+dYl&hZFFsXyD?)#)HH<0E|^ zAMb~(RA%kkaV_mSP4U#J?2GPlZ?&4UmIt`-tIJ9JKeCoxvZRN5M;k94TsQ?X09AJa zG&5i#?Hsx*n2j;jBPaG2)(?IA^c{O%DvnQ}(WCRz+1D4-qjdYTx*(ahd{ILbNFJtm`9)Noyj;IAf zWX{0UG_{{D12B$t@e^<#pC}bGWZ;_eQD9Y{S*>qC_^&DB)|Qfl=Mc zK${H>?B{AW8&!j|VxlWZ# zyQSCL=h-*AFJ0jgEE_3bQ|7+La@6Oen9i3^bS$}1v*+sIyleb^olRlP$caOrb}zn4 z`C^R3ZaWx1!pf#Q$GPC2aIx0%*pqBgUulwB=$Yw?x@EMSojCO=+7nb8FdyW53>ShO zm98d*FC*u-?SQ$9*5~Ti_F~s8bFM6PJ7Lu1XjYdeCnqCM-Ahg3uOMx#4douUUb}Lf z5iOkFDP^DJa|DSqWqUSg@47v#;oeE2ylrq{NwfmTtGz^xmbQ4O)5cphmec)~?9NlC z`@=cOb@;+Bl309-_F_%5xNrcrLzRB$l_>s9wMik8OIoI|=Jd89S-}ATFUARkVrrTDqajuowzXW3 zjjyA=&)0L24=;2y)3;K}4MXEO_uAN4h*gv{@kHoN?k_6XlCOE_Rbx!f)oZc$^Y1;Q zN;LK|HuCMfvdl-oxBPO2al$lz^xI#51>o{2?)L_W;iIYS(ra=1>T(x?lS|xvZPpjf z>pj+Y5|`PO*gv;axlWhODO_76O$Jhg%+8)hJoT^JsCxuPx3e5^=|QZUV_c&4mf4X! zJn6G8Q!Or!QM^4$2g{h;b)+Ci?iR^DQ0c;;6t6f=T8HPXO?M0lE{TTPE`MqMMK>K$ z-CtET2Ds= zvu!#5cKhp}P)^@TJPre3Gc^u@0sj++#l^mTFrVvlGt=UN8!|a`vsOm)h9-tB& z>fQU7(+?amhJNs+3*)MysXC1nT!DaQ`O-9AFQ(6o<3xvV!nTGwBivZpnI$*81mf0+ z%{ey6R4%^jtj`g$^n=~Ti5s&)O&vxbw3pYu3biafiF%CVlCGrW#(7PLS&5hJ6jD0b zPjRz{{`|%=N0Q|pv~RZK*r#Bv6ULrc|HfT*^N9?cFwo2UuBs(7U#zDPeX*9y?g5;>*ZYlqjNm+>ckUR1@bUxI$Z8XM27QT+P;| zgK)fil``rzX2#Mai#%9EYts_GA9T=uGFFzuLu!gUom*f*%V^+;oX&KFl{n7uTJn8m z26@g_ZKmDF{BuOAh#F=+PT^IrWm=dNrY%nmGBt^ZylhP8JRK4q<;6sPaPdLY@^Ty( z_8=4Mf}G7GU8VySDo%1w4);r_h*mwDi7FaQI_Uw+IY{e9t-Y5R@AwubTJPSaiKHf!60+PM#* zvRic_mT`e*jPyP@Fz~!F@e=yoEtR+Z@TeW>bq4xNAB^ z6%3x+yPn-95*j|h{KD)P>#S{2KTWq?6$6r3`ktq}&xgaNVv>$7+GRU+(v+?0Wi>+8 z(WhB4Zys>H_MTfl$FAE@juq>sI~eLsSU$J+);dz=ewO~dE&eGr3n33;6L!nLq!#OC z312wtv)lcV1WkEwP7!ljE(BRpw&@DaI6SU=Pr~7^I5+n$Odi|}v^@QUR>qZ!+H{HP z^#-@B9YTMkZLsel<$}V%9!4%{!zi*BEu(igS#51SX0~%F#xs*e(|w!6LU>Hd=cvMg zWvm<1GYQ-3*@SXG^t!<-fG?*b(`p(N4&uFoj|t|kIUNBKOd{btX1zP~B-qf0Z?ahX z#Xb;v+IzR)72a3IKUT6eGCTw3v0L}$g=)zY^`gnQ+mEs%-8N3X+Wxq%$tlDW?bv1* z4|a_FoB+J)2|OL0Pe&6?HQj~7WZ;x~a3DXICh^>tmkro=kX((OukIkFrP9!9Fj>U= zroGy?H>r6UnOPZ07=(GUVk80kM%#uOyViwA6z{EHOKWX$neuPCca=p~|A>%Bq!j1c zE@RvpM`JFk4roIKD6-K*zVvCYs;rJ z;O;(0wd``3QZQ5?LY|HVf)fjA|D19}pRsqaI(9X6b&hei+=YWE{QeQ2xcF{{OwBk_ zAG!MwAOAItr{tiFFNdK&@8x;V?vEWQPhrEjF<(o&w>+UxDlE4)S6@^-Ch(kvzu${| z&$kU?%9($q=TzPeoEhJ{62lFqP{WP!U_LFMCs?`pZ{L1BFgKs;iNlg7ZLwAS32xhv zW!NO)pbtsGb}smA9vL)EmGw-P-D(;-PfGe@(yOv~@2l!W$7<{BK&}o5Jq5ys>6fdB zp-i)x3J6KWlYW@Lf0E%+iCoq%qd!^Hx;pfa_>J9{}o=<1}?BtNGI*qzWrpqBvn|+^SCA!z*sP)}( ze-W9MAza>Ve7QU5kkrWfks-%pq8r=@x;w0CWAtN)i*ad%dAIWJ;rlX|DDG(3;$UQb z$XSM%sMkHVpN_kx&8t{>?NgX$?2(j-t7BkLeADzC-p%##hUCw zR3Fd4N*b*U1}oU;?9TVtaM9+(c5suBiirD31%U(8di%PR-tr5pXij6BvkNVHb8>PD zc_|Vi!jGh-zFHVnJh5w^`#Lf+jv;F;#>xiO6&+}tTl7i3ygJAEqxNYH6L$GtD?#xS z&Z5bwxNNDj7azk#mMS3$VBaq-$#IdJ6CQkhZt#UW$Kc2m|xL=X%w}rI}e|P2AQQp;On*L3hsO7jA6RjwHS~2o~qZXl$;p81J9YOJ-?^6S*ENpA20gKI zu9_KGMA~)n7=qE?6Mg&uxi&N6i&VGLC(Swno(vkE*xJxK84w2c%UDf|MV!u9A9XU1WX#&;f@Bmji?! zyHDI{HOgF>C79&H$5++iAE6=9M20B9F&+C5Ke0L(QZ5n`Sp|C^h0YVAFu2D{!E2JIBqkL551lujthCHQoZm7#{OwWT$ggJwE7j#wqV$2L1>&KYW&=ZD4xo$>L$leia}7q}Aoa$R}i9&x&l)y|SkSCj0i->3v%R3XhL+qb&EK zIdgZeeI{0xq4`Ve23z;Qc6ly2dGH=A84(y`TN;XV*_Y$M4XB+a>EG&I}K6i}Cnlvl*ljfgloVcRj6F#eC;f zua}Zx1%Ir!@Ac|;?;`XKp2>5jOP@4K9LT<#e|ly*ARPZ~V(8|E?WS|}SQ{=pc^>_z zOP7L46R9e{JASIF{DuGe1Dqw11?26o?rgSV>p(6vx;_!vvHrmIV@habMhH)QioaP* zF(+0)dBlKt2@-oCiD@jv9spE6_S+l=YP1tO-`@Xi)<`J?g_)`v%Ly)*F zw+2tv^nM>OXXZszPNfj#`I$eEC@M!BhoQ@F3Id4Y*=ma%@`IUjxdQX7DmvPJF;pv% zQQqQ9RDacvA$Lipij))`BSw3JlSKd#LEzz_pg+ND1G0L)dmTM0b!IQ^w*xPfB6lb& zQe19dX1Drq&jo#3$yl4A zD_Rx26BCKA&oL1vTg#5UjKzNa;(*GkHOlz8-R+CdSM^j(4wbrp!_68#-SI^$^Pr^p)ckjs6c0QDkMz8Uuu;F4) zbWMT-wm(NLQxQ)p*fE-6w~UDy&7EjotbRfH!B$NbG1%F}nvud=_VgT1UO-#_;P=7A zEc)u#jn;-xC>xY{WarqDOaA@Bea2kJzxwcDqi{bTT^U-FrAWP^OC!*a@>8&oA2*08 zk;5c{@aVBI5=^m?p?YTKQr1>IZtIejm6fnPZtk|I;T9|Talo%XeItkX&`RF5xNCw{ zF)HAQYJ7dDO<$4IdukL&|I?s)=iGLButcu;l3DSx#X7zj!8Uc@odfJx+|DQ$PTAI0 z6ykx`4Glve=#}#Egm9o=$`mx`Y`cug-i z*Sq(G zs0}zzUhmoV5+13c{-GB3Eo*tQU9w8%_qdRVw)xdbso^UXL2uFFxsi3+!4IUJnd(qY zsyo9<9}J{Fx+qF*PK;(!EbRS8gGAVZ4mj-awiO_ z%wpz9Z^sTtN79lz^oW?IpuC%H<$SGT$eqZzwKE~b8{4_?J!QEiZ;dk5LAVft(Z9wq~&)jN3G3zLx1HcuchsJmPbSjtVpZ~Z}nv-**6ZO!?!ho`d_4mtg(mv?%#bs-g=$}umwHpid946kQ&!+It zY!LM^HJI&6cSrIvdv0H8pEMPG)J#a;KwtXg(Z+I~Tr00^QEu%XXO4{z%&rG3f z=H+%H_MmQE-2bPFjqNb#+(S{g3u&8;1`vv>;&h?;V^M#%iGdouT=?4dR%-`HdqBF< zyCWE=y+E!3dVm7t!3AlPR9`mSAElEzyauH|$;X)Rnw*)r4>r|UnEZTY`+MWUelw?A=9TjncZh}NP}HI$$6p9W(czpfO_u$z*@cRwGAJ;D+1jv@lD zt=TXex&=}W_fg-kIW|ikYhMfYs>%+|!DV`CGv(hF!IOe6&KB|=n;|}-^;Zq8Y_}Tj z%&nMI4gIxV>y|i2EH{gK5n3UA@zoy)y?3uipUd8J9lvF>NHI3^mh~){iRMrO=0%*b zC-l(est1U zrDl$P)y2%+76!61E+}~hJ6iL!1Ilr<4-7m{If9{bym5mamK~>!1v9WK+I0|I=b*3J zff&OPZ1w0DS-%}wa(OR(6X;$VMo#LyOnXIF-|ufkU!+4os=)=>3-I)7!E30~s1^`6 zCxrIzK^-ggJBfN=`z!BwPGQx93VeI9(hy(a{^j4_JO6N@3=9kw8ru(htRh$*NCCQg ze`kO|dj5uHV8pROxrfyfXu_HmDD?eC;dk`lQIU^%Mhd1{0N%eWS5C@ zF+y^0-B7uAHf%Zm1+y{!ROPL2M7_?Hn`Hjh@1iU!BM)I6bO4*C1YtH}d>bkeq|I14-5o;38=di=6^=5- z)&3a=8+uH<#YRU*7izgM2TnJIH5`+#s;YAI)cHB3FJr4H4OhWCqh0J))5K=zV9mIRxO>;%q>)UGc z_Z7rfe}2^=mng)9oO4TGbuD=s=ncjQ1Or8&s^g+RiNHJ+yd~naxN$_hqTl8$S@k?d zRR55sd=cwN59No&%6`M;_RiJH-EC^|2knJYgw$nXf*ytncWrE{?Ft9G zJ;>36T&o{xuBC%P(%PF>v}B+-z*~9ucOO2SEW8!l#RNdgCRgLVrsmw}z@@!iXJt^s zZly01e*e_H;g54yqB5s-L{*I7U(ddHWD2Cm8MB4*HUE%}hceGXjz)5SDpR=P@+JVj z@&UdOZE?$`vwZzT<9eALLR-qeh~^#b=Wop8K4Vf#*x*y!`udyUEyW0x^1o|~UGYzYLX^)(U6)M1T*a-xP0 zINrx3kbM%9I7*b>_S&g3g;aX-&(_z69;0Dhd)a(;o4sB%DA7=ny8KhGRcnn_knq^A zF!P_EuM@XS_|D#sR>+vUi$6)rwjDj+m)2YUQseDH;1=&NbbIitdQD`o`2s@9uEMF8 ztTq{b&$@ z*xkaP+}6wf68c>tc+~KNb1(G^fri(?cv4X76C^{{|N3m!4olW$iOh3;GbfL$8^^pm z{^&{O@6b_mjU)J0rR}sc7In`lUaBg-P-DVT`aDHyqW2x$^qcweDJ8&bdwY72;DtMbljpdqECWDj^3p3eP#c^7}N&fA?nvnDur z=fc)_^HeYK_|4B865m$suxICrrg4*}_nt+7`Ly&#&ZUH1t8twmeEc{Atg9+eZ}J|g zCle!)nwfnYDa2%%Qgmlx97?dRp3jpEDKipj42dZJdLirpA*{xkIF|^a_c9Q;pDuXZ z_c=9H)yU`#er{}Z^cqyo?dPg;D_LqM>2ySkp<{qQyFgWYSNK-uk+CB_#&0 z1Pn316RcEN_O&m66nv;)KOmc?mrdzVz8dpesqJn3&SnL1n@)ivU(nUrYrKK242lu! zWt-Cg?Y?7y~Zg z(46$WnI&GiecszgFf2IP?vHi3P1Q4kj;^*SS&ns^DLzqphM4dlaw+N_Y-5T6@N8>U ze{1TE>a)cJWdqO)Gz7V&A`iPX)2Y*CUnWg*PB9j9Fp% z`^!^ff4kEYdD~dHl=iDm6nVQYNZ>RSmFYy>dq|w`6!6B|hN^4R>!Xi35E3D0TN~Rk z@a%Gy174|Y3(U>X(AskA_{FW+%=Z8pzIw&eHbk0@dUTok+jeDwCofS>O&Aapnx!b(#!X#kJ^t51P2V2hAi>y38p*+h}*5{ z(qa{VsvX*a9a&#-tgOUVt=C}#%+ZmDbG|(vWE)gl@mUh^OH^?_M*ly;Va7h0pR$l1!>Q5$f+LSM8Q%d488OgaV zRCs2yOK|pCglRhx(Y5ZkWoZ919E07KlQXBTTf0Vk*kZlL<;xWxiE|=~9VB8N6qG8}~})ozL64Ubs7bu_$+DDyW2eBZEq&839ES-^K#*HF)$M zs8csVD_oUo{{;nkN_c5#l?yS)!=r!2+%*4(3-EGe^IoS{`D0xb6^aD!c{%W@-$8d6 zF1^>P_!vf+5dQNAGkKP37%`@4SD^4)H!o2nrd?g`_ZBn%`0?Xt@nphsybpyjIwmnu zdT%(l)DbssRCIK7Qb`Ffc``0t!)0phJhFtEN=vYH3WFW^gVdp$c*q|7JgDA#<_`C< zfDIgY`Vu?{t>hGu?jb-f7c2t1fPDPgt+`lP((zrrUp>_@mQtE(v-|7dixL_AR)C1F z-@tPiwg#qV>X;z2xpjWEI+>q_Ou~KtOqp;DRWvEF?#yW$x!X^)Ik3%6?C74FBq6mh z0lm^so`0V5sV^hAL$vo@{jDPp%Z~B>HX5-);Vi#$}kBrCpDUCZexD#X2%kJ&L7%wq z&6}BbGu+8QJ8T3mFX)7;GuLDGcV-g9aVI|Z3^_>7mXy%xwKUlu9gR!e?rIecP5oVr zA*SK?at3nOW|>tah6)^3L$R@49z7aksPfs1KVZJGr`G?a1~+k=`zt9vKAvKOeZHgP z#?eL2=I<9)9_Z@mn1X|G+18b%=+);aM`)Gt0OB8J50Z~ldg^O3vCsJ^h05^@r_Wl{ zG4Z!>AIEImTW@?zU5$z?}0j`#SlQ4`(6<)U{&cpAH&%;p832kMi~VI_;(F(aGSO-}PajYQ|lE`RGU zW;#}1eDk6Qi3flB+eWH+*62qAhR=@)?J|W&g<>N9coW?`pQjCJ)x37KTi;M-vzi`_ zf4mhJJH+DAzU=;5e`n_v*9Y~K#?07lUg=&&t+W)28v3InywbLD1OjX9@o1wl>y8^I z&HdiR$F-c8!Zcr7#$3Oid}II?`j{2JREv=0`5D7R{qGsZr4f-Mr2>7*-osR+7E3ED zw^_S^a&H;Hm(Mmsl>EWSr`isL6XdTJrkaLgI%;b6V@j zl;4<`chisaDYw=oqlvR)a{SEAGoUx1%F`)CnyJ2;kvQqSlFu}C_2Z*T{8~Vb4CFGc z)Jw$Fjpl#KtPNrDDaXHOg5AQbI*1}Yy{Woss5K;%syUXWxOW9#du;^|K52C@%So1# zUN{=>_4!(WqF-J*7Ufv!F0t_Z`E!2)1v66;T^Rt`0IR&dQ@*O?CVZ=W&4)I}FKO|6 z)r^Vmb%}R$D^=PdM`hpUbk%DiNTd95y=`^dj$hmLVn0AtrWLh zfQn~9H`&+@imBGsS2SiY?`)+jb?1HLFa0=RuBp65cj^IANXbXfQ_*Sk!WY=+Z%asV ztY#6&bI<_iSDwbR$DZxbCf5Y_lpm#iK~rn%dOua4p@S(lDwC8(km#NtEEU5EO6`-p z$dX;+x3hVQV~fSOC8QRI6TAysG|R1B?p#+7Fwuj=Au>3#N^HG4AIaxNDkCIx&h#ri zP0(YM%knAyvi_Pm+R-8EXnFDq!2$@@P^(=mcg(5(XXG(4v0E{N(ymABUkPN2NUhS*@1WzgLr3O~Q9Vbnq0b@hG`v`5 z>njV#=zfej32SNTgJqILE-OG>gP2|q!0pTRmNlVg8zlORS5+{pW@iG9cv~GwNe;ti z*IF)Vrdh$+FU<%I1$3dyRC9eY=IL;H^$kK*TfL+g=v?#l;A=H=jlo@u&?)v9zUU-=E@;H(M5@%IIf#Mr&l~a#@ZO`64zW% zzl|AZCDsN;&F{fk=JaKIAJTE6Dc{UGCrC7Gy|(Uf%T~(bGK5T22>+-=&>t+9dO#3R z{BoSwJ&$$Nc#4w-)+Hdk$d-YAlK7^@%;1< z#%HULbF1e()D*sG%l4Oiji2eI+czb~z5lw#KFxns=Y`)1f?W-NN54+T}H3SpH#t;`+#<1z3058LYD6@TDs2 zQJWC#Q=s&`v@{w#kxY0e^XR&~+X25Ou_uYnj2)+4765iVFgE5c`cz=g&xhJ!+{vQ2 z)k=zi2R-kfTss>Wr*UD1o&4gnJero}vq1uCc7RF=S<_lq9VByqAdB3PqM$l-uU;g_XG2I{vd9ZBMXEyeEYN|HVk(9eBc=0VGI6bx1=f_NpK~acs)XP7?&em!M?B zc2JDT`yWydE^Tr3;T|N_?a?-&t}T8lf59UPu*D&Z;VZLeqxx z-=$IG_e_Cv+Kwj13jnVgQWQ)bH-via8a@t)`06-ajtZP*wBQ_7{zR-tE*2GPc>2tt z{erkYYUZZUsA1Y~zkNUxC32EwHIS-;ftx>OfJ(dOUPxZDSO@LrrlU>wg#V6l@;%|v z-{UE`4iRxavgI9OrJ@dLhSD?LN-Q5Mw;+; zc6LoRQlqP%6h`w)jMigbz8W>DNx=&Ja~d$IyOj}R@~nU<$-EEj4n;ts)$7;1PzCO;7VCTS*^|aZ zri~-q0){m#EG(D)#@pJvyMv%MAUPg&=n!SN($?pr>nI%#LBTMHQq|PgzfVusJl;Rs z`H{zO=kM|Wr}OU{mMiuv60lc=E@G|4Z>K*Bd*15aadHG1EqWY<+L`=aPBnNZ{K+0L znJ=9`Pr2(pGXMk4y0V9oT~N?Ij@s2WDYdG8Dna|3yEp2vMe5Vg(2G!H7c|Q$P|$== zo;^E%^(vFOxw$BjRf)7Q=B%g34aKX^OngaCzoo#<@Lwl`{<{cbr?+9<^K;Q)h>^gA zO*F?ICP9cAMc@|-u=XQzqK0EbaMBTjYf#LTNh?t)6hsI?$mB%xY9;wdML`}-LQCTjNS}6ab7@t)Z0{w&7@|*|L zH{{5?l+aLmMn+X{?^3H4?3F7aOC|aF`@z2_ziDA{7}6de-KS}fXTs`)`gr ze*fQbR!2^9$CSE>K@93lGsG&wAoybep^Jd|418We!3nNHILNVd0aWyDw)PWwPGf3~ z4IDQFwsFE&QEhT_eis5e*bl|<0eC|mI%J~F!GkJ1e(%H+`{3*E($n{vWO7MLN~)`? z0~gA-kR^!63Aj`LM~MKr(u4T3FZ}-f+g_tcABN=^XjwL~2J4!5Uc7H-cT1}d$|+v- zv#~j8;yJOu5$~o}GX&FYA0Jo;#cs;g7G5}b%K7SXe`JOUXu@ZNhPZ2Qnq7|ayav38hgyGcWTSDxK{S;7@D3*ekt ztQU&y&M-bn_?6E{#4X^5(m9r6Dr%~8Llv9E+Z{{NLZK_+C&KBc@)xjUPiSy0Ju7_Re&=mMd5CR z;b;0;fz!hYgQ6*g9!siq_nnsy_pCc#XqG*N^Va`AIp3jAJJ3^jSp=x8#;t(8TNw3U zfA7{43cHHr{h!D56*DTJ55&a8UVD#<8JFk?0Tu`}nTsaE!Knzk{CsN_H&+9)=-w+jqQL{rneE2*nxr;c-K!Iu(_XtsGe2_$rnU z?8-op+g^rht0(3$i7p&TVqd5Y;j;MlkOtx=6sNoA&p%(MJ~UDb2$po*;Qb9UHWpZz zD~~@&QP~(JLb1W@wXrZVXhppPe__AF*3Z3P9!hCK_g|h!MWjy`Bs>=>99bxqJznQc z$)jyg)#kc$I~NABhB09|aVLG$B>MZY|B`?pFLS$VN^A+@pGlz`aYQ*L+hfrjN>=bN za*9^E_so;aA=8#MC$tGQfXonifI;k(JY=~Qz0Taff1f-dTWYL-HfG`>%W#rHxmdE) zgR?pGxfpqK$b)IW`Q;M`B~A(o-g2Es2nj8g&aaGwWln1dt24zV{cNi`CRrQTopkrGQN`GvwAL1_q5O4|S#)ir#G2ou{Q02|pv(ix zwVeImDm-9sqCks0-ig9ayMoAdBYIN=8Bc_lOA_dD^eGY%PbL0bVb3T5>&^xE+crKM ze9}G!%g> z1nmUNjHAmAA|u~>29cCK3pij_>y>#(LgNcBpXN}50uZsOsi|@fh0T$Q3H=kcs-GiD z72#T>8n9Cbk#V$+=Qw&L0=p#iRbffUs{x1f`Mss8Fsr7uUmUGH82_}j=k6o^_t%nJ zm@jsF{QYY1SAlWt8TbthGkp0Bd>Jb@9*MLmlZdTr-Ygs72+O(^Z35e7aUF*Y;$vT* zO6Gt3jxDP_(3$$`yjuj){$Jl|L?$9GkyNRm31U@;dfIVFZW3mg%p{Hq7k%`saC8#8 z>6jzou3=zk*#7I+xfy9W`a9AVrl!horX@fGqT5zGh2Z<6OZWYkFB&mdq2+w@ExuYw zHSBhp&;exVm*lNn9&+~~U&gRECjA|t+O7hVai{y;8+&{-ZULGO!h3K^5JHZZ)jdL;?kF3}hY7h(2n#&Ru5 zV5A?BhX)}D?vG=15kCS29#Hp%@x#qKzFUFC5R(afC1njoGZWF_Yinz4>xSvK$x2%q z8XBWxc#pAA|CR>9CR=U2+a@N0upTbn*4$fCS`ye#D7jM5H;MNlx+afwYCCmm%9we0 za9;}JSMm1tzJ~K3$69idhYxaScZ7N#fD_wkj+$fGOf(>gxYBP)AX&brwG&yhv$GF# zzSUM&=a!`L1#^U!j;^*Iut=?^w#RR$-fB7LIPCA?9orIh;DNE;a%--3+HIS*(|^Z4 z=Jh4gAat69$nHU)kwp@}clGqpr6rFvbiS;u8msft?@_|>=P*1xK)-u?@>GSUC{e*! zU)0BwU$3Buy5DAIA@r5MQSGT_t>;u}z7c1)H_%sVK>Q#1bfv&ZJ0U}qbAIbb?Qte6 zzfWPbhyMNy{llWP#Z(m9#7Oi3O1;$4*Q$KyV(+Ee+Vi}qZf3dug$H-C+nkw;oXi*! z`ghp7Z>QA-m(E7K72G)=cL!Z^$e?V_-H^_*QHj*bZq~jkzPMG5qpVP19`IbYE7~5} zo3n!0NRSE_!i@>Td{O~iiA5gUKeYGh1aeTTu##_1`cfnMZ69jg>mMhM)z;?xsHtB{ znTtr>tF6n)NT`T-lsTkczxMiETDo57+*#L+na~Gi+vk}RGMG%{$(Ll}LrH#bz?ta3 zvE0Qs?Xk!}eKvkSek<((YW`vDemrh#48QOz1QA#vVdrWQPQTT9+{ll3hw9k+L68RZ zy?u_;n82Iup75`Rr5|;+I8Re#z4$#M7e$&n&zI8Y%r$~?oW&(p%UDs0gcq}*ajW>& z#{HpE)~%tQifvg{w-aB6#hT2rGU74OCwH&)DHf>^^{yoNc~Gs_;IKkS?<%w3^?Cbh zxOk80d}b$8|7VW>^rg6NoiBaKq}gQ0p^boQ`Q(Y#(VP7*RV1o1LgWtWozX}6qgzd= zJ@Ssn1;4+tehRlioz(h+!bn<~?U9t&caIHSE+M|D>Te(V-2FtneiD(5N#(Yj4;SZ< z<{eIy=_WEKuqrFZjDs+6Kg(|_l!@J-$dFp_yMK3q-06ABH*a0`q9%XdKNb{(LKU8s zerGywe6I+pnEgSnHM+qs@T%a1_#>pF92J9G#0n>VWV{FHT90? z+PkC)Z^3}!IVe*si2vj=WSn; z6uj@Xz(4K(q&d_nlS*7{sdu$D*qw5!GN4Y4sdxR+rP76$b_Q*G5>qXHJq~Cs7=AJn z-;g8p$oQ@7sH4Zd?T0kpM1pa9@T<&nL{8+;nl| z#8p)~@|7rT`z=VmPTHy;!73%kC&(?uJ8PI2_4R{I~u6-fI zYrn7LDl%9Zo`326r62+ci9o(2!XARl+-^XAw!-p&@9`bSns4OOz1e>*goP0J%w3`) z!F&U|aV@B7vToEoc{Uf^1UJn?_pKxzP9`sY8=(5}LkdU8h0?9Zs!uSP6zv#Re@)`_ zPmscSZwsWY`xS2_njl;Ui3JWJJ;;5%qp8?R;)E18Q`_A$!=8ePzH6`2`22w&m7J1t zq0B^ASHw`M`L`#ziaaW*b2_R0?!#Z4)81<_V(vn)vi#33OK7zT^=6lzPMbvaZ_m|b zXzUAVGnLxt?6qhdT*}3$$7UCra@NbM>wUlZ5n@A-&U^Qh z2+Hat`t>VowALM*J=#a#PW_%TI<@3EL=+hIH0kzSQ>pgje|K~ihr-|r!$}%ctSCfQ|n=T^*HmDrU zN?PTXY#Vm7o+Fem+_K%80xm|;?049Y<+bzb%TWxuDn~2O>usT*ycFJtpHx!(CHam% zmfe<4IEn#U1@{>paNb+W?>d$e?2l8guBvDWzQV&fCrrYbbH3PtQyib1JS^Ex6tLv0 z64O*YmM24ZCbw=i;B2qj1LY! zy2(E?TWBWkpCRvGXV)JH{v}=uSj__ZVK#a_T7Mnry8%NAWH!?ZqapbZ6alDq{O5D({|g29%w0cxY80LEKu+$t+L1@nzUiHXEL!`REuAj1-HfGL-=yE*ZhgDvNafn_86^oJV%FY__ zt!yWv0>X-q2<_)$47bNnJr@3M>_c#s2wtlkdHZBSzOBT~?%Hx+v0$omR|F|$b|(s^ zZJ2Lg-;@Q^Tu7TdkRAF~>(iq~%ZKfE$9oT|q@gLle>KYY=#7NeSA{tqoEv3~1aKn!IHmtOTzGv0Fg z$zDEbdgy)NVVTGG5+Dx3HpfKWQ~QRsfCA3YvEFF-tKmRlkB~2OrSm-gT>{55j3eGH zZ;&XvR@OK#5MxF4o`q&zK}J5JFJb48gwR;yrI?Y()~}0nsyz1iQZB}mC{&eHtHR;_ z*rbivZHgi~3WJ`E+MDYV%E;rjMhZTfmey7-8RZ;m3}|&fPfbhP*E?l#%xZ*MEliy@ z7s5JjS(l7_Rdx-H)&t0r3hB~hGsC94DqQ8Go$Y!U!PXbkt4CPZeWXM=LvWiMR&aF> z)!wr)B2!a$vo$;1Xdn4$@($g7z}1Jk=Cl96pJSZQGMzE#U(99gQ+`ILayn6q^)AzA z*EpWrqBg!0@sz_#D}Iy5^NT)hLN7W&sXKc4vP>?)yL*JF=3AVtPl)q}W-Uka;&!Un zpt*z-IK&&|D1y#}+xd_Gu;vqjnilWd8|=J(Gw3hNC@u$@p5c`PlN;(?WU0Oze+VXL zcE)a3VUI2CT2d96K9L+#wGF$N=) zlbf5Ya{{tuLdjt(D`PH~^I3OuvV1n3|H%EMLY*=ktX*q&b7%V@9zXc$ylHE)peUw- zpHq_)_T`a6{#M)RC98XaIEwWp>wu=UIvB@PsH_jO``nALg1Fj279lj>z@eQn>%m6? z;rP=_Zry_26{gpXjm5I`St*ic2iQ=o)+$VEL2Xir0uK-CR_rTS#ILk)JUr z0B%f7Obya({gss{kahP+2)>ZM5 zE_nB@GwZ9`T9o8Bp~~@qtE32J!d_(sx2h~S{hZp#;D%9wSUD+5hC~x zrFo}cu^0_(G(@&Wg!$zt$)2?l9`B{k4VAzXShr0wu3uXs)Wsu2DvfdUbE1^c$ZzC( zVd7E5><`j8C-ee2wTAcUUvI>6Z@W+Yh|fcuxP}3M7&RLLX2;!o_X29oBUcw(Diz1J zpbgIO?iJ-^1X?SU8sAgt>)~_d%9XZ$n3l?u35c>Nz3bEY{_4oB_gr)b9y0K4d`9yQ z@CU72DZkUqN%qJAEmZGv2K9CR?1P`v(`(6W2_Ol!xvn2I7yrFjr z2ljyh^`Bq9lum}2y1pOkDJhdQt1Q}<&9Y|4?qggS+k-Jtgc}km7goFjz6+*`(X7!b5Op4V;00VRRjiv<4I!Nb2G&Hqk_gYvgG{BQ2bv)G+iIFo(Z*5|%}Jtl|w__QbN$)-_K(U5J@ z@=D52^TomM*06b1+e(KtD*=@}tfTAIbxncpYnJmjlSRxvsc$KE=H&G_^^Ex^M$~Nrkg#}4@T=gBqvkw$=F{2c$%5tR?S{ZT2!$d zHR`ne!gVT-K29DJ4&p2*6x9Dr?woe~-SSFfvZuTI5Y!z2^9B|1b)xMaTg_SS!Jc%e ziZnV#87c7rG7}(~gG@<=*$>M&VYxv3=F3u^R|h1P1z(<+d>{XU(s;;iq_ zF=)s(>mwtT-wsDL&7O0omXRpC!Ed)RKISXT%|r_|MB}c`H-CG$6I_Q}5+btPPT!H+ zWVwlaFLkfxcS4~_?G9>#+N4hvNX7p3cP^U6J*}wC#4S=3*kE7urON$i!3S8!E?1q* z#vahvVM^1(2oIt6?}TsjFVu!R)an-8dlQ2Wfu}UX2>~G0<2*{RdZB>qEE_?bxoDjz zAC6-d!*cR2nDDBBzRWYv*;9v;Joke*E956 z|M^w9JPohl7vkMEvc*%`seS7SiK*d~B9_uduoPJ88FZBRx-2#;YxPfk*i?HjX}X!9ZvDnGHoYM3I{M8CV+E1B zr?XuAWN(%9@MG-u>>I}(NnXHttqPHsTuhnO-rJd^!{n9T*;^z3vTZi`y z%vwJ;VZW-?n^e6jH9$q3SjIjOKmlfht3lxP!*;ZfDBf}&G@VR*E|X~IINl(`8_F*) z^s%6TlRVo@GH&y;be!7SLBp|rpxc0{^A8Y3=qj?%hLxXbWaL$ z*8JN4M`;%T0u<`s{t9vd<1!GOgeG^Wr)M!MId>Myp)p?0mTzCHsjUsw3o!~?7l~aZUjl)ajiZT&8Iyy*y5)r>e(5iA`+X`#{Oj ziTaG*W(90LAj^Ld_PQJS{7cUH4b5GY^ndDf_jnt}y!<*5@ggBO-LUXklp{6o5<%eK z-rlb3N5CTCHaw?k`>8Uz?we)nS@w_l$mIvm(R3dT6D{gnHQo0xR<*#I4@^!88sT!$ z$oR3#d*s`2d z4v6#)_)thwiekA4r=i#WJ>vaFOhJG#vlYb;(_mayBXOxnh0seJgIK+SL>yXYG_5N1krS)U9Uut=J{o(cyAkj2#4J>?p<{a9vjXvWzuTB8=(f&&< z9}Se`2@R&FlJfHQ!Hl?_>RQt<`5hH&VCZ;5a=1@^lfs%0CR43JC zh={#@{Tea>O)jK%-L-C!l#B6uEw9-g@sj}}4PYxAqS!bG0WV$^o)XcZN$2ZxMVZ3@uSh1(zR z|81X+e|%3jyvMSLj{o}lIvF@lPfv%#UxaWaX%&)2dG5s>0|;4FsckOp;gpRAdk4y#iwqD-n z(b}8;b3?l>iImX|+|M_MGz;L6^O2$9k@VNRWt&^GIhPG9_K*UU23im(8V#0ljtK z!CaA!7}N2`IeY)GvSV^j+=eE%7?kODIi9%mKR5Kw5;WyMxF4XeBSL=PA8PFavAb|A z*rSwh{sBTC9JHx%r636qO`)`^W}2qdh8Ma zD*zmYlS@>w%9~&5WZg6Oo#MM_o{Ytn&bB9!%^u)c{ zBri%d2!|5go5x~&v4(sacA4kn=fei_EpJ~sdrz@+Vv+7X}8=Ttv>oKaQYDl^h zPYUOLmicj!7-@T*R zs&J4yRPD$8{6lE8(4PqU;)OpB#oOfe{8tO?f(FjNpkw5PA%fYa~EE7jy)IgzNiX!Thv5Z3evS!ymCQP7Z&xz?XUEwocML1hZeoYZUwG zVr9ml$iiYpr))pZ)9975BtO*6j%CLJDRv=(e5i4$c2eh|C%MQ`pcG6HbDE*14BPH$ z$@LAg{CULs9L|f2Y+G#NMuLPQ!7)$Fbv#IRS-}Ms27evrO)yy!sv}J!=p~_Jh!M~y zTb0XA(B@5>V5@=!?(}ONd||fOzO)Cn&i=p{et zNco{+jeAA$s_ni_bY*(~p@4Jps^_~#*fyu8<-I%`l6t*D_7)t=wu!&mz~?{bVL zKfN^y&mOoNM!rbk%G#X<=uO!Cb^$(UQwU@3PH1cnss0U(@u$vY*eA&@|JAGexcIcY zoWTVf<+Yuky$#h|7oDI6ZQJw%S(o3>g&e%kz(78K@gmL4%uMC7!WrIBkHkXPX_Wh< zrW&NA=T{Cb>oKM;E3lx*zSx~RA6P$29Gu0X?%usyN!C(^6^M#1J~BRP?-gwce-Ajv z_Iqrn+$#j3ktzKBSN;Dc8bA=LoLiIGzzh zhm4s7Jr8}b3ue~^{qX%%+wT8|Y47hJ7=OUH7oEQOPkP2(6`or4a>~2&t?*;G*P9QY zxVD}j;g|KWyx|EWd-(Tb-Q5+`9{(gf zeujkcn#Pm8+;P0+dHgf)+Vg?Fv>!{5*IXu*b64z-Ai^9k{yJKhe8}%JhtkRscJ_X_ zq*OI$HjjnVAB#Jrx$AYU!n3NY;nt(h!&oWCs*x1{)D` z`!*+e2yqb&?IhL5Jjvr)5&JK12Ub0Tr|079vwG!Q;bs%q)fw~)gfVvSHs7V)tE#o> zj)2#F$V5kLrOtX{-SRkQX&tl0vr)2{*ml|y?2*|#dh-tw_SAc69~cBCNd*1)5ljZ0 zV5~&OrtZIV0l+gRS}NEa$!qfISHix`%KG{|^(Lt)Db!$RwVZx+6|C-O!H=`tXi8a9 zh^-Otk@5*x;Ush`WDp_W6*PHiz@m(&F&^nS88&fPY)93UD@2!Bs+cVyqVd^lcyBD^z`y06YuI(sWoz=XU4Cf@u%SDMp;s>5;G# zoQ(yaezysJkbK2eX-#XM+uNRVn|?wYZ*SryP$WzAK449~>qYF_ur(mNjxI?HIX>rjgCvqW{& zspIn={902EyP&@OL8K)29)ZW!s_e^~|Gz%N|C@Kwwi){-FdZ;C(_sFrri8Z}CI$v4 z5+cOQad~+<{E~5^37db)z@j3rzToxhrFXL(X1OURL~n-#pF{s73eEVyrim=9;()!< zu5$0*m)>jHU&Xvu`D?`u&BuQwdriud7-yCuwf8Ew zZgqV&p5YBu+le#>s~XID|8$B=|5)*aIVJ6?3F1wqiGSTlJu=wyv;J39VWCE$z^+t@ z_YC{TJjQdl>%Fi6r|W|M3El)gMAG?9v5{gFR{Xkh)r>w;sAWu&DgcA^zKAK;K%b zKg)RTFQ;MmK1!8mhW0;}b*zj{PsV;~75^Jw0-^Fb>jDFC%L>ffyVO?;3w_Gpzl`Ij1pz6c{^uqy6N{krabX- z50pWJgv^T|7Z3j`o%n--f=-<|6BrlA?X%P<(p%=aT=eTajqJa#Y~&@Kpoj7lfk4-~ z4Csv-ndl0|(o<57z`tP`+@|KWkcC9j%BQM@g;NkMOun5esi44=Flm*D48?PRU<~_iV4rPJt$Bb+X8rK+0n*MSI=oNt z9QE6O`z8y|ZhWbMKSf_Y3IHn#B_7KNE){5ftF#j4=hd{dm^(T;hMkLRRB`zRV$d*D z3A!dG;sb8|cD;oTLi_g6ywMVY8*qWlq~qKB`WQakU;qfJyZbizRDjtB%vf~|jc>2d z+5~2=wcMomkDKICJK+qno$Nq)1qD576j=O_8w&;uwIU|{_WR6CmgC2dlSMiBnd!)? zd>|F8ntq$^OzOLL=Zk*7wt;2aaehEfPn0tyC8cuu!MpNu0eSa%{_A=YCS`h0o<98s z7bY84UFTYLQ`Ex)!@v$DA29-|G+5M!nK?SL?zuSJ)c5kF?jFDafJMN=EO0JxWW?-q*L}DQ z96}@vloBfBzb0jT`7#3XoIi?<#2xwRAc_ORB2a#_59(3uE1THxWtKIZWQrRwupzNG z`P}=Di${)0fgcBk@w%%J;G|@qWxGVeXoq8@p4^rh8R9UQznPvQXFEfeJqZh|19dgW z(HaIQEHwfMgzq(_5b|V!V9hC)-&f(?gU}s={|{$x0#5bXwhu4!7>S~YP$-2`Qkg03 zCK{=fp`<~^%50g1kYp$#O&UoOGS8uCR+;B)^AHxxTHkrs-tY5%@BjUd<9~cTj{WRx z!*96n>prjZJg@6&ZiZjGbhNX|@$b(o(JB0j2kXn7*6(g^;3KnF&@~wg2QA#YV@xXN zezeXFxdgh6_ef)S?vZDUxCA7Mr5Gc@LiJNme#3iyPJh>ZGd9Uya{ZhrIXwdQPbj_N z%a`id`WJ3V!QX8;DL*f4KE3|t?N?i8lAr=LbKyRI9}oXPeox#`^@&JLxkPnGR0{WE8AM;5+ zUT}nrwwxSl4%?r)Ck1a2dlSx5Vee*iBRCkp_5>%z0=6{2Wfqu-+|j?wHCeN9`c+nz zWkuL9F+X$qTfY5}t5b>;m#eKstola%x_75k|8Fwf|8ZCO^qrd?C#*S|Oufaut;kHk z3w7Ai+^lE<1l)nce=VBe;r01;s$=!?&zr}whAcFA-zYwrHuZ!nAw3A;mn|9Bz^EY= z{OOaxxXF?dT^Kg4a1ZGB1uJL{IE=uBiidW+DZ_HBUApBGKc+WgT*6jQPx|FqkWdM` zCZr`17XW|JNH#rUwU8EB7|rrYP)oJ}eRxC;Zf$HN45I04?|1 zzaF(;NSR9NHI(u?fW#VC3cWjIft5lZ3Dy>=sjcNetka#3QJUzvAGTQa6yBz3qR_DvW1acz82ht_v_RvS z+>CZ4i(MFHg4(M+(crZ*O4iT;H3JZH;Z@ha`$6Z?fzq>C9j_Yggwc>(s~zns<`1Eg zdS~Gz8WGgr!b;TF*GKDq*`b7y)jtPz3LcDbZ6uYY$;sLu;>P&aw$=_h{m$g|3J_r7 ziTHAsBTsVIz4Y`?edYZ~c~q8!zmV`Y_%9~(kI}QeJvpOizv%Ith^m`L#~#+ls?x@S ze$^gi@ov^!IyRYwSPac>^o?vJIaTnAv8%ToJt_{uW^%YSQdoWuX`=_{vVwv_F&gL) z%^fEUmc$)AJg|&9=g##9jL*)@Tt(N*u`#EV`}a8-%&D4)(696IQeZ8)uz9pvKAA#! z@!|z(zY(a%628qJr_Mlgp6J4b3;p&zGN4kKInKwFL_0b=9eds`#+0|a+1aA4v^tmf z@844b^?cE7iFDfdEs1^zeIwwzd1&km3ZOvJWc!^_J zC&jp}Mln5L8TaMLNU|H(qMRBP#T{rdk01))Vb0%=pIp6mjWwcE#beSIr8q|Fm^dek zD?x|~Tt+(2i%Ccrz~+LJ61E@wlbrI$@-A7IwfsHVYb670=IKiZgiOr;cV>rMp2@$eut4~V zcT`^bvqOp)IAWP~C3-t| z@=*|tB(yxm09b?!o! zm^|lmQqQCKdr+N)O7Y2cDgB9gf5+A7t*qL7d3AEQPfd(+;CVW6@))bga}iR_lo@T# zp?UPC{P|#sKZy~T!%LcpzxlKrujE0M*ZWVO*s_ky3#;fbVHtADCG8#2ED~S` zJUr?MaGC+z;wZ8F`t&fKhPvC>a(K5>KAe6JWQrh#M-F_1v#zAw;mVecGBSE}OOJ2g z-MV1)!gIhsQFK&{hdc_q-wCu|^`;J26>ud!(|_2|kKrkS2i62bx(2;R8V{v6+(pnj zeK#rz!fSY>1dYG%rwwc|Fhz{a32fgOTH<%!^YHPM#4J{)*Lc7?Q4?X8T#R^oT$LubQmGS+8? zZs&yYXIkR>!EiqxHzLdf)JBR99+s1n%uAlp>0eAb7x9kVTI3RRL65(0d`@@9vyW3w zTiZO*_uAa4S{3$naO5C@R8%Y9+o`?Xrk%f1;pv26ShiW__tlaM7CwACI-UM5j|G%c zI6e3g@q2Iys1dT{RWQ(AeXo%k*_W5L(Bi7Jg<6{2`=6Df>Fm|`c<$gbl9$2UI1kSj zk-E1&nGB@)cduXooaTOYti>)&Q0-cY;s_OB@1PTBY+u}z)!GR ziHV6JH8k+_)F5#daDL*~FA{RHTfMiSJ_SBCXi)ZTgW0WX2(wSTm(hiMRY_Y;|5-RM2c(@NnLU z>zvg7d(vM%8Zd;C7#lKnz!hY~_$S@RaY>z<6K1EZMm1T^SdF4(cBA9uz~OvaPeRk0 z>?Rqri(d|^B)lUr@OXMKR`Qed!WvR~MnI&!y)rgGs&wcKjo6qNp7GxL;Iei~{W#g( zB%5>wjur-#c>nn`mgPz%(N`y`1cuPaMu_xv#;(UfOdn5XmM7R3_L+z;Qa--gVB0oK zcD#eO7UrI#9OU?E=*LANza@tg-WWOnO-xOlIDLA1J{3pEhYugVp_@@XeQiC<|6=h8 zg3E8R?q-$ZjK6QC%@M~?8q#et)Ldc4K3>yOQ6uLN!9A0B#>4tQwC z9<5h<6KxBxgTha_bB7hr7=CLFE>@q0iz`{CDxKGfx5FInTVT`oFjZcoo{fUaOV-VQ zZ;53h7MZ%cuT^9r-ZHk)pK>tx5DzH$S;i^A7O5QwDbB54Q#=4*1*R7LzuZ?JeqjK{ z+xXFe?K^hpfdEC`LT-9%*dm^taY}($xS#=$BrIBUWchR+SCdsn+b1LKt-E$zaaEcb z>#hxiSr{l5S=%xsWC)q0kN9tu69=uiH;u#zqzeFfbKXqkae$AD9OF|!6%18?%IW{Ra?KoD`KAs z*Ug(puii>2X`=Bp^)E|1vZ1H4)co6a`P$(omm?DMuJ>eCaX>?~gp`HJzaPGGwB8h; zs6W_V26N9|_bypHtd#ogrM~`*-Mj05{+EAf@_+b;tgbVA7IpQUjArsNSf*?&VxRbv zi1J&E)P4@e4+q;yry2Ru$RftC^xsPu3kKmCxfGD9e(EP=G;fo&r4UX~lu4)+oNbo| zzOjIqm`tqRWju){y3Qm#f<}qNk)$BPiyRej?>2;S_%g`hg`AQAWMN@{U~UV97EMh} zF-ghFEyMYpE)4WV&$+)dju(@f2?=tlJ}KPZtN-ZqbZ2CVqXZ6ALx@7WZsHuJJ4qpF;Qibz{)|Bsy1bOxACC|r&A~YS*nN+MnT52@|UMtJR%#j&WTPT zmO290fsqj@GQs*FmfzpG_Tj^ai4PHcMvKR=W?id((f$0%ALp8|wW|v->bvRXnNNu5 zmr*}G%D|yV(K&Kt2>>tb!Kk^E)v|d(BS4oi%w$BO|81Es8`sDOLn)FYRy4b`hC`u3 z<0=aVod!%vMr@x;FQ_a)xNbtB>)V4SCeA>m>r4(F?9N;&e1xkB`sA%emY=sLlvwDb zZsne#$tTfl{bdaci8-BSj3f-UA6d9(Ixas%Xv0^*?ugL4OYYOXdKQ4`&Tr>pu3s;< zP`P{3~|~XVqEP1%A3q}nK|m(bj0v!i#J#lKo+VfnKuv^{ z5!4v*K~Leeee}>!-gbZqlIxPw3*i$<1)YsjOVD8bzIC_tSNK&V7FH91K6J)rlOu#K4FjOoWFQ+28%hp9vB=;RB4mlc;V;#2S&*P zakU(<20-aNX>Hw(m9r38El|-&N0{;+1uC8ec`o?E2!uHFQ@EX)%B4}?iFd|@#PdBm z@BQIN!%_=HL_~Z#)iox+onSr6H%EG?*$cWt{*hl=p}2arhTd&I3 zY>=v~;Zln5;Z$rD)u=y#xdLRb0zg3|!Lp(FHc#)cOs{cVq)=B6Q=)krNd=WvzXS#%j~&6asD{BsF;fj|k^8 zHPwmI<#<&a0RmRcK#!PWCVb8mZ~Bp}9q}8^Eh5KlVxq*$moK48A~~@-eVV%}Qp)gn zlE>`bLr;+9`XU=43khfjX-X-GzNna(z;kK2WZVFF7bzD8o1n%rjApO`f(MrjF5yW| zPY$?lOoqIIbO{+Xn1<4Jhh+$4V3(En;9qn@3W zFO3GJfjEzdjkRQjF6$&FgO|wx{5B>B8Tw$O%l2iIHj^U&v?y7P=$*)P+SuxuNmyVk z9|^Ezc<9K&TnDonDu3mgp|KT2XN2s3C=X=2`6Qwd28qy&OP4OqL8v1RWipl<9XFml zAx(^X$U#j~%iFgp_!izVO@Kj^HIWWi=i z4FRW4kb0-W(Qy0QXo49mC`F``(1nVah#m>z5BsnUgI36|1iSK~xj8(}+}o|ZzZJ)` z9)c`(cjeo{uI09njaavI1&2S)2$6?(yMjmh-c%f{d9s(HyPaxndY3Nd=Y&rzVz{nu4_I}}$}5Y7Yb2K} z@!N4<4_MfQNIwRmfz*ZvKEq{K77aS`=z z;GsCsp=}ARbUElx`7Ny|VF8nYZl7iC4z6BTn(eBP$x0`sYYIU!y8QX`0c7HC1+DE4 zIREf*#WZ%;4%G4>$#b0h)nKI1*zQ2^5Xd0#6oggB$w_n!micj;FcEOdbLji4#=-5o zcUOQ6t9tvoOVR;EB94{4!7op*UovVKiengmWqrjd`>%HRuZUP1XA~fh#0or8;n$CQ z_Uze4`p)Rg&yO4*Xv&T59~xTJz?;mC|11z()|=8V;WFBTEuEg8fkHf`RjX=jWeBjZ5H4?)7+Ouw3wbR(igTkA9w^Z|eE(u_>ws zu3T(2tzRnmKd(mFTuZ1>1LG4))4hK^S*yJTd21d*Qw!Rsu9eC@^=?Ufpy=`V_q`5i zK3SSsueGJec_@E;4>0fNuU{i*IS7!JGOD-H+oWjrSUVc7_6`-!+F9mjX3s`zrX7CI z)8W*abmxx8{RZ>znZ4Z()#wPf-1I!p!L-O%B5o&#qZGG%rX_t(Vt=wGrDnx%Ut;`@ zT@NYd2$2p9x*JG9z!nfcNJ9`M0i1u23kiQEq}xk=?l}?J`XtiNf&iv1B~N9uC; zMhFx_Z(C4v{zsk#;RAFkW{MwqhFsMUq&Pq}QYAU}H!QkWxDIho4z_6CDGocDGje=W z=!kKb$D$(K$MaW|Xyt&z?Zbnb9<|nS{!OB5yz*Qk6-GK1DXqSCm)j=rVInQ5BHiYd z{L?kXU3`{@raj2Tez)GlW$?$AS-8jS1%=w?%M}1ni@3lEAq)js*rtSfM=AwI59kcN z>;t#mWr2?Z%_dQYxoxYukc#KRqAM1n?H@hugKu-mGWQL;t(I#{GCnnXI%U}T_XWW~uw;TqdNeF+|g4xj01({ek0e_sl8O$gfvlol%dyDg%&=>wXr9@_!#N`@A+J*Gr-tIrEmF#FNFEq1oy?ipzig(KgSj;+uv-(- zxbBE{AM3OqbMN3%`$>FS_`H7WP_xHbJjOA3k9<0gu!WR>fzPS1V{iH6%Kkt9Pp4~E zyeg+gO?cbqCQV0c9+&hS(Un$J6$T+FO%oUXn?Cv+4P)91 zXNQC(-G8R=WdFWhA~RX`eY_vn?ZHP(9#jpKz9(o)!u9b^N)RTV`l;7k`KUA^9Ri@G zlL-~1tq@)*9?8^^zRZhlq`yAl-~|Oc->2wPe2bVzX{W~Io0?+*TnRfDwm!Z6>$Rxl@wrG3 z`w7$UaW%gtf0X$ly3)6A-+0o;7jxUHi6iu5r-7=muD2ne*-tOUr`e9H$`NUR z0X*cO;E?mL1;oe2-Njvq4ZD{lQJHaTj>;iDczbJ$Xjxeq&=GQS+!5h8^~YRp(etF4 zDWmDe3eTxbZ*cC_No%^Rv>Brhsf?oO4!$v|lcl4xR6w){_knckT>tY4sfWYNht9=P zZe2ntfLx$d5s1maTjkukgzIE#AEhbmhEcNCQY5Qntcf|_4fD_|*Ah4=r=K)#t(X(B zDVP3mVwYc~r10D7_kLaiGbiQU#}Cdo|C?6mRJH0k+xMZJ`In-Csp-+T|Dto9U-!}? z*NQ>vf@;LXx^rj5n0i9PK`5F`N_5F}hLZ-(0B##R-%yiQ}-5M%ldK0el52y#k z!(EdZ2rH>?%y2S>b?*Jj`$!YJd!p%A9L9XX}TkQt)!_ZE_(rA#pWrRX}-LoP*p==rJZ&`^{I zo1od28(@76MVgT|i2geZ14|ayNIHOD-(jsouSY#S#5j$5QXSyt<_4v98t+0VmQgl1 zI}92Y!-7IunMldWS?dajV5pH@Sg5s{&NVixeTQP6bvCAW+g?f=rp|P<42C>M3nqAG zq~S#|F>~Y~=?V69$NjkDyr;PyDT%aQT2-w4*S6|+rLJ77MbDDTZEOwV(dL$ET z9X^#+c{CvMpr_Gt!4a(!?i9Izyr=))|M_<42c)=EiNt)S8*i2l14LjxfwJ=d7McDB2QiBxZWe9}`B}jRV-)mEm znUx~$Rp@yjox|&b&_wZpeur-+7==Q?0y?>mf!`3m$+?FpazwZo9IQZ2MuI}PZIZx0URk<1yUIF z5ise=Rt&rz0Ops?!JZq7{XKpzQqpg>uR`)a=cuzz{Va=Np>{tqJld?Z=b%%j!=n=3 zFV@DMJHr}HCI=QD9Eh0OaIgN>_V$g3T3qEU$A5WJ!;I=Xz8oDLRF~Mj$y=gI?Vsk4?ker+r!f{KCsjPj?r1e>G2lII zr1Z_MqxG_5TJi;Myb@eZjv|*rh(<3 z;~UYD2zH}po1orSrgd$sCEgES8^s5{Cp6NN!9t*v>n{*qumE$MIEv>4t$cay8bb+NMtd!bK_g>Ri|nd$cQmfpniO@_lXGeP;xiHQs3;Yn9Bah#Wa zd4jeq`yPoPxjIR$f3aFD$hX-p_`oVW`E8DlYmYHyq!;uPibgA4wq_&c!lg?@0DyH0 zWp3R)k4!_Sn_n?Bk7%f=al+*i5fR~YeV8Pp0|F@R4ay9+| zHQKMbm7}ZaHRex8dtreisD)(rpZWrJ-1jq(DM7=utqD}H8`ib8wR?{rk3cXGWaA#) zK4$GO(xwX<2x>42$xHe!aIRqj#1jG&#{e$!>W=$4?!Q)%1ax%Nkr*swqS|m%hS-n< z%Hl~OxV^o(AuNr`A{6p#_`>GBCMH$SsOwTG^|{-wIDnT1p~HS7wdKqLy>`2!%;-x& z*s!P@+xVd16F~Pj>_wvEfX{`8z7&#)bkz1@6@Cl_4UUQuLRduGV@=o^x>l=-MCmT8 z3_ZQ>^hnGZ);mpZWhSo94-H*MXu++m%g1Ur{pr%(2SmZ<9rgp_1N?1o+R70YV(P^ZAqSEe_cYR zmIHPj!U*9Y(+g*KkyI0E8W&adWtk8gx&@#3<*wQD_68fwHE8rYbn+_FBN$DrAg|pS zfrSgFNeRRt+z&|s;M63I2;gz$0n3dT=aAQ&Xc814T+{7D+&UQKPhxk-(28KY@DEf7APihkIq_0~ewb1U{Ucoi|lH%+0+KebB~6KJM;OX!Q_J ze7cj9k_2+i1Yj`=vLp=$u?sM*9?K4?YKIYZMi?Ft+zLr6%?dpi1I>Z31ID-FXF0~S zG-CqRQra>YTefV${5F1y*>e6H!Q~35dxUVKTsglfroUB|eJ-ovINx^K4-32>7fequj*N3-*d%^@N4kUwQ^em=xV%%RK%HTX_`ckjfb|ZVeGm1od=~OFK`{cUC z#9a}yBgI$&{#w#41@a&}ECPN`TH|k3Z85tO)B$WR?j9aQu?6%;wym`Mz}*jM*&tAC z5O^rNabAdlAM_R_BYV`5yg!>Y4a@Rd2I|5it1=<=BwLHFHub@ZLfRUn_)`CBbhJOX zJkkyVmkJJ(OHi^)?W_UqTJ=e>#fx>pMJBoREI#zc_`oXWw^(f|U3J|$;;{ww+vHrY zxy&tBFH&2IPK&#BYaS>~yxq9k6+h@l(ULaLs)F~Vjg52Q*UP25$BHqv0>LjTI+~3F z)d+StTpjxMcNfOR#RX%U-qT}wvA+a_803N%EnH~XlJ5rK(yb9{QXqAUw|>J0 z-PBL0{)1s;86Y+GG=Wm^$dv~2!OEtxdGn5jA_{lI4C#oARo9)tKozP3ecF*S5`Pp= z5)O^A%R$m@OuOluHmW7fIjG6dS6hnQllU*mydv04{P#WTDqV&H>(G-59Dm!kZA0&+ zlJ1oVPXT&{x-1k)>34<>M@znHOt%ShkFP!H+hZBb<||pIc1+yAPk;Fpar)Jsqht1M zErS2sf5c+o6ICL%D7?zTU(f7yf13~Qpv+`J2s@CVP`LS{17z8(yTNZh`=bHk?I!(k zpaG!!95Ykt=it25fNc@y@dS`T!D&7X$%A;25rxSkLb2Z9B@$ynST1{HfnSNAtBYMr z!XADS0)miJt^^bVtG~Xqz46_&?cP!2H8 zDkv%Sl#=O^Im2)(xQ)COL6}%W9UfJN&-Ws|pk0$G79@0$5%qo?E+D-9GOLW+IM@Ni zPMkQAXt?jm7gkD~|Ko;!77BWY;U~IcE3h=x@u47h(l}!K!9mn`+U<&z*yNX=uYo0Q zr_^_0GxQ7Gkp8L|kSqv$%i!3<+XPGO(>U1Ev+5XARX^ve_R0aS;@+954Mp2oaymM! zAY2f8{=P@o_ZK1qd>43!?|wjQc)#{?4m$GXw}cS8)Lj$vFZj;@5C-*+?t}t*wFxJmkg0w+SGJ;~{>F zixL(f63DAyG>K}7{22|Mu5MqB6Sd0~N`=W_tc9)Zm2sc>-HO<5uqj3V_>LhZ=rrK2 zV2)r6v1ifh!7BtINQI2{%I+IaFDgpj$$^@tjtDBa-ZA4sU!K4OdUC!JcKVoi%#Ia4 zJS)Ni7DP|&-?vX)&;_g=`sko8f<0yj2kiDBbx{fUrrYUllBRf^vUw#mMI3|v5S#Ei z@4%AWML!MoB1@s zxkA%3^3EkF-spI%+TW0FgUf&~0 z+Ci%mx$n(vo=;cb6{os~U#O%>RfN6&%%VosLFM#BD*s`1q3ypeE}M3YSF%YIlkv;7 zc?cbZF9C5CCNbhC1ey{P7x!-*4B92<4*(3rL|%KWbrj;>?gX_AaOX+O1lz;KH@*lH zRj$Ol6+-zzScP9~?4swZ`C_ecAP@=(n*qjc5_SD-S(h*1;pOE;!2{N8Wo4y9dnpHi z7STa#Via*h@f+Vaf#8 ziVxs|rmSsuKgg~M3V1Y*Nj(Ykuy)nGW+rw8QHq-j7@Bn~Q*tremt#5ON8vXg^|`0O z7DBZV<3!-faqQ#-hlPW5?|}mWm=MU1JOvZV)H1zhFHIKvvhCg97AE7~?$xtVs{GTF zb~lUabLO<_l*D;MUQ&gnn$4S|1-Oxzq1QG@f^5rPI5N>o}(h1;Zx%Bp2KX2}&()y-Nl4hk+&3@7mPKMrxF@ zw*8%e*PtU84chUO?8he%)^I8S&4JlK8o)*Yyb3BW!mYg`{SfV2*i{^ZP<&pFnhz|( zs-<}y4(d4~%8w2}T`sv5UZcVfEC-7@&OpT1{8cy{fIHb78fQs~2>bZkxE=QsohqmD zqZ}&XZUg^M_S|P1?HK&eoPkxG8PwL|+T^aTv3ZLP z9OY^Rk-6v@kJZ=J^=Pz#+CT@2z}jv-LX4apqEeH#{|26G1;uJwyV>>&gjW*8C&ajpUk7b;6nVp&HXK_)NnEskw$N^k} z4TWebvth%+hIDf@ZL1)$(&2=srvyA+Z)$7H5NfXPxNjK2?Q>Oh+18Pt)7w@i2y%Y9 zMO&)S)#@65o=f}{Z=YFwrr_48HxTVJ9Dn^SAK~g%m2Bm?ynMvAP(E79ZcvfEF?noh z=*H`cL2C2-c$fl*4hsgJ*vu}=ru6oE@Ewn?5-t;atn@5F+H8>)dqw?DM&gU%Ki_qS zE+3k*+ux$J$p7G1{q}f)lsCWiyQ6#embjh7D`9|vBmQ*&;~n>}@v-bz5CNj;kh}^B zAE4i~$XiqVZ+%x_O_C-9>k@q%*is7Qr^Vseuo0OkbF@IGl&Rp`N?{}m2LgX{^2OCM z>05A41P23QSY#bpyLmG&#cV~#%a`kkzG$Q9H9Y7r787ifT)+MGXwjWrNLm1s zM^U0zGI*);=ZCwxwbTn2M8X!Wf&I4U`W6elwR;~ONbC^f{W&98KO-;MkHR>vHB5Nr zC~Z9_;c*v@t=Ibf8^zMwnW(@#2&pC!>Yy7 z=P+e!Mm$=+ZH|>?uR+21X`1A2CH9-c-4l*p&ucb565AuS+7Tav9J zaaVoegMqJCA|uQCE?B{n3F8~`nZ#bhyB~_JGIZ|mbKGi=?TU&mvIH|S*1kEJV(kVb z2YJjfmWd1#md_3tdyoQQE$TTrtpm$}jF_bSNJv2bwEZf=`qA^SRQ zrI5a^H*Sz3NbreBrU@&JGZ5exQ5E40@BqPGa>WlD)+$5l33vMf0Rx`pH8#U9OFsvD3I#1YrY|I&8Qau)PP_Sgi>Isj z0?)Zyf9H92A02P=m#pYx6_HvY9}yqW2qf8N!n?$V2-|@=pvsS8#(x43 zmb}>)>*3KN*U>va$B>3=x)iQ!+r)%4GRl}8=0gB7+f!I#;e*Oz#Ffx)WGg5$2wu)a z#ir{BJZ@wSBiom*PX6ru@wXGQ#HDb2X%p-aP^AgE1xjxFTx!3zMn4l&6J`F`j6LWR zZ*Q$Q=RLf+_wU_Xwqixa-8OTT%Yna!H*(Rpw9*82HuaY;(BXYF+C1Dvw~w`Ugtwg> zQ^W|r?Jjz$m6|ig;^N13_H+9`a(X@2Z82NBSoB(J>zrSK)_m{cPaYCiWCp#`jYURo zI82|VUY#0G_%x`@)o5OqbCu2*5*_&EJHnRK(rF=bX4oU}j!%6+naQkw1?C@^zTmMG z@JduCrD*5cM+T~`l|m@ zo@3v~6|Wio2034;&d#bZYUVcmGVY?H!0l}}MNSzg!ZZ2fZxfe50!8lDP zwAcPiIK3cBb(M-BC$VeE4}pFUCbaleW;=Ya_d_>UTxnC3`eDA%scz>$_xXg7-bT?P zZToda@8gZ>bPtblE{{lK{Wkw@?rx9$P4@e=UKXwDN{n+In+|?Tr*%yA?(Pv?A{?4b zwYO(j3=5s*_Ixgp;%UE%@bzzF*Bt$ZRGWy)fazc&oBk4qvV?RU!Hx_}A!TxKW0qN{ zv^~pixjCx(^Oj4CC5Yv3NG6Dj3k|i%_C{4XJQ;c^ZDUKD?KX-9p*~^>Qj=2?BatYU zgL{TA#Go|L1Rb&=3j13h##x)F<>h{@^hD-&3vhVIETLWBK~WYUYB@@pK@oC=7_g$c z<^I0v!@bBDDLz}&4NxkzKU>}&OC7TzR|g!y zv7S->2{U_wHnzCx&!^dce-U`>#mT>l$L&Ad*$SpZwT0gB`Sb1kd zG;vm$7W`H_oG#yN)L9X}GVPW?OU=tT{58_7-;klYgGC)Xo6P3<3PvOK6Dbl0odUMO z?AHgJ5P()V7djyr%pa5ZMrOXey&I`jbMxIPr9?aQTqBt4(E%I@XyT&-%n4l_{KP3+ zAMeo$(HoF-Up;-w4`@hbj3*N?3gQCN*k6I+o(uDG9oktX1cIv^S1y+t2XsKu+$kR( z`w5y@tNd(EX+76P4p|`A{tIWCjv`HNPqlBoQ>FFsGBAnj()I! zZi=x5yt-gkN&dgh&=5JwK|0EEY)}hg{WxGhJ9|-;PxHPp&mi~NH%GNfwK-S6nLqFs z-CLu*D{D&gvZ1#eoiX+-wYD#bC)-7QdTPRDC_6pTQ7b>}4M*|dtl0CTJCf>+?WNpm z4X3MoI2QY9hO|b?C+1HUa*e*J4`?+n{B>bdvugXK9UC)=Q8zakqgog2B9v>47NJ59 zUc9(gaA|M}#DJV&oZkV+4uAesAT^)pn?$0KpY}PD;P#LaUf)nvd?g}+phUB@8x>Z% z=(0`hxQMnTYE&o{;3+{Po8~&LfS)es>PDyKVd?bO&@#xhHkf(EmM-0DX(^2|M%2mW zKHT8VQ0CFCd-v{E*CsYOHEV|Jn=B-qi60N5w-t(lV0v_w;87Jerd7S7%dTa38k}WB zX^eoHhC&fJUhM4TM6cl((O42eUlH?&)|z>Qv`p*{y%?oe12BWd3j}i0DJe?N@=rY{ zxiX+8tYTyi?2EZxGb)ZUDeA*&OpL+pj0`@Y#U=On(NU;woCcPbmTzdSEjdRU&>E9| z!zRfR0pvJ#3(B6j31f%4VR3Q&9Xoh|l|V@o`2=Nh8uXDeQkxZAkv;v9OP`CO2e^lcqmivab?W9z~vE< zk+QO~CqByAe1Bn$BfKZy6jghY9GN(rkv`<~qnC>xJlb|A%#R!i#kjX2@;pp1=x8CRKqA21DT-8kuc&d0+X| z@dXtH4<2xW!IW&k*(AGRLkypC?DpkYP-ODk^t3wKSXABkzz${|c!o>GQ6m;~3C!R8 zfSceb(KWj+hg($&;XRY#8=`XI1*6)myyAGfR>44ax8xQ$oklG zKR3%TZ)2C~YLXRB^HLY`+N-V4&-gHyG{*hhI6{IiDA@I8DzCQa;~yT+&&v*u#jq)z zY|K}*jXsgFTHZ+Q@@i(#QLm|l&Vhan2WhvS48`@CvDxmeJfGeI5h0q>9q9IbT zBM?wN0<{e80bCD}+J4)M{kI&6&~88{Foccwu=j(ZCHgUJWw<#)n&b07XOdY;vlysZ zl7Geo8{UCmz{#^)-tbB{=+NpZkBAh5EzXj=BmP3Gccph)qC!RP4&NgoCzk z%JD^m%EYXKin?c@O0i3 zx`)y)P;`9gjQo0rUR}t#fo2z{^ACHk3NLo;ZSttC%DYuq+UY;)6J2T}Dg8OSTf5Km z?8x!)`c6*I8trB2la+9H%<^RyuAmkrvqX=7Vwq1fsvWMM9Z>E{R48lll5YsQLm#tl zyX8E*Mr!!d3~!|9M>cOrmXYsL3}jepUtpJ!i7uF=6Qg6cq7|BxD%>azn@ZVFo-opj#GE@+8fdP3 z>-gaISmb${p%tBWxr+|Ny_vep-n~Kyw>kAFSpxdx6rh-VziF^SWYHq0s#4m%P_&k* z9U!?4t_G3`HaKxT5*~hfv=ezR>S)M-2yl`}o^xl9<-100k$VQM4<`n(c8YELHmG%s z*^$Ns3;x330ln1+j&0(WuvODfZ*U$D2cL2qoZp_*=&%6kGi&rZ?97<^dwfI}ExH41 z(A~RtqqSrg_Ndu@D}H=nm06Ah3udfYV*8aZ5Y^nI9e%ws^)@#ry~+Mgjw7$6(P(C( zMqkQA)H#j1I|2*#uN-bk8DgiO%XfZQ@Z>}=D>aBiEBk%S8(N$5)wLtm3PQa97vITo zt;nd1HTme39bN360_!*n`BzxALy|g462(aruNmO>0af6eg7Qv+IUO;h3{6-JRL2TY zH2qeaIj)^)&YWpjYf~pNq_D`Mqn!?-p>3qS%x|oSK34m-?$(yW7FMdUC=k#5{`R~b zG7MDbfE9p-g>7OQyA{=1*tK}dIDrr}G2(HN&a*?X_=<_OX&hTF{~q}1(E%sRbb2Cs z2ktCAvSGvd?6QRSFcYL%;sS5<71J$fEpEfR_JU%zKn3|?Jvyo@ z*CIhK#w=Q(UdPVLd4NTG9{(`ZZRacLk>X-qkR*B8s-{<->3Ph>K&HJkZ7vY`v5-Ph zk(!%Ak=@2O+EnR2x*B`!(#!nZ=`Kg#*r@(I2bkmQ6OhVvCw`1pt!>`We2rR`FmIl> zek*N?`+BQ+g2r|8`n6MwuhrS>KX3AV<1^x(9q1_+D^xsq3E3NI(&60m7AarlovmR2 zbBOH~w#@Rbtv(Y)6z<+?H@p?1kP_#t``g!$Om79 zYNGY-*Q>j;Vv*aU1EDxO@<&Sfyf<^vYinNsbb$kYQ(aA@b6n}Bz$Yjn{KIJ><4x^1 z*9kZ`*MLKa*e0&q-rv`k!9X<8>^TCDo6D}_yLZn+@X+ab^uA_e2@Gwi6QtiZ5$371 zT64c8yRweFyY)#85o7!E1*l--Y*y#x4XvK9TEE5AVE<7o4yztFt}useD7wUk3pfI& zQUHu}NG`x+Tpn8{hg|@_4YAIr$vgx70d7h3+Dgvj?tLpbDVK&@-n}+cN~63(jVAUU zD@?#amQav6!OdW;BG>{rp*knoGPsa*A?KvzmqmpbUbn5>e*b8~yUK-weM3V@qfz@m z{n;UpM&&Pmrpxlq+q7=g#*J~&98%@u=T*eizmG;rBnTKVAf>H7hjaw0($1ay16sxZ&oBKpY!nRJLM8gS!|oue ze7qcD?1wL30+W)GZqKVoX)Bm&Ie~fBCrG^}vM@5SlyIWxPZG9-v26rRVN`Ie6%-Vp zdWcvP@{y6UVVi?V87`bv!i=COl!#p0_YzGJdVrxQa{2P$lN;Mc%7o`}qUJVlFD4PZ z9^=5~d`*|tWJD!V(W_$@XeEdqU`Pg}`DCP=5=CgDq5EFiw`$3O7XW2Lx?q&NSPhLP z_q6H0gC3|)$3-9`xue*s(^aMYaaj1NqUS2S8k=X}O%F_>?n2w( zRzaI1>Vv4EwQfcJ_2A{p>ze4Zx2AZT(EMrIC&qQdl(djjjBvz~R*RTn@ow}Mw& zuhHy&$-vigH)#cxN?p$Rvb4Dy6PBwm*yqNVz6*b3@5*E*z4y76IYBaC&t^G^e?Yc& zS)BkSB@^I^Vc{96<5cil7GRU2R`1t>4Rt_ zXs~|OU34WLz+sfqN;_AwQ`gYBs6e_$-5^ieZ;6GR&O8+nE1fGBbrw1xWIG-`0*!txZib<{=%R0O8VBuDSmx}H9k&<_gO|rXmNL+n4!Kpp_z1|f3 z+){RwUl1w|0i5^^F-;epiN0mp2%>PH#fKBcG@1h-aB#>Ho1X2Dmmy1$mm=JOtv8Jg zG*d!ss-)7Zs7*p_yZ=0IUB^^7H)5rE?X9g>i1&pnovD4aKehBlU&KYWUF)lpe3n?0 zb46+HExmg_vFyGlUqPkbzG9cb9~E#fB5l)`iLwBnPyBMZW&|@4Pb(@z5fu=*P|!%+ z9@?~Oqi@WabmmPb2k)`y;Kn`FZ{^lWXC)m9`fv9R-BVlkw_ zw(C9bG^#&MQJ0N64GmgXG~sWEX9Z^qr5FY16mZ$3$LMswIWrXL6me+anNFkfvz`G0 zDY;&EhWz_Fe*Xs#hs{gsq ziYq#5X5dFBJ$9cx`?xAg?>u+)+~qs{e31CqDQVMJ-zV%HR)ao!_F9MR1DT<7{P~*R zR^qI`Z;JaNi`*o?iq%u7cW zV1GV?Ax2C2Wbc`k#GQ@ogmk&k5{FL3xQZGUCBk1dp+FhSlVraLT98i23Izm(*+w5t z;~;huZ352=BB~&~PIo{2)9C1?)Sf@PL`WomV=jUW|BNJxo16MAHl}(qz`bucJp_ZE z8=Wdg_ZenHm+oRLJHTYIK=o;f=TZtea{}HDr)%zCY{3oxD0}-vPf`sTQdeebM3(-9W_wZcC!m=1_ zlRnDFUW*@0hR-cL7{TuroR$a!_^zaSe+uZG6gz(wkU-c7J^ z!Mlp8nnQ#{0R>K&OC%NZw*GUBar5d0x(B@$x<`-dOn>_Hr2pE-yIjsI@SeU$^Iv;* zm&@R-H}y>IaG#K8-0=?2idHThA)ZdabMn|(eD;^Zj6?Amckk`(b#Bc7Ndw6pw}Zz| zp%`h;t?%7nvMT0}e%A3gmS}a@=2*_?-l~hLdvfWrs1(9!4Qm;m3(joBlmIg&Lf?{D z2OkL#8nJqz1PZ31pf6`p;^c=WdT{bTi}-hmtGtnO06+bY{R$4F>=Lw9r^rdL3TjTw zC&+5(Cc>uD>I)Be6>?2Lco5W`27#AC3UC_aoaUX$oKNpM-qqr%RH}T6ITv1}?EP^Y z)JNVLYVW9_Kg;ru^e8nSgKNnzrN0eNmmX-^zp71puFvRju2}@eVAXxvt?>hBeS&ri zW|b4Ju42%q|2UC3RD`Z2B_!~nqbTLHy?qra@uw6QG5U*Mz(xxZgOni>PS?Xbpm^6YGI=dOn;Zmu@`% zhuS=WIna0`6C-}2qN2_%_6s5aStHPfHYL6$_}|I`O}BTj03h%NyaN}+%?!LmfNEEJyj{-%;p z9sryRcavhd9Q^%Gx%ifUaR>>;;B83XFT5?39Z*oXq6083Afc`k^AAP~y{fAgM4zWV zzwm@B>711T%YdZ#dxx=T#yHJos42wWvs2u%omk4@nUnd*G*#0n-%NeFc$q@cup0L! z=5mG>wges~6i{90=19kK>mhGbcDWWC8XE4!S&k;MQm`G8X0)V020@bmh2JF~c*ck# z2M!%7ZI6F=HT}RUJO_LbchhfIRarZRTdaVW_PO_*yKPgB5V+*!gl)jj0eTT5ZbqE4 z_$}OE+oP)k;MxLT3S}HeY9}ZIprFLt+uM;?N@q}+jLS(?VmyrPQ{Sbm99LUq)HCLX zoe&E1nhbWxJ_iX7I~yNnUm6|I-7tRVFWL06dG_AkB`Y#?D>W9(fl{|7#Ast9A8N1g z+ge&$o+~5=5dRf24${R8?!9lcznC;S+;#%uOjyNaKQhtj0$COKm=g$aO|zslp13$^ zcj-~x^5^F}&CMPx4mp^enHfFXi;j{2VXRPua0hoG2gAEgEVI5?f&^4Rw~ zN?MTE25r%9f*qmnf(#OCh|%AkTe2+?7axTw?e6a$&MeSUB$0KDpcQ-@&=;s{;{HSY z1x6=Q29)1D)pga?C9qAeRad`^g-nb}UMaWd^Lk7USkkDnB}J$tdOkMXT9n-U!aA(# z)KqToG#@<)bpfB`qW9J$#CXaR-JVG65PgZtY5Ex-P{_86VAq1c#> ze?xKkO_m_Rl&{R|k|VfJP>JrY#VGgbWw_)u8>HUt$xk&X&VN0bhUiWC9S zSELs!h)7YSLlQv&rHS+!klt%3f#l3S`hUNB*Sg=#thsB}tcffMA>^F1&#&zL>}Nk4 z+STb@92A4ggovpZxGZoitPTQ8ih|$aylC|4Iv2q8pw|AP$rfY|3#MIR9SX1noE#{U z7~=tGD#CD*SKy6wl76+wD$gQ|xzaZO`4B)6+tl{+tSnC1eCvMVJ%^`)>wrk@Tg6^+ z2geiJ^C98$4eH`shZ57Q>5R6lt5^}m!JrZ@;$(rX8*B9jyz;W8uH3cGAR9Ac)B)2+ zAh!$R8RDT=;+*#q_Y!BLeh?P=r`BU79>3x{n)}$)a8h2 zR9k&S5ZFhtY;IE%I8Z^bfMdH7@M0>kI2|xQa8d5KyJMs;OmxF}w*NGyqY2mk(TIMXgh7>rw??HX#Zy11Wa9`FGBF2u}o;PhA%J`iq)_HlM*~#;0Iy|xs@ZZ*B2JLO`{F+bLp$?Sy%zwnwKkhEUwB$-4|S+Ve4p&@-F+EFJ_SM)Mw9M^ ziliUdKSFN*R2T?7M%pu$GRxNfkTmiuU9VM(Xe@89nDW&!+%X7-+(Mx6Kt6j6N5n`7 zko4pmP=SCG;77y}YX2Z6I~-Tjrv{j>XEl)D0Fs6giY+3LQU(S5*i;}Qz>+Cv*Srt1 zvJmZ5UOxzoM)(4--twvh(MeW(hfiLP z_*|<`$QQlCG)+xrCj~56yYjZ_2aY5r_)%jrv+2hX*(=A6#hfhqI$erUr}URAGFJEO zEr4TdnZ*+aPS-z3eCi;K}t zB`VIi4#)(Tzc{?fBSVLO^ zWvP6QN7H%(xb1PS@=G`i+ThTWrE^N!kIy)wzP{UX%Iw`V-p1zZemJL$lCQ_>fjBIm z-*Vdm&N+Prfu}8r4qI!cTV| zREMX2-l|%p3TD~$=~l9DUf|uaaw?+U)exI~` zHE;PyEq-B$ASv(=y-aEU-ig|C0bw(EC29Z6(&__qzW}&=t%=F2+@fv9M?RJ=CUq9M zx$n=L8GJw^n=@^tw{Ilc+9sbgpIoyn_|}N?O|rEWOicHGRyo+cAe_}SLZOWCmgeV7 zl+e;>QCa!u7tv{%SeRMgcl2X3VeLa%t#+7|skne`xA|>Z%QZM@OjIZC`SWiNeZ{!h zVGsS?^W{OO;*PowP=TC^sj=QDER5koP)Y(;2TBphRN@fWG`$ab0fc1_RRoZcg4GKP zM}bj-Rq6l+2}Z^+A}G@V9^0d|r%&i7B|O(~m-YOur@~|#Aon@*L#EW@*lsJqIg3V!KX=tk6aE;PV*im%7pdV7xiJ`j5>9$X5$Xw`Z(IpmOxN3^z?c~ z9x4B4r_6~VX%H8#I^8lb6h*yRTK#` zU#(5Yr=PK&$v?JUPEwwE+r#9uW`-PLVZZic@^Q}xHKUD9~A}kdkA9VEh-Az1pzz8e5n`(8z60*H!x5wTDG-X(5ji2I(4TuD}bi-WO0v$K(&-tuP$1ybP36L)>d2!dQJ9ePnj- zEHogAihdsZ=-aXp_{jZ-Y5j`CxwD4{tfo^^-dcYD=XvY&s_zv5CJ(C;X>V%suB;+h z`cBc#@OavD&9vvPnbPIgctL5b=Ft~|3+)Je$b8SvOe~_+h+s)e*B$fonw7pLdk4jvqE_MP@@ zP!3fMqA5^P@A^ZD_Uzp4BIxoV>}F|z(Kmg0S?g$xp9%dN->K-^*K5M_iD1fEK za@RV(E|Q^4#XWqcTmV_Uej{SOYMqVmH&bMKoT=?A|LnF)KZ>adY=#nBnsJ zF4Urh(%L6EF=jr_I%)f#5zZM*+USgUjJ%DC2DKge9a~CZgjcNxECZHFP!9FKm^wf0 zVRvXVf}y)V)?7@u3lfpl*mF>L6o(R0ERqD$DgYT!>Fcf-PX9w-IS_x{o()Kl1ypZV^Pb0IzHn zKHdRq8)VU(fxG~=hHQ!`xK{hBUV*#?RPtaAaiEm2$@Uvu$QdE0br+^PU7Pk1uN4qc zKR4L?xtGVL3X7i7;^JrlMbDG!#?pAm?R$2xJ*BuC`v*{5!Z$64w4paQ6N#(v`o?W) ztb4PM3jUoB$4{+Omc+Q3Z6HGr1?CX`L*xu19AIKD20vCCV+1^|Kd}S=S5IPNA7Lg^ zx8GBGf8=mER$OTLJ0D&{L&HzIUSIe;MEtzaA!hZsEFqWIzciuQiLsi(x$*v(OeMd8BpKh46kVY%@F;4 zcY;|sygPU{yxWr!Uag`Hx>zbo@W&SZOE`irYslOj%0(Q4hfOH z+Xz%pL783Jx8={1(nmshIX{6$AM!(Qaw6ShZfoSW&D=_&k}oT$MLb%)i%snE{ZvuO z$218%S-`5pj(WIr^Mi{ngV-3vbK?xCR+n(E#|XPx2nBh0ziR@oJbI_({yJRl=4?!B z9kEn%qo270|J<_EK_)v@D~pfDSs%24dTHBc0>3Ao``8X5n))XN>gq0H5e+i+r0+qm zRD^<*u6&TR_{C0cX)7|d`n+oI>gE>I!cEY2N%8# z@Tf29Ec@o%bJkHjaGahr&GE~rXJM%t$jIKSqQ`O*$PWBVCjxc(b%~um2b?%-CNg>a z1JT52hv{3S-Xr&NyZkn}u8aA3ttTCsmVZeKE;}oiz{aj)zd`T1(2=h_LwUI9ClAS& zly2#2oxuq{OUgi7ucF<6I-ILWDQ4Y0WF>Y+wcFeH@{f|l?{jr=9l}vcOPvY>V7*fL zrhLvOVyWaQ%Ds+01wlXJ#EcE;)^+nfZZ`44ytTdaE$l=Aev$_TC3DNI>Atp28!h3H zL(Z3071;LItbg?+czJd42C068{%YE*ED5)3%gZGn$I>A+>1{ViTn}lP9PzYzEJ@U( ztqwYT&&ZPYuYG)pz{izHf|Li_o4tifK{j5yngyI#T}AF3t6i9Gp28r9s*+e(m>|*D zK?9-Y*Yvy8TxwyjGH2utshyQG`ZDPHwB`7WUK8;buan=_6*Pob{7mkbA!}MoPPxM_ z$Liw)e9g!M?HB#c3Oyd*_ZM&-LZw~i@{4;zypv&1aW4Ma--2wvgK|;wZ~+AN)y1%i zbAs$5xb*BpY`b!|Sqw8$#*!!>?Z1u<|16o%$KjA@zdo0mh!*zmXl_R1SmMrS8|~GF zJ@;=!FEOPjrU!*TpqnlqgFxkTVCP%*9VDKnezntZ;19O_4v@VQ~8Sq*dN)Qo&r&dYrWIWKPG(YXN}hpJj1IisXu>9p8==3`m^qXK(~ z{Y%(hWf8iryl+=AOA~DgIEXT5oV*=ww@%z~5c-F98T~f6IOIV8HZ^utew)V93jsO( zyk6Z9(#tVIZVSXaS+tplDl^N%W2;yyKu&w@vk|4;$6nLyroM6pSuhA)IWUa=rw`yi z%2s~aSQ*cKMzt9A;T(AQ_&I0v9?hTEmO12Nmux_OUQEf6w8d4Edy978{_qg9KrGEF zNnDk8KL^|?$kndxm0pA%w^$F!3edV=gMeW6V7pevR))!0K^ zT7rOYv&He{M5WzmLXBPv(LRG{J`wzO$o#|H$q<}%GVHV}POFe+P+i3dS@tRIj`Txb zhe7HGDzu==5D;mE1RM5oAi|`iNbg%KvYU8)X}cQw2VlgmDk4c8E~^XVaptEenG0Wk zF;dv0i)e^o1e@+=p)>-io~qZ5P_N;6{WH1IMe?GWn}-L8#0NY}nop{8Iuz^tTg&&# zQp*RUs!@7j&^$10!e=XL*+XYf3d8;VP)qzlEaE{_5BF%;6VP+o+eh`{IoG4@igs5L z%p_gwh>R6s<32qex!-df>9A)n_$>GB?kfAZtZqxGK*W0W#w_sO@lTO>V_ zk=f+k+`8k-;ZV1NiOqZ1ECn`IZLr{apt0FF)FCU~4;}Wr+NGxOk9D%_cKV|J3Hc~P zG;uPK?2|M(a!Uh?k>{RWeG)qSKOurx!Fyho>~K?c^G9+SNHJ%{o8!nSdw!6bt9&rbgX@x-@P%4 zLJN@!nA(_4Ig2(iL!FqpLPkHjuE-9z5bC)s*UHyTbfbYqMFNwPx%MoM2gfc0(GKfa zasK>^Vzcw-NsvTrD9gL4SE{`i#Ba=S{w?ePne^) zp-D8}j5b-9)YU;ON})|MH0~sxR1yCWkAAWE`If?VCY~#|5U)MAJm+E2gd+`;xfN3Hopbl4Bjll27=MaaB%B-<8o0=JGY)Nz{l| zutFqt5LCwS3pJ?D(mHlI)dh49hjWpVhHj=_tu=Nb3BE`Dnc6 zXAnTg9_!^uf`4B%BH{k?{z^9P9%v1LJvLb&(tqFh3Hcv?E<(Na(`RV&Np?2e_er-M z8#veOpcRxq)ecu`NHMPau&kk_RU0v~a%>X4(TNK3@SI*dtwZB?!S7SBQ}>X_EL86s z5v}~{DZshrji_E7X=vvCn0C0zGx*!;=2@=gRtLl5-V z!Z?S$@1UB0$aL4wpBC*b7#lHR;&PgHXx-VL99u=W3p*wF{``Jo!9%AFQ87vmbj~iz zdv=5INw^hPhLj`Lsu^g+$kxvB>51zxJP5AnmiAh{;_8SIj$YNJ!+OcG-uIGlbJrO*)b}@tKoQB-PRIoj9sLT~`>p<5 zf(J(x_`!ZBq!5hL1_U3urYdV5n8Ywzf5mY^Q#ArZq)15*y&zVXV2Q5ftsM=``{f1%*pZcn4O?7=WL{!ibX4~ zPs{q@w19S4<(~UrUYuRitsy1V#=LjAG;ihf*~?@P$>V9G9VIh@NjT=cXwx~$+uU#O zKRr${Ux>+KW#f1KxQ|4ht}?SgvUQVv+4q^F26yS1M;y>hJ}b8x6poVi<7lE^n@uUB zj#nf`NL)@^b|nI@tVH$QYQiiua5&#`w-f~Y6B1Y#?z^{^x@4^hhx}#N2_;d*ga^+NFNAPk|^9|_`=YAv`m~IzM$$% z#|@Ow!kHx_^rn0`%kp3mDr0oiypKUBZXwcH=!mFgjdx}!eUHOIZjlFNFgEzIokGw_&?9yAe@Sl?!58;&eOf++!m? z9$o>nv0f6Y=Uar!jT7zVi`8E+SHF#sZW&qWnp(c#6`{7%&DTgWZA!~|MfAtg%FI;V zBuPf1T75Mky%MAXmWn%5xFMadyHw_yZ$A2di*J&>iFTem~Qhgh9ElkX;hICInjw2>Uo{CjX> zsXrG~quj2xDb3&&$sXfi!|jolKDq2O(pG{3xOl?GCgsKo@#E^lOQXC;Nir$~)9FoM zz31oc@9;OaWK?XaKJ8rc(rD`?8vBKl%-9%*^G791^<*+rhmNTY?hgMZI&)`qjL;8x zN+$1=*VnZpCnmglgWW3M{MvNa*LT7rXTC9~Azd<)=an{b?%TT&VLFFGmj-S1bc)}r zg)Dr4xEz8P>8VD_=`_(XPz#jaLhx9h4NX(yeWuiE>?90MowGwT(sUZaE?H4D#f!NF~z!=Y1p_9tD8^k}++`S@LT z4&F739g&kR-gWfx&OPRdFEcVTO~bw3Mw%73k2Ht31RUvAe0NtiSj9Xv5k8h<^rN=W z=a*g|{O+Dyy7l2p{O3`;21sQiF92c&)xQ&`PX`YwhON69Fyh|21NPCxXqQoZZegT{ z{Us(V+5EGnIjwR8RO#-G2?%%QIL3F~IXtPXn6sBLX!M@`Y=V@E63682YWCG+NrYEC zsiTnLZ~r|N(5dl+hM9YljJRBYsf5ybL^HwD{9BMPwS1}k zW`Mwy=U`2dtA37H`w5+pq|R@hzgNf+u^5`a@%b15=GeV~?e%EiT7D#& z8&2G*^~;8PRef%KBhDgv+Nf~mH!(xCP)5$3QNoDZwLr&CtN2&q48}~rxfE9DNCTGj zc8RlODmRr4zHmx>dzE0xp>==7UUjji>Wbh5(dfbO!83ic&5B3&rSxI-23@Lbgpmm6ISW$o3{;i!(-6I+Z&T)(P@yYXMC z$GuixN%xbD8JSvC=^4!~p|{@K4+@Jh3P)YkR^}pP7L8s z*sYV7msi34tTsl&*H>U$(w&Nq6+6vjuPX|p71!K+T?}32==8GWLez$XTg76H8#THC z*D$qnSi5Uns)+{~v(fgQ>00Mr8J0x|Rhi7k10T#^Wk+VKB~b*@+FzkOFv7Bt7Je#^ zEE2WE3VyfqK*h-D=*9LO0Rj$(Z!^B-H|1#gDx?tVSHmxxf3B}&j94*WUM9dE{N4YN z^9d1$xb_WjVZ3q|n753R_ax|)YB(r<@+%%uD)P(U#_gW&eV*RO6E|uj)kX=n+3m+N zBDkRq;%dViSCSkJL^iBQ%7^MNqSiXZSIgi(jl~&YpFPSOaqpp7+28uKgtS>gJ^hQk^kBq==l$vR&Ef_S?+X$Cbtj`_XpkWA}tZ2#co^vCV3 zolKu_Ua^Di$KtcnNAgOT~%F zF-}9X{H({(He4C6h#U1y3(S(bC-jye@OFfRh4G~Qa7*$s$(Vv_+SyNj?2UOVa}|t* zOcYpWH>Z{6)f{hTeaKZF=2uLINM?=^dODd&4P$@ehLsi+ z&eg-d9lidWMQix^L+`9Hs1~-w#}TyhHv6 zDt0nSxX|%yi>yF;0V<6JE20PJ&sbPwar^K`{4avFuT3Ka4>q5?Q3aDxh5r#}M7{Xm z2|0rQ1~dDpi0ln>a*E>rf+4Dv~&I%pa#?-Rv{1YIe7zNF`J!UKj$q z(MjI2Igh5huPYM1H>BGP`b;O-74LaAbZp+0_^iIKW`3kOq&Coa+>wJv_HQ)e!j#^& zIeHJSvl=lpF^PYAYzM4DpqP-nHVar~q4AC-FixIFM#dhLjNc2lK~+Kt0tA`fjy`QU zkvpPlesz5YPjwPF-aifus_(1qA8FRF3Cx0L^HQbAE(ICVjae@$-Q0SRp{I2yUPOW_ zN(~i;FolPQr*fYEK%}px=7T-B>hJKOapL5JeGO41REQ_!*yZ~EoSGjuPY<`n;CF~F z+CF9eS9H&@@Rz*I z{cbhHx(#^-H^lWQ;|iAGIO|00#O-s9ETJOS;uV>wmR6ZoJ1!nq?Zx2F@auYi_}y4; zUY_yA?3IG|7ZP{QmaMg|jZgKQ0#>rAhwAOP>R3Lj*rK8`==|c?QtS>Q?jDi(^-Pnd zcSjW-jkUjk%vQ2z-G`CI1iLMJCMV7t8U`rQI@5~ttiIg_*Zqhu=DRD%lju!NlyZ8~ z7(t-^{L|Y=-hR>vJhegL^P-36jSqG6h*bIi5)UAT0=#zJ+1p44{$(D-`fURx#*0%* zIb@MVaraIrKA1_Yp9o54vhO+<`$kk-Rd}vq*i))qs&t{ZEbtnyPc`@NGecz^RwW%F zLNbvuQ3V!tPMvq%|;#@=W3pS}(jQ2HykNW2%ou6Jp z>im&pzHZy!YT0b94fQWpN+b3}zZSFBomb1oM}w>Gs04A{2hs9ssRQLPnC!HNiZsXB zg{jNkL~q8O{$X&d$SjRMV2Mtle4{i>VG`MmrnufEF`Ta1rrC~sOG|KMdN^Q3|Iom= zAb;)#kXPmVv}oDhlW|cW2i2BmHfxn-9m8p*iqlW&3pPWCU&Y?mzuvHLnWabP zWOU0nZ^mJfzh3ro&x0l63olddC|%zdQ=}mvyg-oz6h8zP`-8?eGVhmcFfk;o*pkn=DW)?IWaS1$^f?bclO|aOF8x_AF z>#Ka|%(yd}jl~5s?PbVd=zm>Aq#ViSIHI34;k$!DVJPN&Cs{|c0>t;Zlz03;@nRo} z*DucZUE+&-K=zEZ^_@|3pE2=o)v`2H7f};&Z@r}M&1?#H|Ngen)Vfi4>){L029ylR z<{*YuEQh{1!TvpmIhdCtl!^=%V=+s?7!k-twr@`DxDQMNVFVa-XJC)T*wvcq0z9G_ zz&PUeIG)cgTeBX`8Ub;&WFaPm=N_xxT=Sb{3R^odltE0W_wsw2z&$tZmJaLY` zF0XUGG=?kf!yJ_eXcuw|vNy3UkcJ2Ynr{XBw2NTM-m3RQzmDh+J`hr5e;_VbdpJIl zSc>qrQgDyCkou~O=ScEVvGg@hhUFgfSnR^wMkhBUq$Lrsl0N7Or+N8u)L;oXHKC#k z<&8x%+2kBLw&zD*V(Es{1Kj{xt2IFd1#ra~y5x@gbwjQ`2xWFagbPU)>W|$_?Ks+B zH@_s1)OI+t4JTN2T3oK|)-vB-k^ybshv+yk5TMI%^+X&a@?zEhIpZYrc?U@;-uBx? zr^E?dsJNVOd@D|2OC*tkGm#ZMOx5L;`ao-8M`H2L)IzZmjQw^IyF#S#2ZJHD&F${p zm$2&<7CzZY_f@C#&*VGA`27J6c}1FsSV{DW4m1Q3I}F0siGuq=6_E-gm3^daymnP; z74ZxmrREv>$X|~l8Xm;|_wesoFT($fKr4q%Izz#Zc%;KByezXJ7}G=pRxyCkAB)M+ zes`II=gvho5$YSScg(K`&uQAD6TY~dg04pb@%+E_A!`^kacy^{78DbaR<`VA5K9y3 zv`GxMZe=BnQC>HrB6;Tb#-bt(-*Ep1BmPR1aZ`F=k3AidL2D+h-|S39c&}eUT#I^L z6iC5;UCCIMh1{?$h->|Y*`YhV#fS~&e)9c+0k|!6c`Z!PgaQ^GSeh@>fDNRc#HXI* zRGG*;_zUhvTJNQ_k-OvSE2&?2MQp^_tB5}-_>5g_R{%RiZb}$$6^S5jO9hc(#GXs) zgOj;0rh;J@b)Cum?q76!;HPCB>!d$#(E^bXYh||PL386KT<8jTd9T%_0;gdH%bc|? ze%q~j+4yA2A@#Sf8TWGT-m%tNdhA9$1?WD~io<)hQJNa}o|CCm%+cL-hsvEYko4<) zESH!CwE*W&&!Ol$RQ$av<(0Xqeumo=@k$bQ1d95%gL8vd+`2u^hKtL6jQ@qhb0-ZX z&F>tx#gKZs)V}U(&FOcJIKyZlBhJsOEF6f1Sago6aKC|JE`53tIp0!rT8Jd}L!d6wswY8@LU1 zkTHFW{Xn5?eN-W|?%}v&*%PRc*nVQ0z@^KVixAJX)wQ*lF0iRvURZU-z?8iStG0YV zuipg5WqMAIL3@E~%3uzVFkfe7{rp%(?EIQ~hC{3Ft!r{Mhm0+Ez|%2`C9d=IdXkLA zz5~Pq#F^+SnrHrM!RoiZUh=9aH9l;NxDRA|td;{uM|M7rnhex8{xi%dsCRT@O}a0YMH9bN$=Y;uM05Xi zelPSkPw1+lU8+*uKUbL-+^KJVWKCg60sjMAbR|)2LY{GKd zKQtSDyMK0wk?Gt%%h8YQIv(8slVor2P31;W&KBZ+=?t{r1cs<2YiBw=Ny+l;1G@o_ zQ@vB|UEH6(M~tGlTXjN3amNn36rj(lXkScZDqNRUHsYfr1@R&+L>uqnmx0bS-^I2r z?#-nl)CQLoq5R0noFbv?&-hGH_7>R*$F*&P3o<4w-SUB{o7@(>6?EFub?eug0zq_o z*$2Krn!|m5k%F^;3%hZm;>!H&TxfKQHULix=N`fAZZSTW{!beX_uYRjzbWqRsU2*H z3GT~49sF~$i5oA6?^6*2nfc6hCP<`gUeVU;J2TLa@wqI}y(xrp`UyvEZKKf|SGepm z*1iNv`fG)2ktG+#D7^$tH@KVs7`eYwaP7R#eSm1wH|u^FzPbLGy-ee38FAOx)NRW+ zRp>tBu2aI*kv6q@S$m7WzK<>_vV>A;I4lYD>a!e4K!Asrg8vhM-I7<3Qt%P1cP{;R zW?})^|L^CW*8j#?{;&X<+l!!$up{v@I8xXTM51QQ_djzLzcV#CS^JUJHc(e|!_BUX z27xf>TTnReC>9f5l~h>(xPn*|CEI0L#Tc4}e}-IkjU80*YQt`FEeg#K)_=|$lz4VX zCx*|uQRFbr=iLF)CFixF-{5x3O7JZX)Zyi9`WTW`r^g6U#J}^`BVU%7R40uiRSj&Y z6Q`_Z`W(?_Bi&kCkbD5meXNU6!7&lNc&*jses^;{m%M9$X2KWFrlyyZ!B4tsDmfpU zvhHpzihC*$|9KVqQ{gJV7@IuWW#;-G+^RFbY3DPZa{ry6>pRg!mvNX>d{m<<^E>2I z|Ewuik+@qI|2ao3=0)$Nu_qrC?b(*jnNPB1BR2BPjr{jUL~6SrK``>xbIz+4w#?`?RPf9JHyqeovUvo~GQpcQ%v918Yow zK9n(k{4}&sGvRsPu4~TADsk}V4BdQP3jY1HVZ+H^B_Wh+qo(K0eTOLa1myMC_)jc- zpT7&g=J%}ikfH6@QAM`Hyws_f0&t~1%fed2dI{@n4e;>)YY5B#<%Hfo?ufvWus;HU?eyuG!q(N8U5K+>{!aF&6UrrdnD1qx6w+=kCpFd#$72hpSt0O0r=d#Z3+D zl5Vk?UwgKNWK+qZd2{5rVTVw|{UmX^VsFvMJ#L7>QqH#d@;mJF4Z8xIw;lZP+P!O! zfyeEv>12C^dQWfr(zKUsWLS{^l9f5+y5+I|x%GbG-FH(iMNX8{3M-5Z&Be)aknQm_ z7xzo&EMe4=SnXf=6PG=>jtU6u%>24uN*6g)Vtt>XaGNw7jd*t%`#s)zpJ1CLpyzhbxfRHRYtJHwQ> z$Y(?jJ0txsWNLHMpf#!MTQ>tU35k+1-S5@BoC4%Ux=(lAla>pIyf*GtJ(8Ro_^To= zOF-ZP#j5n3*`fFaU9qHT@9zOkQ-Qs7<3h#(#iXYVi%!q=SR9q;N&H97-hig?M_jbg z_B5Z^+#4mXyIcZs0vG;iw4A4=eB5(+P3b3l_s*%aVn!5#b_)uoiOn=U+0~>sopZtH z2jxbeeC~=G^Q{ z4e2b$qXJJaZ0e2(!zXD+oUK10HI9DxFmso#r4p*T-cNZ0`>VdRiOJ(`hMOK$baJ~y z8mV>FK(>*op8NFc&Y@BM1EmWyb?O($;bt8*wJk6IP$t-SjwL7rb!1BLkZvn0#!L>{ zAUdfE|`cHvS3j9Y7Sk;`{|s%@9g%t=E7 zW2J%Fvh8&Y#km`-aLq`w!JF<(Ry&(WheURT-k~eO_Y;;_ca3s8<_~XKI<%pIS7DSj z7*2fL#yZ)qjz~GOb_MokhW+@bL-45+ulr1hERR#wH(9dQT+Y~!JC{9fN5~zhy>rsb zyEpc*>72W@1NvPAV|g5U(c!i#lpXRYYbBup8&-hStkd9qU^Er~<$Zm2R?);~PoAJe z%i4CvUc<1&hiOmK@_PfskMtl?Ye(WeC%3s zMUdMT&t_RunT-3iDGtQ{_*U#kBcXM#bEF)l#uiuhr%B3khj_a58xba#56jtYnC4^8 z8LG_o8%d$zbZ_F3UZ^( zu|~YLq>93ayz5%gZl?>TPE7u4yx@KmCO2l)HfSm5vtyH5j=Z&(j@=gMs|9Y;D_qTi zy=;iR*)#%{eblX_`|8~}G45}uwLtGmb{#>pqs{f^@(ZCPUzRA?_r~yz7C~vcW}HJi%KX)i$7h*hxwPIEi7p>=LCC4!$c>rDyIGk%|UICFMc1iZXhy7ZTt6j?+)z&iN&wu zueKFm5c$$nY0xlgkdA+!i-YRXox6a~!-MdtFG(S;etagO`iV!U>ZHnU06$fojz-4D1f^R&|(w!$wd0uQMrAita)#$ z8f`L-SeJKAbLoE6kE|gpQ4rCLxU{?b^Q~u};ipZ-mo^EKr*+;K{d|%{)Yj8nuIR<(p>rxVMaxn7{Y8`sO1(SFY`#%@^<>?NReFj36?k4fHU7)r zSy3eyjh*gldw4?6;j1}Ku+ACaFZeM0BiMc{U zC5qgp3=@;CstV+lxPFglUrF-#vhzTJBTOlh4|O{)=Qleehs)eY@MWT!P%G#C{{now~e%3hx7v zmaOoBtOB@hA$JQ=p(%3S$Y{?E8=Gr=!t z_ZTK~CI@nhorlko*Z5v$-PlPI^WCN4Yq8yH^&1M*o;zcirbULarkDKBM#=U;7m+hO zh=;AIibSeJx~Hj0z|w4$Y@FMs>l5uc|KzW^;5&W9<+oPx6;B>Y>tRvkP^MnI91hIf z;P{M_CR|Fb3y-wC?MEJDF02>M^6a+kFM579nJ0l`H2dc(9;~MpGTxD=m#Sv>kB_!; z7Xxby4-HOw>0a^-51~P!A2y7p-W4BKI8r(1NhA9rB#^)bnI$&TFY;n+Y{X24_xMNu ziS~unxgR#Gab}qZ9cId9)V=i&tX`vq(O7HVCbT?C``OqCLZ$~S;CKN<33Jh+V{9aG z*Z!fGh3REh9kTbw;*V%BxAe5+3zyto|0_0kuA!gbXL5{s->>{`rTeK^FGD}oxBKa_ zMr6%jdeeIc8}W2HHM8XnfyZh^1#X;z(y9~ku>*Cv%kdmhkIzHO`xHR ztVa?waiqG9RneDuM9MOmFp^C!i$N7npRx9Pb4Pd{kdpDv0zn|a|HDv}7E^M0e^A!z zK!U;m{?>`GFBXXFVF>&KRv5Cp>el9nUjU)^@-s?G!KyRdy$JJYWMfQ2M+UhdTzTmt zC55>E&-NVrK+c7KyDe&EEMWG*zG8cmAXek6$+yaG`;7C}Olh8%L=akYbcvDNlD4MG z$*bfh#rezd26?R|^}R{s$Di$Om2j9)nX}uN*&-9z8gc{SwJTlx_`x8bpXVzG=RgH^ z%!WwZ5xJ?3JU*zGtV}q>l^`t3Tj)6X=5+p@kqw|eqWDGZNm(9eGvX{y6q=6eimj?& zG}))=r!QCxw<*4Ul2X`|V>!-#OIIz6K03`wv!%O|j?k%kqvqc-TQtr{Q+00{_Z&Sm z@x(tH&+V~EnZx2(VXtx1Jrd(m#habE(rQSpJrk94Ekm2_(TXNchzjHa30>GH14Cu8dj9Nu16f0PO?%oAl<+q)9P|^D5^IiXr`H8zge|Oz8NqR2XrcOhmxWm?V8Y@ zxYw~E_t_yYOal!`{1%OD04?9c%P9aytc5K*{UyD`p%y>pcDd&A`OXS|vwUYY(= z(0J(L#rtAT#R4b8B_1jpXYlsg!ku{c?wv^1Ip~4>&r#>J)UrkB-ZBm9oLIk8xNp%N zMaB)qvAHQUj$6+U0H#|Xz+5Q&kZg1b4ZdP(t;*0!pXvLJSdfza9`rrITKT_O#NhZ>3 zPK0_eNRTa>N+&cso1wxG$FTLQB;jWVoJJo=xlC_AP`0xCl7^R?bnKZK#RnacI+#XQ z=ERdgT;)6Eq2D=H$&|T{S}M2n{j3-c3(}Uthbgt+hvG5!6t>3mc@4u4GQpAFDKL&$ zKrhpq%5FNY3*G~7%95E9Ii~a`nv5|0?3pu2rOgXiSZ02mmEB4pm>=oe*DY-G@mn8@ zZ3YUs-)IpzG(=H8;*ut4QXDH-V^~bN{mb%($?Cc3`JgFXzMSd(BH(;OVEO0l@lL2Y z;Or=7<;t8Vu{32P&$L*Y`?i$PNJhbW(t%!Ei`Vc}bT3tzYLce?L zq4_(2P!*|aZKt0omi7s>CRkoC+WjCnoA%ER+|=WfT?*1GD4ye{a?{a$b~{UfkcfqT zqu{H1DRri;>G)OP`jRY`rtY)o2&+|y&E79ZCKw?$uiR&J&iSgHV-8PiH*)l!MGu%3 zzS+_kG>t{fiAR-;m-ANIZ;g}PHe;c#sDT*ipt`)@-J0%i3OJ-FGvV>AlneB=0;AZ7 z1Np_hKw__}D7-s%s4V(R24jx6<#r9~Qket0AsF##<_c>C(x^BjTx}ux>>7K4M|t*b zzisX9H}=8>V*+Tlt1*nfhr?z}xM?F}>Bc>q-}j2iWibE5#?PYy-xsUy zY+cA>5=Wv8z!}$kD1DNvcBDCTy8lJ#v)8GaDH*Z>O0U%UiJF$NGjBXso zt?s`=tJ3FjiryeQT`PLdw-;RTad+f(nb?UfKZAI2FWt*Zd>f2^H|earvS~g$lK8Nt zrJ*rMebbbzmvzZ!+E=`+%jw+wdE;}%n@U3R_Bi}(G0$@pPu5L%1amyb%)D`vO@0$C zeN$9INIQe^yCA>Jlc0FWrc!3_UK3C)lXnPGLYvAkwE^&a2i>B%>wP8)XRnknnS>PG z-YI0`u_ESWKBtIR^{=f)*U#jlRvxc|CMd)F{O@OHBS!W^8LGkrX7GqfBM)D-yF4?k zN(?ZBjF3AU9Tn ztE_Owro>g7_ji4Twtjea-q-aJ9#3=V(42Z!B9x1HKYz#7&H>~28|toup|>B%Yp9aAZpzytUVqSjZSpBA$G&s0dgSb{_Q z=hGY9*GUe4nqno3Khb3U&Z@eOAUtbNYaP3k>(F6k8x;`&AGWqN*TJ~@v-Eql^D6UG ze235$81m3LX3vB`1I3}^Fc?~Q!?6S!Ua6Tq$!D%$#euxsDRWKf6zopvySnfB{W^7I z+r}`7ho`rnyqSv&vb|*8pbDWwEdmfv#yk>lTw|T;ZDjK zD69#uRxLK^PPXo(-Ig&)6)&I4^Nf<7Y;@d3YmK{5g0j6&#QPkZxGekVw>|26%_-7pgW*wO^7g=M z-Fhbgbvo~EuyXaGG)GQ-k7@7sdjH0W%Ll|RDqS!p#VOXo`^y((qFew&aT%3uIZxkm zo<1$FnTt}E`;tt_AFsWAPfQGXUvaO4%oKnH=w;(Z8_G(%w&v+GN|xJg1aUg5iz~ht zcVDvcuF%+(51fJTAH?3o9C3W*(P-lfHhteYzW!&o=O)r^*MlxbZp|t-zsLfyOT2|5 zG=N_;KI>PchYdB4-0se9BFqW{GNtQX@tG@@KUMX#;)NuF z+M-?)hm=z4!lpMJ3mYj@TXzMK~= z*p(6bLA_)2hKDw^7Qg@OZb9z47FMQG`1e8$fgq$RXPf1`I*EC+tCHGX9h}o&L(6j# zP_TklYtWx+F!yaFci^&ts3HnvH4rbr#>E1-5W*OZy+er5*rcdcz6ql8#IboS;zGpw z2fD0RhZ@%*RVQB7!N!`yO3{zA0`VK1RB=d}P@Sb6B!&maZ1Q==Sv2=M>kFM&vIo{$ z^}}pmzw!Xa=x-ZlTnBSoz>6pB8q1!-$Sa}wQw|k-j?g``M2Rd8udEbwaEh}+Ky}#I zAWGv0KTa(?-ymudMMr)M5gvix{1@{FFE;qMJt`!9^m)^zkg`-Vw6abnqD`%_` zb?0`?yTTh8PT8$XPAJJxrOb)C6?j7(`iKrHh@vF{=|Z2*S_EQRCP*bu9JgL?SWN@} zt}X~Voz)m#I`x3;UAs3FUQX<(w;e%COehFEIGbK{(MBjm9lL9*V!B5#0mu@^BPe%@_waNDtnNLXjDu{Jv1D1S(-!*i&B&A__u*&=z z>qqX6u5^pY`t7z0Y+FB66=fq0cm!5i@2|(FJ5hbbxH`jKNY@EP&w)a^>~F10$&yJ3 zu5~9*Gm@-^m3#vOebH)4&i;18o6AkO`qSzRxI|mzXsu1ld-CxOMmWp*y?>)P2aafC z*yP;Q)Nq5u5SG4uGCsCDJ^49YpqRuu1zCl(8ZaOlYp;X7!OGHYQqD1nX`fyIuM-_e z%{XaHiS-!LeOOq&rJ)Beua*94ph{it%GJvSUczzkgo1|K%;G2kr$?i8PC@>pR;1@M zsY&97g(}CNeYEYHjoNn5t+EJ-U^Wpwzdm-QVzO{y@F+4S1`BS&xhFA z8m(eF(3ijujOJOWaCgTPBMyRm@Txacbb%CbqDH|9m2jA=!fvZ4dp6%y<6P}1m7RXS z;~Lq^fXQR%r^n#NZmw!=@>d9l@8A51o4z@0WB8z;D>u4=Pf*p$?o_ll_C^y<)C zUM{q~KZpszQWLOkJt$EHVL}sY?3kI9bB6Ylcnt903)0L;^ejN699LbVY}jfzo@rF> zX4}`MyAj}8&iPOhV%tTwI1gWRDB#_?E#rEIkO0_ikg3XPW%|Wjy}Fw>X}E~*?zQ_B zIA?eIiwS6=2MDiFYp&dhD~kzdU&hQ~@)C6sO_txG;a#itI^jvCQ&{!%HQ99!HT!HT z^`2UFj}rY2@-|$08dE$#hzlPG+~Sn)_KX4h{=(Zd&4mC~n!|umRpBr&!W74tFXHKs zm!HEI9p#m_!8m@ejk1oMQyD-)wnW)i(JY&(BC|{{0RUi`f%a5>K|wG`F2zX&^nz|c zw(SCQo67iPU>cYJVdS?B7$ndc+&+kCsA&W%`?A&*Xioc#SatbBFHDBslt|uH#If}d zD}nw$@vZIYd{-CH&9IcjvGuhwx!$7gb>}_o4g9d3jtm$AvNlSbu;? zbO->e-&c^p-e>=XbJzE1*JNdbDvKb0f_&-e>=WEXE$cMOrpt%4v2a_Ea=J<&f{v&$u5oL+VJ2853%%B zYPkyFJKDKsyKy(0qS1Qb4lJrsRd^-!cL`Q2moV}*mBoPHa$n>gv`f8g45WXkg{Gj6 z6;}28i{@jBcQZ1!ftTXe3YS6WS%A`0$=w9td!^yR{2RkG0iqpEZV4(q8HknyJp$!G zt$pXON1Mb|!)RE-H$fpB0BXa#xdDiYj)$?R4xdCleV!H5v{6A$(JI8ZfzrBl6U`>m zSb&QZAmYI?EW;7{c!DW=UDhf!!o1aeAx);$3ce0rJ^EQlAN_j$(&B%nk^kbjmVOmt z9&*oGx&IIh2-uExt7Sv<@Y=i%o u%aE5}2h#pCp77_l{$Kt0zx<>YV1*|;=TiETy|*C1=jdS%m&e})UHb!qY?C7Z From 889442ef9361247c553f5383e126c514951360a0 Mon Sep 17 00:00:00 2001 From: Amunak Date: Sun, 30 Nov 2014 00:07:54 +0100 Subject: [PATCH 05/56] Supermatter code formatting --- code/modules/supermatter/supermatter.dm | 26 ++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm index c2a8d2ebf76..1629ccc2d1a 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -1,9 +1,9 @@ -#define NITROGEN_RETARDATION_FACTOR 0.15 //Higher == N2 slows reaction more -#define THERMAL_RELEASE_MODIFIER 750 //Higher == more heat released during reaction -#define PHORON_RELEASE_MODIFIER 1500 //Higher == less phoron released by reaction -#define OXYGEN_RELEASE_MODIFIER 1500 //Higher == less oxygen released at high temperature/power -#define REACTION_POWER_MODIFIER 1.1 //Higher == more overall power +#define NITROGEN_RETARDATION_FACTOR 0.15 //Higher == N2 slows reaction more +#define THERMAL_RELEASE_MODIFIER 750 //Higher == more heat released during reaction +#define PHORON_RELEASE_MODIFIER 1500 //Higher == less phoron released by reaction +#define OXYGEN_RELEASE_MODIFIER 1500 //Higher == less oxygen released at high temperature/power +#define REACTION_POWER_MODIFIER 1.1 //Higher == more overall power /* How to tweak the SM @@ -17,10 +17,10 @@ //Controls how much power is produced by each collector in range - this is the main parameter for tweaking SM balance, as it basically controls how the power variable relates to the rest of the game. #define POWER_FACTOR 1.0 -#define DECAY_FACTOR 700 //Affects how fast the supermatter power decays -#define CRITICAL_TEMPERATURE 800 //K +#define DECAY_FACTOR 700 //Affects how fast the supermatter power decays +#define CRITICAL_TEMPERATURE 800 //K #define CHARGING_FACTOR 0.05 -#define DAMAGE_RATE_LIMIT 3 //damage rate cap at power = 300, scales linearly with power +#define DAMAGE_RATE_LIMIT 3 //damage rate cap at power = 300, scales linearly with power //These would be what you would get at point blank, decreases with distance @@ -58,15 +58,16 @@ var/grav_pulling = 0 var/pull_radius = 14 + var/explosion_power = 8 var/emergency_issued = 0 - var/explosion_power = 8 + // Time in 1/10th of seconds since the last sent warning + var/lastwarning = 0 + - var/lastwarning = 0 // Time in 1/10th of seconds since the last sent warning var/power = 0 - - var/oxygen = 0 // Moving this up here for easier debugging. + var/oxygen = 0 //Temporary values so that we can optimize this //How much the bullets damage should be multiplied by when it is added to the internal variables @@ -324,7 +325,6 @@ /obj/machinery/power/supermatter/proc/supermatter_pull() - //following is adapted from singulo code if(defer_powernet_rebuild != 2) defer_powernet_rebuild = 1 From 45b314bd603da678d2b8f91cb486db38c3755cef Mon Sep 17 00:00:00 2001 From: Amunak Date: Sun, 30 Nov 2014 00:16:54 +0100 Subject: [PATCH 06/56] Moved shard to the bottom of the file, tweaked its values. Also added the time between delamination and actual explosion (pull time) as a separate val and lowered it for the shard. --- code/modules/supermatter/supermatter.dm | 36 +++++++++++++------------ 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm index 1629ccc2d1a..6df30be1ec9 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -58,6 +58,8 @@ var/grav_pulling = 0 var/pull_radius = 14 + // Time in ticks between delamination ('exploding') and exploding (as in the actual boom) + var/pull_time = 100 var/explosion_power = 8 var/emergency_issued = 0 @@ -81,22 +83,6 @@ var/debug = 0 - shard //Small subtype, less efficient and more sensitive, but less boom. - name = "Supermatter Shard" - desc = "A strangely translucent and iridescent crystal that looks like it used to be part of a larger structure. \red You get headaches just from looking at it." - icon_state = "darkmatter_shard" - base_icon_state = "darkmatter_shard" - - warning_point = 50 - emergency_point = 500 - explosion_point = 900 - - gasefficency = 0.125 - - pull_radius = 5 - explosion_power = 3 //3,6,9,12? Or is that too small? - - /obj/machinery/power/supermatter/New() . = ..() radio = new (src) @@ -109,7 +95,7 @@ /obj/machinery/power/supermatter/proc/explode() anchored = 1 grav_pulling = 1 - spawn(100) + spawn(pull_time) explosion(get_turf(src), explosion_power, explosion_power * 2, explosion_power * 3, explosion_power * 4, 1) del src return @@ -364,3 +350,19 @@ /obj/machinery/power/supermatter/RepelAirflowDest(n) return + +/obj/machinery/power/supermatter/shard //Small subtype, less efficient and more sensitive, but less boom. + name = "Supermatter Shard" + desc = "A strangely translucent and iridescent crystal that looks like it used to be part of a larger structure. \red You get headaches just from looking at it." + icon_state = "darkmatter_shard" + base_icon_state = "darkmatter_shard" + + warning_point = 50 + emergency_point = 400 + explosion_point = 600 + + gasefficency = 0.125 + + pull_radius = 5 + pull_time = 45 + explosion_power = 3 \ No newline at end of file From 5a8a9c2816b1d5e4230ad8cd5d48278cd8b016e3 Mon Sep 17 00:00:00 2001 From: Amunak Date: Sun, 30 Nov 2014 00:23:55 +0100 Subject: [PATCH 07/56] Supermatter warning now has its own proc. Fixed some SM bugs. Added logging for when SM explodes. The delay of regular warning was made *higher* (from 15 to 20 seconds) because of a bug; Delay of the emergency warning was lowered (from 30 to approx. 12 seconds). The announcement of 'returning to safe levels' now happens only once. The spawn .. explosion and irradiation and hallucinations are now also applied only once (which means they may need some tweaking, but I have no idea if they stacked anyway; mainly the code should now be much more efficient). --- code/modules/supermatter/supermatter.dm | 85 +++++++++++++++---------- 1 file changed, 51 insertions(+), 34 deletions(-) diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm index 6df30be1ec9..de8f5233e6f 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -28,7 +28,7 @@ #define DETONATION_HALLUCINATION 600 -#define WARNING_DELAY 30 //seconds between warnings. +#define WARNING_DELAY 20 //seconds between warnings. /obj/machinery/power/supermatter name = "Supermatter" @@ -46,6 +46,7 @@ var/damage = 0 var/damage_archived = 0 var/safe_alert = "Crystaline hyperstructure returning to safe operating levels." + var/safe_warned = 0 var/warning_point = 100 var/warning_alert = "Danger! Crystal hyperstructure instability!" var/emergency_point = 700 @@ -67,6 +68,8 @@ // Time in 1/10th of seconds since the last sent warning var/lastwarning = 0 + // This stops spawning redundand explosions. Also incidentally makes supermatter unexplodable if set to 1. + var/exploded = 0 var/power = 0 var/oxygen = 0 @@ -93,8 +96,19 @@ . = ..() /obj/machinery/power/supermatter/proc/explode() + message_admins("Supermatter exploded at ([x],[y],[z] - JMP)",0,1) + log_game("Supermatter exploded at ([x],[y],[z])") anchored = 1 grav_pulling = 1 + exploded = 1 + for(var/mob/living/mob in living_mob_list) + if(loc.z == mob.loc.z) + if(istype(mob, /mob/living/carbon/human)) + //Hilariously enough, running into a closet should make you get hit the hardest. + var/mob/living/carbon/human/H = mob + H.hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) ) + var/rads = DETONATION_RADS * sqrt( 1 / (get_dist(mob, src) + 1) ) + mob.apply_effect(rads, IRRADIATE) spawn(pull_time) explosion(get_turf(src), explosion_power, explosion_power * 2, explosion_power * 3, explosion_power * 4, 1) del src @@ -107,6 +121,28 @@ if(luminosity != lum) SetLuminosity(lum) +/obj/machinery/power/supermatter/proc/announce_warning() + var/integrity = damage / explosion_point + integrity = round(100 - integrity * 100) + integrity = integrity < 0 ? 0 : integrity + var/alert_msg = " Integrity at [integrity]%" + + if(damage > emergency_point) + alert_msg = emergency_alert + alert_msg + lastwarning = world.timeofday - WARNING_DELAY * 4 + else if(damage >= damage_archived) // The damage is still going up + safe_warned = 0 + alert_msg = warning_alert + alert_msg + lastwarning = world.timeofday + else if(!safe_warned) + safe_warned = 1 // We are safe, warn only once + alert_msg = safe_alert + lastwarning = world.timeofday + else + alert_msg = null + if(alert_msg) + radio.autosay(alert_msg, "Supermatter Monitor") + /obj/machinery/power/supermatter/process() var/turf/L = loc @@ -117,39 +153,17 @@ if(!istype(L)) //We are in a crate or somewhere that isn't turf, if we return to turf resume processing but for now. return //Yeah just stop. - - if(damage > warning_point) // while the core is still damaged and it's still worth noting its status - - shift_light(5, warning_color) - if((world.timeofday - lastwarning) / 10 >= WARNING_DELAY) - var/stability = num2text(round((damage / explosion_point) * 100)) - var/alert_msg - - if(damage > emergency_point) - shift_light(7, emergency_color) - alert_msg = addtext(emergency_alert, " Instability: ",stability,"%") - lastwarning = world.timeofday - else if(damage >= damage_archived) // The damage is still going up - alert_msg = addtext(warning_alert," Instability: ",stability,"%") - lastwarning = world.timeofday - 150 - else // Phew, we're safe - alert_msg = safe_alert - lastwarning = world.timeofday - - if(!istype(src, /obj/machinery/power/supermatter/shard) && !istype(L, /turf/space) && alert_msg) - radio.autosay(alert_msg, "Supermatter Monitor") - - if(damage > explosion_point) - for(var/mob/living/mob in living_mob_list) - if(loc.z == mob.loc.z) - if(istype(mob, /mob/living/carbon/human)) - //Hilariously enough, running into a closet should make you get hit the hardest. - var/mob/living/carbon/human/H = mob - H.hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) ) - var/rads = DETONATION_RADS * sqrt( 1 / (get_dist(mob, src) + 1) ) - mob.apply_effect(rads, IRRADIATE) - + if(damage > explosion_point) + if(!exploded) + if(!istype(L, /turf/space)) + announce_warning() explode() + else if(damage > warning_point) // while the core is still damaged and it's still worth noting its status + shift_light(5, warning_color) + if(damage > emergency_point) + shift_light(7, emergency_color) + if(!istype(L, /turf/space) && (world.timeofday - lastwarning) >= WARNING_DELAY * 10) + announce_warning() else shift_light(4,initial(l_color)) if(grav_pulling) @@ -365,4 +379,7 @@ pull_radius = 5 pull_time = 45 - explosion_power = 3 \ No newline at end of file + explosion_power = 3 + +/obj/machinery/power/supermatter/shard/announce_warning() //Shards don't get announcements + return From 1500dbd505ab8130626749667f9a2128d8a880ee Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 30 Nov 2014 10:52:35 +1030 Subject: [PATCH 08/56] Fixes #7128 --- code/modules/clothing/spacesuits/rig/rig.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index fa730c7cb4e..ca2eea9bc6a 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -155,13 +155,13 @@ /obj/item/weapon/rig/proc/suit_is_deployed() if(!istype(wearer) || src.loc != wearer || wearer.back != src) return 0 - if(helm_type && (!helmet || wearer.head != helmet)) + if(helm_type && !(helmet && wearer.head == helmet)) return 0 - if(glove_type && (!gloves || wearer.gloves != gloves)) + if(glove_type && !(gloves && wearer.gloves == gloves)) return 0 - if(boot_type && (!boots || wearer.shoes != boots)) + if(boot_type && !(boots && wearer.shoes == boots)) return 0 - if(chest_type && (!chest || wearer.wear_suit != chest)) + if(chest_type && !(chest && wearer.wear_suit == chest)) return 0 return 1 From c7973e0ab2f7f91171c970769a97a3b21a0904e8 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 30 Nov 2014 11:12:15 +1030 Subject: [PATCH 09/56] Made suit boots children of magboots. --- code/modules/clothing/spacesuits/rig/rig.dm | 4 ++-- code/modules/clothing/spacesuits/rig/rig_pieces.dm | 2 +- code/modules/clothing/spacesuits/rig/suits/light.dm | 4 ++-- nano/templates/hardsuit.tmpl | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index ca2eea9bc6a..b1f22a6e46d 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -32,14 +32,14 @@ var/list/initial_modules var/chest_type = /obj/item/clothing/suit/space/rig var/helm_type = /obj/item/clothing/head/helmet/space/rig - var/boot_type = /obj/item/clothing/shoes/rig + var/boot_type = /obj/item/clothing/shoes/magboots/rig var/glove_type = /obj/item/clothing/gloves/rig var/cell_type = /obj/item/weapon/cell/high var/air_type = /obj/item/weapon/tank/oxygen //Component/device holders. var/obj/item/weapon/tank/air_supply // Air tank, if any. - var/obj/item/clothing/shoes/rig/boots = null // Deployable boots, if any. + var/obj/item/clothing/shoes/boots = null // Deployable boots, if any. var/obj/item/clothing/suit/space/rig/chest // Deployable chestpiece, if any. var/obj/item/clothing/head/helmet/space/rig/helmet = null // Deployable helmet, if any. var/obj/item/clothing/gloves/rig/gloves = null // Deployable gauntlets, if any. diff --git a/code/modules/clothing/spacesuits/rig/rig_pieces.dm b/code/modules/clothing/spacesuits/rig/rig_pieces.dm index 0251a625eb8..8e7285a6287 100644 --- a/code/modules/clothing/spacesuits/rig/rig_pieces.dm +++ b/code/modules/clothing/spacesuits/rig/rig_pieces.dm @@ -21,7 +21,7 @@ species_restricted = null gender = PLURAL -/obj/item/clothing/shoes/rig +/obj/item/clothing/shoes/magboots/rig name = "boots" cold_protection = FEET heat_protection = FEET diff --git a/code/modules/clothing/spacesuits/rig/suits/light.dm b/code/modules/clothing/spacesuits/rig/suits/light.dm index b94d1701e17..6f510942d92 100644 --- a/code/modules/clothing/spacesuits/rig/suits/light.dm +++ b/code/modules/clothing/spacesuits/rig/suits/light.dm @@ -13,7 +13,7 @@ chest_type = /obj/item/clothing/suit/space/rig/light helm_type = /obj/item/clothing/head/helmet/space/rig/light - boot_type = /obj/item/clothing/shoes/rig/light + boot_type = /obj/item/clothing/shoes/magboots/rig/light glove_type = /obj/item/clothing/gloves/rig/light /obj/item/clothing/suit/space/rig/light @@ -22,7 +22,7 @@ /obj/item/clothing/gloves/rig/light name = "gloves" -/obj/item/clothing/shoes/rig/light +/obj/item/clothing/shoes/magboots/rig/light name = "shoes" /obj/item/clothing/head/helmet/space/rig/light diff --git a/nano/templates/hardsuit.tmpl b/nano/templates/hardsuit.tmpl index ad0dece2dcd..426f40db54a 100644 --- a/nano/templates/hardsuit.tmpl +++ b/nano/templates/hardsuit.tmpl @@ -56,7 +56,7 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm Cover status: - + {{if data.emagged || !data.securitycheck}} ERROR {{else}} From 4c1ea8cd3a7f0cb7f6a9686e6fdf6b0e4996f0e0 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 30 Nov 2014 12:46:03 +1030 Subject: [PATCH 10/56] Several hardsuit fixes. --- code/game/objects/items.dm | 10 ++++++++-- .../clothing/spacesuits/rig/modules/ninja.dm | 10 +++++++++- code/modules/clothing/spacesuits/rig/rig.dm | 2 +- code/modules/projectiles/guns/energy/laser.dm | 18 ++++++++++------- .../projectiles/guns/energy/nuclear.dm | 20 +++++++++++-------- 5 files changed, 41 insertions(+), 19 deletions(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 30cc42e6cf3..7def0ddae2d 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -262,7 +262,8 @@ if(H.wear_mask) return 0 if(H.head && !(H.head.canremove) && (H.head.flags & HEADCOVERSMOUTH)) - H << "\red \The [H.head] is in the way." + if(!disable_warning) + H << "\red \The [H.head] is in the way." return 0 if( !(slot_flags & SLOT_MASK) ) return 0 @@ -305,7 +306,8 @@ if(H.glasses) return 0 if(H.head && !(H.head.canremove) && (H.head.flags & HEADCOVERSEYES)) - H << "\red \The [H.head] is in the way." + if(!disable_warning) + H << "\red \The [H.head] is in the way." return 0 if( !(slot_flags & SLOT_EYES) ) return 0 @@ -339,6 +341,10 @@ if(slot_w_uniform) if(H.w_uniform) return 0 + if(H.wear_suit) + if(!disable_warning) + H << "\red \The [H.wear_suit] is in the way." + return 0 if( !(slot_flags & SLOT_ICLOTHING) ) return 0 return 1 diff --git a/code/modules/clothing/spacesuits/rig/modules/ninja.dm b/code/modules/clothing/spacesuits/rig/modules/ninja.dm index 50865ca8dfe..63231dcd958 100644 --- a/code/modules/clothing/spacesuits/rig/modules/ninja.dm +++ b/code/modules/clothing/spacesuits/rig/modules/ninja.dm @@ -173,6 +173,14 @@ /obj/item/rig_module/self_destruct/engage() explosion(get_turf(src), 0, 0, 3, 4) + if(holder && holder.wearer) + holder.wearer.drop_from_inventory(src) + del(holder) + del(src) /obj/item/rig_module/self_destruct/small/engage() - explosion(get_turf(src), 0, 0, 1, 2) \ No newline at end of file + explosion(get_turf(src), 0, 0, 1, 2) + if(holder && holder.wearer) + holder.wearer.drop_from_inventory(src) + del(holder) + del(src) \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index b1f22a6e46d..1d85f749d9f 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -437,7 +437,7 @@ ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) - ui = new(user, src, ui_key, ((src.loc != user) ? ai_interface_path : interface_path), interface_title, 800, 600) + ui = new(user, src, ui_key, ((src.loc != user) ? ai_interface_path : interface_path), interface_title, 750, 550) ui.set_initial_data(data) ui.open() ui.set_auto_update(1) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 9ddfa5c9ff0..9493dc0e148 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -80,13 +80,17 @@ obj/item/weapon/gun/energy/laser/retro /obj/item/weapon/gun/energy/lasercannon/mounted/load_into_chamber() if(in_chamber) return 1 - var/mob/living/carbon/human/H = loc - if(istype(H) && H.back) - var/obj/item/weapon/rig/suit = H.back - if(istype(suit) && suit.cell && suit.cell.charge >= 250) - suit.cell.use(250) - in_chamber = new /obj/item/projectile/beam/heavylaser(src) - return 1 + var/obj/item/rig_module/module = loc + if(!istype(module)) + return 0 + if(module.holder && module.holder.wearer) + var/mob/living/carbon/human/H = module.holder.wearer + if(istype(H) && H.back) + var/obj/item/weapon/rig/suit = H.back + if(istype(suit) && suit.cell && suit.cell.charge >= 250) + suit.cell.use(250) + in_chamber = new /obj/item/projectile/beam/heavylaser(src) + return 1 return 0 /obj/item/weapon/gun/energy/lasercannon/cyborg/load_into_chamber() diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index 9b1203c6494..61c65165abf 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -38,14 +38,18 @@ /obj/item/weapon/gun/energy/gun/mounted/load_into_chamber() if(in_chamber) return 1 - var/mob/living/carbon/human/H = loc - if(istype(H) && H.back) - var/obj/item/weapon/rig/suit = H.back - if(istype(suit) && suit.cell && suit.cell.charge >= 250) - suit.cell.use(250) - var/prog_path = text2path(projectile_type) - in_chamber = new prog_path(src) - return 1 + var/obj/item/rig_module/module = loc + if(!istype(module)) + return 0 + if(module.holder && module.holder.wearer) + var/mob/living/carbon/human/H = module.holder.wearer + if(istype(H) && H.back) + var/obj/item/weapon/rig/suit = H.back + if(istype(suit) && suit.cell && suit.cell.charge >= 250) + suit.cell.use(250) + var/prog_path = text2path(projectile_type) + in_chamber = new prog_path(src) + return 1 return 0 /obj/item/weapon/gun/energy/gun/nuclear From c6673bea70e577fe5d031af6d74633a405a9b3eb Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Sun, 30 Nov 2014 11:45:02 +0100 Subject: [PATCH 11/56] Minor Map Stuff Moves the atmospherics powernet sensor into the small maintenance room. Looked a bit odd on-top of the floor. Adds some lights to the new maintenance arm between xeno/viro. Shuffle some maintenance lights around. Sorts out a dimly lit room on the research outpost. --- maps/exodus-1.dmm | 101 ++++++++++++++++++++++------------------------ maps/exodus-5.dmm | 8 ++-- 2 files changed, 53 insertions(+), 56 deletions(-) diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index 5ee52569bdb..2a9a82e85b8 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -982,7 +982,7 @@ "asT" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/dormitory) "asU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/dormitory) "asV" = (/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},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/dormitory) -"asW" = (/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},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/dormitory) +"asW" = (/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},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/dormitory) "asX" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/plating,/area/maintenance/dormitory) "asY" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/maintenance/dormitory) "asZ" = (/turf/simulated/wall/r_wall,/area/maintenance/dormitory) @@ -5131,7 +5131,7 @@ "bUI" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/engineering) "bUJ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plating,/area/maintenance/engineering) "bUK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/engineering) -"bUL" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/engineering) +"bUL" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/engineering) "bUM" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plating,/area/maintenance/engineering) "bUN" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor{icon_state = "red"; dir = 9},/area/medical/sleeper) "bUO" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/medical/sleeper) @@ -5361,7 +5361,7 @@ "bZe" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"},/area/engine/engineering_supply) "bZf" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light,/obj/machinery/camera{c_tag = "Engineering Supplies"; dir = 1; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"},/area/engine/engineering_supply) "bZg" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/engine/engineering_supply) -"bZh" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/engineering) +"bZh" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/engineering) "bZi" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Medbay Diagnostics Maintenance Access"; req_access_txt = "5"},/turf/simulated/floor/plating,/area/medical/sleeper) "bZj" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor,/area/medical/sleeper) "bZk" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/medical/sleeper) @@ -5642,7 +5642,7 @@ "cez" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/sleep/engi_wash) "ceA" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = 28; pixel_y = 5},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/sleep/engi_wash) "ceB" = (/obj/machinery/door/airlock/medical{autoclose = 0; icon_state = "door_open"; id_tag = "engineering_cubicle"; name = "Restroom"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/sleep/engi_wash) -"ceC" = (/obj/machinery/light/small{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/engineering) +"ceC" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless,/area/space) "ceD" = (/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/medical/surgeryobs) "ceE" = (/obj/structure/stool/bed/chair,/turf/simulated/floor,/area/medical/surgeryobs) "ceF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "bluecorner"},/area/medical/surgeryobs) @@ -6082,7 +6082,7 @@ "cmX" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/hallway/secondary/entry/port) "cmY" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/substation/engineering) "cmZ" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "10;24"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/substation/engineering) -"cna" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/engineering) +"cna" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless,/area/space) "cnb" = (/obj/structure/table,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/stack/medical/advanced/bruise_pack,/obj/item/weapon/retractor,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "cnc" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "cnd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) @@ -6244,7 +6244,7 @@ "cqd" = (/obj/structure/disposalpipe/segment,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor,/area/engine/hallway) "cqe" = (/obj/structure/extinguisher_cabinet{pixel_x = 25},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/workshop) "cqf" = (/obj/machinery/shield_capacitor,/turf/simulated/floor/plating,/area/engine/storage_hard) -"cqg" = (/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/maintenance/engineering) +"cqg" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless,/area/space) "cqh" = (/obj/structure/closet/crate/freezer,/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgery) "cqi" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgery) "cqj" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgery) @@ -6286,7 +6286,7 @@ "cqT" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/security/prison) "cqU" = (/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/turf/simulated/floor,/area/atmos) "cqV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/research_port) -"cqW" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/airless,/area/rnd/xenobiology) +"cqW" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/disposaloutlet,/turf/simulated/floor/plating/airless,/area/space) "cqX" = (/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/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/engine/drone_fabrication) "cqY" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/turf/simulated/floor,/area/atmos) "cqZ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/drone_fabrication) @@ -6334,13 +6334,13 @@ "crP" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space) "crQ" = (/obj/structure/cable/yellow,/turf/simulated/floor/airless/catwalk{icon_state = "catwalk3"},/area/solar/starboard) "crR" = (/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/simulated/floor,/area/atmos) -"crS" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless,/area/rnd/xenobiology) -"crT" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless,/area/rnd/xenobiology) -"crU" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless,/area/rnd/xenobiology) +"crS" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/power/sensor{name = "Powernet Sensor - Atmospherics Subgrid"; name_tag = "Atmospherics Subgrid"},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/structure/cable/cyan,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/atmos) +"crT" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 5},/turf/simulated/floor/plating/airless,/area/space) +"crU" = (/obj/structure/disposalpipe/junction,/turf/simulated/floor/plating/airless,/area/space) "crV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engine/drone_fabrication) "crW" = (/obj/machinery/atmospherics/pipe/manifold/visible/purple{dir = 8},/turf/simulated/floor,/area/atmos) "crX" = (/obj/machinery/atmospherics/pipe/manifold/visible/purple{dir = 1},/turf/simulated/floor,/area/atmos) -"crY" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/disposaloutlet,/turf/simulated/floor/plating/airless,/area/rnd/xenobiology) +"crY" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/research_port) "crZ" = (/obj/machinery/atmospherics/pipe/manifold/visible/purple,/turf/simulated/floor,/area/atmos) "csa" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engine/drone_fabrication) "csb" = (/turf/space,/area/syndicate_station/maint_dock) @@ -6734,7 +6734,7 @@ "czz" = (/obj/machinery/door/airlock/maintenance{name = "Atmospherics Maintenance Access"; req_access_txt = "12;24"},/obj/structure/disposalpipe/segment,/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/atmos) "czA" = (/obj/machinery/atmospherics/pipe/simple/visible/purple,/turf/simulated/floor{dir = 10; icon_state = "yellow"},/area/atmos) "czB" = (/obj/machinery/space_heater,/turf/simulated/floor,/area/atmos) -"czC" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/airless,/area/medical/virology) +"czC" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/maintenance/engineering) "czD" = (/obj/structure/table,/obj/item/device/multitool{pixel_x = 5},/obj/item/device/t_scanner,/turf/simulated/floor,/area/engine/workshop) "czE" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/weapon/storage/toolbox/electrical,/turf/simulated/floor,/area/engine/workshop) "czF" = (/obj/structure/table,/obj/machinery/light,/obj/item/weapon/wrench,/obj/item/device/flashlight,/obj/machinery/cell_charger,/turf/simulated/floor,/area/engine/workshop) @@ -6776,8 +6776,8 @@ "cAp" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cAq" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/rnd/xenobiology) "cAr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/rnd/xenobiology) -"cAs" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 5},/turf/simulated/floor/plating/airless,/area/medical/virology) -"cAt" = (/turf/simulated/floor/plating/airless,/area/medical/virology) +"cAs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/engineering) +"cAt" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/research_port) "cAu" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engine/drone_fabrication) "cAv" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/atmos) "cAw" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/visible/purple,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/atmos) @@ -6790,7 +6790,7 @@ "cAD" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/atmos) "cAE" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/atmos) "cAF" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/atmos) -"cAG" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 8},/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/atmos) +"cAG" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/simulated/floor,/area/atmos) "cAH" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/plating,/area/atmos) "cAI" = (/turf/simulated/wall/r_wall,/area/engine/hallway) "cAJ" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hallway"; req_one_access_txt = "10;24"},/turf/simulated/floor,/area/engine/hallway) @@ -6835,13 +6835,13 @@ "cBw" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/research_port) "cBx" = (/obj/machinery/atmospherics/pipe/simple/visible/purple,/obj/structure/lattice,/turf/space,/area/space) "cBy" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; external_pressure_bound = 140; external_pressure_bound_default = 140; icon_state = "map_vent_out"; pressure_checks = 0; pressure_checks_default = 0},/turf/simulated/floor/plating,/area/atmos) -"cBz" = (/obj/structure/disposalpipe/junction,/turf/simulated/floor/plating/airless,/area/rnd/xenobiology) +"cBz" = (/obj/machinery/power/apc/super{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/atmos) "cBA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/maintenance/research_port) "cBB" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/atmos) "cBC" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/atmos) "cBD" = (/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/atmos) "cBE" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/atmos) -"cBF" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless,/area/medical/virology) +"cBF" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/engineering) "cBG" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/atmos) "cBH" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "10;24"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/engine/engine_hallway) "cBI" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/engine/engine_hallway) @@ -6873,7 +6873,7 @@ "cCi" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cCj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/virology) "cCk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/status_display,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/virology) -"cCl" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless,/area/medical/virology) +"cCl" = (/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = 3},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/substation/engineering) "cCm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/virology) "cCn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/status_display,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/visible/purple,/turf/simulated/floor/plating,/area/medical/virology) "cCo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/virology) @@ -7202,10 +7202,10 @@ "cIz" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/atmos) "cIA" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/obj/machinery/meter,/turf/simulated/floor,/area/atmos) "cIB" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/turf/simulated/floor,/area/atmos) -"cIC" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Engineering Firelock"},/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/simulated/floor,/area/atmos) +"cIC" = (/obj/machinery/power/terminal,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/substation/engineering) "cID" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/turf/simulated/floor,/area/atmos) "cIE" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold4w/hidden/yellow,/turf/simulated/wall/r_wall,/area/atmos) -"cIF" = (/obj/machinery/power/apc/super{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/obj/machinery/power/sensor{name = "Powernet Sensor - Atmospherics Subgrid"; name_tag = "Atmospherics Subgrid"},/turf/simulated/floor,/area/atmos) +"cIF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/visible/green{dir = 8},/turf/simulated/floor/plating,/area/atmos) "cIG" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/plating,/area/maintenance/substation/engineering) "cIH" = (/obj/machinery/power/smes/buildable{charge = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/substation/engineering) "cII" = (/turf/simulated/floor/plating,/area/maintenance/substation/engineering) @@ -7296,14 +7296,14 @@ "cKp" = (/obj/item/weapon/wrench,/turf/space,/area/space) "cKq" = (/turf/space,/area/vox_station/southwest_solars) "cKr" = (/obj/machinery/power/solar{id = "auxsolarnorth"; name = "Fore Solar Array"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/fore) -"cKs" = (/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = 3},/turf/simulated/floor/plating,/area/maintenance/substation/engineering) -"cKt" = (/obj/machinery/power/terminal,/turf/simulated/floor/plating,/area/maintenance/substation/engineering) +"cKs" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/green{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/simulated/floor/plating,/area/atmos) +"cKt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/manifold/visible/green{dir = 8},/turf/simulated/floor/plating,/area/atmos) "cKu" = (/obj/machinery/computer/general_air_control{frequency = 1443; level = 3; name = "Distribution and Waste Monitor"; sensors = list("mair_in_meter" = "Mixed Air In", "air_sensor" = "Mixed Air Supply Tank", "mair_out_meter" = "Mixed Air Out", "dloop_atm_meter" = "Distribution Loop", "wloop_atm_meter" = "Waste Loop")},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/engine/atmos_monitoring) "cKv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/purple,/turf/simulated/floor/plating,/area/atmos) -"cKw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/visible/yellow{dir = 8},/turf/simulated/floor/plating,/area/atmos) -"cKx" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/atmos) -"cKy" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/manifold/visible/yellow{dir = 8},/turf/simulated/floor/plating,/area/atmos) -"cKz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 10},/turf/simulated/floor/plating,/area/atmos) +"cKw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/visible/green{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/simulated/floor/plating,/area/atmos) +"cKx" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "nukemaint_sensor"; pixel_x = 0; pixel_y = 24},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/research_port) +"cKy" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/research_port) +"cKz" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "nukemaint_airlock"; name = "interior access button"; pixel_x = -26; pixel_y = 0; req_access_txt = "10;13"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/research_port) "cKA" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/space,/area/space) "cKB" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible/purple,/turf/space,/area/space) "cKC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/research_port) @@ -7312,15 +7312,12 @@ "cKF" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/research_port) "cKG" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/research_port) "cKH" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/research_port) -"cKI" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "nukemaint_sensor"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plating,/area/maintenance/research_port) "cKJ" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "nukemaint_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/research_port) "cKK" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "nukemaint_airlock"; pixel_x = 0; pixel_y = 25; req_access_txt = "13"; tag_airpump = "nukemaint_pump"; tag_chamber_sensor = "nukemaint_sensor"; tag_exterior_door = "nukemaint_outer"; tag_interior_door = "nukemaint_inner"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "nukemaint_pump"},/turf/simulated/floor/plating,/area/maintenance/research_port) "cKL" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "9;12;47"},/turf/simulated/floor/plating,/area/maintenance/research_port) -"cKM" = (/obj/machinery/atmospherics/pipe/manifold/visible,/turf/simulated/floor/plating,/area/maintenance/research_port) "cKN" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor/plating,/area/maintenance/research_port) "cKO" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/camera{c_tag = "South Maintenance Airlock"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/research_port) "cKP" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating,/area/maintenance/research_port) -"cKQ" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "nukemaint_airlock"; name = "interior access button"; pixel_x = -26; pixel_y = 0; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/maintenance/research_port) "cKR" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/turf/simulated/floor/plating,/area/maintenance/research_port) "cKS" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plating,/area/maintenance/research_port) "cKT" = (/obj/machinery/constructable_frame/machine_frame,/turf/simulated/floor/plating,/area/engine/engine_room) @@ -7484,50 +7481,50 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLVbNgbNgbNgbOQbORbKAbOSbOTbOUbKAbKAbOVbOWbGvbGvbGvbGvbGvbGvbOXbOYbOZbPaaaabPbbPcbPcbPdbPebPfbPgbPhbPfbPibNFbPjbPkbPlbNFbPmbPnbPobPpbPqbPrbPsbPtbPtbNSbPubPvbPwbPxbPybDtbMsbPzbGFbGFbPAbPBbDzbPCbxCbPDbPEbPFbPGbwkbPHbPIbwkbPJbPKbPLbPMbPNbMKbCpbCpbCpbCpbCpbCpbCpbCpbPObMObPPbPQbPRbOsbOsbOsbOsbPSbMObPTbLEbPUbPUbzAbBhbPVbPWbPXbPYbPYbPYbPYbPZbQabQabQbbQcbQdbMVbQebQfbQgbOObQhbQibQjbQkaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbQlbQmbQmbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbNhbNhbNhbKxbQnbQobQpbQqbQrbKAbKAbQsbQtbQubQvbQvbQvbQvbQvbQvbQwbQxbQyaaabQzbQAbQBbQCbQDbPfbQEbQFbQGbQHbNFbQIbQJbQKbNFbQLbQMbQNbQObQPbQQbQRbPtbQSbPxbQTbNUbPxbPxbQUbDtbKZbQVbLabLbbGFbQWbQXbLebQYbQZbRabRbbRcbRdbDEbIkbRebPJbPLbPLbPMbRfbMKbRgbRhbRibRjbRkbRlbRmbRnbPObMObOsbOsbRobOsbOsbOsbOsbRpbMObRqbLEbRrbRrbzAbRsbRtbRubRvbRwbRxbRybRybRzbRAbRybRybRybRBbRCbRDbREbRFbRGbRHbRIbRJbRKaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaabLVbRMbRNbRObLVbRPbMabMbbGtbGtbRQbRQbRQbGtbGtbNxbRRbRRbRSbRSbRSbRSbNwbQyaaabRTbRUbRVbRWbRXbRYbRZbSabSbbSbbScbSdbSebSfbNFbPtbPtbPtbPtbPtbSgbPtbPtbShbSibSjbNUbPxbSkbSlbDtbJxbQVbGFbSmbSnbQWbSobJAbSpbSqbSrbSsbStbSubFsbSvbSwbSxbSybSzbSAbSBbMKbSCbSDbSEbRjbSFbSGbSHbRnbPObMObMObMObRobOsbOsbOsbMObMObMObSIbSJbRrbRrbzAbSKbSLbCvbzIbSMbSNbSObSPbSQbSRbSSbQabSTbSUbMVbSVbQfbSWbOObSXbSYbSZbTaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbLTbLTbLTbLTbLTbLTbTbbLTbTcbLTbLTbLTbLTbLTbKtbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTdbKwbTebKwbTfbTgaafaaaaaabGtbThbTibTjbGtaaabNxbTkbTlbTmbTnbTnbTnbTobQyaaabQzbTpbTqbTrbTsbPfbTtbTubTvbTwbNFbTxbTybTzbTAbTBbTBbTBbTCbTCbTDbTEbPxbPxbPxbTFbNUbNUbNUbNUbDtbDtbTGbTHbTIbDtbTJbTKbTLbTMbTNbTJbTObTPbTQbTRbTSbTJbMKbMKbMKbMKbMKbMKbTTbTUbTVbRjbTWbTXbTYbRnbPObMObTZbUabUbbUcbUdbUebUfbTZbUgbUhbUibIIbIJbzAbIKbSLbUjbwwbMVbMVbMVbMVbMVbUkbMVbUlbQabUmbMVbUnbUobUnbOObUpbUqbUrbOOaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbUsbUsbUsbUsbUsbUsbUtbLTbUubUsbTcbLTbLTbLTbLTbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbUvbNxbNxbNxbNxbRSbUwbNwbUxaaabUybPcbPcbUzbUAbPfbPfbUBbPfbUCbNFbUDbUEbUFbNFbUGbUGbUGbUGbUGbUGbUGbUGbUHbUIbUJbUKbULbUMbNUbDtbUNbUObUPbUQbURbUSbUTbUUbUVbUWbUXbUTbUYbUZbVabVbbVcbVdbVebVfbVgbVhbVibVjbVkbVjbRjbVlbVmbVlbRnbPObMObVnbVobVpbVqbVrbVsbVtbVubUgbzAbVvbzAbzAbVwbCxbSLbCxbVxaafbVybVzbVAbVBbVCbVBbVDbVEbVFbMVbVGbVHbVIbOObVJbVKbVKbVLaaLaaLaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVMbLRbLRbLRbLRbLRbLRbLRbVNbLUbLTbLTbLTbLTbVObLUbKuaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTdbKwbTebKwbTfbTgaafaaaaaabGtbThbTibTjbGtaaabNxbTkbTlbTmbTnbTnbTnbTobQyaaabQzbTpbTqbTrbTsbPfbTtbTubTvbTwbNFbTxbTybTzbTAbTBbTBbTBbTCbTCbTDbTEbZhbPxbPxbTFbNUbNUbNUbNUbDtbDtbTGbTHbTIbDtbTJbTKbTLbTMbTNbTJbTObTPbTQbTRbTSbTJbMKbMKbMKbMKbMKbMKbTTbTUbTVbRjbTWbTXbTYbRnbPObMObTZbUabUbbUcbUdbUebUfbTZbUgbUhbUibIIbIJbzAbIKbSLbUjbwwbMVbMVbMVbMVbMVbUkbMVbUlbQabUmbMVbUnbUobUnbOObUpbUqbUrbOOaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbUsbUsbUsbUsbUsbUsbUtbLTbUubUsbTcbLTbLTbLTbLTbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbUvbNxbNxbNxbNxbRSbUwbNwbUxaaabUybPcbPcbUzbUAbPfbPfbUBbPfbUCbNFbUDbUEbUFbNFbUGbUGbUGbUGbUGbUGbUGbUGbUHbUIbUJbUKbUKbUMbNUbDtbUNbUObUPbUQbURbUSbUTbUUbUVbUWbUXbUTbUYbUZbVabVbbVcbVdbVebVfbVgbVhbVibVjbVkbVjbRjbVlbVmbVlbRnbPObMObVnbVobVpbVqbVrbVsbVtbVubUgbzAbVvbzAbzAbVwbCxbSLbCxbVxaafbVybVzbVAbVBbVCbVBbVDbVEbVFbMVbVGbVHbVIbOObVJbVKbVKbVLaaLaaLaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVMbLRbLRbLRbLRbLRbLRbLRbVNbLUbLTbLTbLTbLTbVObLUbKuaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVPbVQbVQbVRbVSbNxbVTbRSbVUbNxaaaaaaaaaaaabNybVVbVWbVXbVYbVZbPfbNFbWabWbbNIbNFbUGbWcbWdbWebWfbWgbWhbUGbWibWibWibWibWibTFbWjbWkbWlbWmbWnbWobWpbWqbWrbWsbWtbWubWtbWvbWtbWwbWxbWybWzbWAbWBbWAbWCbWDbWEbWFbWGbWHbWIbWJbWKbWLbWMbWNbWObWPbWQbWRbWSbWTbWUbWSbWSbWVbWWbWXbWYbWZbCxbCxbSLbCxbFTaafbVybXabXbbXcbXdbXebXfbXgbXhbMVbXibVHbXjbOObOObOObOObOOaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbQmbQmbQmbQmbQmbQmbXkbLTbQlbQmbXlbLTbLTbLTbLTbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXmbXnbXobXpbRSbXqbXrbRSbXsbNxaaKaaaaaaaaabNybNybNybNybNybNybNFbNFbUDbUEbXtbNFbNFbXubXvbXwbXwbXvbXxbUGbXybXzbXzbXAbWibXBbDtbDtbXCbXDbXEbXFbXGbXHbXIbXJbXKbXLbXMbXNbXObXPbXQbXRbXSbXTbXUbXVbXUbXWbXXbXYbXZbYabYbbYcbYdbYebYfbYgbIwbYhbYhbYibYjbYkbYlbYmbYnbYobYpbYqbYrbYsbYtbYrbYubYvbILaafbVybXabYwbVBbYxbVBbYybYzbYAbMVbXjbVHbYBbYCbUnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbLTbLTbLTbLTbLTbLTbTbbLTbXlbLTbLTbLTbLTbLTbKtbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYDbVQbVQbVRbYEbYFbYGbNxbYHbNxbYIbYJbYKbYIbYIbYLbYMbYNbYObYPbYQbYRbYSbYTbYUbYVbYWbXvbYXbYYbYZbZabZbbZcbZdbZebZfbZgbWibZhbNSbZibZjbZkbZlbZlbZmbZnbZobZpbTJbTJbZqbZrbTJbTJbZsbZtbZubVibZvbZwbZxbZybZzbZybZAbZBbZCbZBbZAbZDbYfbMNbIwbZEbZFbZGbZHbZIbZJbZKbMObMObwwbwwbwwbwwbwwbZLbZMbZNbwwbMVbMVbMVbMVbMVbUkbMVbMVbMVbMVbMVbZObZPbZQbZRbUnaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYDbVQbVQbVRbYEbYFbYGbNxbYHbNxbYIbYJbYKbYIbYIbYLbYMbYNbYObYPbYQbYRbYSbYTbYUbYVbYWbXvbYXbYYbYZbZabZbbZcbZdbZebZfbZgbWibULbNSbZibZjbZkbZlbZlbZmbZnbZobZpbTJbTJbZqbZrbTJbTJbZsbZtbZubVibZvbZwbZxbZybZzbZybZAbZBbZCbZBbZAbZDbYfbMNbIwbZEbZFbZGbZHbZIbZJbZKbMObMObwwbwwbwwbwwbwwbZLbZMbZNbwwbMVbMVbMVbMVbMVbUkbMVbMVbMVbMVbMVbZObZPbZQbZRbUnaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaambZSaamaamaamaamaamaaaaaaaaaaaaaaaaaaaafaafaaabZTbZUbZUbZUbZVbZUbZUbZWbZXbYIbZYbZZbYIcaacabcaccadcaecafcagcahcaicajcakcalcambXvbYXcancaobZacapbUGcaqcaqcaqcaqcaqcarbNSbDtcascatcaucavcawcaxcaycazbTJcaAcaBcaCcaDcaEcaFcaGcaHcaIbZxbZwcaJbZycaKcaLbZAcaMcaNcaObZAcaPbYfbPObIwbIwcaQcaQcaQcaQcaQcaQbIwcaRcaScaTcaUcaVbwwbwwcaWbwwbwwcaXcaYcaZcbabXjcbbbXjbXjcbccbdcbecbfcbgcbhbUnbUnbUnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbUubUsbUsbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcbicbjcbkcblcbmcbncbocbpcbqbYIcbrcbsbYIbYIcbtcbucbvcbwcbxcbycbzbYSbYTbYUcbAcbBbXvbXvcbCcbDbXvcbEbUGcbFcbGcaqcbHcaqbTFcbIcbIcbIcbIcbIcbIcbIbTJcbJcbKbTJcbLcbMcbNcbOcaEcbPcbQcbRcaIbZxbZwbZxbZycbScbTbZAcbUcbVcbWbZAcbXcbYcbZccaccbcccccdcceccfccgcchcciccjcckcclccmccjccnccoccpccqccrccscctcctcctcctccucctcctcctcctcctccvccwccxccycczbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaaaaaabOPbKtbNdbKtbKtbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafccAccAcbkccBccCcbnccDccEccFbYIccGccHccIccJccKccLccMccNccOccPccQccRbTyccSccTccUccVccWccXccYccZcdacdbcdccddcdecdfcaqbTFcbIcdgcdhcdicdjcdkcdlcdmcdncdocdpcdqcdrcdscdtcaEcducdvcdwcaIbZxbZwbZxbZycdxcdybZAcdzcdAcdBbZAcdCbYfbYfcdDcdEcdFcdGcdHcdHcdIcdJcdKcdLcdLcdMcdNcdLcdOcdPcdQcdRcdOcdScdTcdUcdVcdScdScdScdScdWcdUcdVcdScdSbXjcdXcdYcdZceacebceccedceeceeceeceeceeceeceeceeceeceeceeceeceeceeceeceecefcegcegcehbKtbKtbLTbLTceibLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacejcejcejcejcejcejcejcekcelcemcemcemcemcemcenceocepcepcepceqcerbYSbYTbYUcesbYWcetceucevcewcexceybUGcezceAcaqceBcaqceCcbIceDceEceEceEceFceGbTJceHceIbTJcbLcbNceJcbOcaEceKceLceMcaIbZxbZwceNbZyceOcePbZAbZAbZAbZAbZAceQceRbYfcdDceSceTceUceTceVceWceXceYcdLceZcfacfbcfccdOcfdcfecffcdOcfgcfhcfhcfhcficfjcfkcflcfmcfncfocfpcdScfqcfrcfsbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaafaafcftcfucfvbNebKsbKtbKtbLTbLUbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacejcejcejcejcejcejcejcekcelcemcemcemcemcemcenceocepcepcepceqcerbYSbYTbYUcesbYWcetceucevcewcexceybUGcezceAcaqceBcaqbTFcbIceDceEceEceEceFceGbTJceHceIbTJcbLcbNceJcbOcaEceKceLceMcaIbZxbZwceNbZyceOcePbZAbZAbZAbZAbZAceQceRbYfcdDceSceTceUceTceVceWceXceYcdLceZcfacfbcfccdOcfdcfecffcdOcfgcfhcfhcfhcficfjcfkcflcfmcfncfocfpcdScfqcfrcfsbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaafaafcftcfucfvbNebKsbKtbKtbLTbLUbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcejcfwcfxcfycfzcfAcejcfBcfCcfDcfEcfFcfGcfHcfHcamcfIcfIcfJcfKcbzbYSbYTbYUcfLcamcfMcfNcfOcfPcfQcfRbUGcfScfTcaqcfUcaqbTFcbIcfVcfWcfWcfWcfXcbIcfYcfZcgacfYcgbcgccgdcgecaEcgfceLcggcaIcghcgicgjbZycgkcglbZycgmbLvbVicgncgocgpcgqcgrcgscgtcdGcguceVcgvcgwcdDcdLcgxcgycgycgzcgAcgBcgCcgBcgDcgEcgFcgGcgGcgHcgIcgIcgJcgKcgLcgLcgMcdScgNcgOcgPcgNaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcgQbKqbKqbKrbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafcgRcgRcgRcgRcgRcgRcgRcgRcgRcgRcgRcgRcgRaaaaaacgScgTcgTcgTcgUcgVcejcgWcgXcgYcgZchachbchcchdchechfchgchhchichjchkchlchmchnbNFbUGbUGbUGbUGbUGbUGbUGcaqcaqcaqcaqcaqbTFcbIcbIchochpchqcbIcbIchrchschtcfYcaEcaEcaEcaEcaEcaIchuchvcaIchwchxchwbZychychzbZychAchBbVichCbVichDbYfcdDbYfchEchFchGcdHchHcgwcdDcdLchIchJchJchKchLchMchNchOchPchQchRchSchTchUchVchWcgIcgIcgIchXchYcdSchZciacibcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgRciccidciccgRciecifciecgRcigcihcigcgRaaaaaaciicgTcgTcgUcgUcijcejcikcilcemcimcinciocipciqcirbQJbQJcisbQJcbzbYScitbYUciucivciwcixciycixcizciAciBciCciDciEciFciAbTFciGciHciIciIciJciKciLciMciNciOciPciQciRciSciSciTciUcaIcaIcaIciVciWciXbZybZybZybZychBchBbViciYbViciZbYfcdDbYfcjacjbcjbcjccjdcjecjfcdLcjgcjhcjhcjicjjcjkcjlcjmcjncjocjpcjqcgIcgIcjrcjscgIcjtcgIchXcjucdScjvcjwcjxcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgRciccjyciccgRciecjzciecgRcigcjAcigcgRaaaaaaciicgTcgUcgUcgUcjBcjCcjDcjEcemcjFcjGcjHcjIcjJcivcjKcjLcjMcjNcbzbYScjOchmcjPcjQcjRcjScjScjScjTcjUcjVcjWcjXcjYcjZciAbTFciGckaciIckbckcckdckeckfckgckhckickjckkcklciSckmciUcknckockpckqckrckqckscktcktckucktckvbVibVibVibVibYfckwbYfckxckyckzckAckBcchcjfcdLckCckDckDckDckEcdOckFcdOckGckHckIckJckJckKckLckLckMckJckJckNckOcdSckPckQckRcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgRckSckTckUcgRckXckWckVcgRclackZckYcgRaaaaafciiclbcgTcgUcgUcgUcejclccldclecleclfclecleclecleclgbQJclhclicbzcljclkcllclmclncloclpclpclpclqciAcKtcKscIIcluclvclwclxciGclyciIclzclAclBclCclDclEclFclGclHclIclJciSclKciUclLclMclNclOclPclQclNclRclSclTbYfclUcktcktcktcktcktclVclWclXclYcktcktcktcktclZcdLcmacmbcmccmdcdOcmecmfcmgcdScmhcmicmicmicmjcmkcmlcmmcmicmicmicmncdScmocmpcmqcmraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafaafcgRcmscmtcmucgRcCpcmtcmwcgRcCpcmtcmwcgRaaaaafcmzcgTcgTcgUcgUcmAcejcmBcmCcmDcmEcmFcmGcmHcmHcmIcmJcmHcmKcmLcbzcmMcmNcmOcmPcivcmQcmQcmRcmScmTciAcmUcIHcIIcIGcmYcmZcnaciGcnbciIcnccndcneciGcnfciNcngcfYcnhcnicnjciScnkciUclLclMclNcnlcnmcnlclNaaaaaaaaabYfbYfbYfcnnclSclSclTbYfbYfbYfbYfcIOcIOcdOcdOcdOcdOcdOcdOcdOcdOcdOcnocnpcnqcdScdScnrcnscntcdScdScdScdScnucnscntcdScdScnvcnwcnvaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgRckSckTckUcgRckXckWckVcgRclackZckYcgRaaaaafciiclbcgTcgUcgUcgUcejclccldclecleclfclecleclecleclgbQJclhclicbzcljclkcllclmclncloclpclpclpclqciAcICcClcIIcluclvclwclxciGclyciIclzclAclBclCclDclEclFclGclHclIclJciSclKciUclLclMclNclOclPclQclNclRclSclTbYfclUcktcktcktcktcktclVclWclXclYcktcktcktcktclZcdLcmacmbcmccmdcdOcmecmfcmgcdScmhcmicmicmicmjcmkcmlcmmcmicmicmicmncdScmocmpcmqcmraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafaafcgRcmscmtcmucgRcCpcmtcmwcgRcCpcmtcmwcgRaaaaafcmzcgTcgTcgUcgUcmAcejcmBcmCcmDcmEcmFcmGcmHcmHcmIcmJcmHcmKcmLcbzcmMcmNcmOcmPcivcmQcmQcmRcmScmTciAcmUcIHcIIcIGcmYcmZcBFciGcnbciIcnccndcneciGcnfciNcngcfYcnhcnicnjciScnkciUclLclMclNcnlcnmcnlclNaaaaaaaaabYfbYfbYfcnnclSclSclTbYfbYfbYfbYfcIOcIOcdOcdOcdOcdOcdOcdOcdOcdOcdOcnocnpcnqcdScdScnrcnscntcdScdScdScdScnucnscntcdScdScnvcnwcnvaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZSaafaafaafaaaaafcnxaafcnxaafcKBaafcKAaafcKBaafcKAaafaafaaacejcnAcnBcgUcgUcnCcnDcnEcnFclecnGcnHcleclecnIcleclecnJcivclecnKcnLcnMcnNcnKclecnOcnOcnOcnPcnQcnOcnRcnRcnRcnRcnRcnRcnSciGcnTcnUcnccnVcnWciGcnfciNcnXciUcnYcnZcnjcoacobciUclLclMclNcoccodcoeclNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacKCchBchBcdOcofcogcohcoicojcokcolcomconcoocopcoqcoraaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafcoscotcosaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafcoucovcowcoxcowcovcKvcoxcKwcKxcKvcoAcKycKzcoBcoCcoCcoCcoCcoCcoCcoCcoCcoDcoEcoFcoGcoHcoIcKucoKcoLcoMcoNcoOcoPcoMcoQcoRcoScnOcoTcoUcoVcoWcoXcoYcnOcoZcoZcpacpbcpbcnRbTFciGciGcpccpdciGciGciGcpeciNcpfciUciUciUcpgcphciUciUclLcpiclNcpjcpkcpjclNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacGXchBchBcdOcplcpmcplcpncpocppcpqcomcomcprcomcdOcdOaaaaaaaaaaafaafaaaaacaaaaaaaaaaaaaafaaacpsaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaaaaaaaaaaafcptcuicpvcHhcGYcuicHFcHDcHEcHBcHCcHvcHAcHucpucHscpHcHrcpJcHlcpLcpMcpNcpOcpPcpQcGtcGWcpTcpUcpVcpWcpXcpYcpZcqacqbcoQcqccqdcnOcoXcoXcoXcoXcoXcqecnOcqfcqfcqfcpbcpbcnRbTFcqgciGcqhcqicqjcqkciGcqlciNcqmciUcqncqocqpcqqciUcqrclLcpiclNcqscqtcquclNaaaaaaaaaaaaaaaaaacqvcqwcqxcqycqvaafaaacGXchBchBcdOcplcplcplcqzcqAcqBcqCcqDcqEcqFcqGcqHcdOaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacqIaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaafcqJcpucFtcGmcFVcpucymcpucrRczxcymcpucrRczxcpucpucpucpucpucqRcpucpucpucGWcGIcGtcqYcymcpTcracrbcrccrdcrecrfcrgcrhcoQcqccricnOcrjcoXcoXcrkcoXcrlcnOcrmcrncrocrncrpcnRbTFcrqciGcrrcrscrtcrucrvcrwcrxcrycrzcrAcrBcrCcrDciUcrEcrFcrGcrHcqvcrIcqvcrHaaaaaaaafaaaaaaaaacqvcrJcrKcrLcqvaafaafcFschBchBcdOcomcomcomcomcrMcppcrNcrNcrNcnpcrNcrOcdOaaaaaaaaaaaaaaacrPcrPcrPbZSaafaafaafaafcrQaafaafaafaafaafaaqcrPcrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafcoucovcowcoxcowcovcKvcoxcIFcKscKvcoAcKtcKwcoBcoCcoCcoCcoCcoCcoCcoCcoCcoDcoEcoFcoGcoHcoIcKucoKcoLcoMcoNcoOcoPcoMcoQcoRcoScnOcoTcoUcoVcoWcoXcoYcnOcoZcoZcpacpbcpbcnRbTFciGciGcpccpdciGciGciGcpeciNcpfciUciUciUcpgcphciUciUclLcpiclNcpjcpkcpjclNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacGXchBchBcdOcplcpmcplcpncpocppcpqcomcomcprcomcdOcdOaaaaaaaaaaafaafaaaaacaaaaaaaaaaaaaafaaacpsaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaaaaaaaaaaafcptcuicpvcHhcGYcuicHFcHDcHEcHBcHCcHvcHAcHucpucHscpHcHrcpJcHlcpLcpMcpNcpOcpPcpQcGtcGWcpTcpUcpVcpWcpXcpYcpZcqacqbcoQcqccqdcnOcoXcoXcoXcoXcoXcqecnOcqfcqfcqfcpbcpbcnRbTFczCciGcqhcqicqjcqkciGcqlciNcqmciUcqncqocqpcqqciUcqrclLcpiclNcqscqtcquclNaaaaaaaaaaaaaaaaaacqvcqwcqxcqycqvaafaaacGXchBchBcdOcplcplcplcqzcqAcqBcqCcqDcqEcqFcqGcqHcdOaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacqIaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaafcqJcpucFtcGmcFVcpucymcpucrRczxcymcpucrRczxcpucpucpucpucpucqRcpucpucpucGWcGIcGtcqYcymcpTcracrbcrccrdcrecrfcrgcrhcoQcqccricnOcrjcoXcoXcrkcoXcrlcnOcrmcrncrocrncrpcnRbTFcrqciGcrrcrscrtcrucrvcrwcrxcrycrzcrAcrBcrCcrDciUcrEcrFcrGcrHcqvcrIcqvcrHaaaaaaaafaaaaaaaaacqvcrJcrKcrLcqvaafaafcFschBcrYcdOcomcomcomcomcrMcppcrNcrNcrNcnpcrNcrOcdOaaaaaaaaaaaaaaacrPcrPcrPbZSaafaafaafaafcrQaafaafaafaafaafaaqcrPcrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafcptcpucqYcpucqYcpucymcpucIicqMcyucqMcIjcqMcqMcyscIhcpucpucqScqPcqPcqPcrZcIdcsdcsdcIgcpTcHYcHXcsicoMcsjcskcslcoMcsmcsncsocspcsqcsrcsscstcoXcsucnOcsvcrncswcrncsxcnRbTFcsyciGcszcsAcsBcsCciGcfYcsDcfYciUcsEcsFcsGcsHciUcsIcrGcrGcqvcsJcsKcsLcqvcqvcqvcsMcqvcqvcqvcqvcsNcsOcsPcqvcqvcqvcrHchBchBcdOcofcogcohcsQcsRcqBcrNcrNcrNcnpcrNcsScdOaaaaaaaaaaaaaaacrPaaaaafaaaaafaaaaaaaaacsTaaaaafaafaaaaaaaaaaaacrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaafaaaaaacptcpucqYcpucsUcsXcHTcsWcHUcHVcyucqMcHWcqMcqMcyscHRcpucpucHScGmcHPcwpcqUcHOcqYcqYcHQctictjcHHcoCcoMctlcoMcoMcoMctmctncsoctoctpctqctrctscoXcttcnOctucrncswcrncrncnRctvctwciGciGctxciGciGciGctyctzctAciUciUciUctBciUciUcsIcrGaaacqvctCctDctEctFctGctHctIctJctKctLcqvctMctDctNcqvctOctPcqvchBchBcdOcplcplcplctQcpoctRctSctTctUctVcrNctWcdOcdOcdOcdOaaaaaacrPaaactXctXctXctXctXaafcsTaafctXctXctXctXctXaaacrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacptcpucsUcsXcsXcsXcHTcsXcsXcsXcHTcsXcsXcsXcsXcsXcIncsXcsXcHTcsXcIvcsXcsXcsXcIpctgcthcuicpucIzcukculcumcuncuocupcuncuqcurcuscutcuucuucuvcuucuwcuxcuycuzcuAcuBcuBcnRcuCcuDcuEcuFcuFcuGcuHcuIcuJcuJcuJcuJcuJcuJcuJcuJcuKcrFcrGaaactFcuLcuMcuNctFcuOcuPcuQcuQcuRcuQcuScuTcuUcuVcuWcuXcuQcqvchBchBcdOcplcplcplcsQcuYcuZcvacvbcvccvdcrNcrNcvecvfcvgcdOaafaafcrPaafcvhcvicvicvicvicvjcvkcvlcvmcvmcvmcvmcvnaafcrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacptcpucpucpucpucpucymcpucpucpucymcpucpucpucpucpucrRcpucpucymcpucIlcpucpucvucvvcIkcvwcvxcvycvxcvAcvBcvCcvDcvEcvBcvBcvFcvGcnPcvHcoXcvIcvJcoXcoXcvKcrncrncvLcuBcuBcnRbPxcvMcvNcvNcvNcvNcvOcvNcvNcvNcvNclMcvPcrGcrGcrGcrGcrGcrGaaactFctFcvQctFctFcvRcvScvTcvUcvVcvWcvVcvXcvYcvZcwacwbcwccqvchBchBcdOcomcomcomcomcwdcppcvacwecwfcwgcrNcrNcwhcrNcwicdOaaaaaacrPaafcwjcwjcwjcwjcwjaaacsTaaacwjcwjcwjcwjcwjaafcrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaabZSaaaaaaaaaaaacptcpucpucpucpucpucymcpucpucpucymcpucpucpucpucpucrRcpucpucymcpucvpcpucpucvpcvpcvpcpucpucwtcIFcoCcoCcoCcoCcwvcwwcoQcwxcwycspcwzcoXcwAcvJcoXcwBcnOcwCcrncwEcwFcwGcnRcwHcvMcvNcwIcwJcwKcwLcwMcwNcwOcvNcwPcwQcrGaaaaaaaaaaaaaaaaaacqvcwRcwScwTcwUcwVcwWcwXcwYcwZcxacvZcxbcxccxdcuWcqvcxecqvchBchBcdOcofcogcohcxfcsRcuZcxgcxhcxhcxicxjcxkcxlcxmcxncdOaaaaaacrPaaaaafaaaaafaafaafaaacsTaaaaafaaaaafaaaaafaaacrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacptcpucpucpucpucpucyocpucpucpucyocpucpucpucpucpucrRcpucpucrWcGmcxpcuecuecxpcykcxpcIBcIAcIDcuecICcuecxAcxBcIEcwwcoQcxDcoQcxEcxFcoXcoXcxGcoXcxHcnOcxIcxIcxJcwFcwGcnRbPxcvMcvNcxKcxLcxMcxNcxOcxNcxPcvNcxQcxRcrGaaaaaaaaaaaaaaaaaacqvcxScxTcxUcxVcxWcxXcxYcxZcuTcyacuScybcuTcyccuVcqvcqvcqvchBchBcdOcplcpmcplcydcpocppcrNcrNcyecyfcrNcygcomcomcomcdOaaaaaacrPaaactXctXctXctXctXaafcsTaafctXctXctXctXctXaafcrPaaaaaaaaaaaaaaaaaaaaaaaacyhaaaaaaaaacyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacptcpucpucpucpucpucymcpucpucpucymcpucpucpucpucpucrRcpucpucymcpucIlcpucpucvucvvcIkcvwcvxcvycvxcvAcvBcvCcvDcvEcvBcvBcvFcvGcnPcvHcoXcvIcvJcoXcoXcvKcrncrncvLcuBcuBcnRbPxcAscvNcvNcvNcvNcvOcvNcvNcvNcvNclMcvPcrGcrGcrGcrGcrGcrGaaactFctFcvQctFctFcvRcvScvTcvUcvVcvWcvVcvXcvYcvZcwacwbcwccqvchBchBcdOcomcomcomcomcwdcppcvacwecwfcwgcrNcrNcwhcrNcwicdOaaaaaacrPaafcwjcwjcwjcwjcwjaaacsTaaacwjcwjcwjcwjcwjaafcrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaabZSaaaaaaaaaaaacptcpucpucpucpucpucymcpucpucpucymcpucpucpucpucpucrRcpucpucymcpucvpcpucpucvpcvpcvpcpucpucwtcBzcoCcoCcoCcoCcwvcwwcoQcwxcwycspcwzcoXcwAcvJcoXcwBcnOcwCcrncwEcwFcwGcnRcwHcvMcvNcwIcwJcwKcwLcwMcwNcwOcvNcwPcwQcrGaaaaaaaaaaaaaaaaaacqvcwRcwScwTcwUcwVcwWcwXcwYcwZcxacvZcxbcxccxdcuWcqvcxecqvchBchBcdOcofcogcohcxfcsRcuZcxgcxhcxhcxicxjcxkcxlcxmcxncdOaaaaaacrPaaaaafaaaaafaafaafaaacsTaaaaafaaaaafaaaaafaaacrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacptcpucpucpucpucpucyocpucpucpucyocpucpucpucpucpucrRcpucpucrWcGmcxpcuecuecxpcykcxpcIBcIAcIDcuecAGcuecxAcxBcIEcwwcoQcxDcoQcxEcxFcoXcoXcxGcoXcxHcnOcxIcxIcxJcwFcwGcnRbPxcvMcvNcxKcxLcxMcxNcxOcxNcxPcvNcxQcxRcrGaaaaaaaaaaaaaaaaaacqvcxScxTcxUcxVcxWcxXcxYcxZcuTcyacuScybcuTcyccuVcqvcqvcqvcAtchBcdOcplcpmcplcydcpocppcrNcrNcyecyfcrNcygcomcomcomcdOaaaaaacrPaaactXctXctXctXctXaafcsTaafctXctXctXctXctXaafcrPaaaaaaaaaaaaaaaaaaaaaaaacyhaaaaaaaaacyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZSaaaaaaaaaaamaafaaaaaaaaacptcpucqScqPcqPcxwcxycqPcxwcqPcxxcxwcqPcqPcqPcqPcxvcqPcrXcxucqQcvpcpucpucyvcwscywcxtcyycyzcpucxscpucxqcxqcxrcyGcoQcxDcyHcnOcyIcoXcyJcoXcyKcyLcnOcnRcnRcnRcnRcnRcnRbPxcvMcvNcyMcyNcxLcyOcxLcxNcyPcvNcyQcyRcrGaaaaaaaaaaaaaaaaaacqvcuVcySctFctFcyTcyUcyVcyWctMctDctNcyXctMctDcyYcqvaaacxzchBchBcdOcplcplcplcxfcyZczacrNcrNcrNcyfcrNczbcrNczccrNczdaafaafcrPaafcvhcvicvicvicvicvjcvkcvlcvmcvmcvmcvmcvnaafcrPaaaaaaaaaaaaaaaaaaaaaaaacyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaacrPaafaafaafaamaafaafaafaafcptcpucymcpucpucpucyocpucpucpucyocpucpucpucpucpucrRcpucywcpucyncvpcpucpucylcykcuhcyjcoCczzcoCcoCcpucyiczBcxCcyGcoQcxDcoQcnOczDczEczFczGczHcoXcnOczIczJczJczKczLczMczNczOcvNcxNczPczQcxNczRczSczTcvNczUczVcrGaaaaaaaaaaaaaaaaaacqvczWcuMczXcuVczYczZcAactFcAbcAccsPcyXczWcAdcAecqvaaacypchBchBckEcdOcAfcAgcAgcAhcAicAjcAkcAlcAmcAncAocApcAqcokcAraaaaaacrPaafcwjcwjcwjcwjcwjaaacsTaafcwjcwjcwjcwjcwjaaacrPaaacyhaaaaaacyhaaaaaacyhcyhcyhcyhcyhcyhcyhaaaaaacyhaaaaaacyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaaaaaaaaaaaaaamaaaaaaaaacyxcpucymcpucqKcqMcyucqMcuacqMcyucqMcuacqMcqMcqMcyqcytcyqcyscyrcuhcyBcyCcACcADcAEcAFcoCcAGcyAcoCcoCcoCcoCcoCcAIcAJcAKcAJcnOcnOcnOcnOcnOcnOcnOcnOcALczJczJcAMcANcAObPxcAPcvNcAQcARcAScATcAUcAVcAWcvNcAXcAYcrGaaaaaaaaaaaaaaaaaacqvcuQcAZcAectFcBacBbcBcctFcBdcBecBfcBgcBhcBicBjcqvaafcypchBchBcxzaaacqWaaacdOcBlcBmcBncBocBpcBmcBqcBrcBpcBmcBscdOaaaaaabZSaaaaafaaaaafaaaaafaaacsTaaaaafaaaaafaafaafaafcrPaaacyhcyhcyhcyhaaacyhcyhcyhcyhcyhcyhcyhcyhcyhaaacyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaafaafaafaafaamaafaafaafcyDcpucymcpucywcwscymcpucywcwscymcpucywcwscpucpucyvcpucywcwscyEczfczhczecBBcBCcBDcBEcoCcyFcBGcBHcBIcBJcBKcBLcBMcBKcBNcBKcBOcBPcBQcBRcBScBScBTcBUcBVcBWcBWcBXcBYcAObPxcBZcvNcvNcCacCbcCccCbcCacCdcvNcrGcCecrGaaaaaaaaaaaaaaaaaacqvctFcCfcuVctFcCgcChcCictFcCjcCkcqyczicCmcCncCocrHaaacypchBchBcypaaacqWaafcdOcCqcCrcCscomcCtcCucCvcomcCwcCxcCycdOaaaaaacrPaaactXctXctXctXctXaafcsTaafctXctXctXctXctXaafcrPaaacyhcyhcyhcyhaaacyhcyhcyhcyhcyhcyhcyhcyhcyhaaacyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaafaafaaaaaaaamaaaaaaaaacyDczwczAczyczgczsczqczpczkcznczmczlczoczscpuczwczvczuczrczncztcoCcoCcoCcCzcCzcCzcCzcCzczjcCzcCBcCCcCDcCEcCFcCEcCEcCGcCEcCEcCHcCEcCDcCIcCJcCKcCLcCMcCNcCOcCPcCQcAObPwcCRcCScCTcCacCUcAVcCVcCacCWaafcCXcCYcCXaaaaaaaaaaaaaaaaaacqvcCZctDcuQcDacDbcuQcDccDdcDeaafaaaczCcAtcAscDgaaaaaacypchBchBcypaaacqWaaacdOcDhcplcplcomcDicplcplcomcDicplcplcdOaafaafcrPaafcvhcvicvicvicvicvjcvkcvlcvmcvmcvmcvmcvnaafcrPaaacyhcyhcyhcyhaaacyhcyhcyhcyhcyhcyhcyhcyhcyhaaacyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaaaaafaafaaaaamaaaaaaaaacAzcAvcAwcAxcAycABcAAcAHcAycABcAAcAHcAycABcBucBucBvcAHcAycABcBtcoCaaacDvcDwcDxcDycDzcDAcAucDCcDDcDDcDEcDFcDGcDHcDIcDJcDHcDIcDGcDKcDLcDMcDKcCBcCBcAOcDNcDOcDPcDQcAObNUcDRcDScDTcCacCbcDUcCbcCacCWaafaaaaafaaaaaaaaaaaaaaaaaaaaacqvcCZcDVcDWcDXcDXcDWcsPcDYcqvaaaaaaczCaaaaaaaaaaaaaaacBwchBchBcBwaaacqWaaacdOcDZcplcplcomcEacplcplcomcEacplcplcdOaaaaaacrPaafcwjcwjcwjcwjcwjaaacsTaaacwjcwjcwjcwjcwjaaacrPaaacyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaamaaaaaaaaaaaaaaacBxaaacnyaaacBxaaacnyaaacBxaaacnyaaaaaaaaacnzaaacnyaaacByaafaaacEicEjcEkcElcEmcEncAucEocDDcEpcEqcErcEscEtcEucEvcEwcExcEscEycEzcEAcDKaaaaafcAOcEBcECcEDaafaaabNUbPxbPxbSkcCacEEcEFcEGcCacCWaafaafaaaaaaaaaaaaaaaaaaaaaaaacqvcEHcuXcEIcEJcEJcEIcuQcEKcqvaaaaaacClcBFcBFcBFcBFcBFcbYcBAcBAcbYcrTcBzaaacdOcplcplcplcomcELcplcplcomcELcplcplcdOaacaaacrPaaaaaaaafaafaafaaaaaacEMaafaaaaaaaafaafaaaaaacrPaaacyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaqaaaaaaaaaaafcgRcCpcmtcmvcgRcCpcmtcmvcgRcCpcmtcmxcgRaaacgRcmycmtcmxcgRaaaaafaaacEicEQcERcEScEQcCAcDBcEUcDDcEVcEWcEXcEscEYcEZcFacFbcFccEscFdcFecFfcDKaaaaaacAOcFgcFhcFiaaaaaabNUbPxbPxbNUcCacFjcFjcFjcCacFkcFlaaaaaaaaaaaaaaaaaaaaaaaaaaacqvcFmcFncuQcuQcuQcuQcuQcFocqvaaaaaaaaaaaaaaaaaaaaaaaacETchBchBcETaaacqWaafckEcdOcdOcdOcdOcdOcdOcdOcdOcFpcFpcFpckEaaaaaacrPcrPcrPcrPcrPaaaaaaaaacqIaaaaaaaaacrPcrPcrPbZScrPaaacyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaafcgRcDjcDkcDlcgRcDmcDncDocgRcDpcDqcDrcgRaafcgRcDscDtcDucgRaaaaafaaacEicFrcEkcEQcEQcqZcqXcFucFvcFwcFxcFycFzcFAcFBcFCcFDcFEcFFcFGcFHcFIcDKaafaaacFJcDNcFKcAOcFLaaabNUcFMbPxcFNcFOaafaafaafaaacBkaafaafaaaaaaaaaaaaaaaaaaaaaaaacrHcqvcqvcFPcFQcEIcEIcEIcFRcFPaaaaaaaaaaaaaaaaaaaaaaaacqVchBchBcqVaaacqWaaaaaaaafaaaaaaaaaaaaaaaaaaaaacFScFScFSaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaafcFTaafcrPaaaaaaaaaaaaaaaaaaaaacyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafaafcgRcEbcEccEbcgRcEdcEecEdcgRcEfcEgcEfcgRaaacgRcEfcEfcEhcgRaaaaafaaacEicFUcEkcEScEQcEncrVcEocDDcFWcFXcFYcEscFZcGacGbcGacGccEscGdcGecGfcDKaaLcGgcGgcGgcGgcGgcGgcGgbNUcGhcGicGjaafaaaaaaaafcGkcDfaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGlcEJcEJcEJcEJcEJcGlaaaaaaaaaaaaaaaaaaaaaaaacqVchBchBcqVaafcrUcrTcrTcrTcrSaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaaaaafaaacrPaaaaaaaaaaaaaaaaaacyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaamaaaaafaafaaacgRcEbcENcEbcgRcEdcEOcEdcgRcEfcEPcEfcgRaafcgRcEfcEfcEfcgRaafaafaafcGncGocGpcGqcGrcGscsacEocDDcGucGvcGwcEscGxcGycGzcGAcGBcEscGCcGDcGEcDKaaacGgcGgcGgcGgcGgcGgcGgcGFcGGcGHbNUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqvcCmcqxcqxcqxcCocqvaaaaaaaaaaaaaaaaaaaaaaaacqVchBchBcqVaaaaaaaafaaaaaacrYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPcrPcrPcrPcrPaaaaaaaaaaaaaaaaaacyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaaaaaaaaaaaaaamaaaaaaaaacyxcpucymcpucqKcqMcyucqMcuacqMcyucqMcuacqMcqMcqMcyqcytcyqcyscyrcuhcyBcyCcACcADcAEcAFcoCcrScyAcoCcoCcoCcoCcoCcAIcAJcAKcAJcnOcnOcnOcnOcnOcnOcnOcnOcALczJczJcAMcANcAObPxcAPcvNcAQcARcAScATcAUcAVcAWcvNcAXcAYcrGaaaaaaaaaaaaaaaaaacqvcuQcAZcAectFcBacBbcBcctFcBdcBecBfcBgcBhcBicBjcqvaafcypchBchBcxzaaacBkaaacdOcBlcBmcBncBocBpcBmcBqcBrcBpcBmcBscdOaaaaaabZSaaaaafaaaaafaaaaafaaacsTaaaaafaaaaafaafaafaafcrPaaacyhcyhcyhcyhaaacyhcyhcyhcyhcyhcyhcyhcyhcyhaaacyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaafaafaafaafaamaafaafaafcyDcpucymcpucywcwscymcpucywcwscymcpucywcwscpucpucyvcpucywcwscyEczfczhczecBBcBCcBDcBEcoCcyFcBGcBHcBIcBJcBKcBLcBMcBKcBNcBKcBOcBPcBQcBRcBScBScBTcBUcBVcBWcBWcBXcBYcAObPxcBZcvNcvNcCacCbcCccCbcCacCdcvNcrGcCecrGaaaaaaaaaaaaaaaaaacqvctFcCfcuVctFcCgcChcCictFcCjcCkcqyczicCmcCncCocrHaaacypchBchBcypaaacBkaafcdOcCqcCrcCscomcCtcCucCvcomcCwcCxcCycdOaaaaaacrPaaactXctXctXctXctXaafcsTaafctXctXctXctXctXaafcrPaaacyhcyhcyhcyhaaacyhcyhcyhcyhcyhcyhcyhcyhcyhaaacyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaafaafaaaaaaaamaaaaaaaaacyDczwczAczyczgczsczqczpczkcznczmczlczoczscpuczwczvczuczrczncztcoCcoCcoCcCzcCzcCzcCzcCzczjcCzcCBcCCcCDcCEcCFcCEcCEcCGcCEcCEcCHcCEcCDcCIcCJcCKcCLcCMcCNcCOcCPcCQcAObPwcCRcCScCTcCacCUcAVcCVcCacCWaafcCXcCYcCXaaaaaaaaaaaaaaaaaacqvcCZctDcuQcDacDbcuQcDccDdcDeaafaaacBkaaLcrTcDgaaaaaacypchBchBcypaaacBkaaacdOcDhcplcplcomcDicplcplcomcDicplcplcdOaafaafcrPaafcvhcvicvicvicvicvjcvkcvlcvmcvmcvmcvmcvnaafcrPaaacyhcyhcyhcyhaaacyhcyhcyhcyhcyhcyhcyhcyhcyhaaacyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaaaaafaafaaaaamaaaaaaaaacAzcAvcAwcAxcAycABcAAcAHcAycABcAAcAHcAycABcBucBucBvcAHcAycABcBtcoCaaacDvcDwcDxcDycDzcDAcAucDCcDDcDDcDEcDFcDGcDHcDIcDJcDHcDIcDGcDKcDLcDMcDKcCBcCBcAOcDNcDOcDPcDQcAObNUcDRcDScDTcCacCbcDUcCbcCacCWaafaaaaafaaaaaaaaaaaaaaaaaaaaacqvcCZcDVcDWcDXcDXcDWcsPcDYcqvaaaaaacBkaaaaaaaaaaaaaaacBwchBchBcBwaaacBkaaacdOcDZcplcplcomcEacplcplcomcEacplcplcdOaaaaaacrPaafcwjcwjcwjcwjcwjaaacsTaaacwjcwjcwjcwjcwjaaacrPaaacyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaamaaaaaaaaaaaaaaacBxaaacnyaaacBxaaacnyaaacBxaaacnyaaaaaaaaacnzaaacnyaaacByaafaaacEicEjcEkcElcEmcEncAucEocDDcEpcEqcErcEscEtcEucEvcEwcExcEscEycEzcEAcDKaaaaafcAOcEBcECcEDaafaaabNUbPxbPxbSkcCacEEcEFcEGcCacCWaafaafaaaaaaaaaaaaaaaaaaaaaaaacqvcEHcuXcEIcEJcEJcEIcuQcEKcqvaaaaaacqgcnacnacnacnacnacbYcBAcBAcbYcnacrUaaacdOcplcplcplcomcELcplcplcomcELcplcplcdOaacaaacrPaaaaaaaafaafaafaaaaaacEMaafaaaaaaaafaafaaaaaacrPaaacyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaqaaaaaaaaaaafcgRcCpcmtcmvcgRcCpcmtcmvcgRcCpcmtcmxcgRaaacgRcmycmtcmxcgRaaaaafaaacEicEQcERcEScEQcCAcDBcEUcDDcEVcEWcEXcEscEYcEZcFacFbcFccEscFdcFecFfcDKaaaaaacAOcFgcFhcFiaaaaaabNUbPxbPxbNUcCacFjcFjcFjcCacFkcFlaaaaaaaaaaaaaaaaaaaaaaaaaaacqvcFmcFncuQcuQcuQcuQcuQcFocqvaaaaaaaaaaaaaaaaaaaaaaaacETchBcrYcETaaacBkaafckEcdOcdOcdOcdOcdOcdOcdOcdOcFpcFpcFpckEaaaaaacrPcrPcrPcrPcrPaaaaaaaaacqIaaaaaaaaacrPcrPcrPbZScrPaaacyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaafcgRcDjcDkcDlcgRcDmcDncDocgRcDpcDqcDrcgRaafcgRcDscDtcDucgRaaaaafaaacEicFrcEkcEQcEQcqZcqXcFucFvcFwcFxcFycFzcFAcFBcFCcFDcFEcFFcFGcFHcFIcDKaafaaacFJcDNcFKcAOcFLaaabNUcFMbPxcFNcFOaafaafaafaaacBkaafaafaaaaaaaaaaaaaaaaaaaaaaaacrHcqvcqvcFPcFQcEIcEIcEIcFRcFPaaaaaaaaaaaaaaaaaaaaaaaacqVchBchBcqVaaacBkaaaaaaaafaaaaaaaaaaaaaaaaaaaaacFScFScFSaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaafcFTaafcrPaaaaaaaaaaaaaaaaaaaaacyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafaafcgRcEbcEccEbcgRcEdcEecEdcgRcEfcEgcEfcgRaaacgRcEfcEfcEhcgRaaaaafaaacEicFUcEkcEScEQcEncrVcEocDDcFWcFXcFYcEscFZcGacGbcGacGccEscGdcGecGfcDKaaLcGgcGgcGgcGgcGgcGgcGgbNUcGhcGicGjaafaaaaaaaafcGkcDfaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGlcEJcEJcEJcEJcEJcGlaaaaaaaaaaaaaaaaaaaaaaaacqVchBchBcqVaafcqgcnacnacnaceCaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPaaaaafaaacrPaaaaaaaaaaaaaaaaaacyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaamaaaaafaafaaacgRcEbcENcEbcgRcEdcEOcEdcgRcEfcEPcEfcgRaafcgRcEfcEfcEfcgRaafaafaafcGncGocGpcGqcGrcGscsacEocDDcGucGvcGwcEscGxcGycGzcGAcGBcEscGCcGDcGEcDKaaacGgcGgcGgcGgcGgcGgcGgcGFcGGcGHbNUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqvcCmcqxcqxcqxcCocqvaaaaaaaaaaaaaaaaaaaaaaaacqVchBchBcqVaaaaaaaafaaaaaacqWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrPcrPcrPcrPcrPaaaaaaaaaaaaaaaaaacyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaacgRcgRcgRcgRcgRcgRcgRcgRcgRcgRcgRcgRcgRaaacFqcgRcgRcgRcgRaaaaaaaaaaaacCzcCzcCzcCzcCzcsccGJcGJcGJcGJcGKcGJcGLcGMcGNcGMcGOcGJcGJcGPcGJcGJcGJcGgcGgcGgcGgcGgcGgcGgaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsbcsbcsbcsbcsbcsbcsbaaaaaacqVchBchBcqVaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyhcyhcyhcyhaaaaaacyhcyhcyhcyhcyhcyhcyhaaaaaacyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaafaaacGQcGRcGRcGRcGScGTcGUcsecsfcsgcshcGZcHacHbcHccHdcHecHfcsZcsYctacHgcHicHjcHkcsVcHmcGJcGgcGgcGgcGgcGgcGgcGgaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsbcsbcsbcsbcsbcsbcsbcsbcsbaaacqVchBchBcqVaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyhcyhcyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaacHncHocHpaaacHncHocHpaaacHncHocHpaafaafaaaaafaafaafaafaafcHqcGRcGRcGRcGScGTcHLctfcHtctecubcHwcHxcHjcHycHzctkctZctdctccHjcHjcHjcHjcHGctbcHIcGJcGgcGgcGgcGgcGgcGgcGgaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsbcsbcsbcsbcsbcsbcsbcsbcsbaaacqVchBchBcqVaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaacyhcyhcyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaacHncHJcHpaaacHncHJcHpaaacHncHJcHpaafaafaafaafaaaaaacHKaafcGQcGRcGRcGRcGScGTcHLcHMcHNcuccudcHwcHxcHjcufcHjcugcujcvqcvocvrcHjcHjcHjcHGcHZcIacGJcIbaafaaIaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsbcsbcsbcsbcsbcsbcsbcsbcsbaaacqVchBchBcqVaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyhcyhcyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaafcHncHJcHpaaacHncHJcHpaafcHncHJcHpaafaaaaaaaafaafcIcaaaaafcHqcGRcGRcGRcGScGTcwmcIecIfcwlcwqcwrcwncwocxocwocwucwDcvzcImcvtcIocIocIocwkcHZcIqcGJaaaaaaaaIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsbcsbcsbcsbcsbcsbcsbcsbcsbaaacvschBchBcvsaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyhcyhcyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacHncHJcHpaafcHncHJcHpaaacHncHJcHpaaaaaaaaaaaaaafaafaaaaafaaaaaaaaaaaaaafcIrcGVcIscItcIucLacGZcIwcHjcIxcIycKYcLbcKWcIycKUcKVcKYcKZcKXcHZcKTcGJaaaaaaaaIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsbcsbcsbcsbcsbcsbcsbaaaaaabYfcKSchBbYfcKGcKHbYfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyhcyhcyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamaaIaafaaacHncHJcHpaafcHncHJcHpaaacHncHJcHpaafaaaaaaaaaaaaaafaafcIJcIKcIKcIKcIKcILcILcILcILcILcIMcILcGJcHjcHjcINcGJcGJcGJcIQcIPcIQcGJcGJcGJcIRcIScHzcGJaafaaabZSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsbcsbcsbcsbcsbbYfcKGcKHbYfcKQchBbYfcKRcKPcxzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaaaaafaafcITaafaafaafcITaafaaaaafcITaafaaaaaaaaaaaaaaacIUcIVcIWcIXcIYcIZcJacJbcJccJdcJecJfcJgcJecGJcJhcHjcJicJjcJkcJlcJmcJncJocJlcJpcJjcJqcHjcJrcGJaaaaaaaaIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsbcsbcsbcsbcsbcKFcKKcKIcKJcKNcKOcKLcKMcKPcBwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamaaIaafaaacHncHJcHpaafcHncHJcHpaaacHncHJcHpaafaaaaaaaaaaaaaafaafcIJcIKcIKcIKcIKcILcILcILcILcILcIMcILcGJcHjcHjcINcGJcGJcGJcIQcIPcIQcGJcGJcGJcIRcIScHzcGJaafaaabZSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsbcsbcsbcsbcsbbYfcKGcKHbYfcKzchBbYfcKRcKPcxzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyhcyhcyhcyhcyhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaaaaafaafcITaafaafaafcITaafaaaaafcITaafaaaaaaaaaaaaaaacIUcIVcIWcIXcIYcIZcJacJbcJccJdcJecJfcJgcJecGJcJhcHjcJicJjcJkcJlcJmcJncJocJlcJpcJjcJqcHjcJrcGJaaaaaaaaIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsbcsbcsbcsbcsbcKFcKKcKxcKJcKNcKOcKLcKycKPcBwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaafcJscJtcJucJvcJwcJvcJvcJvcJwcJvcJvcJvcJwcJvcJxcJtcJtcJtcJycJzcJAcJBcJCcJDcJEcJFcJGcJHcJHcJHcJIcJJcJKcGJcHjcHjcJicJjcJkcJLcJMcJNcJOcJLcJpcJjcJqcHjcJPcGJaaaaaaaaIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsbcsbcsbcsbcsbbYfcKEcKFbYfcKGcKHbYfcKGcKHbYfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYaaactYctYctYctYctYaaactYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaaaaafaafcJQaafaaaaafcJQaafaaaaafcJQaafaaaaaaaaaaaaaaacIUcIVcJRcJScJTcJUcIKcJVcJWcJecJecJXcJXcJYcGJcHjcHjcJZcJjcJkcKacJMcKbcKccKacJpcJjcKdcHjcHjcGJaaaaaaaaIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsbcsbcsbcsbcsbcsbcsbcsbcsbcsbcsbcsbcsbcKDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYaaactYctYctYctYctYaaactYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamaaIaafaafcHncKecHpaaacHncKecHpaaacHncKecHpaafaaaaaaaaaaaaaafaafcKfcIKcIKcIKcIKcKgcKhcKicKicKjcKgcKgcGJcGJcGZcGJcGJcGJcGJcGJcKkcGJcGJcGJcGJcGJcGZcGJcGJaafaafaaIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsbcsbcsbcsbcsbcsbcsbcsbcsbcsbcsbcsbcsbcsbcsbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/exodus-5.dmm b/maps/exodus-5.dmm index 511f4916687..6fb89c02ca5 100644 --- a/maps/exodus-5.dmm +++ b/maps/exodus-5.dmm @@ -643,7 +643,7 @@ "ms" = (/obj/machinery/conveyor_switch{id = "anosample"; pixel_x = -8; pixel_y = 8},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/research_outpost/maint) "mt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;65"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01},/area/research_outpost/filtering) "mu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/research_outpost/filtering) -"mv" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/research_outpost/filtering) +"mv" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the isolation room cameras."; layer = 4; name = "Isolation Room Telescreen"; network = list("Anomaly Isolation"); pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/table,/obj/machinery/computer/atmoscontrol/laptop{monitored_alarm_ids = list("isolation_one","isolation_two","isolation_three"); req_access = null; req_one_access = list(47,24,11)},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/research_outpost/filtering) "mw" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/computer/security/telescreen{desc = "Used for watching the isolation room cameras."; layer = 4; name = "Isolation Room Telescreen"; network = list("Anomaly Isolation"); pixel_x = -32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor,/area/research_outpost/iso1_access) "mx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor,/area/research_outpost/iso1_access) "my" = (/obj/machinery/camera{c_tag = "Isolation Room Access One"; dir = 8; network = list("Research")},/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Supply drain"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/research_outpost/iso1_access) @@ -680,7 +680,7 @@ "nd" = (/obj/structure/plasticflaps/mining,/obj/machinery/conveyor{dir = 2; id = "anotempload"},/turf/simulated/floor/plating,/area/research_outpost/maint) "ne" = (/obj/machinery/conveyor{dir = 1; id = "anosample"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/research_outpost/maint) "nf" = (/obj/machinery/camera{c_tag = "Research Outpost Filtering"; dir = 4; network = list("Research","SS13")},/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/research_outpost/filtering) -"ng" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the isolation room cameras."; layer = 4; name = "Isolation Room Telescreen"; network = list("Anomaly Isolation"); pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/table,/obj/machinery/computer/atmoscontrol/laptop{monitored_alarm_ids = list("isolation_one","isolation_two","isolation_three"); req_access = null; req_one_access = list(47,24,11)},/turf/simulated/floor,/area/research_outpost/filtering) +"ng" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/research_outpost/filtering) "nh" = (/obj/machinery/atmospherics/unary/heater{dir = 4},/turf/simulated/floor,/area/research_outpost/iso1_access) "ni" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{tag = "icon-map (NORTH)"; icon_state = "map"; dir = 1},/turf/simulated/floor,/area/research_outpost/iso1_access) "nj" = (/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/atmospherics/pipe/simple/hidden/universal,/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor,/area/research_outpost/iso1_access) @@ -1432,8 +1432,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaejzjAjBgBiJjChhjDhijEewjFjGewjHgFjIjJewbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkabababababababababababababababaaaaaaaajKjLhZhZjMhZjNjOhZjPhZjQjRjSijjajTjUjVjWjXjYjZkakbkckdkekfkckdkdkgkhkikjkkklkmknkokpkqkrksktkukviDbAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaebkbkewgEkwkxkyjBkzkAhjkBbOdVkCewjHfAgFjJewbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkababababesesesesesesababababababkDkEaaaaaakFkGhZkHkIkJkKidkLkMkNkOkPkQijkRkSkTkUkUaMaMkVkWkWkXkWkYkYkZkYlalalblaaMlcaMldleiDlflgiDlhlikuljiDbAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeewewewewewewgDhilkkwhiiKllkBkBhlgFjFewjHeWlmjJewbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkababesesesgygygygyesesesabablnlolphRaaaaaalqlrhqhrlslslslslsltlsbcbcbcijlukUlvlwlxlylzlAkWlBlClDkYlElFlGlalHlIlJlalKlLldlMldiDiDiDlNlOlPjyiDbAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeewlQdVhjlRewlSlTlUewiLewlVlWlXewdVlYcqlZeWfzcqewbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkabababesesgygygygygygygygyesesabmambbimcaBaBaBdrdsaeaemdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvkWmwmxmykYmzmAmBlamCmDmElamFmGldmHmImJmKiDiDiDiDiDmLcTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkewlQeWdVhhiLlYkwmMkwmNdVdVmOgFdVeWeWewcqmPeWdVewbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkababesesgygygygygygygygygygymQmRmSmRaaaaaaaaaaaaaaaaaemdmTmUmVmWmXmYmZnananbnckUndnelylynfngkWnhninjkYnknlnmlannnonplanqnrldnsntntnuldnvagaBaBnwnxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeewlQdVhjlRewlSlTlUewiLewlVlWlXewdVlYcqlZeWfzcqewbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkabababesesgygygygygygygygyesesabmambbimcaBaBaBdrdsaeaemdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmungkWmwmxmykYmzmAmBlamCmDmElamFmGldmHmImJmKiDiDiDiDiDmLcTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkewlQeWdVhhiLlYkwmMkwmNdVdVmOgFdVeWeWewcqmPeWdVewbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkababesesgygygygygygygygygygymQmRmSmRaaaaaaaaaaaaaaaaaemdmTmUmVmWmXmYmZnananbnckUndnelylynfmvkWnhninjkYnknlnmlannnonplanqnrldnsntntnuldnvagaBaBnwnxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkbkewnynzeWeWiLeWlmggeWnAmNlmkCnBeWnCfAewkwcqlYdVewbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkabesmRgygygygygygygygygygygynDnEnFnGaaaaaaaaaaaaaaaaaemdmTmUnHnInJnKmUnLnanMijijnNnOlynPnQnRkWnSnTnUkYnVnWnXlanYnZoalaobocldodoeoeoeldofogbkaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkbkbkewnyohhhgDewoiewojokewhjewojokewhilYewmOolcqjFewbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkabesomgygygygygygygygygygygygyonoonGaaaaaaaaaaaaaaaaaemdopmUoqmhorosotounaovijowoxoylyozoAoBoCoCoDoCoEoEoFoEoGoGoHoGoGoIoJoKldldldldoLoMabbkbkbkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkbkbkbkbkbkewewewewewewoiewoNgFhjjFfAhikzhiiNhhewojoOoPoQewbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkabesmQgygygygygygygygygygygygyonnFnGaaaaaaaaaaaaaaaeaemdoRoSoTmWoUosoVoWnaoXijoYoxoylylylylyoCoZpapboEpcpdpeoGpfpgphoGpipjoKabbkabpkplpmabbkbkbkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 018eb4cb603a486f09cc86020c452851a03b579e Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 30 Nov 2014 23:46:36 +1030 Subject: [PATCH 12/56] Fixes #7187 --- nano/templates/hardsuit.tmpl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nano/templates/hardsuit.tmpl b/nano/templates/hardsuit.tmpl index 426f40db54a..5b0603ee30d 100644 --- a/nano/templates/hardsuit.tmpl +++ b/nano/templates/hardsuit.tmpl @@ -85,7 +85,7 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm {{:data.helmet}}
- {{if data.seals == 1 && data.sealing != 1}} + {{if data.sealing != 1}} {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_piece' : 'helmet'}, null)}}
{{/if}} @@ -98,7 +98,7 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm {{:data.gauntlets}}
- {{if data.seals == 1 && data.sealing != 1}} + {{if data.sealing != 1}} {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_piece' : 'gauntlets'}, null)}}
{{/if}} @@ -111,7 +111,7 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm {{:data.boots}}
- {{if data.seals == 1 && data.sealing != 1}} + {{if data.sealing != 1}} {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_piece' : 'boots'}, null)}}
{{/if}} @@ -124,7 +124,7 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm {{:data.chest}}
- {{if data.seals == 1 && data.sealing != 1}} + {{if data.sealing != 1}} {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_piece' : 'chest'}, null)}}
{{/if}} From 7703b0f4c07f87fc7a294c8334359dac9f5137bf Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 30 Nov 2014 23:47:12 +1030 Subject: [PATCH 13/56] Fixes #7186 --- code/modules/clothing/spacesuits/rig/suits/ert.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/clothing/spacesuits/rig/suits/ert.dm b/code/modules/clothing/spacesuits/rig/suits/ert.dm index 02e59490d62..499547918f6 100644 --- a/code/modules/clothing/spacesuits/rig/suits/ert.dm +++ b/code/modules/clothing/spacesuits/rig/suits/ert.dm @@ -36,8 +36,7 @@ /obj/item/rig_module/ai_container, /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/device/plasmacutter, - /obj/item/rig_module/device/rcd, - /obj/item/rig_module/foam_sprayer + /obj/item/rig_module/device/rcd ) /obj/item/weapon/rig/ert/medical From a5ee32d4caf7a330cc148d03d5345b7169b93750 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 30 Nov 2014 23:47:34 +1030 Subject: [PATCH 14/56] Fixes some colour macros, removes inactive jetpack icon for rigs. --- code/game/objects/items.dm | 22 +++++++++---------- .../spacesuits/rig/modules/utility.dm | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 7def0ddae2d..20fab77586b 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -263,7 +263,7 @@ return 0 if(H.head && !(H.head.canremove) && (H.head.flags & HEADCOVERSMOUTH)) if(!disable_warning) - H << "\red \The [H.head] is in the way." + H << "\The [H.head] is in the way." return 0 if( !(slot_flags & SLOT_MASK) ) return 0 @@ -297,7 +297,7 @@ return 0 if(!H.w_uniform && (slot_w_uniform in mob_equip)) if(!disable_warning) - H << "\red You need a jumpsuit before you can attach this [name]." + H << "You need a jumpsuit before you can attach this [name]." return 0 if( !(slot_flags & SLOT_BELT) ) return @@ -307,7 +307,7 @@ return 0 if(H.head && !(H.head.canremove) && (H.head.flags & HEADCOVERSEYES)) if(!disable_warning) - H << "\red \The [H.head] is in the way." + H << "\The [H.head] is in the way." return 0 if( !(slot_flags & SLOT_EYES) ) return 0 @@ -343,7 +343,7 @@ return 0 if(H.wear_suit) if(!disable_warning) - H << "\red \The [H.wear_suit] is in the way." + H << "\The [H.wear_suit] is in the way." return 0 if( !(slot_flags & SLOT_ICLOTHING) ) return 0 @@ -353,7 +353,7 @@ return 0 if(!H.w_uniform && (slot_w_uniform in mob_equip)) if(!disable_warning) - H << "\red You need a jumpsuit before you can attach this [name]." + H << "You need a jumpsuit before you can attach this [name]." return 0 if( !(slot_flags & SLOT_ID) ) return 0 @@ -363,7 +363,7 @@ return 0 if(!H.w_uniform && (slot_w_uniform in mob_equip)) if(!disable_warning) - H << "\red You need a jumpsuit before you can attach this [name]." + H << "You need a jumpsuit before you can attach this [name]." return 0 if(slot_flags & SLOT_DENYPOCKET) return 0 @@ -374,7 +374,7 @@ return 0 if(!H.w_uniform && (slot_w_uniform in mob_equip)) if(!disable_warning) - H << "\red You need a jumpsuit before you can attach this [name]." + H << "You need a jumpsuit before you can attach this [name]." return 0 if(slot_flags & SLOT_DENYPOCKET) return 0 @@ -386,11 +386,11 @@ return 0 if(!H.wear_suit && (slot_wear_suit in mob_equip)) if(!disable_warning) - H << "\red You need a suit before you can attach this [name]." + H << "You need a suit before you can attach this [name]." return 0 if(!H.wear_suit.allowed) if(!disable_warning) - usr << "You somehow have a suit with no defined allowed items for suit storage, stop that." + usr << "You somehow have a suit with no defined allowed items for suit storage, stop that." return 0 if( istype(src, /obj/item/device/pda) || istype(src, /obj/item/weapon/pen) || is_type_in_list(src, H.wear_suit.allowed) ) return 1 @@ -416,12 +416,12 @@ if(slot_tie) if(!H.w_uniform && (slot_w_uniform in mob_equip)) if(!disable_warning) - H << "\red You need a jumpsuit before you can attach this [name]." + H << "You need a jumpsuit before you can attach this [name]." return 0 var/obj/item/clothing/under/uniform = H.w_uniform if(uniform.hastie) if (!disable_warning) - H << "\red You already have [uniform.hastie] attached to your [uniform]." + H << "You already have [uniform.hastie] attached to your [uniform]." return 0 if( !(slot_flags & SLOT_TIE) ) return 0 diff --git a/code/modules/clothing/spacesuits/rig/modules/utility.dm b/code/modules/clothing/spacesuits/rig/modules/utility.dm index 620ea228938..06a72bc3525 100644 --- a/code/modules/clothing/spacesuits/rig/modules/utility.dm +++ b/code/modules/clothing/spacesuits/rig/modules/utility.dm @@ -279,7 +279,7 @@ disruptive = 0 suit_overlay_active = "maneuvering_active" - suit_overlay_inactive = "maneuvering_inactive" + suit_overlay_inactive = null //"maneuvering_inactive" engage_string = "Toggle Stabilizers" activate_string = "Activate Thrusters" From 3a312b4a03472d86dd5deb8e5bbaf81e3af94de0 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 30 Nov 2014 23:49:55 +1030 Subject: [PATCH 15/56] Fixes #7179 --- code/modules/clothing/spacesuits/rig/rig.dm | 2 +- nano/templates/hardsuit.tmpl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index 1d85f749d9f..bb9be433a24 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -510,7 +510,7 @@ else if(href_list["toggle_ai_control"]) ai_override_enabled = !ai_override_enabled else if(href_list["toggle_suit_lock"]) - security_check_enabled = !security_check_enabled + locked = !locked usr.set_machine(src) src.add_fingerprint(usr) diff --git a/nano/templates/hardsuit.tmpl b/nano/templates/hardsuit.tmpl index 5b0603ee30d..db07636eb70 100644 --- a/nano/templates/hardsuit.tmpl +++ b/nano/templates/hardsuit.tmpl @@ -58,7 +58,7 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm {{if data.emagged || !data.securitycheck}} - ERROR + ERROR - MAINTENANCE LOCK CONTROL OFFLINE {{else}} {{if data.coverlock}} LOCKED From 9b5235016bec6ac545cbaeb61a685cc5ca0559a0 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 30 Nov 2014 23:50:54 +1030 Subject: [PATCH 16/56] Set the hazmat rig to use the medical rig icon for now. Woo placeholder sprites. --- code/modules/clothing/spacesuits/rig/suits/station.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/spacesuits/rig/suits/station.dm b/code/modules/clothing/spacesuits/rig/suits/station.dm index e524afbddf0..e4b9a212692 100644 --- a/code/modules/clothing/spacesuits/rig/suits/station.dm +++ b/code/modules/clothing/spacesuits/rig/suits/station.dm @@ -49,7 +49,7 @@ name = "AMI control module" suit_type = "hazmat" desc = "An Anomalous Material Interaction hardsuit that protects against the strangest energies the universe can throw at it." - icon_state = "science_rig" + icon_state = "medical_rig" //placeholder armor = list(melee = 15, bullet = 15, laser = 80, energy = 80, bomb = 60, bio = 100, rad = 100) slowdown = 1 offline_slowdown = 3 From 14cf4aa8e39a3c97d85c1d67ceff749b71283c91 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 1 Dec 2014 00:37:13 +1030 Subject: [PATCH 17/56] Refactored mag grippers a bit. Kinda hate myself for writing them the way I did, but hindsight etc --- .../living/silicon/robot/drone/drone_items.dm | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) 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 aa033cde55a..77b06a6cd5d 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -26,8 +26,7 @@ /obj/item/weapon/smes_coil ) - //Item currently being held. - var/obj/item/wrapped = null + var/obj/item/wrapped = null // Item currently being held. /obj/item/weapon/gripper/paperwork name = "paperwork gripper" @@ -44,7 +43,8 @@ /obj/item/weapon/gripper/attack_self(mob/user as mob) if(wrapped) - wrapped.attack_self(user) + return wrapped.attack_self(user) + return ..() /obj/item/weapon/gripper/verb/drop_item() @@ -68,12 +68,9 @@ //update_icon() /obj/item/weapon/gripper/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) - return + return (wrapped ? wrapped.attack(M,user) : 0) -/obj/item/weapon/gripper/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, proximity, params) - - if(!target || !proximity) //Target is invalid or we are not adjacent. - return +/obj/item/weapon/gripper/afterattack(var/atom/target, var/mob/living/user, proximity, params) //There's some weirdness with items being lost inside the arm. Trying to fix all cases. ~Z if(!wrapped) @@ -82,13 +79,10 @@ break if(wrapped) //Already have an item. - //Temporary put wrapped into user so target's attackby() checks pass. wrapped.loc = user - //Pass the attack on to the target. This might delete/relocate wrapped. - target.attackby(wrapped,user) - + wrapped.afterattack(target,user) //If wrapped was neither deleted nor put into target, put it back into the gripper. if(wrapped && user && (wrapped.loc == user)) wrapped.loc = src From 8857365c1c5c147f70facceb77bfc9d4fa169af8 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Sun, 30 Nov 2014 14:41:32 +0100 Subject: [PATCH 18/56] Fixes exploit that lets AIs use machinery even after cameras are disabled. --- code/game/dna/dna_modifier.dm | 1 + code/game/machinery/Sleeper.dm | 2 +- code/game/machinery/cryo.dm | 1 + code/game/machinery/cryopod.dm | 1 + code/game/machinery/machinery.dm | 78 +++++++++++++++------- code/modules/mob/living/silicon/ai/ai.dm | 1 + code/modules/mob/living/silicon/ai/life.dm | 2 + 7 files changed, 62 insertions(+), 24 deletions(-) diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index 01ef334ce7d..322e65202f9 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -46,6 +46,7 @@ use_power = 1 idle_power_usage = 50 active_power_usage = 300 + interact_offline = 1 var/locked = 0 var/mob/living/carbon/occupant = null var/obj/item/weapon/reagent_containers/glass/beaker = null diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index f5474c927d0..9e52c28133a 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -13,7 +13,7 @@ use_power = 1 idle_power_usage = 40 - + interact_offline = 1 /obj/machinery/sleep_console/process() if(stat & (NOPOWER|BROKEN)) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 3974ebdd503..32543822b99 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -7,6 +7,7 @@ density = 1 anchored = 1.0 layer = 2.8 + interact_offline = 1 var/on = 0 use_power = 1 diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index d9c40ce64e6..c2a6d996a1e 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -15,6 +15,7 @@ icon = 'icons/obj/Cryogenic2.dmi' icon_state = "cellconsole" circuit = "/obj/item/weapon/circuitboard/cryopodcontrol" + interact_offline = 1 var/mode = null //Used for logging people entering cryosleep and important items they are carrying. diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index fab5bbea6e0..74799aa672c 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -109,6 +109,7 @@ Class Procs: var/list/component_parts = list() //list of all the parts used to build it, if made from certain kinds of frames. var/uid var/manual = 0 + var/interact_offline = 0 // Can the machine be interacted with while de-powered. var/global/gl_uid = 1 /obj/machinery/drain_power(var/drain_check) @@ -197,35 +198,66 @@ Class Procs: /obj/machinery/proc/inoperable(var/additional_flags = 0) return (stat & (NOPOWER|BROKEN|additional_flags)) + /obj/machinery/Topic(href, href_list, var/nowindow = 0, var/checkrange = 1) if(..()) return 1 - if(inoperable()) + if(!can_be_used_by(usr, be_close = checkrange)) return 1 - if(usr.restrained() || usr.lying || usr.stat) - return 1 - if ( ! (istype(usr, /mob/living/carbon/human) || \ - istype(usr, /mob/living/silicon) || \ - istype(usr, /mob/living/carbon/monkey)) ) - usr << "\red You don't have the dexterity to do this!" - return 1 - - var/norange = 0 - if(istype(usr, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = usr - if(istype(H.l_hand, /obj/item/tk_grab)) - norange = 1 - else if(istype(H.r_hand, /obj/item/tk_grab)) - norange = 1 - - if(checkrange && !norange) - if ((!in_range(src, usr) || !istype(src.loc, /turf)) && !istype(usr, /mob/living/silicon)) - return 1 - - src.add_fingerprint(usr) - + add_fingerprint(usr) return 0 +/obj/machinery/proc/can_be_used_by(mob/user, be_close = 1) + if(!interact_offline && stat & (NOPOWER|BROKEN)) + return 0 + if(!user.canUseTopic(src, be_close)) + return 0 + return 1 + +//////////////////////////////////////////////////////////////////////////////////////////// + +/mob/proc/canUseTopic(atom/movable/M, be_close = 1) + return + +/mob/dead/observer/canUseTopic(atom/movable/M, be_close = 1) + if(check_rights(R_ADMIN, 0)) + return + +/mob/living/canUseTopic(atom/movable/M, be_close = 1, no_dextery = 0) + if(no_dextery) + src << "You don't have the dexterity to do this!" + return 0 + return be_close && !in_range(M, src) + +/mob/living/carbon/human/canUseTopic(atom/movable/M, be_close = 1) + if(restrained() || lying || stat || stunned || weakened) + return + if(be_close && !in_range(M, src)) + if(TK in mutations) + var/mob/living/carbon/human/H = M + if(istype(H.l_hand, /obj/item/tk_grab) || istype(H.r_hand, /obj/item/tk_grab)) + return 1 + return + if(!isturf(M.loc) && M.loc != src) + return + return 1 + +/mob/living/silicon/ai/canUseTopic(atom/movable/M) + if(stat) + return + //stop AIs from leaving windows open and using then after they lose vision + //apc_override is needed here because AIs use their own APC when powerless + if(cameranet && !cameranet.checkTurfVis(get_turf(M)) && !apc_override) + return + return 1 + +/mob/living/silicon/robot/canUseTopic(atom/movable/M) + if(stat || lockcharge || stunned || weakened) + return + return 1 + +//////////////////////////////////////////////////////////////////////////////////////////// + /obj/machinery/attack_ai(mob/user as mob) if(isrobot(user)) // For some reason attack_robot doesn't work diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 16d42b07dec..e1fa6caa6c0 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -72,6 +72,7 @@ var/list/ai_verbs_default = list( var/mob/living/silicon/ai/parent = null + var/apc_override = 0 //hack for letting the AI use its APC even when visionless var/camera_light_on = 0 //Defines if the AI toggled the light on the camera it's looking through. var/datum/trackable/track = null var/last_announcement = "" diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index 5047f87d0d3..cf11f2d2118 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -166,7 +166,9 @@ src << "Receiving control information from APC." sleep(2) //bring up APC dialog + apc_override = 1 theAPC.attack_ai(src) + apc_override = 0 src:aiRestorePowerRoutine = 3 src << "Here are your current laws:" src.show_laws() From e7fdf58f7f919d00481a78246c122b6daaa168e5 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Sun, 30 Nov 2014 16:00:13 +0100 Subject: [PATCH 19/56] Fixes #7191 Corrects broken id-tag. --- maps/exodus-1.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index 5ee52569bdb..01affdddc40 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -2636,7 +2636,7 @@ "aYJ" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/security/vacantoffice) "aYK" = (/obj/structure/table,/obj/structure/window/basic{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/security/vacantoffice) "aYL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor,/area/security/vacantoffice) -"aYM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door_control{id = "office_shutters"; name = "Office Shutters"; pixel_x = -8; pixel_y = 22; throw_range = 15},/obj/machinery/light_switch{pixel_x = -8; pixel_y = 32},/turf/simulated/floor,/area/security/vacantoffice) +"aYM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door_control{id = "office_shutter"; name = "Office Shutters"; pixel_x = -8; pixel_y = 22; throw_range = 15},/obj/machinery/light_switch{pixel_x = -8; pixel_y = 32},/turf/simulated/floor,/area/security/vacantoffice) "aYN" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/hand_labeler,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor,/area/security/vacantoffice) "aYO" = (/turf/simulated/wall,/area/security/vacantoffice) "aYP" = (/obj/structure/closet/crate,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/locker) From 0903bd7fc57c24e6c338b046ce4a8f45693f731c Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 1 Dec 2014 01:37:42 +1030 Subject: [PATCH 20/56] Working on some suit bugs, attempted to fix the welding overlay issue with no success. --- code/game/objects/items.dm | 2 +- code/modules/clothing/clothing.dm | 28 ++++++++--------- code/modules/clothing/spacesuits/rig/rig.dm | 5 +-- .../clothing/spacesuits/rig/suits/alien.dm | 2 +- code/modules/mob/living/carbon/human/life.dm | 31 ++++++++++--------- 5 files changed, 36 insertions(+), 32 deletions(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 20fab77586b..40a38621bef 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -661,7 +661,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. usr << "You are unable to focus through the [devicename]" cannotzoom = 1 else if(!zoom && global_hud.darkMask[1] in usr.client.screen) - usr << "Your welding equipment gets in the way of you looking through the [devicename]" + usr << "Your visor gets in the way of looking through the [devicename]" cannotzoom = 1 else if(!zoom && usr.get_active_hand() != src) usr << "You are too distracted to look through the [devicename], perhaps if it was in your active hand this might work better" diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index dc242cd23fe..dbf5131cafc 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -254,31 +254,31 @@ BLIND // can't see anything /obj/item/clothing/head/attack_self(mob/user) if(brightness_on) - if(!isturf(user.loc)) user << "You cannot turn the light on while in this [user.loc]" //To prevent some lighting anomalities. return - on = !on - - overlays.Cut() + update_icon() if(on) - if(!light_overlay_cache["[light_overlay]_icon"]) - light_overlay_cache["[light_overlay]_icon"] = image("icon" = 'icons/obj/light_overlays.dmi', "icon_state" = "[light_overlay]") - if(!light_overlay_cache["[light_overlay]"]) - light_overlay_cache["[light_overlay]"] = image("icon" = 'icons/mob/light_overlays.dmi', "icon_state" = "[light_overlay]") - overlays |= light_overlay_cache["[light_overlay]_icon"] user.SetLuminosity(user.luminosity + brightness_on) else user.SetLuminosity(user.luminosity - brightness_on) - - if(istype(user,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = user - H.update_inv_head() - else return ..(user) +/obj/item/clothing/head/update_icon(var/mob/user) + + overlays.Cut() + if(on) + if(!light_overlay_cache["[light_overlay]_icon"]) + light_overlay_cache["[light_overlay]_icon"] = image("icon" = 'icons/obj/light_overlays.dmi', "icon_state" = "[light_overlay]") + if(!light_overlay_cache["[light_overlay]"]) + light_overlay_cache["[light_overlay]"] = image("icon" = 'icons/mob/light_overlays.dmi', "icon_state" = "[light_overlay]") + overlays |= light_overlay_cache["[light_overlay]_icon"] + if(istype(user,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + H.update_inv_head() + /obj/item/clothing/head/proc/update_light(mob/user) if(!brightness_on) diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index bb9be433a24..8e57f7eca12 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -204,13 +204,14 @@ if(!M) failed_to_seal = 1 else - for(var/list/piece_data in list(list(M.shoes,boots,"boots"),list(M.gloves,gloves,"gloves"),list(M.head,helmet,"helmet"),list(M.wear_suit,chest,"chest"))) + for(var/list/piece_data in list(list(M.shoes,boots,"boots",boot_type),list(M.gloves,gloves,"gloves",glove_type),list(M.head,helmet,"helmet",helm_type),list(M.wear_suit,chest,"chest",chest_type))) var/obj/item/piece = piece_data[1] var/obj/item/compare_piece = piece_data[2] var/msg_type = piece_data[3] + var/piece_type = piece_data[4] - if(!piece) + if(!piece || !piece_type) continue if(!istype(M) || !istype(piece) || !istype(compare_piece) || !msg_type) diff --git a/code/modules/clothing/spacesuits/rig/suits/alien.dm b/code/modules/clothing/spacesuits/rig/suits/alien.dm index dc449f68fb5..5b35d6a139f 100644 --- a/code/modules/clothing/spacesuits/rig/suits/alien.dm +++ b/code/modules/clothing/spacesuits/rig/suits/alien.dm @@ -16,4 +16,4 @@ icon_state = "breacher_rig" armor = list(melee = 90, bullet = 90, laser = 90, energy = 90, bomb = 90, bio = 100, rad = 80) vision_restriction = 0 - offline_vision_restriction = 2 \ No newline at end of file + slowdown = 4 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 943cd6472da..ddb44f3a1bd 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1245,7 +1245,7 @@ if(copytext(hud.icon_state,1,4) == "hud") //ugly, but icon comparison is worse, I believe client.images.Remove(hud) - client.screen.Remove(global_huds) + client.screen -= global_huds update_action_buttons() @@ -1484,20 +1484,23 @@ if(eye_blurry) client.screen += global_hud.blurry if(druggy) client.screen += global_hud.druggy - var/masked = 0 - - if(!masked && istype(glasses, /obj/item/clothing/glasses/welding)) - var/obj/item/clothing/glasses/welding/O = glasses - if(!O.up && tinted_weldhelh) + if(tinted_weldhelh) + var/found_welder + if(istype(glasses, /obj/item/clothing/glasses/welding)) + var/obj/item/clothing/glasses/welding/O = glasses + if(!O.up) + found_welder = 1 + else if(istype(head, /obj/item/clothing/head/welding)) + var/obj/item/clothing/head/welding/O = head + if(!O.up) + found_welder = 1 + else if(istype(back, /obj/item/weapon/rig)) + var/obj/item/weapon/rig/O = back + if(O.helmet && O.helmet == head && (O.helmet.body_parts_covered & EYES)) + if((O.offline && O.offline_vision_restriction == 1) || (!O.offline && O.vision_restriction == 1)) + found_welder = 1 + if(found_welder) client.screen |= global_hud.darkMask - masked = 1 - - if(!masked && istype(back, /obj/item/weapon/rig)) - var/obj/item/weapon/rig/O = back - // Ugh, why is this done on a case by case basis? Why is there no flag for causing weldervision? - if(O.helmet && O.helmet == head && (O.helmet.body_parts_covered & EYES)) - if((O.offline && O.offline_vision_restriction == 1) || (!O.offline && O.vision_restriction == 1)) - client.screen |= global_hud.darkMask if(machine) if(!machine.check_eye(src)) From 76e0eb8504665a94c4a22c6721da052f6d645e8c Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sun, 30 Nov 2014 10:30:05 -0500 Subject: [PATCH 21/56] Adjusts captain announcement whistle sound Greatly shortens the length of the whistle sound by cutting out most of the uniform early part, and reduces volume slightly. --- sound/misc/boatswain.ogg | Bin 114693 -> 52484 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/sound/misc/boatswain.ogg b/sound/misc/boatswain.ogg index 65b405b31d871c5faa18c14733afd696358a7586..fba976d480ee338ad45f4b0b7ac57535ed0842fe 100644 GIT binary patch delta 48522 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 e-i;GSQkr#1bb2a4QirQ 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%0DN&mYjW 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

kgZ@iWt7ABJB@1ytq?lv-ga$xPsl> zL3R=uKbF#Ug}&?rE6Dn9Zqcv{qHRj+Y-}}kNKL$COiBtwiqml*xIS{PMl^k%Z%*4- z?EZ3b!>qj6NJvChGj?+3twr90uGsXgCKZyl@wM8GZ7Dui=H?P^7-f@Lurn|;mj-b; z*utiO8vG6hc61y7pjRcqyoC>*xgddHkH04F&)5oalLho zus*~qxt;+Nl=~N`*{kpPGSNF8g~;WlbuITPl^MCN{=RUk;A=|0O`hv!l5Km^jBA`N z25upi$pN?=@vdPC)T_Nn(04Vra-Odjf@CD-`|?_Mi8jvH`(V>0iTjrkuR= zGO6RqmX9xPk7XB$jbDe6_ej%&!7o-uSFKA-R03yRF%~ zWwTbOB};rXBE9RepiZW8g>#L??NMjxJqG*40zvkYmKxhH9=^_5?rEzcSz!iKoudU| z4>g`122F_vj}z-w=LcnBfJ6U`)5ciGv)?-}VrYg2b^mUiwV6bfq9)b8u6)CWgfHH^ zrnTx2mBVXpo0^FxD51~9$x+OB=hM5%*dd_;aK__n-fE~gN=_BP{pIEyw&Va9*B`^d zBoc1)$MAD$a>+$^Z9liNhj)c!r!>0LBbCH4)>>y8M1UlHn)m?Y`O1W^#CsS(Kf@lC zkN9%7N01w zvzLexp6azLn0Gy~ln$n>78yMOiHu$y0!1_xM)G6gPneBZArTK@Gsc&1CFSg`=UD4b zbII&3tyBpfAD=8bJTo_W9sMIS-CZwdM3{SfM3W7k>4SUTuvHBAy?JVSbP33ud;lk> zF^nBN+9_h+haknEp+^7*6~*@2F0=@4^^^E2;pFyD_GKQS)>0WJuPm-i2(qVQGo(7@ zt~o}C1Obd8{nE|fE@E(uM*lK0Al_*T+uDF2GMFD=zXx8;cTiAPRIX5hipui>bEcI9f$BQ#lQ{7t5IuGkaV?nB4G{NJ z_z-C6-ERKH#(CZg&ZJRi=bcRH8X8{lZ^for6QJdz?g-;epUA#LfSJhwvA?X16RA7y zd$h&eTGF7^s$ioH}Lq6fnhiU0s z7NrHYvd^_8j%zhjL`yg7t{8?jid!5|1#V;6$um>WgjjQAXT64W{()l8DxOZGVJc*8 zU|R<#)fInI;MCd;1(H&MViIJ=cMpLVMM70j%hAWwGJPk2z z3b1rYtW{gAU|b^q)Bf!;9p*(k0ExcAvzr>s6{FUh zhMsSfcHA(zE>pm$#w*;)So-q0-CfN41=JOff=K+T2+{YB`kFZNOIa|}IuHC%jKC@Z~4Ph!F~;3piTq8{{B(%N~(c!oo4 z$3C)ThkdAl=f^k(FMGZec(xQcar)ktu4PEyxtjaV4VU;z{kJKC2@h{g$o;;~f>ZH` zyR%z{PYA{tjc~MlZ2oaevfOlLQc*(qoB=7;Wdc~!rN?90 z-2j)-@7mDUX<2I^?FMZR|KC|AQ1axz+kea%I`FSzX=E?<-0y#wGwvXi;|JcoK|seB zgm8knw!nkHOECpY%2*@vUr5^D_u6!$G?vy^#<|#KNkM?SZ+`Oe&g@b+;0;iKF<+uz zp@fC|LIQ_{008JoL-blhO}?mkG(8lTGgG=~FiplENo3|4A^3a-znBaW72oBvZO9EYc3B1f9 z)M}LUe48rhSv*vm%hvW(Eq?E=aI8?w{6b!ocgdYc`na_ceumkN?Xj7?T0dkF?PQ3` zu=YuC{j-Y6liloR>LtDT@*fcOieU!d&8;j9eDx2*(+VRpO@27ypINwhDw{dowC9(f zb_B)ctm6ZTyMS}uYx&!+BVPwVcOl)MOvJ0-ski@JY)9@GdC6Irr1~Pi3@0e@*meR z*co&is5oTbPEZs&JmMA;Dn~}Ul;0aIg8UEwh~0@3Q)A}!WzEcWC?Js$;PDpdKl{w| zU-3F{gsrV{@p-A)FC$w!wCj|}ZtwZ~T6N5{_tC2AlhXutI@5dB|F64O|r8T6L>ngQq={PqMNZIeM>*zic zyr<|wp4FJ`k0GlZQVQO$o^tLoh)ZKtqCW_9x#6{`bpFTl1NS1)PD8&|D9CBX8{V?z zAK^%Ng0NnUTyeAp_U47Uue(G%U5+L~0VRHu+2eSBJ_6;_6(O?y_iF zz;n-#OVHn$xH9V%D44a8MX1sR6P#*wlU~;G${=BsFYY>Qoh>_Q{RTHZ0g`0-6PNQq zy;w2lk{i|4WBzOFEP}r|v)0@tla|jwUf;JolzyZ%GsuH?0)RXPO@%fx(UO}J&V~Z2 zvGmExRW9K8ukVv=sHiP}we}Ctd<>9)iY9egzVJ+q*2uNAXlZlx)fIdj+9yaeYf@9q ziT2jB zgW+XTpYo%gUpK98hlHPwHL_?x<0E291~w|Q`ps`lkL|6<8xcR1!{p40o&mNRrUY@S z*Riv_a6sWB>pp~WR8AXNzU3FFR*?a#H)z^HvNzY`Y;Jx&UiV-lwNPFS6&P zoM8lrj1;Qm-Y>kLVcBQS*H>}V^zYiM{D0o^(Z24^KCe>$fQ$}|TZ%Yun_2;ry(jS0 z93W_*n=hmgtHgbz7bI!=J@wwcYr>oQs82h8#9m&+#)s?aNl@Yf%E_*9ab^w1=DA#~ z=nSgcnNLHWrI|!o3U>o~?2Yc9+9$P;LS+yn1Qk^xLPESfK&D$zwFX+nf`;K_JPz-md=x0)MM2RDOO zEOFng;;DLjqqgMC*X~@*P9~aD4)X&Uqm8GRD9V~4J7Z6_prV7kJ0#8CMYY(VBfgTk zG$P21=S^2;IapK$iym0awQYHvG8oGZXE%UqVrE=M6J+>&l=-(p7?1}Tg9If+(7Cjd zjB5W!8+OBIfk`W8ZnwwK(tW|1LCeXD0MLIkEX><`M$-~1N~!&y!VG~4vS*vrE{v-x zn7c8^vEY|s+djEBiXm0>P)W zO11iAR*Q1mIayqVPIu1(@)ShHW9!%1?vszj&0GIy{$0v9B#AmYJ8T@EU+EWW<)S&^ zws$%9+Aqqte^QlKoL_^XHk8qNOKYq~wQ4GvU==Un2YoZ9Tmhu7EjJO)B_VEDs;Ak8 zc;`ot)0rU$I+V2p#5;d4;`%7>FNTfZZeZ-jcB5B8bx+77Gp3$B7h^og5A0C`dDXl!@5~oTl>*A% z@ngqBiQexbBEomRD$L(^u^#7eEzgeDV4fu>X{scle0`pHdqV5_rT^E053n6bT{VKXpX{Se?l$YL79e8oRQxHO2n!mfi2we$tY>+0N9 z1+;VvON{rjgYMJG6N03h9yPjwoet;tpf_x6ly!9bWXH@tHCk9YS|LYDH2&#aoAb?HGum;e& zKBVX#?N6#vnVAI#^?gKt7(ikX80-w7TOW+(5rm*R1WKS}MsTeMxc8I)c{>o*!S;6h zbCJ^nr+lvZG*U*?aHse=FVLMLt)y9N!u}Jm$^`IYKnbscFlCvWjTm1?s!4OZ$dBAi zA)6oKElSG4EXz2 z?JJkT`7>kPDfv2ixeraIzM6?$)TUvw{xVWE-!B=5nmA*Pvbv{<-B8P~r=zPQy=S)} z4;Z{;8DY5YeWwf+St^7M=zF)7{NyZxRjL8NrQCw|d`L$=7$i8B(E|6qznGxD3jlY| zRpH`^%AbGJ-Q@&hh%f-}rvPBsSlVbUESN)<1Cc^;j}OIu;AxMqyi=r+luzG}_io17AVRCmM<5C-wtY}xuA;D$N zyCy;P=f2z|KA(0e=bDmy`p*!Lp*ZhE%@0)NPpnIauY6FG1$m`TEz~9Sz|+PAUTfLA zdH0AokP%=?SA5a7`JArhoF2N$b;}+Y3Xs78w)Fu_-!0cfnV_@Bo}=WeeR0P!Gek znNqZ4!qkslqApa^di0U)=wg?JtesxHsI3MDj$W)~vQ~$?VN8tWnbbS-_3I#%qUoGe zY@5o8x-?D29^8>CssL#O9L@VfJ?6||ZO`NvjZPSRp_dUdgaHkj%#v}9_lZjIDq78e z#Bm!wo@ypCy>Lw6VAsvyynG5PeYMUyfukJ8C(i1oJ< z#Lg8lF(uZ)V4rHc+ac27w~_zEa8Ho&?(YjN4vpEJ8#=C&^U7{qrA4Guks$P*(oHDY z6Faxt)TQOS9g&7JEE*xRXrg*SMb_8n&z}` zd73u^idA|na28(FRXS26>~dllaiqz7z7Z>>{6t3!&6jdqY#?4ls4T!W$F!vp`|i=`A^p6)O? z#AN+lJ`X1@3d--TEUx)^K}blkUq1uP%ocx@fD>O|h{!{ShZ*4_&lc0w1;WK&@{$7n zG*)_;pFRMk*hXRacW+a{gxh6(a_9=A8?;fk0tH0H_7Vije5EVCntVt&so|K?GOwqd z{vNRTAIws&x8m=8S)vtqNX7Tx^rJCEon60Cg{kF@^+;4;@@Yq=T~XJfC5+whXfAH= zG?SQ@J10kN*;Zz4qRy!Qfc!ilm_&(|>_F`cvwy*3{V{eJ8wFFu zXFw+B0%csq6OBhI9Fi*OMIIit7_VGrfagHB8wE(Jh>Eh6K-RMtK7_rev9vN^umAe@ zkphg7Tecb_PdS0YFl^;Oa)-Ud8A-a9>x=V zxShL#$cq2D6L`N~tW^n8_K0YM_8{Z&^7YPhO3eyNrIYv>Ii99J>K{P^!`9|M8F3wI zYB3~YY8VPY)$2#V%4Zg|t8E-80Aq}sM$&TPzG~LWB0szeJTtX_}G~;?#)NfRF$Z3h3l9-h9UfDSJOJ!hW-BfvmM9L~FSM>NfV&gj^$CgNu8!$djeU-#y*JCW{L z<&4kda-ObzPyfy=`yA%0H4|~$J7Tj3&b15&>ZFDf*{%l{{yJ)G)_rHGVKh5F^PEL< zbpM2D0>L$p1WLY}vf{wHfOPu{v1q#8^!ZMN!#R~}nHjJYAM24E=^qUtHQYWXo}tJK zC!Xw|#Y;l6-^V~cYU5tST|q-ozcb@w_2{b8(Ac|Zz&TUkHv8=}vJ<3x^6HydU6S*E zUlRCh7zjEy_?IV57%1ri7k%ep$cNr;{AbCl|79>7ZUI_qtu^&Dk~>&%s2x;=q+PPK z93@|{VHA62J|hwyet)8g=o8Ld9P&ioMnYm%Zm2%-myCpl@g&Bjf7>*+yfDO>B9?vw zNjo^H2=HsMvr#3j;bwC#GkoG;os*$Kttu1lOoSMbUuvcg7J{FLa26!&8G-uwXEFSB=O_tNDnuilVG;W@wQlA4cO zYf6)J61G_ZId@Ek`s4!4jev6QPNdGD`sDL;1Eua8kS zK&0ESJQs{QIl9^Xfe6mFUsFNCO)Y*hmQZwaJ3)U#TXl5o=~pR|_)CIMpl~dZIucol zOax`={>#zhxIc?+sHIlhvcKD}UgdnftwqLI7_nJ1zt87z`TP$G5VVY#u^Fk9wf>$s zJQB$EXQyRb=F*E6t-{Dd2$Z8H7OBuU5}hse+?G|IC2>#lgG}F$bB0~#MOj6tvTvnI;%ce2>2rP4(P!%l%LUuj(G{)eMEtOnPPk& zS#?i{)R`9vT#v%FDz@&^F%C?!-q%zS_YbAJa;u@XYpf!V$~V$=GVNjoFao51*T1=U z9B`$7I$_~J7Z`#9F_;N%m+nDQ@Sgy&ngDa+)E`X~-SoXhkak*7_4w|hcNv0!Um7jB z3ypylYYhY)=d8a;jFO4>xo!S$=c?&HT=c{%o|qHChEs6VUD~zHty)8#w;QZJ)vX{T zs_I0ST;0#pa%1|g84ET#E#23{_AP9})!(1fyGzV8wY^0Nqb1NA4Z;PwAni|P$Glfq{pNvOkO$r+)7Z+zW_;~Px|xCy~XFaqKLxY zkofv^cs`z%M))5;hyViaj$13(F37>p%?PXGAIt4P2z8AFJ+Sujk=uNd$8OA~BRzjg zByEsfv}AWTlnbgT1H}?1Lyd%ck^iDi*H6VknG-fbVln}ja>0^cr=X6=@Q49)nW*GG z{I)Lr*E_0xO_Pi1^|TeJH;>^>28*Gc?V9i(1`twkYnBMWZX>V6`-2NU2rfO!k!JWR zjfn}-^URag0#SV+ij=6sGRndbDO5O4VS*0Oj0(# zsLHle8uAM!ue>{SO~<}javGl>ZaXh4*efU~C0@rqcwZX-NgG_`P3lVD zIWXJkWA##m*>^X9PoscD*Xvn-FpGXH(B5~G9?_3SxQXt7X-yddqdg348$k60QK<00o%BJU%QOOO)jG z>>Da4CK;XUd@f5y#y5ZC`$G@PJv98nkZniBVPX)_WC{)lN>G*?a~9?<)Ou*{rPjH^ z?#E>_iG7~4q%mu1^QEm7wA4R=`&pXwnd@sYArOdqtQ}0eOT` z^KZ>OWvMCBt0|>9F#ot5wEgugz;H$s3(1+M<2&E`NGv${@amI;0ihhhAs|8nIq#E9r- zinZQ2f7VysO%a<`3E9vHhLK%Lzpw@sUm9L&W|2{Ic(brKiU)cL@QPPx_IG0w`uT48 zC5<}9S^3X1RJJ-LLKp`#M!%3qwU1J%vwCv4SzZh@DaZR42#dzv=OfM}JGYd#P~IG< zI>D+k%DQ!CQ8~a~<+k%qCFifM2SW#aOo*r4FDu?9eUV1$PUcx? zU(h5~XZXKv4vjE77#nL2ay{zw{JSzN>3J)nqea+LYwTNhfFw=&Y|8G6J8;Eiu=y#6 z=ZNZJ9PX6s`Ha-o(lsK7AoB%kQW0I2&=2?{9Vkltt=?_-+F+^<_rB$`1=U~2H0i}++EaaqrC86SuA5B-tiDlk3+bgX zXhce%srEKr5Ekd+4Mm`>pNLX38xInqZD%OWOK+^fEBJIGijGfrJ489KZ zie(e%Ylz1ix;F@lr+Fcs6C$YnI;NA5$Gg9yMN2;0iWX9Rb;nPRH^Dw`_;W1;`wq<* zp~$f^m%EZ0nsii;x(+MZVD|!t1Zfr^2dC@HYsCqD$363J`^*CI;yD!X?hxfbEFS-u zhwhSIF`0BPnLy2O{3Ypv2h9QZO=ON8WF%2qmzW-%V~QFI;$^wls>cc3)5YK%Atbbn zD*74H8Ej^Po7IXb=sZrV)dwBbP(G)j(l}kkQ8sm)q)lg6P z%-Qo(;yoG?JO_Adpn{zL1prraoM2RUw5wyyitF}mTccF+KAmL|KUa3zl&@S-{aW@9gBM_4O=zqACR0W(Xr?E;;|CJ2 z0>%i4hFn8Ub&^G!1g&0kk1?#)M&hfC?3LGrQ`B?yNd@IvOeGfYsFkeYVj4Z+(b|Lb z^D6P_b=py;YTHCreu;N&lLU+NOk$Td1Uz!UoBm7G(~|0L)?cA-q$YhzJ`PG7xL(?R zK9}11UE1Iw%EQw@%{ZuuJQhace z<4U)nquCr9Tc(M>j(Xt(e(Mc9!$NQU11JSqq{zK`R7BJ=yEv_G(W0+n$TIt%#a`*X zIaXm$A*s(#qLWsG-#Y*=1pxvKKceA(LdQDTXxV5>;YD7p3A9>#*49|-mGmMQl)o_l z+S8Dx+KXIeuz$C2Dlg+ytxdi0W=4t%V5~61`QI-m{`aw(u3-KLcs+9)kE3)3(ZEyu z3eo*)zqe?7&B?y^e-L+@A3KKJ*TM`3W!2N)1Atk@z*lK;|70e9*-<8wQRRHQH_Z9( zeB5K3R6&*@cc&+l9!9UW+M@QI1c`6XJdk(yqkVI8$u1_$3c^FBEE0zz#hcT14@I3X zL>CM4hS}Kco(ROq#@_gnrQy-S4{F==WO8m8Q`wEGZJ3QQMpP2OKs+^i} zsv1|)Yf5!}q5C6LI5BS6Q%(R+DSYd$1Pf9>jW+#4NxxVw1RaEM3$RVZLozKf23LOaHpb1(0)K3{z@X#jmv90cMc-fxsz zS$cs!Ijp}4|6?l9XCY~8%U&oabhn`O0&fPyEL1Gl z4W-vd-y`D}b-_B9EbNG@!`9`o0y%JNEfIBEb&ixNzElcAeJF`4%Dm{xKL)m1h&UK6 zn1EC(&p$h0kbYurLM4K;pB~0V$nYotx7K}#%nNnAcpBo4;q;aTC424@FCFX^r1c*m zW{iYs@nzigOMNfj!KEa zUS--EpjB5g#dh?oufveeZ$uf{e_t}rj}7;`)<1Q2I{kYZkm4c%bZ{f{yCH&58diX1 zYs;~84CEho3$yT#K&b#M=`G#wU4b)Vv=s7c+Iyv7d7XzJkK-UUnq8OfE zJC{1Yc&>0Rb1r|52Q}B}PR)oHe6fOkc@bp^e`*Y8C^_x=;$c}jdz?n=gI+KKmm6n5 zl_%evAykzIglApbd*=7s>%s6%?yR1JYt%Gdv{B=8wyV5bJ2~HL^iSb;5>U zaSRS-ByC=TI3zBF)L^=7#~wvzBDDW!|hS>LrLH~7wcsQBB*8Fcu z|5D#j%fKY!T53%pk-d2Y5Uo#@f$D!V)ij8*# z$zRD2%zs$y&u^`86}7ZV-0Cb<1*4a`g)T;HE=8KzA+zYx^NglfK^1ii-bSg`6xGqu zzS6w)+KDRElMC47Hgg1qFT?%w7&Zac&2PdO=lHP7_9hizj5LPNk%fUo%6P`2dCF)5 z5r#sdt&(N~Pr!mmx5oHTj|k1SPfYe$OnE}xzxyoZr9bj|f<}Tgua_plf<8wrI%({f z+!(Og0fGc*a|Yly?`T2D`N{^%U)bgUdhWWxISRH#6z5t7;8Wt?_Q0Hrb{{dA6hs{T zJoaj1`j4A(-5WvYOGj+0Tq=f8-WQ;T&_*EfcFEldCGAmu6R$xF$8D>m_a?ODBnhDE z>ecrr-j2QKCG2bK0Ny!|`wUGOM>G`no23cYMC+U;Q#{=GvfZd2lVuFS0%%$ip!2LU zDS|f&1(`g$0C3$H>kM%ct1)_QRovI@hn2C~x_6}W3ik8r464&*rT@e&<$4)}^nz%k zrB&Tw=u0iCnh9JFR0dlaO_eCuSQuaF4;$kHl!|a(FDa)oZr-MrujXNY6a;Ny$xCvH zPQfq%-C+KIL3JuC`lo5ZcD5-oIKXf2%Mvhob(g`@S#;+j*{i-z{L^h8S!nmew;WMd zax5PmKl%8f?;q-vC@!?aSohXl;A^aD-LM(=#V##xIz!+NX(2hkFTCUXD341@-{4cR zQS=+)9Xv~SCgkTw4y=`IBxITq|F(A6Mbs}r1{n8dhRI<^i-gC@5=`re)`UiS;N*?; zssfMPvQxhYA@^lni?~f>{zA5ZW~3z`thVLb8z~O~3J`HKuoizN78aZ~4HZ=rH44X9 z63{hAfJx$jR~DNiEr}H!zzcQStu_zy(N}&!yFY29qSiKb@sF`v3Nv!Z0c>nYt@Lr@KLh_pGCWeZcrH@yVBjDfymx}%pTm<3lFAwuM3rbr z#~%f)KF^}KA1PN3JV^VsV&Ni1`u@3!h7Tb5OqkPm%9m!Cbs>Ome!dd%HBfp@*e}r! zhL7nV#*|zo2DR^SKI+sDm|7jRCXP11suJhM-ucFQ8s1n6o_&y2 zR`nba-Q7CkV#t672z@*VTt4ooZMlH+NqoSka(d(97Pd58i z>MS&yQ9H{a=n)$#pryB)mS7iO2N%_w_G6&nS>1j$arOD;Bd%vI-}iJWT+ouW@ixm7 znQL$AFx}aw!sD|{WA8`b=+PLgsd#wod~K_u_`IcT<#5yTYpYSW{Mor*!(n5C_3U&O z!t(x$R$?aCs(V0{u&1;G6{)UfG`TRV;^FvS@q}boA-~sV!y& zA#KoAggbVU#{&Aw+ED_=x&es=mZhAB8z@LQ#6k8FR_$iXr@=9qn!-0PpZMBG0|W|T zVEO+sb=}ca|NsBmo09CTL`wGFl0sH-N!jDxGUM9oeNj{@BIVjt*9?)pE|QT|=EX(U zHE!3Q*Z95l`Fy|M-|3tie>lf^dd|o5@p?X>hjmGI?3C~SplWMk_d>2V5zg>d!Iwnx zE@h7mw{&wG6u9U8fRx^Ytp3iOpg~HHKWJR5Jr_u3#EzJ3``T!?|k{L_c#N^mjKn=0jsG3pU z=gjQ4P;b;=wz@VTC@aWr5~g zb+!|sSg$|1r++?MIQJEvxlTPfx0_&vqt-}Ox%#0M_lJ) zym}&n;4C+J2mz`pnfXQ;u*`teOr2J~1>v!x#{0M;<1M4LDrIlXkK!mn`N!f>XP7; z`{<#O3nuNA!d}DGzP!c4m0ui3@YRVuxpH?>Byjxtl^@AEaMYJmvDqrkOpiAn53%Vt zD3cLVyivGq|F-NQ-MOncAed#C$pAA^4PWW-bqYI^s-8?e+5-6;_Xk4W5O2MWTQMa!Z|J?a3r!RTuST|7vAkE>ZAOdo zhg$>N#V29x3!eoaNdza)FlcSRRbJ`z`6DAoqR5nd3=2y|%2HE&1?C|?r0ox#7+46B zfu%GTIAK4&saBwmu!v|_ao0n5gyfFVcKx}N?yb0-6{T|*YNi%^h%TuI>pQ(&uQ{p2`OV`4jDb5aNmUS#G30yaEL={ zv8j{}LSH}AQ!xlk9;!*Re*7t3bXn`{+(nvKg_vpmcNkmU>r1*2$P4+kcJaj7)A(Ke zXeUChz-ZG3u&lcX*|*%#t0)*7Hdk#C7VL7pA_nHmX$ZiJv3G(i^ixz}!Qce9Bpj-_7=LLEa{-xiFi&i#G}5BIU9Xqr|xzw|IA zwaB3E$E3XKl<+{m<7!aC%wW+4=Y>WMW%V)L9pdCx22kK+yB>;Bgd6n`9b0(w@CEq; zQ(nZqZD92e2Y)!w80O&FzU3R{IaZ6cp4N!+yqqU-FUB`Bu^;=xrcV0WHRZasF^^(a z)X9WmdXnE{ttf-kx1y33Uc`4<5&M@@QBl)W5VLaFo{Sye4oEjyBGbBO`pQ|tAs>q@ zV!+(I!RSuOlq?@XE$nQ4Yf-?k^s%@*!wvmp0&w?oHW^buCw&i*nGKRhBLF#dw5pj!2b{M`~6UQ+NCKbhU01i9r|&2#kgiDa*zbBC_6_A*tMOu6NBc?K+@* zOxU3r*)`izt}r*cG!%Pd$S^2SdEfeq4Ky@?2dz7jX1HuPJBG8Z#l=H|q;sRO8z)%Q z!S?*2*Q(pmIZY0ZwN;>7IcnQ^-55MgJIC?HaOb9TU)Uw7Prj4F(d6A!s<_U~W+}pi zAJg{y0QMN$T3YyZ-{LyrRnyMM3gD$UHI?g7J2Hx$%-I`Kia5g}Y*<;C=OHB6a@#^~ z;NGa@U4x$YKXq>Ky~!K0{N8_^oI;CIi=J=9-1*{~(LhZ%I)`2WBL3HGV0^MXZk+%< zFY9lr%W};gyWd*Gq>mXhfUzQ}`XYbO*x!6v)jvKl^2gEga3hoiRN8z=&kn@W$eRB= z>B~qn3Z_r_LAsrEJCRt(HyS|$5pTbD9PuF2pQOoX#DwbXODi;NjyIowKU*Itk(=I- z&v(yFIi{x*Q@48Xr?Z0UXsSF@wKeBzS#;HvPdH)q$QaEJX@nfI7hM^TF59N;rH3~H zMCv=3n$d`eXhD`ZKxhFGV&`kD*6tT@Gt6z#!RTvwM@H}Fk(n&&R=&8#_g=y;W0~Cj z><~=3{^(EB?!jq?Nq<%NPV5wS_@ML=e|(laLcd0u{Y;A&_idQXEnQmln{USdCdSHJCQ+(nZaQsm8kWrN6$1g+k zP~nK==a!-_-a3PeqCsAQ@Hs&X8PH`xql1;2Kg(-WBoDpj6QwkzXf!sL+zb42mfk0r z9Nz+zkE&P97v`Ne)O9>r4zJW6Jgrmx{m~dYT%@k9etG=_ZhENEL}hK1DZ%GNny`|6 zW+;-_wHx275rcYyIUSD~gB>FNVz%)MVGyS_1 zeqoY=bA)UyFt>N;wRh-Y9gyrLy@Z+x(y#s5`KqksPI|~m%E1)SM;&bVwX=98mpViB z^VKP1XX&J&S~$A=0SgqWjDyOx$>|~%P)CXvPbg2u3ta{%q)bhXY|Ved(RvFlo87%N z3az_5Ke>J)3SuMbCmJW( zCrT%3e@n=zp<4&RoM?X<-1Z_L(FJ1)Ut!Qs521-&Ach;5<}hvlSUbA4Xr6G9nNAhK zlItJ7LLOPQ7YVYhN~R8Xe45t$@l80UhAG@G2S2_#><1_-15SZ^6H^Pxz_0!>{aIE- z--1XSgGF=(!D~l(2;VhH2ptbZ;QL(aswOMJC9Ls)&W#&{AHlvlFv=?%Vw?FzGNOs2vL8~dPX*U&_ z_1yw#0chBZKoW+ ztNRJvBczWYf~Zx^rky!TQH^_nkSH382@#k&EJO}s(>al*Y;;qKaX?+(*l5*VM7HMV z(Scn3;w7<03ywtmzH8N-EL$hcGO`h9>mSgVLpZMI2OJw=c}(C=fr6<>(2G*Zf}}%w9^ZJ=U!Dv#GQFer#Ww(zH61do$a>L?GxxP?trnReF_FxZx)XA?E+0;i{Z0)1@rOj`(6$SNyT>z$RQYt(ozD+`W+l8{i8idRa9i@k&IOc0*G+nIDH?%f42immG34;XMGYec<1@q=6bTT>h~kFOwXG? z#RW;+K9d|SZ4cpM)e5Cot8^6A*pblh;etumLuBF~ZcJThxO(j})iaUwSFy+^WdF7= zENjsfg?m$A`=U9Gp{$55u;Te?kreM*NY4r)18cEQNxkK=PNVz4-lXkyMKfLK?###B z*J%H3mal~yXyK+T|_i(F` z%-fKXZO6UneK{CdG}1e37TfY(T2Ynp_ony^h&4tffWV(L^} z;`J$B5?A77EcXT+B62t7AWusof_cBA+GKs@g9=tY6_!yaJTbqcnaVUYgw>Hwrx9Tt zCIYsv3x{-vHDmHwtjgnZcYAJWZ)=hssHU}xsD3NDV2UBr*J)yfWNT7hvvRT2XJ*xo zA10FoScN-5;mmC_)!+iTIW18!?G~9X zRw_fC+}~?L=u`$*o$J!#kfPuA>-}wIsZxB=g|Wl>FS?!2r#EzCjLrLMVyvPKWTuYt z9f93v>IjL=kgBQt%(Dm1i2>@$QMp{PKmfabvm#=5C&_O&t2>AtKPa`m>YSMFMGVh^ zUzu|hCB>um~Ovj>)tlm52lkc>TlybIc31Vs+B{gQk|Ux-T*(N#-tv z!K+7unoYPLtWS3RzMQGrCK!1R^J9VpfQRHu0uhwYp8$3Iwpz#xMNXz?XE)4PAa}HA zSE#uU6}_Ss*@MLB$f(KKkT-qznbyAPL}=JUAR&-72=i&4WBVJZL?O>`8QWnNFi`bA z7mVHP8H<+r#9m+sE=byuQAcsosw{CXl)Ygtj#Y;cJ7hX z=n}Evfp>P)lG5j}jy?Oc$D(-jlB>U>q2BI*ya|z3j*c;>Ys&km2YuCvQTH=fqn+2X z<-~LC-X%X3nh9tUv;kNd7z)W$0joO=QLM~o1k^q6p@>%Y3+(MlHyw<~hnWw|$|pf{ z6>`@(d|vc0gv_qY#Br^3vy*J>N{v||55=hPOIzA!M3Jn^yNyfi-xbetcd8V5cHE+U z)gQ~$@r=iQ>Yb6&UEQla_XD5>qLJ~@JXH`#89g2NHXp32r~Mzt+LO~*)owDRt#%Ok z$PWGNg&r<2c;RMn=hS|TjMK>>3_DR3ZC@rV?4rM;)Kl;I6wdbWmr3L4k~@ltJ$c1zbtkj!}zGBU=~9_4ge1DioGa6wpr zoY~M+9$NAG<^x$5sGp7u9fph@LLs%Y&c3z_d(^Ckpxfp@y5w#m3JZSJ)7J!a*x_1D z{vf>l2uVRPvlbc@fy^v{p^nm;HLE*~;oN90my^%IaQ37}wF>xR+ccf*HpKN_qZW|A~*Cg2%FGWE}iM3iNlA{SX zzAK+p>SphG0pm#zv1g>ZLm?^7FJK-zWraJ__JUrl`3!VKaD(+Hd7Nk7wf=YAnrrRP zP82*Gob}YSOa^Jh?FcM_rC)zwY&0Od2KYY^2PKdN(RJwsBC!SdMLFjkb{#kLVzsS6iE2qFZC;L^aXWZR z5Xz!E;F}^|53CdbR`SBuNwRWKQ(wwZ4J)1b+jk9RZ|8P?E^eIKje9;N7wYjDv)Nai z+fl>%>A+4yxl>G`LMW$$?1Yrx`4d$t$s-!~WV-x{0+k1ax<+NuCqthc5qLbh z&3Dx(UA&-r#@Vt@0$oF&ew2Gv^apg&5bwL;72CbUMV*j(#hi|v=zUCPe}Uzti}m+r zX25^0@Hj2~epp26iH+vCOaxxFvZGJu;(+%k{=>^3sj8dGKDll0stYHd=ofE(x|$lX zuC?%eLat4}OjW}V#hsQ#0!~bN#9{Jb)9y;DWG*d@7MB$stV)z5G3G4)$gf#wh~@jU zxq*nz$MLyhv09B(_^N|9(wZdVZd|ryIiSy%@?7kfE;%YAbTSO#ckJLvt-$qDjxq|E z*4Cz&&K1r!LB7BL=_`iukV;?in(#e?YeQ$Pj4$T3)6VX8)SaV)luoWr8P zO9NpZ#kt`r8nSR00RLbW+F+&o`ZLg6e1xd9ogP_u|9L;3U|8$JTr@pzoYBA%OgywT zr|6rg`OTU&CcJ1g>x}Q!_RyrLsu!Pq9$&(x#JSr0dp3NT?LOjVHqq5ldZS}rhb3_<(&AiVDEHyHYN3-D5Bld$SIt|4qpb(vd$@!s#W zSgW$MAtRoTz+vF=LCcC_>{#`mANm-@Zg(PZtfa0vbhHKS4^q@(3Tq`YtyyLAT=SHZ^`KYZR)@&EI+n-zd6tf^uTk1716G#(DD0v@3PqwC_(*Q7L4PCK2#)) z+V@+Vzw;s*LPl3jJy8QOS9H`(4MQEI19jkiE@(KjBR+W;SqRsRp=hFF=EFF7CumNj zqF2sMED*guWG)rA;uNC>QH-A(9-y!_+gC0xtSsT~7*L|)YC6i6xi+|ovzZa&Hl_bx@e4B3#|`{6KI;2S}`X0yS! zwP2RM%}Z1^@?&OyjHD@^ z?$;&1WOrQj6hrGhE3PD?61+W~di+a@K>}b-a8SPFJkUX%1vEl9S)KN|#I@>#4=UL% zrPlV-f}P2~RTZ3H!Po`oSIz0@=kW#5p)uD&sF-{tvltfy77qz!$EspA$uQlv&wxs3OjA=u+cJvqswh9`i=+{%tn8tAblYeKQj_X@KgRo`a}%;UjqOsDRLm_qIshDA9wu+LH!8A zEo)Db;tMQ3Z=dD-_PMLghY$vy~euc%K}grgca3YwCfceZj8`Pu6L9Bv_F zmj>iXf6}U!ycAaLE;M2LI2T2jB{D<-mjhPOZ+39m)8mzIFKaRWDU(HkDLg+hVJ5 z66%vq@ql@Q+K<&uM3XW(nkfJ<6q2pKb=cdmv|#`98^k$e18YW`cOvG1QFDJTRhq$(cr z$d{YGKo{PX0eO9ayws4_>!XSbFA?d8dbC~dy-(PmXaKI!_ULYOXNt6$+oscy!k?s? zeOxA1Y7Wfu(`1HBdz+jPK8nkEk5~}I8@L|ciSkWXPlBe3dTLGoLFg6LIx`cGUm{cK zDzynF{Ao#Wz7y-7BK6xAcW7$99>>(&#R!$@Ad9>Q=$&*I+Lt2Nqk>pZ2$+bFh(BO230SU zy4ttzlen5SLeBuf>1{3nH{LlW^JDT2LkA`tgpis` zKHINtYKD}SkF0a8T>z-(cfSy*%c?MtCl79%LhKz14P8#yW_$OAknYtMh8gSQ-)1hOg~9@X~F5g1AKk89b6C)zC=qCfME{)8R0k*`O+arsTzm)R77 zhMr7+oed3XC4V8H_1D$F^agI&@(Y2zRk21x+EcWpykNMB{cN^Dr)v}!$T9|XI1%B2 zhq8FelFQ$nncDTQLO1X3O_AEa&^M~CuuW-rJ_ZIMh+qynS3Yzy-)OfS17o5xP%ccwS~poT>T94j)qgQ+_muvfd_cizcaa&SZD7J-*x+anv2~ zW$gUdoVhn02*il{XwbAt=ON@;aPGqPPh7|Y_?V(0;v_NCwK1UDy}dX$?qej(-WM`_c$4_+lp%uGzW@!VAK%vyG=WEMG@0Av$M^ZUEJFtuh1 z>BeIiZrjdv6hrv=~ z4%r|}lZ^b2h*tNXS|fAMm23j!gF9pA(J&Vw0XT?jSsP=$?L)N*s{7Q`ry&Zq(5DLw z@GEfqCC`vLd$*#X^0Vt#5&f<_DGIRvvnEH{drJk1cRwc7*InAXu)LbTja{c=`w68; zYs`v!!-|wwOoYhkN>4;3!kJe%r^%!!9ur!uuC5MA8~tt<4k?dGtWze1WLfMSQ@^SZ z-1u739hP-#gswdd_g(FA)sN0iSPntMu-RF?wJCaaF1`-P!gGnJVl#T0Zqfn|U&b(y zS8f~+HgU~77T>6b>9{R2%LTAs&F1Z!sU%-BuHcp}J zi=pKPOXaT$#g;Si0uUja$NETe;IM!Ng4CD#f2IP#cjv#mi=_DbPwwwk!aVdWDzZKb zgXt`mh8I$m4TqSx z_KNHLg!_lXCflG8tqAyl`u6pC)XYwIY6_R!jP)pL%Xc9iOK{{S5@voFnuyF%Thmc> zH`V~a?DF|Cm&$Z$7E?-AS9eMe?kVAooBB{(M^>CO?2?P%WeHX%$n^QhdmS7+7>xEA zq-G(PXm)ls(|J8@3U){n`Ds}G-HrWSeE;KahFQa=ZnxY(5HCObtv)%Z2^;}`j0x0& zfM>|v66!)>l<7g}p}|~#KR|(QB;U}LXtB_rmffG=9zHR|-#D=S9aJxZ*prn}KwPU6 zVP>Xm#aq0SDX2}{xagmvi^rOe+t*s2?*RcKI_W~?#?Je0vB^4y0wmlAKr#MXcNFO{ z%Bmo*%LW=3gAFh$uNmrL#NyO3X}v@-Z|#NN#{Cf+-0C2s63`43PliZ{hBxJv$PX#& z7(W%gs`!Q zAt_1$YBDYCXWt|L@Zx@2K7dTxUYChF-j@t#gyHuyohZvrINE#nfX;n{JLk;h&%&1* zAW>RclwXtGb)i}SSPlLzd%)cy@$a(d;4k$4ir#hH)Z?0P#C`c>M-T&j9n*}D+8kDq z^(_7Vg?%}|asBX?d~^uI(X+`q&3m@?qJGcvej6rQ_VvGw5MOR^Ihu*1!I;GLSuSE% z3KTLL3sdkGw&~F+VM44jOD3Cr%g%kp_1RND0e((_n$dU^p4!ftKXX|>b0(6og3rrD z2R2xTPqe{Ntsi%&l+ab0;gm!>P8ey2aIfM-=J=?L(R_sej*+O5vDJQG!?<&!<$>L$ zOH@lNtH1Q`ww3NgC!?C01e1Il8aiQp|h^n)x%|oIg1)ZW| zL=Wvg`?A7Z8ok=dBA|qyoNu*yl+IClI)Y*vsp`B?l3PcmoH$qGc2HcXI`tinA3xiB zn1SMlGh4I}?tV(Q;ux&ifd5)iYEFzkgh>t<0*ohwz=@%w_V4(?!x|;J z>o^_->*8ePB)@Ar6AhZJxh$n*WthYHa7>IxT})&Pg(u@WBmtMx5Rp^cxNq?`0Yjiw zv5SjRyW>GwR9V`NjFfpV^hD@wwX{Mqt0cXiE*ZB41qkJx*3SP<2$v-{Y1AB|3-Vpt zfxP>l1+9h(67(TRggbdaz%=Z2t>Y|ugkvRPT3%M8B-rUi1F-8%Zsez0-0l?~THbr7 zm|oqzxrG95g&|w}L;>^LahheKk^77by>Z@YVqnHB##Lm@PW4GQlT=#Qh}EFOh+_Lh zFl^D|B=mDpUYY+2egrSF)O~~^rd!Pd#b_4HZ)--iI#}vUG+?Gs)!sOMOq1-0{)$bT zV>MpnYksim@T5fXc2s%o2;Z(7ckaUr*4L=N{^rV8gY>Ru6fAUw2QFdls$zqx5O z>uDPgZB?&24+%2W`k*cFb|&Ix#Y)03t>6xdYv|cCuj4kC$}>Au?hKfYj)cKqz%2IO zFXY0ae~S0>9~2Q&H^j;Hx{{F$)U^Gop4?Nro*v_MuLByC{ zX?(5po)RTfI1cVzkm_99TW{t3={dTvME1tpD%e?J+wV!w&+J&^79K#H&A#@MS_q_a zPU>kXWI2_y#rZbj0Dxjus#-)7zxFhu6ESqpO#T(2cd{ulpYNcq28Nd9Il;R52)wUT zX?|5)bRw$*ocOF#wDSkoGV~9*L1EWlrS?>mf7oUi9zKz`q*{&l{Yj_0*&Bl$+e~!d z!E`rd2f@FhSEAGMKh|yf4*EiML~RP0!z*hGGF~l>X3Ejp0E*@=@E&vgVB@vMZ>w8v zz2d~lS7#w+G?=s5Sy^=TA4R`PmTrRZBGQis90bP%t{SvR%P!e?CP}3q3OqEvfk<@V z@{);kz1Y-s6YnCfST9UYX`gIZ0HA);JR?TtI{`R$PHku-c5 z2OEZWNN*PuCFXaEyhC1b_CqZx0{t9|)=aG^>-byA>hl)hv%OH`Ulk^Ir?O!)zt(oJ z+Bb6Z_R~<0ezuBsCUeya)Dc3O7A^Y$RKrw&#>6uQ@vt4 z`H^iATv|xqxwM%rllx&BTghb7W?tjZ`wY(vB(iQ+P)WW%&^!hg+{d#jqaKJNV&C`8 zIKNRzISFG-g1zzApQVxmvlRmroD5a&#Cs7Y(_D1I(F)1z3#RnXr1ixZI7oWHn>iCc zI>`6Vt5MAqkYClI?B@RgP-_1Nps<0x$1+0>4eyC8NKKIkKUG1RiZ=L99mG#0!SB>g zq)%Iz(-`MXt^+ByFW>J|Fn2#0G#ujoJnZ_L)9h=C0k{*R0I6y~gpHSnim{zfpSC_g zCN~?Eiv(>YvXZKe+6+1*}2l4>s?~No^3iD%@^*xu* zx`0vMGK6lY>f`;5!xSp|urlQny)qRwQx&_0*QX+@>Resj?vv7&GM=UJ8Y_zS?m-v> zbV7a+hwQ>tZNhOrRpp3Ir$I)eUupn~e9)>b-nwyT$A@qt+qfvi&|6;~m#0%xXFMq) zDWiG2SklTS-sQEerqwE|f6Z#dQovg=YZA?(qg|(>OzFKnNPG_xN{M{%*)YaD=xy&w zSO^*IbdL0(>77t+nU${NPo}hIxR|b1y()ba66ve_=(0mUjy@^d?4nXBhI$eJ6C+#w z*1wDIfA&J>?#e?w+_*h-WIkmZ=*L4K-7m-(?;%yy+=av)6-w62Pxg+ENtgr8oj>wX z0eUJSyBG6r2h?nagNKIRUhbXPxAf|J?*e%&j*;q~X!v}PUfA?T#qgctwbw+&l_Q_= z7~gawb?!HACz3QqfQi(qhMCbH$HV#Jf=)OQmKGqb?49ZzHfqfuFmN(;WHCVc6Llp( zq};~cMRl!(7)C`g^I!zz$f|&+lgPIha+<&yVgt0-c=>_86l_L!LKAxgrMfB54! zWg`o9%{rE#v{qssSH~aUBVUWFLw(@|_DkveOXAcib*@*zmhJce-db$c{|D)HRC!hqc7m|CSb^kDm)tO7bht-W7wIz0e17dQj>b^7_3EBvMnj#(_0>l1RQt`vN>V z4k#i5WKtrtqchV8Y8yN#5BTrl*4Jbbf{@4en#0AxxhiGfvmnNC7pUNQTApj|R?+t` zU#F_eD06jA%Qo#=%+sBzUZkUFFGs&A_Tqx-^)TrA`4{-gz)CfothcR^g`Hnb%~7I_ zl2hZcV&x z+fVUt-{kJl)ho;gU(>psH#+x-2a>k%GsA`LZ4gxtZ9*1#JdG6Ve-UQjUvR!r9Nc{i zeH=S8__NZ3Cqc}k8Z0jmJ`6?NmkDwrdW^XjW4OECPCmkwr6-+|Bg*5!XS%@ef;UMe zsDv6;90eD(E0jX^W@h#r(e2WS@Z>(Dole~5P{OmTRU67SZ+%$V(RB$hk=tP$Zjmo6 zeJ>0^NviSNpMj>)e*F<_jogRMqAf&1qk34na1inzd`%dUF$9PIlp$TX8^0VOUtpp=l*%_b=ft07LF{z zD{tOD6#SZ7b8Z_{Ujl_goKn9b1&3b929ce*+W!`k|8y~t_n|}4iWRW42}6cZ83;1U z#r7y2@tC0q^BX3Dy3{vdHj-BeG)?hQ2Z)O+=T-p6`G}D3~TQ6l0apJ(k3Keska_ zo1OMTT4lq0q_7~5W>6I%{aSFPJA8v1E<36iRzBce#|yygfCH4kJfG9x;RGKirUW&rY!4&;g#ig)iUyXc6*YFE7#hr9P8(P&r)Z&q>Vfdk2o z(|&4SiVrg#P--TFWzu!Zk!w*DBe>|@ily`v9#1|awl@AS;x46t73;TF|G_s=FB;Z; z7284#bXzqSEsi0cl;zl-&cD2D)~?$_sKMXr3h{G$ z7^QmNx{XIIwfQxv_D2Rc3&NH{qn@w%JS;!|dAXqRK~V5AQAQVDpAB4z3w!1fD^SzK zjPkaVvDqI4@>#8Q@f;kj#XDqUje!fVXJye-!jH^k=ZbC2jdAUL)%HgwO)9;$>76TL ztyKZ;8FfF@wr)>-E&tZ{tnZW1Ng|Z5@@euKKU%@|O{z~FBi{H0mI_@7e_hjpQEbbP z7E(`cB;$Szna);t#%d&>T6~3F%hz4_he3n`K2whj$Y!;0XiORpbc(miD~Zu&_btUf zrb@L#G;*JPBlE5Qtl}+($2nquT@M7GI6zt%xJwf}WyNC*_2jP)Rk3@>zrCyS@$M-) zd`Q8kM2;bUS+W${cYbRY>oFVUgWp(+zi+yCa1g6d&7Wn zDL=vmDagYU^gEkS;}|mxLxud10rGXX2S0P)z`ong!~3BnD~e&kiBR>h;&A^y87uWF zW6Sp-4l~a1gTQz4MHJGalPtw>xc5{=NW$T?g-fR~$GD-Pe(E$^I@3 zHayfwtF)-sh|b|7VG#vQB+K2JlUtX-qD_q@;U`Sn%CXY{YqhylvBBl@6|pX}M%8 zENMBhk5)!CiMx^g!3U71?=Xby4oQ|amxau%r*)8tufVHoS#e}s-^9(G?@&p!9;1yv zu`(sve4nEH^g}XsBUWuXVrYXjYssk#zH&XC;Tw+t4`U?S9ig4 zZ>{8Dt)1R;3Z-1nL@g}sA8)4EP(bBO{2j00>g9EqoOX^1(_I=R+DA0lE(9_HS88)r zemj6-@PU@Rb!*3VdE62Y6B-xveqNdD1>SZ~YHoF(ZL*DSN&iqTS|VcLjga#SKR%R_ z#%{ah5&VeNleggu?i+rd=qA;^rHKz0yRKY*48*NhmU(qOaCh5i-6JpHGJI2kSBO$< znuKO_r@%NT`zF0CEnwv=IQSIMefTBv?RLVhDj6(Vys}J?1G(VrK7ceO9>{S7@#E4{s#Lcr;FeeEabrBbdo11% zT#^A0hEkf=Hu*q_1p-0bSjNoeYElotLm<9W{Ly+;STb~ZoV#EGzohQBER`s`<~|{0g0neiQYWjw21}(F*&1vZ zc(3RtuU*8JJlagD)lBWaX8*>Rl=~Lrs&>=($68*7+?6aq9l|Lrb%T@bep8k(+rgWI zO}XNC`%GF8I$G_&1I2&g<9{5FQJ!gN*!8~0|s^Y-f9bSHsx8U@5)MyRW<9mP4>>Ce`#q%mtpWD}$9ofSPe8 zFM;@+0ns&eC!uruBbptQ49et1UpzGS`sT|{a>NZDAt}r*O`8YY*ioj)tp>HMJsZ>+ zZJq|;=h0OP7#kF0TPtmJ)7DCRSau~tb+L*W&yA_8@urJ+OEkqVIDBz!EsJ9=)(4lii+}2~+-YhZ$`KTxpMj}gTDEwO(W6s;5g z4Ns(Nva4!=Mkw^If&6tY$TT?(14Kz_D5TO5c@$tBfB?Kxs5cW5dAsFh{b7b7p3iZl z)S6Xu7@3y`q#M($3Q>AYgJ5#&wwmY(z5_ec>64Sb*%}`7^j2;`owD&*PC$4;2)_8> z_l0+|*5^c&+QK{BH4ZYyC=_Km)=jqW6A+6A8*DXhW&Mwtcy=~Lhe^LRb|s7OAUwtK zc<%*w8BisNI~+BpkoLW#kJq*2+lej4HV)eyy;Y{7NSX|tR6h=i^QZXPI;d%*A};%> zLG?poNJ2}%(B?He{?{n);}tP4ldx_<%#0F*k=kBW-@-!e*<17WR=15Zy+&cStF&Lp zWFd4WtpcS_Jc7j>>VhgAb0E^3@gB!MwryPC{j~{5zmWJZ(0Hd~#9wDSeLr=kehUQn z48R9_!*^mI$_cyW7o4I6AcZ|cmOV36=A9yNGAW zTQ^8oMesGU57gdl=$N^k_E$s3c zkLtZ)pTzIUvDESBG-)CJ^G^*g%O4ETK3mHr@97q}G_RTU|Dl%C?j#T;33AQMd0a1i zaPZJU-BtYP%!-Vm@alhjPtB=syz=n*>y|DX%YJ2Xd0?x)JyegH9eGx|ypvjihQ80K z+CgGORf!qo-3Cg$70xdf>C1m=FxpU__~f{$FO7h$OAap&OiwdWSb!iRF2Ifa6>2y{ ztd9NYYuYQDkKBEXwV6h;rP4R!ef{tX#%l3+oUjs88qEuGiCWF?J(h$z)Y3N;DqtcI)TsPzJ_i(e3RUBx)Gk+b(3M>nct%7Z+?RXe@2Zv6HDp(m0gn z8?as(S$X#&S%Ul99d2gyGieC*za*6n;C~>?>4D9aippGGkdC4SzW-4=<)?u6Qcm9n zT?IiGE$~zN6s`YQU&Ox_o&V44NRS!CHAXAX!&LDQYUT38KpSMJkeJ(LleM81ux%C_ zqdRa8FC89EbN&P-np#H-f<@0=rPYj<#DlwLY2%$hE07_%Tl7@2*PCKAG9P?{wh?dT zFk9V9tdwiFhg{nc$#6M}glms<> zX5gfkIG`sZ{IQ6k+WE;|>j1#xEOm#h+YOR!Yu>=Bz^(W8CmEg5?OS#dokeu?^rwv< z_;R`EpDpBW{9mE~UB0}zn@7*sW8e~0HYowL{2HV;>M3sSCGZaM5;aT49r7nd|7%>x z)4AJqZYeCS<{ENl&SF#1i4<&>sZPrh{FI!t#WtV}YiZ!|h1Qpsa`O$)u-f1SLCrtv zr0loOA$FsgnXy>-@%(l}opNH))n35C4CJ)fooHCtZI+`oo2 zFN0bsEAsANbGsJ?Eu;QZ;0ziNfWXpZGkiZ}9OZEBQl(q;C8bZO$8>fP z=G)e%Dp&SN)_LE}2ilxHrO!yq`n3_eFf&B(r*@FWW~QcV6TV9{rs-UqrKCA!)qNjm z)3@eGpzM!iZd2DpS4#VzL*imEzu3VK{U1l}JpoObsNkU7PLz@1_GK2_F8kA=Ob05x zFJxw1Y4S=9vW=wbot0%T3|?#ZnIC#3V{8_k_NvpwD8q2fPDDfbnaGOz07XTgu=@BE zuhAYS#Cb>Q^(Kf#HL|(-_H1i#xQc9mrZbZUGVfTC_$s4tI88*hC&?V&nUS$y zA1|m!pvthTOSawJC#1TMq`JSse2HVym>lbVSF&8Bw#ocWUO&GNKm)dV7P_7d9EV|R z(m0iquAGN15h=!a3CmT1)xF{S8|11>e8afm3!52p0^S{^4YD zgI*G3ax)dC!#F}pF>(vU^ERb+Pa+KOOw~*fp43|pq}P+K1SPm9YnsDvrJLqnZIZ)x z-zFA2ttorIbg?JH*kgR`GVT35Pdb!CMuF-3sp=F10kbKajpQBJcGK_kJRNe-2~j9k zioy8}|A@0F&i=j~%tQmOa3eh=7*S2~jFvC|%2V45=}zR%y3&8tqcMI&nmAtXO>x=J zW`z2B-GiB>sn>EETS6!4Ky{K3r2Bl6znYW;G&h@JvMyxDaVo%?(i*`tUF_ZsppKSb zd$<1|RbL(r<=_5)kFjP=vS%qvRJO72lA>&3ND;!wzVFLD5{imQ3^63TtXao05>mDr zOLihM_GDk?ck}r?&-42_$1%qr&hb9)<+@(iYZ2YEoqGUD@cZ>WIszzvGpV!jb6cbH ztMh?OFL=Y5ro)+AkJ87l5v$3s%H`sLSFypsb!+xUo*%$fNr3%=R`vr4>Rf*Ia2|l- zR2HkR|J;)2V9P8|3@K&4Le6Z?{=z zxw&|pdcMu~N|6FbkY=~_+6*Oo>9i7m2hF`7$IYoszKq*l8dEkOkO}qtH8RS*=o-Zz zXDy^RUYA#y`KlG1Rf;ar(P%~BOAcpCxa~#UAF`P#m5)Oyi0*UF^ACcZN_!Qm2p9)d zVP|aflXmr{;dgsh1+!MO3xb!F9g;mAtxNWg6mQ_v_6nEitD@Hnu*J5#e{{5;#ZM*p z9l<|ey1=#n>O4Zs@hAC~9v2)f*&q`n?&OZ7dc}^n`9VE%}Ne+xh-TJl^)7WK)t2i)>D3GL~9p4yS!Gp zhki5n#U5Ra53A#E>T#LY)=lOr@l~78J(b;$RygiVF?Z30_&*T$uU?k9j&bm|kp= zg5TcW`~C8zxaMsI85P=4QGZiEIkR%dYE*D?v|@VVgm~y#_rSf)+fxy~f{A;Zo5G2WWR&`Gl3cecyR@}d-b8hfaA_RbqT z@Ixq=tMyU6+JDAqkzQLDO$hHn$)bKSe#?xMt^QhR@^mJGbG0RcR^sm zq0MXMf$bVpb>1Zd*J~bM(nkX=8{Ro&SuqD%x%uu`SoJ{ zi1C;m(Eu5a6;O#i;EZ2sf(Fdz0qRHLkKO_5fGGJ{7Ih>y;*7{qU5J8wV(6VqXT-q-2!>Sl8;KQy5^H334a_AjJz+;*JcQ`803g(%mD_mXrm z6gj%k(+Z)7c*Gr-;NWL9yv@y8F^3RwtAvEAf3~B{qL8YLQ~@4b?Uj0lTXc%y$qnz< ztt&sefBGxKS{Wd*9jhm6rK|pJx4xlr^PZ%?js9XI-|9sAW^?_1!Ct=`$i^$y+fQMa zlV81p?WxKrQCxG6Dz=Cfolm>Th}!}j-m~W827K%DG10^;XQaPj#=BO0FHQLq8CWc) zR&IoyCES>`IJ_VgN7q)PHfl$3_w$vq|E>$hj6r>eP-;W3#JI$7(fYY=@-3g0eTl_r z#y-83%=<0gkl(O6E&Bo}t6v#fLnh98jkEYQU>lG~OmmN2_^4DtL3_vg0sIF=-}5Uk zrMitqX9+1WUx3+L0gx%X`v0B>h_vz_afXJBN!2;lyT-<{~BJOGd>W8rGeRAYBh z%|~%*-mPj}zoUAj9X9^v)C?&{)Pz_bIf7st?QU5^B%H3S%z^F>C0To*shOs)u<^i< zgiD3KXF_P9_-Ynzex|`+-_7k+o97m0X!lK%@cOM@&9L!KpR-lmqUArrSi(p)AEdu@ z=~nnG^RA~~_C544=CEevRr)+WgsTm4rdbLQ-_Ll@nb1T0KG5cAmXq8WC8=T?Rjvd^ z>scsR_CBi#8+NaDMZf zt9zc^9Vu1xjPDC>&f6Sp*vV0BZG^-;@ISP}PRLkn@3y3XBjSB`a(}8!2&ii$j8DEr z5uO@Fl77+uo$YU+{*3s$Be7}V6wS9oe`xOGqL35G@?oK7ODr@V%!A9$uFRHA9;6?f zDa-BXUG}?JGel8LNRh<&E^aRA2VDM6jpk-jXEFS1vVDOa;QXeB*Gu}C(tF`c{#LXoYq^4T2%b+^nfX-0)aX$mg9Gn9ePJI9zpMDhJ>b! z?f@}+@Va)4ERr6w!5oIYRxneF{`y`^IJDQEsh^fuDYis*x#l6~GO)lGe z`KeW!Pa|B1>1a9clA*|(6GStJVsNyE)n_j;zgm=Bor_S40%v0-x#VX}v) z$v&50p_i#kb^dwvJ%*s;`7ICW=Ti$NUQW%!+Y9yP62iFrdk0W&qNB;`RPt8<*#)H$ zSn11}p8dAMk-Jf5?cDz0h4EK`af}LSywWpSao->5&dE3AIsbP)-h(0ifp%``QvDvd z92AD54(lZ-^a*HvgUtoC&Vh@rb&-1Ais9MJu+lmf^(PS8#5=x51D~oAw2-=YuB0aj zIr)>*&mwBvcl{?_dxN3jX^D!s*{n!%K)sVnGdl(TfB^rJ)~}75+~wh^5=zx zF9y5biekR^#nVAe31~fa$B(xj)+M9sfB3pNY-e@FF=#o1c%2@u`B5M_0pnG9Kh%3y zxMdGqwc^^cZ1v`$g##Y(0Vp2OFXk|AZx!CKFLh~4EsS!*Ke<7d&+uIxdZnTH9+AAq zKJKUYRQDg3fay6lH6I-gnBo=AK9hxpI#P@Fa7w52u`WmTrF zJl{enrAZBu_+FxAYBj>_jOh_(gNldBuw8%CgVa#a_rmQ3y{~c%iSO98GrrUoVo>^4{fgv zoTC00K@o-41^PM;K0dY!cX;|)jhiG2K_{{hCq*3sPY@7vq5}PthrXdt#|!;mG+^}| zcv2~6uT(918xo05B5Wh2HQmuI%MOl)=;a$X^K$K+q`o(cv?y^ z3LF-h`u2&3CE{E7b+M?JxF))Ja8|NcQ|Qs%iu6Eng+Sw8>|XGU!!C~0Yq1B=vMQ@2 zorBFB5m)wpoqAx#DuL8gduBt6&OPUFpPGDtYEU<(DdmA#_#~&=vXymW;iiVZ=YCY{ zH#V0Ihm6Be))(s$dKb|;uh22o0Gnt`BzlfHMYm<9S?Vb=Mv2e(DB%MVyqsvmaDUU; z;1dvL|CmEqlFE_Ei1QRhEg2m^f4o*F_5vsT?SHsE)CJe`=bGNjIcwjnFU;kGW)@#t zH_#N$2W151+{MXljU7c^R8dxbGNM&#wr5hj-^yFw-;?vUx#!ij1Jw<(l>_|D+GRY< zgX$S#8s3Yi9StFn{c#M59<0>Jyzs?YYY z^Um!lD887!n~|Z2{IS|mAnoCIgy3Q8Uz75&O#IYuyzuvz7;^!2*0)|>OcA~G5q4V1zkdSNHRetV;iaLr>-xcTFT=7B^^ z^AD|@Egs>`>})glH;X)s@}oY@bRdTTGVo!H+*+^b0(xp`_5JE8~V@czr0i)0Ue%geUSA3 zoGU{WF35MXZV>iSr9L=$7}=ni8N3<9^ctr)&M&A7gcA&b&gRUsJeX zq&3e(UuqbfaUh*h^|$kL_pV^8w++k0HWg(E1Qs@p2OEeMsv>9Uyni)w`Hto)g7h|(fn@Qqp4<><8*9qcoc>0$D`k{Eet3rpmL-RgzGdJ&_yNJj6TyqYZD!}Fa*7;R< z$$`;4$b6?~OM$cJ+JjfYeJd=Pn%=Kdi^c9^L;fg$xGZQbEvJiW*s!e1uOcs=rpb?S zlTM^bhcOufFAUiZOm{EgE*zR}&Mc!g>4VX(tS?ho0>0IeDB{zkl(pX)#f%owyalMO zX-*a|9vWOg7L5>-+X%8V3xGTaub2#sWH~*LXUU<@Ng;>mcL3hAqjy3vkE^X>5g-J+N`lM&6Ump3N;RvP7&4`(QT&nH`<8cJQPJsI#Y)I7zK^{(ea4Jw!T zh>&|nMNTbg#mm56rB!?0K!11T*}Tp8*qV24C-|t|V7Sh|fcV@?)_D_X`7RRYdfs|f zg>fU_peluceYMa$+8ZnvYZ1D5-4*tN&T=EtK4?OTxo16eg(-?HHfTUPg2kFQsycb+mT5qzX+dsNcRU z@WayPw$|A`dZRZKa?pS7@(T1OXQ6Hq`&z% zVy|hCF?s;UL!j+U$aHl~!XI)RfGD?AV~{W^*3k7HJy%wO`uk&=GH{3eE7=`d#@7S3 z6F*(IGb=Y%#DJI=XB4cw@{i=hR4Lv1X0^WQF4xI6TFtz%_fwA8UPDvmcaZH@#F4*H z%OzJAYU$}p?V-Vi$bJh05yQeiyB7*98|NyN3Tsmf929CQosG#0i@WswE&I65On=qM zauL;onYTiAF;0Y6s&WRWeOKmpH>-FIVml*B;98=q)C~c#Z#|QJch(0igu^j`H+5Rg z?Cw_!3I1*msTQgf$@Egp4i(MC7MEb%tt@PZZVcgmiPcmOMJfe?GhqjI94-;GeJ`5h z<;Z;eTd#BRD?_*Xqt#Qtt|#cho-|NN2!trS=9@sDPR?;fm-?w=O+WO8PuNG3#Q=$t?DgxXn)-`r9r=eTr%#*PddB_*Vc<^9Pn>xS$H7o)n| zvcsc60}V}{TrYjzFWn{yYnr9&4jIm3HHR~2ni+s8^ybW3Z9OE561)CJ)%#jBcZi}?^W zHQHYnLSAug2H+Zzy)seqK}+T$+|7vXN0kGMdtMaw`ne9@Va4@RTTnAzYf z=_DOSLeZ0}Y6K@Ol zlbxoihm^Ut`Mz4zT;_uj8NgtDuKn_MM?<>aW&eYF7ke=ET+BBuSml=-8tZmz;yn?l zbj+!+vt6<7l2zUFxxuxUa5PhafWtXBciH~rbMTeEqO+n|`z3dky1mqcz4=3f&8p?0 z@t$Yz0~>XMh^j$S1B|`kT4eHv%IJ56i_9uF|ICi)R(JXLd@?2HsKgE${&M`0Ugl}+ zpVx`~=@T)%M)8|tiY(z~(7ivQD-~MbkW`-b3te$l z-u-u-wPW;JwIS7~hXk6767cqLuJaF+QPokD%f3t$!`^08mPxWq!yzs;m-4DvlHN3K zjZq$eEst^Ut2WEa)vOh`Aw|9Sn+>c~wd&$myR2ll`ZVR}X`(+$StWPFb<$mITkAP} z#mwo=Dcca)zVd4p3vMrJAF3t&6{gad&!zeuLUq3$2YWo35#lQQT@=MryOvX8^2!!~;2%H$y4_a)LDK7=r13sW-h?_@@Qe|} zKzaU94|%iTz0`633J)!CCyjL~be=mb)T@tgN@PVKF*ilIB)PVzu;gbv!4$h~$92ge zfUa%LduFh0isJw(|CG6#Rv&+jZAwPLe6BTg{p{y8t5qv;azrT!AOE2`m!8n2%*c7Bv=ds9+Hb$POT z+pGJWuDeE}-v-@2qYD|WIGlzxQfRs}*O%Pr>l2}~oH`rxr*luCXVgIRondwfO4u4e zjZX$fqco^ncF2M!O4=&CVir%O2>qk?`G*cLa=d;gf&xgHmy&s`V$6Ch|5g-w69B5$ z@Yr)xRrj{CUtSust4#=1%B3pBtG=fnxX!)>TsjDK>Jxq6aXtZy&VUv5L z_d!9c{C?}gHK$E!bLZRN>8TPHcpYO3aN@<2VK=&LXAo*6njd4MwbU6!-OkKw{SO|} zZ`wA;ilda`4$lVf_11>j3tVX#*}(OQ zMbG!Aeqzodr;~hVEoFV$csJV|t!_pG1CBp>O0Nk#hvmjs9w*eT@%V8EQhaOWNHCg9 z>_?+@aq{*4z16!B`=dYK1TLh8Cqh9qXf;9di}&ANVL8is z2GgYtP+nM}q-Htm1SFJa&V{-7n_fFFlHR@R^g)y#2A1J7Zi^~3|3Ooha-l!5pRC$3 z59Obc;XnR?5L!3zJKvm3NSpF(;TJ$cf}xk4dqhbbJ9B+;BH~Jzi~C4=x1;fag$d)z zm_9S7y*^x^KRChPv8R-6b!r{f02$J%!RO$zEx5h?`lMWAT;AP88D!csa0_goGb!wD zsJngGqiDb|Tl1j^I-9OvmwFo+l@4$DZXKC6 ztGus`4hmG#iN1o^u?*HQo;cfKNy25iq2XJF7^0@?b+8JTPQSP!lo5{TSKYrYh(o<_ zc=A={PnVDKu!Ug2(5!xhW!KZkY~FtfU|Kc=jObFr9xN1z*@$M^cTl z(zk|X4YSLFU)A{(B)mtq?H3Pd{)lb;#V*tu&)&cow-t=P-m}Ro9j}q7!==r?!4!7c zpw-mRgQ5#f4s--{`sSVzjLLAo*p7OxY-gWIy2-DwQ%+HsS3SNXiJ!dK@@QgGo4wT% zF$xmObGqO9LOK-)4>iK#CW%o@Tnx2SZGRT#1|MZZ-aJJcaz0koBLhYYiXfR7EKe2< zzL&SF4E~rsP0Lit0h?=J9=biHp`OE!$j?^?RjKd%H{|%i|F9G`=x}1thg;kbYNB|8 zo?L@0Q$P(wBmSvM{+ zF-s2Lxvh2&|6RBaNl`Q#^f5`nc5AW7mQDRG8sI@wSf2_e%B}W1C7RV=wNexFH}$d# z`QC9ZPJ2_KN*K}kdm}w`Q!U7B^PTJ^LuKz;w^swr{nen@cmbA}h{ZUBn8|t9&kM|k zD!-E+R`Ca4bPW@nTYiwXW=KF|395Lvp_bZuFAeAZv7cVXUC+RKfUcylFi{txr&RKO z7S?%$k z1*HCg@vNhqknde(ijf6QbDXr0)caR>$H(Ya@hA47?_=M~(t{uP6+Ip@k4XE@EVaXy zy2F006ISapN6Y8Gx^t0Giu+ zWQE6@xBM&qJ`x(UCT_#}%*X2jcMlK!hYUz8+~C$1 zh9i!nXEP-{ko}qFx_7(lo$Uppu!mJ|XNy8SOUNahzMg|s_mu8n=e-)s;1Aj}6LyCn z^0vyy&7rjM3!A(AiCIE!o;KT9{iTHL*7BD8wsiE^Fh=NKYh5OiQ?9udq$P09(~l{912UwXYN*2_;N6R-J?)JsrS~PLBGi7Vg$l* zrQIJSnR{;^g)689Jdb_}$Nx^e`5o;+$)>&bC|=;3sKBXp+w})P_|Ajyz`c85YZNsN z|KlrG>>)rc6TJ!3g@xOkR|D0_7@7W+mi@yCg_!S9=|{D8{Ho+%Z!8^r%P+!Vqag|9 zrU3zE=m;BnrDV5SUz=RV)~wQ0dUcJ7Yjo1iL%WiP$eqRcS0L8kY_pQB`}0cICTnoZ zGb(g!B|8AHPk}aiD*mDP4)o)~euHzlXPh>BzaraAGU5WmgjS~whZ`O@Z&%FN&N9>0 zP44<#+1zkt^8Y*GZt1qmpBy}z_>$J53;O8W}$Nlo3}wSs)G+G)J>L!Bl+y#Z2FD|wD#krp`j+Lu1Rbh40 z#geVIbOZnh5%E8RTMeN*l*nB?e*-zQ-L$*2JJ5A;=JA$4Z-vePqwEu@Q+E2{SbjSa@6GZenXf7rw(yKM~5tkkgG zvt)#i_tCYV8gS7_rq=vb10|A18~}Y!FM0ZyO8ktv1ytRmW0uNi1Da&f*TFkiBc^50 zr(fdPfqMc>x8Qr#wl2IsY3;%`HL`WRvE1uwQ7Mf$`&aqvH{qJnH*V<8-8j#f=A-u0N~1mCDPqrj@pf<6A&%75Eos7@ zO39*rnR<=$)vHSz_vMwT_@>$pHl4DmUZEe-MYUxFlCy`G*V4~FMD}BbPX|Bo<2e5z z&m^=!@HYEtsxXP#|N1r_`&s7s$c> zW9K>X&wa9=GiP^nTT}n)q$J*6Z9s%gs0?V5ew6O-aM2@z`E2%Nb$OKuluPK|(*SGZ z#Q^_c$+2u3T<4qDmA%Uaj2Gc3x#m%{xe|yLl9nL?l$L`~D_#b(@4+L>a4g%H&ZUcpmCW8Kx`WfD6|#8#LZm zm*n=C&kg}D4pj&O_#-(=W{G-${C7LMwL}vPVIA{laOrizRhbVg;rf&BKv}BCKp*X$ zHOdIWD~aQscT$|_rqn+n@j$f+?3g@;(J87L@q5fynOgW2T006L1vYg~j%=__BUG|b znJMvUVF{uRTi0XRb*4clrkB3!`EW6uHc!m~-$^OuwRpx0wike=Aw$4b1e8jR&C?Hp zai72S$wVuBLV_MErNmNVuD^Ii*Y!0i-MRYiVb35l#rZ_q4Wkqs4uRG2`Y`zkWo2Oe zCD4H{c7^V*cgTzKqoqx+yvK7q1t?j~Ujq`dsa+zcRJ(Z$)9tLUrKbp_z3D3H-F89d zDI9!$=bPHp(xkBFX_EVR>;l|z^y*Hs~u80G)XgE;D&9YQar5)R?1DVWvIfeP5th$4{ z`(<1Isx{uR*ynP)k|6Hx$e36+^gY?~+jQu{v??z< z<|rwtaozt+LEJ`0C+W>w#q$W&L<46NnL0-?x>*H;nSD}T?kVQ>sha7QBUdvV8p&KHW~ue?W%sy-qDwmg*XAce__plU6KVkdE%^*(1J*^n#KE zLoh3t{A3aTM}mUhS*ZJ^DTEm9MT4eEr*e?b$pCA7tu%biW4x!W?n8s##^GNo10n~p zC*xgGk|)26g8Q_C&)&+HqLd!7$A{D65oU{vf1cg&3Yfyr~Z-XgmdVX)e7;m{v3U_)}e8cxuo9#s93Re zwzBCgIol)KQ_%#4i}%(dQZoEv-=<=YSiMo6w$5zr(N@KiYM|5!o(m@*ib=J($)u1&aBu#poytIWMg5nCYa;P3e;w3e zp~-lFlY@Ig?fKWmXAUwa)2Pb5JDFNV-)S^p0y(}P{%LueQ)X5){o2kDxIG5{klVX1O3aLIomctg^5HZ=ll9y;S}d~e0QIVhzjop$5^JG?@>{Au$-d42!8m(wtM!) zDaA$Z^XV5I3%?v1T;(J7B-MPB15z{a?Pzm4wxrPyy!uD;Za=JE5j)Yp z)TIMxGqkp~T9*ut=i_iC(9O3yc%22IR<5yD^Ep7!;~Kg8{u}@HwgO_oWNz@k1*yrg>BU9IkepCe3@f~Pn=AMTIb{O#!OYOvy zQgvx}xa{=Cm5nQCo^YJWf_zt4fmW~6h=&G7uR714L8eLhn?KIvhYGuc?N29g=&?!d ziNSOfCf-T2yV!L!O5hWxugKM7JOPgP1o2H(iz5*ka(@$lk#bj6oAvfo%Exth=LN2S z)q`&O<@;SLZ!Re;j6@Dk2X&Rxs@+#1crXG}HZBaBn~^$mb_`?bqa^pav86(fZX2UX zXP2O0OZ=A0E7cCmro06mU+r{C29oSjr#Z^285&G?_Uq}HE+fv?l)Q6f-pX)$n84-# zvP5kmDwTj_p|Q5Gbl2di6}gr;q0$Xz_@9!86O1utvc_WLuPQ>N`<{8Zg}w0R{Ib!N z);*@fCCuZM+O+^D30zWguXj+=5!!eoE~`-7dn>?h7Pf{yWu9`k^N{lzv&tWe+sT5o zG}&BymqlvT?=VtCGQcBer8I|LdRG8J z(or@x>|JZMP@EC(K9;1{T*WRR9%$cE9G|i45GHaxO<89(g!A*#B8w!>RTF#L0=X{`fmX5o4sw;Q5|_^j%q0zrLAc>b`oG9wC?PgOriz zpQhTa+pi@Zx(s)GhO4|m+ZCWR{Kb}a&oo}Mfzi~0(hIMWuFT)NGSSGVQp^;gt{DN0 z<9AYp7eq3>#jhO7QxCuMDvG~)HR*VK^#3uZjxATXA&OcmDO@J#xK`L!ez|$8>-b*3=V9`v(=@AlwmTnO(|CF$OTf5~@s(Ttp$ndqti`t_PI?z^6zMID zFNv$N#p|F{%A&_zD~8@E`#b2tB>YG^-YVHooPA&KiM*7K-;;v7EEksFk!ZEMt>vd> z0r#;Nj~))rl|U&4Ui2dcfbvtZm&TKNwsldV!dM3;Zz=6TOHMq8aaS$0|*tkD&T&%>5JE@Gr!^u_bZt?KTp5TxnF0w6v-8# z^Bhf-Pvc6}ITwHV=otWwrlccJ`TyiK6atdIw&Y%DD z-RK}CV{fEsEF(&;7qO&gDwomaSkV(A^)V@ZQ<&d>cX|K&`fga&J*CYE3Ow-4hJ@#= zT?St78+0k98xF(~Q&?J?98k*#!;U*$S<(%ejP4t&OAoRBUJtOu4O3-_g&e`(-z85c zf}7i)Yz%gnR3e7>K?L4z$Oo&}qP2qiTD5&3j6f0VxHU;4nHBst#J89U;}JhttKNPo zchz`-H$$M_)4WUjhOL%?k!s09>COPpsZ7jv{@ayYa&yEo?ZtQi#psO{k6D!@yqHe_ zl31q%DKCCNbMY~&kjO9KBgJ-vujYbHl$mEgx?Iu01qir44IeZ*x*7?5St+^i_k=YM zSYxNY37-M9dYnI83# z30>(DSt@?%=c3rT@+aKv@n-*B$lR?1#l|pwvkRLPi1SW4zgyv- zS2WrwGk-5Ibod5W%C}bKU+gcXNy`2N7!=)0WlbV}7b}=>i!8b0l;m!4tDph#P;rtBx0JOoGYC8Tp>R@*(o( zP5ZCVu7Z#jyuPbjgbaRYWt&_MLq3E@&}j}hUfaOZ>jfn~aTEEWF zC%3LS2dq&Rx4}AQB)sW0(~Dvcx5#HK?Mls`T;BeYAeX<_b=Oj>wLebEc>!z+as9kx zNhj@F!5}fevcQm1m!IcXx7+CH=nFT`F|8B@tk|2022|As4X z(%UAi87(#k#E=7~rz6+a-o}Biuf8fgy{@klblkOXncL08;N^tBkmChfH3#F5bYT>n} z0uB_Zy84rN=T_Oaw>tbyUs+!e|b7NE!T+W;^f}jnYhn6ZWiMn}>f5l{-WwO{0iixpQ`q7TQOx zG#DXp+_LB}uejKT(0(W;Sw&(iN<>ZDKY!^GaI*$ID&UUNXU6V9aultDI3ePF? zcn;8Ho}n;EId$XVX>G^5j_(i5F6H>xke^prbIsGU1+MA%`{w=%rByievAt~l?6LN{ z-*P(W2y)63dfq?U*%M&uC*=PD2@1e&lPcH8RrDG+FI*OYoN5DrJKplF`ixSr20%)-6gL>_o zve#g+nH3WzAWR6NdhMn zy~(z%OAL=*BKsxAq(x5CFOx)d9g(EG%{W;AG^LpK8Yppd(?*c)WS5mveg><(5T<3eGzyiqyt31wp_1d>>dpoN#G7?cmim}sk`>~7F1+sTcwktc|{@j?X|G}YFw{Fw#hV&)7 ztv6!cRUGWyd=?6O62&T0XbGA4sfA90tvd2ZJKW?Cp8}oFhl3)Ylo3e$2dj{vuChh1 zk&JZ<5Rn#^^~90bqv~Eh#%D-Ho${!l@@=y*Y%LKTX?i_RsmSp0*7wNwdK2HXek09T z2v5j-I@K-enLgifb;x}5;b&KnVFY>B|N8$E7vz7QN1=D7NSR5el&4pXr0sKApy3#l z8PXKC{wrW|RH-dR5=lxP1~ro=GnB^LHT4DmD&@tvh+>rZxrjAUP*9umjcI_yUo3njlRzfJQpwj}k8&kHEvY0~)R6yMwiv_wdPSm`HB> zZ5}^5Qk0P(&8m@H<&CPtBQdMnnHXPiXR56VV^EQ{hl0s$Y%E}l>36#1u8it$J8*27 z$k0zMgYVbrQ{2y*V@pfZ4U{I>EiiFd)Kc9FZLVoO!1M%A{;k5oLj2MdVh9SVliiUC zkO6=x{zR%|m-sba?@_+^EZAq`^XX67bJ+CRim2XE!J+aMy7d1~>q#qLc2!2V%9Zu* zq+#dHG{|`ZkBOsFR=(Ws<ri<#GK@>cu4oPX?elpT znKfDR7JIv}V6UWqXO?GrDN;@*)pKH_G2NoFM^_7h52TBnSRD;Yd-HbJMX@qNP31?^ z7O^kRps>{cCxs*nX4uz;5S1r7-C>-4GvU3%TO4?!X)m#^W?uzgI$V{JCEp{hStaW$ zT-mHb*AMQ64F&Jl4SGZWJv4mIVSIH(wnRm<1c?o^CtF-4q4tA%?hbPmPKnX6<#E;2sWPC}c%ZyD7OOB_rACjf z!pvo{-`z_JzVtT!FRT-+%{Hq)Wo%rh=cv1KDSFR4cR$^En^tou_S?vkgI6c2JFv8# zp=NQ|ZlF&XCoE|!hP3Zju>c1Ik{T>6D7yDMcW|)_<-83wGA3FVa)taP_YL%9X+mP0 z?}`fyj}C|ft+Rwq%#r(Mntf_A0KtoSz_U#oJRf=A$ZUjZ;q%A$TTm_%?pGgtz`HzM&<>=BN0D>=1v@_n+THb%W>jyK zCi_>?^ZkD`6bQBioK)*TZb-^=OgWK4U2?^sZKA9UE(PJb<)8=y^%?qspd>qPao^Pno7WCJod;tXOqt%f^}I7Y~)a zf0i@=-BV#2>K`T2eaoL!a#sTEWdPL>*dDa=Y?xzED2WTe?H&F!-|?h>m0PN{8NEEb z{b8(=;Gn9am^h>~vszhKxRQT<RFAo^ zKO06pAzzQ)l9vIjEBHomh;TrJ_Vgg=)8uWKx2kY4OFE5s2lWlA7teG3F%xtZ9od5uY-rEjQe zg#BSFKH9eMyLYo#3 zeOh~riI=@vH5fHmm{4c(*bb`ac)0PwWv_h$SQ`L4eKMa6vHYIo5>Z(*Gq5hpY3tc| zZDX0k{*|UA^&_r)_lc>IQir`mo9+$BGs(So#D)N#+v%0~5S8B&#Ygp7d3f{kE1#ZMoTa6EWq)?=tnZM>^9N_2N<6yAK>3fQ;J*b5G-~WSadbOoIF{d) zaVkuB+gez{2W`DIfa(o}LFKDyQm00H*}#SlXy6@mE8g1mh11(<^7CyW!XqQE=QdQE-R@tXSQ`P&%8O)D z6_i?otE+eSt}DV{2cDvdu}sg4RW6Iy`qsnqM{kH_d*90WS;0ADeA~mGi$09OUTSam zY8C14+CDH~=2cX(0b3VTG0LIugE-`2>@#_D6wySX-sXxS+-_UKkD~ocI|q|1y$+aA zLcOoqI(^T;bjcdR>Vk+Jn&lmTM8m>G&}9u~D-5tptW}8ah?)o#iN5lyiI+$idy;6_ z$KG-Uz=YFYcvs-GmP~(9Gnx%D5p;x|io15Qk9s-1L@yOP^G1 zl4Jy>!>vKh7hqP5IO{=-u2UxcB$mn}jGvS7MSGnh8kHsvTPj=fyrf%Ft@_xSy~3QN zLND)s2OdmAsmzFW6=+Wp@ps50f=pz9v=8qa0|Qn8P0L{!`=}PChg);+rQ3eU z6wA>%)Afe8b}cLfE6U;QP83)OT*M+M`@7EhS)fQ)@hhr9d=6uJdBi9cL|2o3EV_yj#)_Ia{;C~t=Ew%!V)4&uIxr)n(CPJJke>I79InX?JUF|O~#bYU6-xEE}E23dLMg`cZHu&7ulLd^`aH- zj$S7?+)l5(@AYt}n$>~TU9}qJ?(_o(g~V&Ej|r1V(r|Cmq7CV$24OMjdV1gZvB^CaZDD(vK3)Mwy|Z;;2E-1h)9f`$}&QcFp7z?WE#r8j3rxk zk=^h;>iypDx<3E#_wPE7bIyJ4W!X=)G$Me7pu1i-5C$R;1qiJCLQSR>xRr(;H#d=y zqi=WWK6Jwympr*8fcn}W=1}YGvX@cXh-%4`10)zy)4skChR&l&C8!!H;6joNV0TAG zkWtE;|Crtg9U@*tVdg|*Nnp5J#!HKn*N(k7qutEz>C2+`@z~MR{T+?}*4$A?J_V-d zaTaoVo|!NGisQX@k$xQTpo)R06)~UsM&1OO_{~lwSh%k5pHjotaw~W@9%2Kw4vY|o zp)u-)Rne7bKaZc=awHhQ*$l948gM2EsvCs|Z4Jq5hV>TLzmZ>up9_)!T7R!r=-TdL zMN_inPO(mv;m+-t%c`5tt|zaMz-cFIvj*zW+^;l(;ugP?mJP>6QoT@`o4#mNkxSmV zLkO~ky>ggHllQB%a<>c&oX#FG6tBwsDY9pn)s<%Ob@6h;TbLhr2p5yu7H7gCfOgLd zPvjW|#_rgz^0F;!j3?hT1+;}=d5MjhqLnYsXax+cuf zr{^dD{4E+tey{_n;Y_R_^0ik*?f$gxYpsB#DM`dU>g8w-%#z6QV|z|(n6#7fv9~ql zDrsM+QLf0n)WkSEr#?4PM1y#CAuH&_?P+}BykY<9c!V+cI+6`9G5=r>(ao**eTRix zv^xR4yT~Xz+Z4;JJPSCptPuDg>wd`P5L{sb-ik}wgSDi&zL`VRUZ-~T2`OM!Q+;sn ze6rV&d|ES)Ld`c>;)e1~YNfi6>!Nhpx2=NMSEB=w`pHpCpSu;_n9>Pd0Tjt7N|vqF zwFohUsI<`OoXd>sq}OkatpRqy|JNYUN7u#RCZ+__-uKL&rO5@adD&qgJ;6JY79=Qb zXGLa2EJmdn)ojN>$Ha`dEMl8cM(;vmE()gwZN3~aQak$ z8mUh=z$hFubw(k*5-nr;2Y!#^kv1VO(C)z(&R?7@#YoYM*RF!h_VXTj9)BF?SU!tB~V8Fbi=_4iA@_G?0OyB(oCadK3#c<{&hF5^2ZlGEELSaksXT_s9(!tj+ z^S8Ipi=-6AqE1K|^Y|@7dOYMLdmm}BF{4qoBx*6HzLebSS$MK778Vd#-?lNB#ecTa zl_V~{b0?^~70t5182h21NI>D9`c7!b8i;fHVX+v{{u)s+`jhzDCS09FB-3+t+QYjf zV08IeX~_bk;$`erjjhN>3eFrzpf5K8^FYY@+2d6oMVjMWbOgCJEaQa;-6|8dE_$-8SxwyU2lxL>X0rU?wO^IC_S+1qV@A_A95MW|GL-++J$KnOL7L zFP@=7BEs!Il-a1>iZO6dulhRg-tN$y_LqhlWZQ*j-^=5I3*mT&W#kZvGPWt>=q$&qfy9O zuXtZ0>v3Lw6utxspbo2KC|(ZDPVKoL(R|iLY7M)amx-78@a1hG3=;qVT2jb9ZSk|` z%7%9OU3L3i<6L#30Ken!1+_ykS^4yLA72%Jt&8-~Yu1qjfqGHqIGTx)8$bAgsIb4I z@DT>^FXavW5Sr=43{B0T)D;d0q$`v%7o`SRF^rAl%!KQQ{2G9Ts1cRiN?;g~X1E$W zn>cJ;RfaKn{*n7|taG_S3jf8X<)RYgWeHD@q!Fw_c;i@aWBu=J7{*<`@+}jwX;uWz zr;H7fUKJQVQ5D|Jt|W=%4TWYmxIYQQ<9D#wqUy;_)^~3DIO}T z1D6^b+dFMB>oz_G;})$j_3ms#2!6vZkSnk zo-y;}yOw8OD=$F@j7QKaF}>!ioqnH2TSLNN3%!boQ=dP}g3jkh)@ag>P1HAU+EO%U z9~b-JNh(A+DB+h1P%=$4V)h{>P0hXBED3Q54eR+s6t4;)^%yVdomRQ*K!U6F(2yv1P$b=yH*{^0YNwRkRR zYK4cKG*KRBFs0WI{G$XR16}~|hlL6LBNyk{gMU2&ptbc#J&^-7Rtq!FtKW#YFXY|~Y9tIx=)f+1?p+ZPS2Wz4 zNcSZ`l;p%q>3y?78W)NVEa=vVa`C^`rw~{AM|a`=-v`TIW814!Q>%KLrh`;L&E+i8 z(v#f4Nyi*HlV!=eU)?DlyK-TQZ&a`6yq;KzzxN~bX|@`3fiqqWG5o3So_{y>m{|#8 ze{EDck$FbP@~&>TnW<)Gt@O$5PV2!G^&RiiBo7x3Bj%N)fEjk?(%6!74Jnt*j$3WA zE-!9z#f80Gr^*+(_}0>!f;yA|o-v}xj(CB|J8rup(hIZC4NaZ(ABC+ObQ z-J85DZx5F%(3XZ=6$Fo^wE>WA#1WkGcVRd>+OU6k2PxiTtP$GP)=~FM_4^)Pb7lhw z@R;Tcfv(Oh{DF$({?5kCwe&b0NqN(h_Jt|e7)W4`mXrCjaG3yF!>bh^?p198m@(%j zLQiwx&&WefE<@+dm@EM{31!^!cJxACc3$a>ngvm(A-RWcBxl6PsKKeumzXzhjChp>Yl$x^!hNwFZ=ahVq^_q;jy)|7OwkP>!Md5E zDxStoG{*RG28hG*ICr+AF@o9MA?a;t&dWX}ll+ z{|~6bKn+1D|9nz-q2F=1=B!f?cmk?IavoVo;Byh8n5aOMlYf4*a*$C9#Fl`>JyZ&Y zwx2=Bk!Bxqq{-vWcRpRFTbf*ni-oIXXIG7y=Y>`Zf5XT_0n4WgVyfP21v-Mqv#-yi;$ zNUVVCY-g02<3vNb;@F0>t)(Su{FFm@aOyg>R|Tb{e!NIsKl^3Yw8y#jeod#KSE_!= zB-PpY&Ec(b(7f7JR>hk2)mI^lLlas3?wk znI_s; zn~05SAbZ>vj&cmQqS)H=7tgo*&9=|&&k2>F9~UefBv=3W{o#tAY}NKV$h>@?0v69= zr3*olS}#NZnLl6xngFWb(KQ~Tvv&G@#u2C z+&yp9TJ>Xc(B@!gmBebe(qh=hAm)^FsmE>tH@fnc=1uv1-Vrh@b3=#AjBuYF`xViG zcmJp`i1J^ak>Lx4^U)aErWxJ%0g5=XPxM}v2o|{r%OgOhQU6`hjv_<fV~wbjTQCv?(1-{oA;Tc>Q-wlIbI z3g5TuiXU^pjY)g%$^%X&WD=l7Md>v0+nL*KM8wsVj}CyP5|5M*+=FC^=NGq}TJlpH ziBTzG85&qCF+=;XAs3pEx@5{pWmcYzKb^gESuYLgeLn7N6{Lejx`em}Y#q}Y16~in z)E?%|Ur3*!-R4m#DlXDO$lRNidm#G|>HMJVkpp_kvx>48vnrp&;C&a{BRj%l6>U@~p^1Y#0$^qk}5<&pxCR8UL<^m0dNp3EJH0sprlACbhY zEf(haW`-G>QaR6w!XctbKb#fF0S`MnSCx;rUqSXWK~|^Iqck@OS@5pvxGY+ODT0y(z!OPXEvt)%K>_L@}$7bY%)?YFei|LcY)t ze_z1NzVHbTgNNAABa9+6IUvcwCS*#B5| z$bl!x%aF~jIGi%2k^7wNBDU}(P8I-wJ}d`Cx!su*5jyZ32eS%b@$b$4Li9(fynpE+#nzBA-W?^@hJ#)V@)c;kx7V`7 zUD&_o_4@ahmg&++SQVIEYJx~u373ZJFh9eayKwzcL|3YXr_ja>p6`P^(3mv(G3$0= z2p}lJ*ylmba=8Inr{!@!%g74-^~`>&}_fyz-q?JaWC1Vdu5-v z#_KPOHB+sn%d%zPT z{5uDa+%0fbQbyx4ciV-OO;tfMBGE6y7aw#^b=I#fQc6(Kn{46&U9|y>&y!ov^V4qW zEV#c9o?WE$UCJF|4yX;Xe3Wu!sXVQ*V}0dUZf0`lq;k1Rmy7$KAKmDWHF+nwEx-YpIEk*9$jn3iOP)`M$OX^0{PAOpz zrK&3T%x8OhY3`3SFW z%$X!p$F6w+JYhJo8m8cNOwG9$_L4q{!CFzNBO;!!HbLvV31F?FZYrx+`RIbyUk=z` z0}JF)%6p~sNf1&Fn0gkw+jwS{IQ14ki-hoErV%)_HMpqTY^R?vNQzWf7f59dSc|?r zSG(0(kB{}|YRLrq5%|`D|`FEapcQFJ1t$eq}~lc=Sk$taRvkD?y;z+^hM9` z1yW!V>EQfRnB(VG?sL9r{7iIF{IJ_}LP+>`I)f4iX>Prj(W$kJ5njmurO!c&+0oNI zlsoqn0A;zr}* zMCW>5GH}Z(@W)5^xUJM1_$d&{jCs`_8L4lZF0yA1XRpbB{BS?;=b|$!v7;hC75;9s zT}@M1*{_`urhFx3V##WGp=UX!BItic0p4r9s{QHq*=e@RaG%&dKnH~DLL(^$jX zQtm=yPW$DdV`U$j+D8>`8I`d=_p`FJEOaqGH}9_ag}g{!+!2eFB7Oz^KLtAX4c}c( zQGT|9yH(=UU$Ix)uCCWy#yMr9_1?ElVt;LUg1>`mK;ULZzdV>}Y|Hyjm}~b{lz#Lv zZkx*(uVX(IByLrff^1BtbIO7=XSAx#%kcqMEmKDxN9gdTD`(Tu9gT7?|7)gwgn$++ z5={{nrLIh1Z%mAcX`E>)fV@My{a}4(9JM7rATmxcCEhu=o+GvF=A2l~SUg2H_Dd&d zoH!(L@Oz&+^hDkOE#M`v-{k1yV<9)lZlueMgYy42e>W&~^$YBKbN`NS=I;PCdl~hH>${dXiqXi`h zA<(T_5C}ZeCL-J@mntL7(*@ATu>GfjLQKuSmLHHQFCoQ-hV3Ip(4qZv+}HBvF$<3-7quR_un#B~y?5DFN^2XN#m zxInEzmeA^-1~{If-*GRK0{$+|IJGf2n(aoaTFieoh;<=vOn7Y-7m3TqdjV}CC;Q_S ztXw#3#VHL_6R$4r9MqnbEh0Xv2_n@j$ky^8QyK>*aH}bDa*xDft$Hu)u33)u$aY`0 zHR{C9*DzYl{u%mJ7PT`QXm!!s=vA9Kr};+2-mWu;I`a=3l!xwSw&gXt! z3Z$LheIqbQP(~B*RN|2YlG(f3N@UNm;Vgy%De+oyO|2D9gac7(Qz~EqjcIWWK3(?U9xhyUOhK4>$rP+@ce!&`I(KUnj-*( zEd(EI3aqrUE_RnxT^mBA2bqlh?kZe*?QxY$Yq_+D1tGVxjo3+au8I3fVT!yq;58|^ zH%%;yEljv3` ztc5Fb*xTpfHu9hF?DZhp8qJxLQ#T_{`7yZc(j9tpES!e@OG|luR!Xq5z(DQ`vRmLQ z#%-YlyC;oCtuBPqTVBssrft_dSBE*RKHSW$5;ffFNRkWE)|5BmGV9jF#VngGcIZ^+ zSEYzqSE`=0)C^c|pO;NBv}}kK&Xm@CO<{7Lo+_d_+cR}B4ut_J0PQCj)u+pu&AfVl zB+YNKwatD%J8Ae`UMqD*Ec8w@qidJ+aqe+h4EvvOc43(i&%VPek=?_zKMs+(6OKc_w!kHmyAWt`dufoq*N4BCNp}mc>Y_9 zWUyJn)xCgng*KG*`s6RJDrQBRAi@vNW)*53FL zN3j*9YlBYVi4h;;evK)oWr&0fx8F~`u8g`HNRE%e7Q}t;zK;z)IdCRM2?*vf6N?F)~lY*#o>e=W{&<_#JWgp(^xpX{yGIwvc^V{y^AQ^R`e>j6Y z<{WhBZ_EPd$lB(VXdG~@KB+JmnI+$1i56mj9Yk?*njh|40JYIdbF!tRK7`lf>S~rhV{R5qlkb%~J-DN<{ar%=zO_#!kO~*`2 zZt%50wZ_EnJZ72;zi@{aBrt~=P0o|$?r(go3m)1&^!~DaXVKp03z4x1WkS-BvGsuy zuWX9whyh40ep;Un?%EC2EAsl%`#b^l&l0DX z&@O(;zVlR`DF#+2I<@w{p?5Zc&ce4@#`ZL& zJzK~u#{u%9RG)<@IhG0rW7ZM8dB$6+WX&{ z{C6vhIQj=jFDX$~u{z2TmC8?T?zOgzAdBpsZtlY{&D%bhwW0+5?;kL}%T=jLTl#d&In~3s@r=QkN za;|3^_m~wS#ZXnGG)ucVlF(V*o@r+Q^Rj-FFHkh*8<*4wUp&6lb!%u(Gi%2{T}C8h z^N)vgkiydQA|mJmA?vzH_bhpeBw+R7Od97N2U5v>+&cBJD9EeD`+#}{+c@GMRHkcT z#W_{4nO+`PzvnVvKRkA5<8^|)-p#ZPck`Gj(o;(yIVu|HN~43@uP)_DJ;4(q`dhf~ z3pR;q6`qYnFuehG6le2LT(%fUJABZ{SUc?7<_j|N3f zkZRucQ*K{jvx>xBh<7x(MPYpTcxQW&yY1RxJuU(s`s+6_4ewSh> zYic5z6Pq(t_1zUdZ|LsDvfw*bp#mcIuUKbQ0(4XaHU@pdwQ;e?R2r2Ru{Rq$cp#=; zMZTz%py4}XgU|cFI34)rwrqtfJ|jQ(CTNsgX0iJ+9%Kfwu>|Y6W2B4KT5I!sO|(;S$TPR>i7}~5KvHrA>AEd1N(;= zJhf|~GV*sN{0T#Hj^}<(PENu}sRCw=`)i-}wg*N=Hf#Qp*%VKQ}Y8B>QG&TBY|7HTuHslqDH4VTEO1zkbCpXH_-Q69>m^ zo$kUuO0Kl|noMdcC^B0e7`0yJFW(+_pBdHuW55J7E5QgiXYJ}Fo?Z$+qh}lB1VbuI bp3kD`c$pS}RRAipSYU13qrY4*drbcWn!(Wj From 957ff8314d67a8bd3cdb5a5ce21c9476bd168c97 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Sun, 30 Nov 2014 16:45:52 +0100 Subject: [PATCH 22/56] Cargo can now order empty blood packs. --- code/datums/supplypacks.dm | 10 ++++++++++ .../reagents/reagent_containers/blood_pack.dm | 14 ++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index c11ca32bca7..d46b396bc84 100755 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -380,6 +380,16 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containername = "Medical crate" group = "Medical" +/datum/supply_packs/medical + name = "BloodPack crate" + contains = list(/obj/item/weapon/storage/box/bloodpacks, + /obj/item/weapon/storage/box/bloodpacks, + /obj/item/weapon/storage/box/bloodpacks) + cost = 10 + containertype = /obj/structure/closet/crate/medical + containername = "BloodPack crate" + group = "Medical" + /datum/supply_packs/bodybag name = "Body bag crate" contains = list(/obj/item/weapon/storage/box/bodybags, diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index 445fa864638..4f4981b4d8a 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -1,3 +1,17 @@ +/obj/item/weapon/storage/box/bloodpacks + name = "blood packs bags" + desc = "This box contains blood packs." + icon_state = "sterile" + New() + ..() + new /obj/item/weapon/reagent_containers/blood/empty(src) + new /obj/item/weapon/reagent_containers/blood/empty(src) + new /obj/item/weapon/reagent_containers/blood/empty(src) + new /obj/item/weapon/reagent_containers/blood/empty(src) + new /obj/item/weapon/reagent_containers/blood/empty(src) + new /obj/item/weapon/reagent_containers/blood/empty(src) + new /obj/item/weapon/reagent_containers/blood/empty(src) + /obj/item/weapon/reagent_containers/blood name = "BloodPack" desc = "Contains blood used for transfusion." From 90188929473346bde0137bf8b844556e25856ab1 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Sun, 30 Nov 2014 20:05:10 +0000 Subject: [PATCH 23/56] Update DMI state extraction --- tools/dmitool/dmitool.jar | Bin 193227 -> 194485 bytes tools/dmitool/src/main/java/dmitool/DMI.java | 4 +- .../src/main/java/dmitool/IconState.java | 48 +++++++ .../dmitool/src/main/java/dmitool/Image.java | 44 ------ tools/dmitool/src/main/java/dmitool/Main.java | 135 +++++++++++++----- 5 files changed, 146 insertions(+), 85 deletions(-) diff --git a/tools/dmitool/dmitool.jar b/tools/dmitool/dmitool.jar index 5ef38baed8dfdecccdbc885ae42f8e6288c0aeec..43be9e422f633121d7439f06003c752db5acf70e 100644 GIT binary patch delta 19703 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 diff --git a/tools/dmitool/src/main/java/dmitool/DMI.java b/tools/dmitool/src/main/java/dmitool/DMI.java index 98bd5a856da..7fbe9912f1c 100644 --- a/tools/dmitool/src/main/java/dmitool/DMI.java +++ b/tools/dmitool/src/main/java/dmitool/DMI.java @@ -346,7 +346,7 @@ public class DMI implements Comparator { int iy = sy * h; ImageInfo ii = new ImageInfo(ix, iy, 8, true); PngWriter out = new PngWriter(baos, ii); - out.setCompLevel(9); + out.setCompLevel(9); // Maximum compression String description = getDescriptor(); if(Main.VERBOSITY > 0) System.out.println("Descriptor has " + (description.split("\n").length) + " lines."); out.getMetadata().setText("Description", description, true, true); @@ -367,8 +367,6 @@ public class DMI implements Comparator { } } - //int[] buf = new int[ix]; - for(int irow=0; irow 0) System.out.println("Writing " + totalDirs + " dir(s), " + totalFrames + " frame(s), " + totalDirs*totalFrames + " image(s) total."); + ImageInfo ii = new ImageInfo(totalFrames * w, totalDirs * h, 8, true); + PngWriter out = new PngWriter(outS, ii); + out.setCompLevel(9); + + Image[][] img = new Image[totalFrames][totalDirs]; + { + for(int i=0; i=0; y--) { - for(int x=0; x>8) & 0xFF); - out.write((i>>16) & 0xFF); - out.write((i>>24) & 0xFF); - } - private void writeShort(OutputStream out, short s) throws IOException { - out.write(s & 0xFF); - out.write((s>>8) & 0xFF); - } } \ No newline at end of file diff --git a/tools/dmitool/src/main/java/dmitool/Main.java b/tools/dmitool/src/main/java/dmitool/Main.java index 76e75c4a2ef..e5b3b9e5624 100644 --- a/tools/dmitool/src/main/java/dmitool/Main.java +++ b/tools/dmitool/src/main/java/dmitool/Main.java @@ -143,13 +143,14 @@ public class Main { } break; case "extract": - if(argq.size() < 4) { + if(argq.size() < 3) { System.out.println("Insufficient arguments for command!"); System.out.println(helpStr); return; } String file = argq.pollFirst(), - state = argq.pollFirst(); + state = argq.pollFirst(), + outFile = argq.pollFirst(); dmi = doDMILoad(file); if(VERBOSITY >= 0) dmi.printInfo(); @@ -159,47 +160,64 @@ public class Main { System.out.println("icon_state '"+state+"' does not exist!"); return; } - int dir=0; - int frame=0; + // minDir, Maxdir, minFrame, Maxframe + int mDir=0, Mdir=is.dirs-1; + int mFrame=0, Mframe=is.frames-1; - if(argq.size() < 1 + (is.dirs>1?1:0) + (is.frames>1?1:0)) { - int what = (is.dirs > 1 ? 1:0) | (is.frames > 1 ? 2:0); - switch(what) { - case 1: System.out.println("Direction specifier required!"); break; - case 2: System.out.println("Frame specifier required!"); break; - case 3: System.out.println("Direction and frame specifiers required!"); break; - - default: System.out.println("Direction and/or frame specifier required!"); break; - } - return; - } - - if(is.dirs > 1) { - String dString = argq.pollFirst(); - t: try { - dir = Integer.parseInt(dString); - } catch(NumberFormatException nfe) { - for(int q=0; q 1) { + String arg = argq.pollFirst(); + + switch(arg) { + case "d": + case "dir": + case "dirs": + case "direction": + case "directions": + String dString = argq.pollFirst(); + if(dString.contains("-")) { + String[] splitD = dString.split("-"); + if(splitD.length == 2) { + mDir = parseDir(splitD[0], is); + Mdir = parseDir(splitD[1], is); + } else { + System.out.println("Illegal dir string: '" + dString + "'!"); + return; + } + } else { + mDir = parseDir(dString, is); + Mdir = mDir; } - } - System.out.println("Unknown or non-existent direction '" + dString + "'!"); - return; + // Invalid value check, warnings are printed in parseDir() + if(mDir == -1 || Mdir == -1) return; + break; + case "f": + case "frame": + case "frames": + String fString = argq.pollFirst(); + if(fString.contains("-")) { + String[] splitF = fString.split("-"); + if(splitF.length == 2) { + mFrame = parseFrame(splitF[0], is); + Mframe = parseFrame(splitF[1], is); + } else { + System.out.println("Illegal frame string: '" + fString + "'!"); + return; + } + } else { + mFrame = parseFrame(fString, is); + Mframe = mFrame; + } + // Invalid value check, warnings are printed in parseFrame() + if(mFrame == -1 || Mframe == -1) return; + break; + default: + System.out.println("Unknown argument '" + arg + "' detected, ignoring."); } } - if(is.frames > 1) { - String fString = argq.pollFirst(); - try { - frame = Integer.parseInt(fString); - } catch(NumberFormatException nfe) { - System.out.println("Failed to parse frame number: '" + fString + "'!"); - return; - } + if(!argq.isEmpty()) { + System.out.println("Extra argument '" + argq.pollFirst() + "' detected, ignoring."); } - Image img = is.images[is.dirs*frame + dir]; - img.dumpToBMP(new FileOutputStream(argq.pollFirst())); + is.dumpToPNG(new FileOutputStream(outFile), mDir, Mdir, mFrame, Mframe); break; case "verify": if(argq.size() < 1) { @@ -220,6 +238,47 @@ public class Main { } } + static int parseDir(String s, IconState is) { + try { + int i = Integer.parseInt(s); + if(0 <= i && i < is.dirs) { + return i; + } else { + System.out.println("Direction not in valid range [0, "+(is.dirs-1)+"]!"); + return -1; + } + } catch(NumberFormatException nfe) { + for(int q=0; q Date: Sun, 30 Nov 2014 20:15:43 +0000 Subject: [PATCH 24/56] Update help text, guard against illegal values --- tools/dmitool/dmitool.jar | Bin 194485 -> 194661 bytes tools/dmitool/src/main/java/dmitool/Main.java | 18 +++++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/tools/dmitool/dmitool.jar b/tools/dmitool/dmitool.jar index 43be9e422f633121d7439f06003c752db5acf70e..e82d12e5b4399837ad0447c7e4c8ce8f5e0a8125 100644 GIT binary patch delta 7626 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 delta 7435 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 Qd2|La;cRz8A8(BR2UZ`ag8%>k diff --git a/tools/dmitool/src/main/java/dmitool/Main.java b/tools/dmitool/src/main/java/dmitool/Main.java index e5b3b9e5624..b85763470e0 100644 --- a/tools/dmitool/src/main/java/dmitool/Main.java +++ b/tools/dmitool/src/main/java/dmitool/Main.java @@ -33,9 +33,12 @@ public class Main { "\tmerge [file1] and [file2]'s changes from a common ancestor [base], saving the result in [out]\n" + "\tconflicts will be placed in [out].conflict.dmi\n" + - "extract [file] [state] {direction} {frame} [out]\n"+ - "\textract [state] from [file] in bitmap format to [out]; {direction} and {frame} are separately mandatory if [state] has more than one of them\n" + - "\t{direction} can be 0-7 or S, N, E, W, SE, SW, NE, NW (non-case-sensitive)\n" + + "extract [file] [state] [out] {args}\n"+ + "\textract [state] from [file] in PNG format to [out]\n" + + "\targs specify direction and frame; input 'f' followed by a frame specifier, and/or 'd' followed by a direction specifier\n" + + "\tframe specifier can be a single number or number-number for a range\n" + + "\tdirection specifier can be a single direction, or direction-direction\n" + + "\tdirection can be 0-7 or S, N, E, W, SE, SW, NE, NW (non-case-sensitive)\n" + ""; @@ -189,6 +192,11 @@ public class Main { } // Invalid value check, warnings are printed in parseDir() if(mDir == -1 || Mdir == -1) return; + if(Mdir < mDir) { + System.out.println("Maximum dir greater than minimum dir!"); + System.out.println("Textual direction order is S, N, E, W, SE, SW, NE, NW increasing 0 (S) to 7 (NW)"); + return; + } break; case "f": case "frame": @@ -209,6 +217,10 @@ public class Main { } // Invalid value check, warnings are printed in parseFrame() if(mFrame == -1 || Mframe == -1) return; + if(Mframe < mFrame) { + System.out.println("Maximum frame greater than minimum frame!"); + return; + } break; default: System.out.println("Unknown argument '" + arg + "' detected, ignoring."); From e2196fe6eceaffe555f90ba6eded9c4bf861165d Mon Sep 17 00:00:00 2001 From: Atlantiscze Date: Mon, 1 Dec 2014 02:02:11 +0100 Subject: [PATCH 25/56] Robotic Cable Coils - Cyborgs and Drones can now use change-colour verb to change colour of their integrated cable coil. --- .../mob/living/silicon/robot/robot_modules.dm | 6 ++--- code/modules/power/cable.dm | 25 +++++++++++++++++++ 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 57cf8b1c620..60a36e3e72b 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -189,7 +189,7 @@ /obj/item/stack/sheet/metal = 50, /obj/item/stack/sheet/glass = 50, /obj/item/stack/sheet/glass/reinforced = 50, - /obj/item/stack/cable_coil = 50, + /obj/item/stack/cable_coil/robot = 50, /obj/item/stack/rods = 15, /obj/item/stack/tile/plasteel = 15 ) @@ -225,7 +225,7 @@ G.amount = 50 src.modules += G - var/obj/item/stack/cable_coil/W = new /obj/item/stack/cable_coil(src) + var/obj/item/stack/cable_coil/robot/W = new /obj/item/stack/cable_coil/robot(src) W.amount = 50 src.modules += W @@ -406,7 +406,7 @@ /obj/item/stack/tile/plasteel = 15, /obj/item/stack/sheet/metal = 20, /obj/item/stack/sheet/glass = 20, - /obj/item/stack/cable_coil = 30 + /obj/item/stack/cable_coil/robot = 30 ) New() diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 0e0f7c6e1f4..dd04e38321f 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -590,6 +590,31 @@ obj/structure/cable/proc/cableColor(var/colorC) usr << "\blue You cannot do that." ..() +/obj/item/stack/cable_coil/robot/verb/set_colour() + set name = "Change Colour" + set category = "Object" + + var/list/possible_colours = list ("Yellow", "Green", "Pink", "Blue", "Orange", "Cyan", "Red") + var/selected_type = input("Pick new colour.", "Cable Colour", null, null) as null|anything in possible_colours + + if(selected_type) + switch(selected_type) + if("Yellow") + color = COLOR_YELLOW + if("Green") + color = COLOR_GREEN + if("Pink") + color = COLOR_PINK + if("Blue") + color = COLOR_BLUE + if("Orange") + color = COLOR_ORANGE + if("Cyan") + color = COLOR_CYAN + else + color = COLOR_RED + usr << "You change your cable coil's colour to [selected_type]" + // Items usable on a cable coil : // - Wirecutters : cut them duh ! // - Cable coil : merge cables From afadcdc35a3bb7ed7971b060183d3382a5e42b5e Mon Sep 17 00:00:00 2001 From: Atlantiscze Date: Mon, 1 Dec 2014 02:06:03 +0100 Subject: [PATCH 26/56] Increases AI power usage This commit increases AI power usage to 50kW. This was discussed on codershuttle and should (/w some minor lags) give the AI approximatey 60 minutes of power with fully charged SMES. --- code/modules/mob/living/silicon/ai/ai.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 16d42b07dec..1eebcdcb037 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -229,7 +229,7 @@ var/list/ai_verbs_default = list( */ /obj/machinery/ai_powersupply name="Power Supply" - active_power_usage=1000 + active_power_usage=50000 // Station AIs use significant amounts of power. This, when combined with charged SMES should mean AI lasts for 1hr without external power. use_power = 2 power_channel = EQUIP var/mob/living/silicon/ai/powered_ai = null From e2a2d5f06e58ae45a8206aa5654f6cb3155f0236 Mon Sep 17 00:00:00 2001 From: Amunak Date: Mon, 1 Dec 2014 02:24:04 +0100 Subject: [PATCH 27/56] Upped Supermatter core price to 150 supply points This is to prevent griefing using supermatter (it is bad if I can order four of them after ~20 minutes in game and destroy most of the station with them) and to be coherent with the lore - SM is SUPER FREAKING EXPENSIVE. Also (hopefully) makes the crew think before ejecting the SM 4noraisin. --- code/datums/supplypacks.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index c11ca32bca7..61825a67b8e 100755 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -1087,7 +1087,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/smbig name = "Supermatter Core" contains = list(/obj/machinery/power/supermatter) - cost = 50 + cost = 150 containertype = /obj/structure/closet/crate/secure/phoron containername = "Supermatter crate (CAUTION)" group = "Engineering" From 2ca4ccd23abec481d461778593f22dc64c445424 Mon Sep 17 00:00:00 2001 From: Amunak Date: Mon, 1 Dec 2014 02:27:17 +0100 Subject: [PATCH 28/56] Lowered SMES coil price to 75 It is a valuable piece of technology, but alone it is not really powerful at all. This is the same price as the RUST core and TE generator, which are both admittedly much more complicated. I know this was for balance reasons, but as it is now engineers will rather steal the coils from solar panel SMESes than to deal with cargo who are not very supportive of ordering expensive stuff like this. --- code/datums/supplypacks.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 61825a67b8e..6cf36e48a0a 100755 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -463,7 +463,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/smescoil name = "Superconducting Magnetic Coil" contains = list(/obj/item/weapon/smes_coil) - cost = 150 + cost = 75 containertype = /obj/structure/closet/crate containername = "Superconducting Magnetic Coil crate" group = "Engineering" From 772e42fd7506fdb06caac11386347d4e0c7b344e Mon Sep 17 00:00:00 2001 From: Atlantiscze Date: Mon, 1 Dec 2014 02:54:15 +0100 Subject: [PATCH 29/56] APCs now use percent-based channel values. - Equipment now once again shuts down when APC reaches 30% - Lighting shuts down at 15% This is now correctly based on APCs power cell, instead of being hardcoded. This means atmospherics and similar areas won't just suddenly go from all lit working room to darkness. --- code/modules/power/apc.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 510602122f3..4a0eb0da053 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -1139,7 +1139,7 @@ else if(longtermpower > -10) longtermpower -= 2 - if(cell.charge >= 1250 || longtermpower > 0) // Put most likely at the top so we don't check it last, effeciency 101 + if((cell.percent() > 30) || longtermpower > 0) // Put most likely at the top so we don't check it last, effeciency 101 if(autoflag != 3) equipment = autoset(equipment, 1) lighting = autoset(lighting, 1) @@ -1148,21 +1148,21 @@ area.poweralert(1, src) if(cell.charge >= 4000) area.poweralert(1, src) - else if(cell.charge < 1250 && cell.charge > 750 && longtermpower < 0) // <30%, turn off equipment + else if((cell.percent() <= 30) && (cell.percent() > 15) && longtermpower < 0) // <30%, turn off equipment if(autoflag != 2) equipment = autoset(equipment, 2) lighting = autoset(lighting, 1) environ = autoset(environ, 1) area.poweralert(0, src) autoflag = 2 - else if(cell.charge < 750 && cell.charge > 10) // <15%, turn off lighting & equipment + else if(cell.percent() <= 15) // <15%, turn off lighting & equipment if((autoflag > 1 && longtermpower < 0) || (autoflag > 1 && longtermpower >= 0)) equipment = autoset(equipment, 2) lighting = autoset(lighting, 2) environ = autoset(environ, 1) area.poweralert(0, src) autoflag = 1 - else if(cell.charge <= 0) // zero charge, turn all off + else // zero charge, turn all off if(autoflag != 0) equipment = autoset(equipment, 0) lighting = autoset(lighting, 0) From 166288293bfcc9e862ec3c07e43c622456bd9ea6 Mon Sep 17 00:00:00 2001 From: Atlantiscze Date: Mon, 1 Dec 2014 03:39:36 +0100 Subject: [PATCH 30/56] Cyborg Atmospherics Tools! - Matter Decompiler now clears unused pipe assemblies. Long gone are the times where cyborgs couldn't remove old pipe parts. - Engineering and Construction cyborgs now have pipe painter tool, which allows them to paint pipes properly. --- code/modules/mob/living/silicon/robot/drone/drone_items.dm | 2 ++ code/modules/mob/living/silicon/robot/robot_modules.dm | 2 ++ 2 files changed, 4 insertions(+) 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 aa033cde55a..1b25858215a 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -255,6 +255,8 @@ stored_comms["wood"]++ stored_comms["wood"]++ stored_comms["wood"]++ + else if(istype(W,/obj/item/pipe)) + // This allows drones and engiborgs to clear pipe assemblies from floors. else continue diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 60a36e3e72b..176b8c471bc 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -181,6 +181,7 @@ src.modules += new /obj/item/weapon/wrench(src) src.modules += new /obj/item/weapon/crowbar(src) src.modules += new /obj/item/weapon/pickaxe/plasmacutter(src) + src.modules += new /obj/item/device/pipe_painter(src) /obj/item/weapon/robot_module/engineering name = "engineering robot module" @@ -210,6 +211,7 @@ src.modules += new /obj/item/taperoll/engineering(src) src.modules += new /obj/item/weapon/gripper(src) src.modules += new /obj/item/weapon/matter_decompiler(src) + src.modules += new /obj/item/device/pipe_painter(src) src.emag = new /obj/item/borg/stun(src) From fd23b0c56b95ac27771ba686f6cdd7580c3bc5f5 Mon Sep 17 00:00:00 2001 From: Atlantiscze Date: Mon, 1 Dec 2014 04:03:13 +0100 Subject: [PATCH 31/56] AI APC now has larger power cell. --- maps/exodus-1.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index 5ee52569bdb..48d8932b2d7 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -3301,7 +3301,7 @@ "bly" = (/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/bridge/meeting_room) "blz" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "blA" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"blB" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 1},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"blB" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 1},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc/super{dir = 1; name = "north bump"; pixel_y = 24},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "blC" = (/obj/machinery/door/window{dir = 2; name = "AI Core Door"; req_access_txt = "109"},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/flasher{id = "AI"; pixel_x = 22; pixel_y = 24},/obj/machinery/turretid/stun{name = "AI Chamber turret control"; pixel_x = 36; pixel_y = 24},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "blD" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "blE" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) From 64f9a502f9cf3500ab501905184f4c114a37b65f Mon Sep 17 00:00:00 2001 From: Atlantiscze Date: Mon, 1 Dec 2014 05:11:35 +0100 Subject: [PATCH 32/56] Mining robot module upgrade - Mining cyborgs can now properly work with drills. - Mining cyborgs have received ore scanner, crowbar, and limited version of magnetic gripper. - Mining cyborgs can now swap power cells inside mining drills, as well as upgrade them if provided better parts. - As a bonus, cyborgs can now see how much ore is in ore boxes (because it makes sense that cyborg which mined ton of ore can check how much ore it mined) --- code/game/machinery/cell_charger.dm | 11 ++++++++++- code/modules/mining/satchel_ore_boxdm.dm | 3 ++- .../mob/living/silicon/robot/drone/drone_items.dm | 7 +++++++ .../modules/mob/living/silicon/robot/robot_modules.dm | 3 +++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index 171646c4b15..a02553cc77e 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -79,7 +79,16 @@ updateicon() /obj/machinery/cell_charger/attack_ai(mob/user) - return + if(istype(user, /mob/living/silicon/robot) && Adjacent(user)) // Borgs can remove the cell if they are near enough + if(!src.charging) + return + + charging.loc = src.loc + charging.updateicon() + charging = null + update_icon() + user.visible_message("[user] removes the cell from the charger.", "You remove the cell from the charger.") + /obj/machinery/cell_charger/emp_act(severity) if(stat & (BROKEN|NOPOWER)) diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index 2ef5725d707..eb596309156 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -40,7 +40,8 @@ user << "That's an [src]." user << desc - if(!istype(user, /mob/living/carbon/human)) //Only living, intelligent creatures with hands can check the contents of ore boxes. + // Borgs can now check contents too. + if((!istype(user, /mob/living/carbon/human)) && (!istype(user, /mob/living/silicon/robot))) return if(!Adjacent(user)) //Can only check the contents of ore boxes if you can physically reach them. 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 1b25858215a..e651b70b431 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -29,6 +29,13 @@ //Item currently being held. var/obj/item/wrapped = null +// VEEEEERY limited version for mining borgs. Basically only for swapping cells and upgrading the drills. +/obj/item/weapon/gripper/miner + can_hold = list( + /obj/item/weapon/cell, + /obj/item/weapon/stock_parts + ) + /obj/item/weapon/gripper/paperwork name = "paperwork gripper" desc = "A simple grasping tool for clerical work." diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 176b8c471bc..9dddac9cca8 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -367,6 +367,9 @@ src.modules += new /obj/item/weapon/storage/bag/ore(src) src.modules += new /obj/item/weapon/pickaxe/borgdrill(src) src.modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src) + src.modules += new /obj/item/weapon/gripper/miner(src) + src.modules += new /obj/item/weapon/mining_scanner(src) + src.modules += new /obj/item/weapon/crowbar(src) src.emag = new /obj/item/weapon/pickaxe/plasmacutter(src) return From 0a43dd086056be2845fbbdc1fa08fcad0d19f490 Mon Sep 17 00:00:00 2001 From: SparklySheep Date: Sun, 30 Nov 2014 23:12:04 -0600 Subject: [PATCH 33/56] Adds pAI cards to the loadout. --- code/modules/client/preferences_gear.dm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm index 72d30a72011..77f42e7cda2 100644 --- a/code/modules/client/preferences_gear.dm +++ b/code/modules/client/preferences_gear.dm @@ -747,6 +747,12 @@ var/global/list/gear_datums = list() sort_category = "utility" cost = 1 +/datum/gear/paicard + display_name = "personal AI device" + path = /obj/item/device/paicard + sort_category = "utility" + cost = 3 + // The rest of the trash. /datum/gear/ashtray @@ -837,4 +843,4 @@ var/global/list/gear_datums = list() path = /obj/item/clothing/ears/skrell/cloth_female cost = 2 sort_category = "ears" - whitelisted = "Skrell" \ No newline at end of file + whitelisted = "Skrell" From f8bc1708af82b01c614fbaedf822e46980d4383c Mon Sep 17 00:00:00 2001 From: SparklySheep Date: Sun, 30 Nov 2014 23:20:24 -0600 Subject: [PATCH 34/56] Lowered to 2 points. --- code/modules/client/preferences_gear.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm index 77f42e7cda2..3f9eb7b3613 100644 --- a/code/modules/client/preferences_gear.dm +++ b/code/modules/client/preferences_gear.dm @@ -751,7 +751,7 @@ var/global/list/gear_datums = list() display_name = "personal AI device" path = /obj/item/device/paicard sort_category = "utility" - cost = 3 + cost = 2 // The rest of the trash. From 8f342ada745961bc787be3acdad3258c558bcc94 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Mon, 1 Dec 2014 08:40:58 +0100 Subject: [PATCH 35/56] Constructable blood packs. Can now make your own blood packs from plastic. --- code/game/objects/items/stacks/sheets/mineral.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index e6e3cff050a..530c9b5b88e 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -46,6 +46,7 @@ var/global/list/datum/stack_recipe/plastic_recipes = list ( \ new/datum/stack_recipe("plastic spoon", /obj/item/weapon/kitchen/utensil/pspoon, 1, on_floor = 1), \ new/datum/stack_recipe("plastic knife", /obj/item/weapon/kitchen/utensil/pknife, 1, on_floor = 1), \ new/datum/stack_recipe("plastic bag", /obj/item/weapon/storage/bag/plasticbag, 3, on_floor = 1), \ + new/datum/stack_recipe("blood pack", /obj/item/weapon/reagent_containers/blood/empty, 4, on_floor = 0), \ ) var/global/list/datum/stack_recipe/iron_recipes = list ( \ From 855f75bd3c1f113047a76475ebe46847f423b25b Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 1 Dec 2014 20:03:08 +1030 Subject: [PATCH 36/56] Removed magboot stomp. --- code/modules/clothing/clothing.dm | 8 +----- code/modules/clothing/shoes/magboots.dm | 28 +------------------ .../living/carbon/human/human_attackhand.dm | 4 --- 3 files changed, 2 insertions(+), 38 deletions(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 711ed13711c..c6487cc9d2e 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -545,10 +545,4 @@ BLIND // can't see anything /obj/item/clothing/under/emp_act(severity) if (hastie) hastie.emp_act(severity) - ..() - -/obj/item/clothing/shoes/proc/can_stomp() - return 0 - -/obj/item/clothing/shoes/proc/handle_stomp() - return 0 + ..() \ No newline at end of file diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index b8d2ae95318..3908d0cf75d 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -28,30 +28,4 @@ var/state = "disabled" if(src.flags&NOSLIP) state = "enabled" - user << "Its mag-pulse traction system appears to be [state]." - -/obj/item/clothing/shoes/magboots/can_stomp() - if(!magpulse) - return 0 - -/obj/item/clothing/shoes/magboots/handle_stomp(var/mob/living/carbon/human/target, var/mob/living/carbon/human/user, var/datum/organ/external/affecting) - - if(!(target.lying) || !(user.canmove)) - return 0 - - visible_message("\red [user] raises one of \his magboots over [target]'s [affecting.display_name]...") - - user.attack_move = 1 - - if(do_after(user, 20)) - if(user.canmove && !user.lying && target.Adjacent(user) && target.lying) - visible_message("\red [user] stomps \his magboot down on [target]'s [affecting.display_name] with full force!") - target.apply_damage(rand(20,30), BRUTE, affecting, target.run_armor_check(affecting, "melee")) - playsound(loc, 'sound/weapons/genhit3.ogg', 25, 1, -1) - user.attack_move = 0 - - user.attack_log += text("\[[time_stamp()]\] Magboot-stomped [target.name] ([target.ckey])") - target.attack_log += text("\[[time_stamp()]\] Has been magboot-stomped by [user.name] ([user.ckey])") - msg_admin_attack("[key_name(user)] magboot-stomped [key_name(target)]") - return 1 - return 0 \ No newline at end of file + user << "Its mag-pulse traction system appears to be [state]." \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 1dedd68252d..ad24dff5bce 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -109,10 +109,6 @@ var/hit_zone = H.zone_sel.selecting var/datum/organ/external/affecting = get_organ(hit_zone) - // Check for stomp attack. - if(H.shoes && H.shoes.can_stomp()) - return shoes.handle_stomp(src, H, affecting) - switch(src.a_intent) if("help") // We didn't see this coming, so we get the full blow From 0ae473b6ea042c5d615a3f6f4f3605ac9cf67bab Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 1 Dec 2014 20:06:43 +1030 Subject: [PATCH 37/56] Removed antag role buffs. --- code/modules/mob/living/carbon/human/human.dm | 7 ------- code/modules/mob/living/carbon/human/human_attackhand.dm | 4 ++-- code/modules/mob/mob.dm | 3 --- 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 2774d4c3d86..a3143e6b88f 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -708,13 +708,6 @@ number += 2 return number -/mob/living/carbon/human/get_combat_buff(var/damage) - if(check_special_role("Ninja") || check_special_role("Changeling")) - damage += 3 // We assume Ninjas and Changelings are slightly better in combat than the usual human - if(HULK in mutations) - damage *= 2 // Hulks do twice the damage - return damage * damage_multiplier - /mob/living/carbon/human/IsAdvancedToolUser(var/silent) if(species.has_fine_manipulation) return 1 diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index ad24dff5bce..6055ef3e86a 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -153,8 +153,8 @@ if(miss_type) return 0 - // Apply possible buffs - damage = H.get_combat_buff(damage) + if(HULK in H.mutations) + damage *= 2 // Hulks do twice the damage) var/armour = run_armor_check(affecting, "melee") // Apply additional unarmed effects. diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 7e0c47fe4a7..fa70ccbfc54 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -652,9 +652,6 @@ var/list/slot_equipment_priority = list( \ var/mob/pulled = AM pulled.inertia_dir = 0 -/mob/proc/get_combat_buff(var/damage) - return damage - /mob/proc/can_use_hands() return From d65ead4f7ed58c3120cd9425ac0373c1e952fa56 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 1 Dec 2014 20:10:27 +1030 Subject: [PATCH 38/56] Changed \red to span in unarmed_attack.dm. --- .../mob/living/carbon/human/unarmed_attack.dm | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/code/modules/mob/living/carbon/human/unarmed_attack.dm b/code/modules/mob/living/carbon/human/unarmed_attack.dm index fad9efc5216..99c6eedd432 100644 --- a/code/modules/mob/living/carbon/human/unarmed_attack.dm +++ b/code/modules/mob/living/carbon/human/unarmed_attack.dm @@ -109,7 +109,7 @@ if(!skill) skill = 1 if(target == user) - user.visible_message("\red [user] [pick(attack_verb)]ed \himself in the [organ]!") + user.visible_message("[user] [pick(attack_verb)]ed \himself in the [organ]!") return 0 if(!target.lying) @@ -117,30 +117,30 @@ if("head") // ----- HEAD ----- // switch(attack_damage) - if(1 to 2) user.visible_message("\red [user] slapped [target] across \his cheek!") - if(3 to 4) user.visible_message("\red [user] struck [target] in the head[pick("", " with a closed fist")]!") - if(5) user.visible_message("\red [user] gave [target] a resounding slap to the face!") + if(1 to 2) user.visible_message("[user] slapped [target] across \his cheek!") + if(3 to 4) user.visible_message("[user] struck [target] in the head[pick("", " with a closed fist")]!") + if(5) user.visible_message("[user] gave [target] a resounding slap to the face!") if("chest", "l_arm", "r_arm", "l_hand", "r_hand") // -- UPPER BODY -- // switch(attack_damage) - if(1 to 2) user.visible_message("\red [user] slapped [target]'s [organ]!") - if(3 to 4) user.visible_message("\red [user] [findtext(zone, "hand")?"[pick(attack_verb)]ed":pick("[pick(attack_verb)]ed", "shoulders")] [target] in \his [organ]!") - if(5) user.visible_message("\red [user] rammed \his [pick(attack_noun)] into [target]'s [organ]!") + if(1 to 2) user.visible_message("[user] slapped [target]'s [organ]!") + if(3 to 4) user.visible_message("[user] [findtext(zone, "hand")?"[pick(attack_verb)]ed":pick("[pick(attack_verb)]ed", "shoulders")] [target] in \his [organ]!") + if(5) user.visible_message("[user] rammed \his [pick(attack_noun)] into [target]'s [organ]!") if("groin", "l_leg", "r_leg") // -- LOWER BODY -- // switch(attack_damage) - if(1 to 2) user.visible_message("\red [user] gave [target] a light kick to the [organ]!") - if(3 to 4) user.visible_message("\red [user] [pick("kicked", "kneed")] [target] in \his [organ]!") - if(5) user.visible_message("\red [user] landed a strong kick against [target]'s [organ]!") + if(1 to 2) user.visible_message("[user] gave [target] a light kick to the [organ]!") + if(3 to 4) user.visible_message("[user] [pick("kicked", "kneed")] [target] in \his [organ]!") + if(5) user.visible_message("[user] landed a strong kick against [target]'s [organ]!") if("l_foot", "r_foot") // ----- FEET ----- // switch(attack_damage) - if(1 to 4) user.visible_message("\red [user] kicked [target] in \his [organ]!") - if(5) user.visible_message("\red [user] stomped down hard on [target]'s [organ]!") + if(1 to 4) user.visible_message("[user] kicked [target] in \his [organ]!") + if(5) user.visible_message("[user] stomped down hard on [target]'s [organ]!") else if (user.loc != target.loc) - user.visible_message("\red [user] [pick("stomped down hard on", "kicked against", "gave a strong kick against", "rams their foot into")] [target]'s [organ]!") + user.visible_message("[user] [pick("stomped down hard on", "kicked against", "gave a strong kick against", "rams their foot into")] [target]'s [organ]!") else - user.visible_message("\red [user] [pick("punched", "threw a punch", "struck", "slapped", "rammed their [pick(attack_noun)] into")] [target]'s [organ]!") + user.visible_message("[user] [pick("punched", "threw a punch", "struck", "slapped", "rammed their [pick(attack_noun)] into")] [target]'s [organ]!") /datum/unarmed_attack/diona @@ -165,22 +165,22 @@ attack_damage = Clamp(attack_damage, 1, 5) if(target == user) - user.visible_message("\red [user] [pick(attack_verb)]ed \himself in the [affecting.display_name]!") + user.visible_message("[user] [pick(attack_verb)]ed \himself in the [affecting.display_name]!") return 0 switch(zone) if("head") // ----- HEAD ----- // switch(damage) - if(1 to 2) user.visible_message("\red [user] scratched [target] across \his cheek!") - if(3 to 4) user.visible_message("\red [user] [pick(attack_verb)]ed [pick("", "the side of")][target] [pick("head", "neck")][pick("", " with spread [pick(attack_noun)]")]!") - if(5) user.visible_message("\red [user] [pick(attack_verb)]ed [target] across \his face!") + if(1 to 2) user.visible_message("[user] scratched [target] across \his cheek!") + if(3 to 4) user.visible_message("[user] [pick(attack_verb)]ed [pick("", "the side of")][target] [pick("head", "neck")][pick("", " with spread [pick(attack_noun)]")]!") + if(5) user.visible_message("[user] [pick(attack_verb)]ed [target] across \his face!") if("chest", "l_arm", "r_arm", "l_hand", "r_hand", "groin", "l_leg", "r_leg", "l_foot", "r_foot") // ----- BODY ----- // switch(damage) - if(1 to 2) user.visible_message("\red [user] scratched [target]'s [affecting.display_name]!") - if(3 to 4) user.visible_message("\red [user] [pick(attack_verb)]ed [pick("", "the side of")][target]'s [affecting.display_name]!") - if(5) user.visible_message("\red [user] digs \his [pick(attack_noun)] deep into [target]'s [affecting.display_name]!") + if(1 to 2) user.visible_message("[user] scratched [target]'s [affecting.display_name]!") + if(3 to 4) user.visible_message("[user] [pick(attack_verb)]ed [pick("", "the side of")][target]'s [affecting.display_name]!") + if(5) user.visible_message("[user] digs \his [pick(attack_noun)] deep into [target]'s [affecting.display_name]!") /datum/unarmed_attack/claws/strong attack_verb = list("slash") From bee0b9d23db728390f624fdbc10a300a385138f0 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 1 Dec 2014 20:20:30 +1030 Subject: [PATCH 39/56] Tweaks after testing. --- code/modules/mob/living/carbon/human/human_attackhand.dm | 2 -- code/modules/mob/living/carbon/human/human_defines.dm | 4 +--- code/modules/mob/living/carbon/human/unarmed_attack.dm | 6 +++--- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 6055ef3e86a..90efe34a47d 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -94,8 +94,6 @@ attack_generic(H,rand(1,3),"punched") return - if(attack_move) return 0 - // See if they can attack, and which attacks to use. var/datum/unarmed_attack/attack = H.species.unarmed if(!attack.is_usable(H)) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 8d85c914de9..41d222865d5 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -81,6 +81,4 @@ var/mob/remoteview_target = null var/hand_blood_color - var/list/flavor_texts = list() - - var/attack_move = 0 //Used in combat to check if user is performing an attack over several ticks \ No newline at end of file + var/list/flavor_texts = list() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/unarmed_attack.dm b/code/modules/mob/living/carbon/human/unarmed_attack.dm index 99c6eedd432..7e17ea5ed75 100644 --- a/code/modules/mob/living/carbon/human/unarmed_attack.dm +++ b/code/modules/mob/living/carbon/human/unarmed_attack.dm @@ -33,7 +33,7 @@ if(attack_damage >= 5 && armour < 2 && !(target == user) && stun_chance <= attack_damage * 5) // 25% standard chance switch(zone) // strong punches can have effects depending on where they hit - if("head") + if("head", "mouth", "eyes") // Induce blurriness target.visible_message("[target] stares blankly for a few moments.", "You see stars.") target.apply_effect(attack_damage*2, EYE_BLUR, armour) @@ -114,7 +114,7 @@ if(!target.lying) switch(zone) - if("head") + if("head", "mouth", "eyes") // ----- HEAD ----- // switch(attack_damage) if(1 to 2) user.visible_message("[user] slapped [target] across \his cheek!") @@ -169,7 +169,7 @@ return 0 switch(zone) - if("head") + if("head", "mouth", "eyes") // ----- HEAD ----- // switch(damage) if(1 to 2) user.visible_message("[user] scratched [target] across \his cheek!") From 487117a0ae34f4b9131604c0c78bd44471fb408f Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 1 Dec 2014 20:42:32 +1030 Subject: [PATCH 40/56] Reverting a now unneeded var change. --- code/modules/mob/living/carbon/human/human_defines.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 41d222865d5..b9cde0c192b 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -45,7 +45,7 @@ //Equipment slots var/obj/item/wear_suit = null var/obj/item/w_uniform = null - var/obj/item/clothing/shoes/shoes = null //Why aren't we defining all of these as their most commonly used object type? + var/obj/item/shoes = null var/obj/item/belt = null var/obj/item/gloves = null var/obj/item/glasses = null @@ -81,4 +81,4 @@ var/mob/remoteview_target = null var/hand_blood_color - var/list/flavor_texts = list() \ No newline at end of file + var/list/flavor_texts = list() From 8240f1417620cbb2523bb20c75f417ff61380a4b Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 1 Dec 2014 23:55:03 +1030 Subject: [PATCH 41/56] Fixes #7185, works on #7184 --- code/modules/clothing/clothing.dm | 41 ++++++++++++-------- code/modules/clothing/spacesuits/rig/rig.dm | 27 ++++++++----- code/modules/mob/living/carbon/human/life.dm | 3 +- 3 files changed, 44 insertions(+), 27 deletions(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index c6487cc9d2e..d2d1f27e016 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -255,17 +255,36 @@ BLIND // can't see anything /obj/item/clothing/head/attack_self(mob/user) if(brightness_on) if(!isturf(user.loc)) - user << "You cannot turn the light on while in this [user.loc]" //To prevent some lighting anomalities. + user << "You cannot turn the light on while in this [user.loc]" return on = !on - update_icon() - if(on) - user.SetLuminosity(user.luminosity + brightness_on) - else - user.SetLuminosity(user.luminosity - brightness_on) + update_light(user) else return ..(user) +/obj/item/clothing/head/proc/update_light(var/mob/user = null) + if(on) + if(loc == user) + user.SetLuminosity(user.luminosity + brightness_on) + else if(isturf(loc)) + SetLuminosity(brightness_on) + else + if(loc == user) + user.SetLuminosity(user.luminosity - brightness_on) + else if(isturf(loc)) + SetLuminosity(0) + update_icon() + +/obj/item/clothing/head/pickup(mob/user) + if(on) + user.SetLuminosity(user.luminosity + brightness_on) + SetLuminosity(0) + +/obj/item/clothing/head/dropped(mob/user) + if(on) + user.SetLuminosity(user.luminosity - brightness_on) + SetLuminosity(brightness_on) + /obj/item/clothing/head/update_icon(var/mob/user) overlays.Cut() @@ -279,16 +298,6 @@ BLIND // can't see anything var/mob/living/carbon/human/H = user H.update_inv_head() -/obj/item/clothing/head/proc/update_light(mob/user) - - if(!brightness_on) - return - - if(on) - if(light_overlay) overlays |= light_overlay - user.SetLuminosity(user.luminosity - brightness_on) - SetLuminosity(brightness_on) - /obj/item/clothing/head/equipped(mob/user) ..() update_light(user) diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index 8e57f7eca12..e2850953bca 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -69,6 +69,7 @@ var/offline_slowdown = 10 // If the suit is deployed and unpowered, it sets slowdown to this. var/vision_restriction var/offline_vision_restriction = 1 // 0 - none, 1 - welder vision, 2 - blind. Maybe move this to helmets. + var/list/suit_can_hold // Wiring! How exciting. var/datum/wires/rig/wires @@ -122,6 +123,10 @@ verbs |= /obj/item/weapon/rig/proc/toggle_boots if(chest_type) chest = new chest_type(src) + if(suit_can_hold) + chest.allowed = suit_can_hold + else + chest.allowed = list() verbs |= /obj/item/weapon/rig/proc/toggle_chest for(var/obj/item/piece in list(gloves,helmet,boots,chest)) @@ -235,15 +240,17 @@ if("helmet") M << "\The [piece] hisses [!seal_target ? "closed" : "open"]." M.update_inv_head() - if(!seal_target) - if(flags & AIRTIGHT) - helmet.flags |= AIRTIGHT - helmet.flags_inv |= (HIDEEYES|HIDEFACE) - helmet.body_parts_covered |= (FACE|EYES) - else - helmet.flags &= ~AIRTIGHT - helmet.flags_inv &= ~(HIDEEYES|HIDEFACE) - helmet.body_parts_covered &= ~(FACE|EYES) + if(helmet) + if(!seal_target) + if(flags & AIRTIGHT) + helmet.flags |= AIRTIGHT + helmet.flags_inv |= (HIDEEYES|HIDEFACE) + helmet.body_parts_covered |= (FACE|EYES) + else + helmet.flags &= ~AIRTIGHT + helmet.flags_inv &= ~(HIDEEYES|HIDEFACE) + helmet.body_parts_covered &= ~(FACE|EYES) + helmet.update_light(wearer) else failed_to_seal = 1 @@ -480,7 +487,7 @@ if((istype(H) && H.back == src) || (istype(H,/mob/living/silicon))) if(istype(H,/mob/living/silicon)) - if(!control_overridden) + if(!ai_override_enabled) usr << "Synthetic access disabled. Please consult hardware provider." return else if(security_check_enabled && !src.allowed(usr)) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index ddb44f3a1bd..69890e58a82 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1245,7 +1245,8 @@ if(copytext(hud.icon_state,1,4) == "hud") //ugly, but icon comparison is worse, I believe client.images.Remove(hud) - client.screen -= global_huds + for(var/hud in global_huds) + client.screen.Remove(hud) update_action_buttons() From 117ca6a1356aee9d4b25e96fba63ba46a01be2b1 Mon Sep 17 00:00:00 2001 From: Mloc-Argent Date: Thu, 27 Nov 2014 21:33:55 +0000 Subject: [PATCH 42/56] refactor 'dir = ' into 'set_dir()' This should have little/no gameplay effect right now, just paving the way for directional lights. Replaced handle_rotation() on buckly things with this. Signed-off-by: Mloc-Argent --- .../binary_devices/binary_atmos_base.dm | 2 +- .../components/binary_devices/circulator.dm | 4 +- .../components/binary_devices/pipeturbine.dm | 8 +- .../components/portables_connector.dm | 2 +- .../components/trinary_devices/filter.dm | 2 +- .../components/trinary_devices/mixer.dm | 4 +- .../trinary_devices/trinary_base.dm | 2 +- code/ATMOSPHERICS/components/tvalve.dm | 2 +- .../components/unary/oxygen_generator.dm | 2 +- .../components/unary/unary_base.dm | 2 +- code/ATMOSPHERICS/components/valve.dm | 6 +- code/ATMOSPHERICS/mainspipe.dm | 20 ++-- code/ATMOSPHERICS/pipes.dm | 20 ++-- code/FEA/FEA_fire.dm | 2 +- code/TriDimension/Pipes.dm | 6 +- code/TriDimension/Structures.dm | 4 +- .../Cael_Aislinn/Jungle/jungle_temple.dm | 2 +- .../Cael_Aislinn/Jungle/misc_helpers.dm | 2 +- .../Rust/fuel_assembly_port_construction.dm | 2 +- .../Rust/fuel_compressor_construction.dm | 2 +- .../Cael_Aislinn/Rust/fuel_injector.dm | 4 +- .../Cael_Aislinn/Rust/gyrotron.dm | 4 +- .../Cael_Aislinn/Rust/radiation.dm | 2 +- .../Cael_Aislinn/Supermatter/Laser2.dm | 4 +- .../Supermatter/ZeroPointLaser.dm | 4 +- .../Cael_Aislinn/meteor_battery.dm | 4 +- code/WorkInProgress/Cael_Aislinn/sculpture.dm | 6 +- .../Chinsky/overmap/ships/engines/thermal.dm | 2 +- code/WorkInProgress/Cib/amorph/amorph_hud.dm | 24 ++--- code/WorkInProgress/Tastyfish/livestock.dm | 10 +- .../Tastyfish/wallmount_frame.dm | 4 +- code/WorkInProgress/buildmode.dm | 22 ++--- code/ZAS/Fire.dm | 2 +- code/__HELPERS/unsorted.dm | 6 +- code/_onclick/click.dm | 6 +- code/_onclick/hud/alien_larva.dm | 2 +- code/_onclick/hud/human.dm | 16 +-- code/_onclick/hud/monkey.dm | 24 ++--- code/_onclick/hud/robot.dm | 18 ++-- code/_onclick/oldcode.dm | 16 +-- code/_onclick/telekinesis.dm | 2 +- code/datums/datumvars.dm | 4 +- code/datums/spells/dumbfire.dm | 2 +- code/datums/spells/projectile.dm | 4 +- code/game/atoms.dm | 7 +- code/game/atoms_movable.dm | 10 -- code/game/gamemodes/blob/theblob.dm | 4 +- code/game/gamemodes/nuclear/pinpointer.dm | 10 +- code/game/jobs/job/civilian_chaplain.dm | 8 +- code/game/jobs/job_controller.dm | 4 +- code/game/machinery/alarm.dm | 4 +- code/game/machinery/bots/bots.dm | 2 +- code/game/machinery/bots/mulebot.dm | 4 +- code/game/machinery/bots/secbot.dm | 2 +- code/game/machinery/camera/camera.dm | 8 +- code/game/machinery/constructable_frame.dm | 2 +- code/game/machinery/doors/airlock.dm | 2 +- code/game/machinery/doors/door.dm | 2 +- code/game/machinery/doors/windowdoor.dm | 2 +- code/game/machinery/machinery.dm | 2 +- code/game/machinery/pipe/construction.dm | 98 +++++++++---------- code/game/machinery/portable_turret.dm | 2 +- code/game/machinery/teleporter.dm | 4 +- code/game/machinery/turrets.dm | 4 +- .../mecha/equipment/tools/unused_tools.dm | 2 +- code/game/mecha/mecha.dm | 8 +- code/game/mecha/medical/medical.dm | 2 +- code/game/mecha/working/hoverpod.dm | 2 +- code/game/objects/effects/biomass_rift.dm | 14 +-- code/game/objects/effects/chemsmoke.dm | 2 +- .../objects/effects/decals/Cleanable/fuel.dm | 2 +- code/game/objects/effects/effect_system.dm | 4 +- code/game/objects/effects/glowshroom.dm | 2 +- code/game/objects/effects/step_triggers.dm | 2 +- .../objects/items/devices/chameleonproj.dm | 2 +- .../objects/items/devices/floor_painter.dm | 12 +-- code/game/objects/items/shooting_range.dm | 2 +- code/game/objects/items/stacks/stack.dm | 2 +- .../objects/items/weapons/grenades/grenade.dm | 2 +- code/game/objects/items/weapons/twohanded.dm | 2 +- code/game/objects/structures/electricchair.dm | 2 +- code/game/objects/structures/janicart.dm | 25 ++--- code/game/objects/structures/morgue.dm | 2 +- .../stool_bed_chair_nest/alien_nests.dm | 2 +- .../structures/stool_bed_chair_nest/bed.dm | 5 +- .../structures/stool_bed_chair_nest/chairs.dm | 19 ++-- .../stool_bed_chair_nest/wheelchair.dm | 17 ++-- code/game/objects/structures/tables_racks.dm | 6 +- code/game/objects/structures/transit_tubes.dm | 10 +- .../objects/structures/windoor_assembly.dm | 10 +- code/game/objects/structures/window.dm | 8 +- code/modules/admin/topic.dm | 2 +- code/modules/assembly/infrared.dm | 10 +- code/modules/awaymissions/gateway.dm | 6 +- code/modules/clothing/clothing.dm | 2 +- code/modules/flufftext/Hallucination.dm | 2 +- code/modules/mining/drilling/drill.dm | 2 +- code/modules/mob/dead/observer/observer.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 4 +- code/modules/mob/living/carbon/monkey/npc.dm | 2 +- .../living/simple_animal/friendly/corgi.dm | 16 +-- .../mob/living/simple_animal/hostile/bear.dm | 2 +- code/modules/mob/living/simple_animal/worm.dm | 4 +- code/modules/mob/mob.dm | 5 +- code/modules/mob/mob_movement.dm | 19 +++- code/modules/mob/new_player/new_player.dm | 2 +- code/modules/organs/organ_external.dm | 2 +- code/modules/power/apc.dm | 6 +- code/modules/power/generator.dm | 4 +- code/modules/power/singularity/emitter.dm | 4 +- .../power/singularity/field_generator.dm | 2 +- .../particle_accelerator/particle.dm | 2 +- .../particle_accelerator.dm | 8 +- .../particle_accelerator/particle_control.dm | 2 +- .../particle_accelerator/particle_emitter.dm | 2 +- code/modules/power/smes.dm | 2 +- code/modules/power/solar.dm | 2 +- code/modules/power/tracker.dm | 2 +- code/modules/projectiles/ammunition.dm | 2 +- code/modules/projectiles/targeting.dm | 4 +- code/modules/recycling/conveyor2.dm | 2 +- .../recycling/disposal-construction.dm | 10 +- code/modules/recycling/disposal.dm | 12 +-- .../tools/suspension_generator.dm | 4 +- .../xenoarchaeology/tools/tools_locater.dm | 2 +- code/modules/shieldgen/emergency_shield.dm | 2 +- code/modules/shieldgen/sheldwallgen.dm | 2 +- code/modules/shieldgen/shield_capacitor.dm | 2 +- code/modules/vehicles/train.dm | 2 +- code/modules/vehicles/vehicle.dm | 11 +-- code/unused/Agouri_stuff.dm | 10 +- code/unused/_debug.dm | 2 +- code/unused/assemblies.dm | 6 +- code/unused/asteroiddevice.dm | 4 +- code/unused/conveyor.dm | 4 +- code/unused/hivebot/hud.dm | 20 ++-- code/unused/mining/rail_unused.dm | 60 ++++++------ code/unused/new_year.dm | 2 +- code/unused/optics/beam.dm | 2 +- code/unused/optics/laser-pointer.dm | 2 +- code/unused/optics/mirror.dm | 18 ++-- code/unused/spacecraft/shipcore.dm | 12 +-- code/unused/vehicle.dm | 8 +- 143 files changed, 480 insertions(+), 480 deletions(-) diff --git a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm b/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm index 649972297a3..aed8b2dc07e 100644 --- a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm +++ b/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm @@ -1,5 +1,5 @@ obj/machinery/atmospherics/binary - dir = SOUTH + set_dir(SOUTH) initialize_directions = SOUTH|NORTH use_power = 1 diff --git a/code/ATMOSPHERICS/components/binary_devices/circulator.dm b/code/ATMOSPHERICS/components/binary_devices/circulator.dm index 0ac8ab62997..cb9ecfbdc58 100644 --- a/code/ATMOSPHERICS/components/binary_devices/circulator.dm +++ b/code/ATMOSPHERICS/components/binary_devices/circulator.dm @@ -111,7 +111,7 @@ if (usr.stat || usr.restrained() || anchored) return - src.dir = turn(src.dir, 90) + src.set_dir(turn(src.dir, 90)) desc = initial(desc) + " Its outlet port is to the [dir2text(dir)]." @@ -123,5 +123,5 @@ if (usr.stat || usr.restrained() || anchored) return - src.dir = turn(src.dir, -90) + src.set_dir(turn(src.dir, -90)) desc = initial(desc) + " Its outlet port is to the [dir2text(dir)]." \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/binary_devices/pipeturbine.dm b/code/ATMOSPHERICS/components/binary_devices/pipeturbine.dm index 7f0984efd7e..6923b6d31eb 100644 --- a/code/ATMOSPHERICS/components/binary_devices/pipeturbine.dm +++ b/code/ATMOSPHERICS/components/binary_devices/pipeturbine.dm @@ -129,7 +129,7 @@ if (usr.stat || usr.restrained() || anchored) return - src.dir = turn(src.dir, -90) + src.set_dir(turn(src.dir, -90)) verb/rotate_anticlockwise() @@ -140,7 +140,7 @@ if (usr.stat || usr.restrained() || anchored) return - src.dir = turn(src.dir, 90) + src.set_dir(turn(src.dir, 90)) //Goddamn copypaste from binary base class because atmospherics machinery API is not damn flexible network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference) @@ -276,7 +276,7 @@ if (usr.stat || usr.restrained() || anchored) return - src.dir = turn(src.dir, -90) + src.set_dir(turn(src.dir, -90)) verb/rotate_anticlock() set category = "Object" @@ -286,4 +286,4 @@ if (usr.stat || usr.restrained() || anchored) return - src.dir = turn(src.dir, 90) \ No newline at end of file + src.set_dir(turn(src.dir, 90)) \ No newline at end of file diff --git a/code/ATMOSPHERICS/components/portables_connector.dm b/code/ATMOSPHERICS/components/portables_connector.dm index 4bfd61a0a2a..488c1eeb915 100644 --- a/code/ATMOSPHERICS/components/portables_connector.dm +++ b/code/ATMOSPHERICS/components/portables_connector.dm @@ -5,7 +5,7 @@ name = "Connector Port" desc = "For connecting portables devices related to atmospherics control." - dir = SOUTH + set_dir(SOUTH) initialize_directions = SOUTH var/obj/machinery/portable_atmospherics/connected_device diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm index 5649b25e012..4f5205687ed 100755 --- a/code/ATMOSPHERICS/components/trinary_devices/filter.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm @@ -248,7 +248,7 @@ /obj/machinery/atmospherics/trinary/filter/m_filter icon_state = "mmap" - dir = SOUTH + set_dir(SOUTH) initialize_directions = SOUTH|NORTH|EAST obj/machinery/atmospherics/trinary/filter/m_filter/New() diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm index 051a2ced27f..9432518b539 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm @@ -181,7 +181,7 @@ obj/machinery/atmospherics/trinary/mixer/t_mixer icon_state = "tmap" - dir = SOUTH + set_dir(SOUTH) initialize_directions = SOUTH|EAST|WEST //node 3 is the outlet, nodes 1 & 2 are intakes @@ -227,7 +227,7 @@ obj/machinery/atmospherics/trinary/mixer/t_mixer/initialize() obj/machinery/atmospherics/trinary/mixer/m_mixer icon_state = "mmap" - dir = SOUTH + set_dir(SOUTH) initialize_directions = SOUTH|NORTH|EAST //node 3 is the outlet, nodes 1 & 2 are intakes diff --git a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm index 822c9a4d6dc..ce3aafc9536 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm @@ -1,5 +1,5 @@ obj/machinery/atmospherics/trinary - dir = SOUTH + set_dir(SOUTH) initialize_directions = SOUTH|NORTH|WEST use_power = 1 diff --git a/code/ATMOSPHERICS/components/tvalve.dm b/code/ATMOSPHERICS/components/tvalve.dm index 39ca1e25fd8..4d931bd3249 100644 --- a/code/ATMOSPHERICS/components/tvalve.dm +++ b/code/ATMOSPHERICS/components/tvalve.dm @@ -6,7 +6,7 @@ desc = "A pipe valve" level = 1 - dir = SOUTH + set_dir(SOUTH) initialize_directions = SOUTH|NORTH|WEST var/state = 0 // 0 = go straight, 1 = go to side diff --git a/code/ATMOSPHERICS/components/unary/oxygen_generator.dm b/code/ATMOSPHERICS/components/unary/oxygen_generator.dm index 14bbb46bbaa..c3ccdbc574b 100644 --- a/code/ATMOSPHERICS/components/unary/oxygen_generator.dm +++ b/code/ATMOSPHERICS/components/unary/oxygen_generator.dm @@ -6,7 +6,7 @@ obj/machinery/atmospherics/unary/oxygen_generator name = "Oxygen Generator" desc = "" - dir = SOUTH + set_dir(SOUTH) initialize_directions = SOUTH var/on = 0 diff --git a/code/ATMOSPHERICS/components/unary/unary_base.dm b/code/ATMOSPHERICS/components/unary/unary_base.dm index 8af26e51eb3..8d850cc74fa 100644 --- a/code/ATMOSPHERICS/components/unary/unary_base.dm +++ b/code/ATMOSPHERICS/components/unary/unary_base.dm @@ -1,5 +1,5 @@ /obj/machinery/atmospherics/unary - dir = SOUTH + set_dir(SOUTH) initialize_directions = SOUTH //layer = TURF_LAYER+0.1 diff --git a/code/ATMOSPHERICS/components/valve.dm b/code/ATMOSPHERICS/components/valve.dm index bce38d06545..4633c06511f 100644 --- a/code/ATMOSPHERICS/components/valve.dm +++ b/code/ATMOSPHERICS/components/valve.dm @@ -6,7 +6,7 @@ desc = "A pipe valve" level = 1 - dir = SOUTH + set_dir(SOUTH) initialize_directions = SOUTH|NORTH var/open = 0 @@ -123,9 +123,9 @@ /obj/machinery/atmospherics/valve/proc/normalize_dir() if(dir==3) - dir = 1 + set_dir(1) else if(dir==12) - dir = 4 + set_dir(4) /obj/machinery/atmospherics/valve/attack_ai(mob/user as mob) return diff --git a/code/ATMOSPHERICS/mainspipe.dm b/code/ATMOSPHERICS/mainspipe.dm index 631f3530a24..ce23f7bfba3 100644 --- a/code/ATMOSPHERICS/mainspipe.dm +++ b/code/ATMOSPHERICS/mainspipe.dm @@ -115,7 +115,7 @@ obj/machinery/atmospherics/mains_pipe/simple name = "mains pipe" desc = "A one meter section of 3-line mains pipe" - dir = SOUTH + set_dir(SOUTH) initialize_mains_directions = SOUTH|NORTH New() @@ -137,9 +137,9 @@ obj/machinery/atmospherics/mains_pipe/simple proc/normalize_dir() if(dir==3) - dir = 1 + set_dir(1) else if(dir==12) - dir = 4 + set_dir(4) update_icon() if(nodes[1] && nodes[2]) @@ -148,7 +148,7 @@ obj/machinery/atmospherics/mains_pipe/simple //var/node1_direction = get_dir(src, node1) //var/node2_direction = get_dir(src, node2) - //dir = node1_direction|node2_direction + //set_dir(node1_direction|node2_direction) else if(!nodes[1]&&!nodes[2]) @@ -196,7 +196,7 @@ obj/machinery/atmospherics/mains_pipe/manifold name = "manifold pipe" desc = "A manifold composed of mains pipes" - dir = SOUTH + set_dir(SOUTH) initialize_mains_directions = EAST|NORTH|WEST volume = 105 @@ -261,7 +261,7 @@ obj/machinery/atmospherics/mains_pipe/manifold4w name = "manifold pipe" desc = "A manifold composed of mains pipes" - dir = SOUTH + set_dir(SOUTH) initialize_mains_directions = EAST|NORTH|WEST|SOUTH volume = 105 @@ -504,7 +504,7 @@ obj/machinery/atmospherics/mains_pipe/cap name = "pipe cap" desc = "A cap for the end of a mains pipe" - dir = SOUTH + set_dir(SOUTH) initialize_directions = SOUTH volume = 35 @@ -546,7 +546,7 @@ obj/machinery/atmospherics/mains_pipe/valve var/open = 1 - dir = SOUTH + set_dir(SOUTH) initialize_mains_directions = SOUTH|NORTH New() @@ -597,9 +597,9 @@ obj/machinery/atmospherics/mains_pipe/valve proc/normalize_dir() if(dir==3) - dir = 1 + set_dir(1) else if(dir==12) - dir = 4 + set_dir(4) proc/open() if(open) return 0 diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm index 53910f2fe3d..037d39218ae 100644 --- a/code/ATMOSPHERICS/pipes.dm +++ b/code/ATMOSPHERICS/pipes.dm @@ -143,7 +143,7 @@ volume = ATMOS_DEFAULT_VOLUME_PIPE - dir = SOUTH + set_dir(SOUTH) initialize_directions = SOUTH|NORTH var/obj/machinery/atmospherics/node1 @@ -216,9 +216,9 @@ /obj/machinery/atmospherics/pipe/simple/proc/normalize_dir() if(dir==3) - dir = 1 + set_dir(1) else if(dir==12) - dir = 4 + set_dir(4) /obj/machinery/atmospherics/pipe/simple/Del() if(node1) @@ -406,7 +406,7 @@ volume = ATMOS_DEFAULT_VOLUME_PIPE * 1.5 - dir = SOUTH + set_dir(SOUTH) initialize_directions = EAST|NORTH|WEST var/obj/machinery/atmospherics/node1 @@ -658,7 +658,7 @@ volume = ATMOS_DEFAULT_VOLUME_PIPE * 2 - dir = SOUTH + set_dir(SOUTH) initialize_directions = NORTH|SOUTH|EAST|WEST var/obj/machinery/atmospherics/node1 @@ -918,7 +918,7 @@ volume = 35 - dir = SOUTH + set_dir(SOUTH) initialize_directions = SOUTH var/obj/machinery/atmospherics/node @@ -1042,7 +1042,7 @@ var/start_pressure = 25*ONE_ATMOSPHERE level = 1 - dir = SOUTH + set_dir(SOUTH) initialize_directions = SOUTH density = 1 @@ -1220,7 +1220,7 @@ volume = 250 - dir = SOUTH + set_dir(SOUTH) initialize_directions = SOUTH var/build_killswitch = 1 @@ -1259,7 +1259,7 @@ if(node1) icon_state = "intact" - dir = get_dir(src, node1) + set_dir(get_dir(src, node1)) else icon_state = "exposed" @@ -1291,7 +1291,7 @@ /obj/machinery/atmospherics/pipe/vent/hide(var/i) //to make the little pipe section invisible, the icon changes. if(node1) icon_state = "[i == 1 && istype(loc, /turf/simulated) ? "h" : "" ]intact" - dir = get_dir(src, node1) + set_dir(get_dir(src, node1)) else icon_state = "exposed" diff --git a/code/FEA/FEA_fire.dm b/code/FEA/FEA_fire.dm index bb71f31d47f..b7a8d42fa5e 100644 --- a/code/FEA/FEA_fire.dm +++ b/code/FEA/FEA_fire.dm @@ -167,7 +167,7 @@ /obj/effect/hotspot/New() ..() - dir = pick(cardinal) + set_dir(pick(cardinal)) return /* diff --git a/code/TriDimension/Pipes.dm b/code/TriDimension/Pipes.dm index 4132ddfe947..4f38444e988 100644 --- a/code/TriDimension/Pipes.dm +++ b/code/TriDimension/Pipes.dm @@ -10,7 +10,7 @@ obj/machinery/atmospherics/pipe/zpipe volume = 70 - dir = SOUTH + set_dir(SOUTH) initialize_directions = SOUTH var/obj/machinery/atmospherics/node1 //connection on the same Z @@ -84,9 +84,9 @@ obj/machinery/atmospherics/pipe/zpipe/proc/burst() obj/machinery/atmospherics/pipe/zpipe/proc/normalize_dir() if(dir==3) - dir = 1 + set_dir(1) else if(dir==12) - dir = 4 + set_dir(4) obj/machinery/atmospherics/pipe/zpipe/Del() if(node1) diff --git a/code/TriDimension/Structures.dm b/code/TriDimension/Structures.dm index fa91ccd5bb6..554853535a7 100644 --- a/code/TriDimension/Structures.dm +++ b/code/TriDimension/Structures.dm @@ -256,8 +256,8 @@ initialise_stair_connection(S, src, inv_dir) proc/initialise_stair_connection(var/obj/multiz/stairs/top, var/obj/multiz/stairs/bottom, var/dir) - top.dir = dir - bottom.dir = dir + top.set_dir(dir) + bottom.set_dir(dir) top.connected = bottom bottom.connected = top top.icon_state = "ramptop" diff --git a/code/WorkInProgress/Cael_Aislinn/Jungle/jungle_temple.dm b/code/WorkInProgress/Cael_Aislinn/Jungle/jungle_temple.dm index 95f7c265565..7e350dc3a06 100644 --- a/code/WorkInProgress/Cael_Aislinn/Jungle/jungle_temple.dm +++ b/code/WorkInProgress/Cael_Aislinn/Jungle/jungle_temple.dm @@ -368,7 +368,7 @@ var/predir = M.dir step(M, throw_dir) - M.dir = predir + M.set_dir(predir) //gives turf a different description, to try and trick players /obj/effect/step_trigger/trap/fake diff --git a/code/WorkInProgress/Cael_Aislinn/Jungle/misc_helpers.dm b/code/WorkInProgress/Cael_Aislinn/Jungle/misc_helpers.dm index ffc1265b7dd..7ae07059f7d 100644 --- a/code/WorkInProgress/Cael_Aislinn/Jungle/misc_helpers.dm +++ b/code/WorkInProgress/Cael_Aislinn/Jungle/misc_helpers.dm @@ -62,7 +62,7 @@ continue moving var/turf/X = new T.type(B) - X.dir = old_dir1 + X.set_dir(old_dir1) X.icon_state = old_icon_state1 X.icon = old_icon1 //Shuttle floors are in shuttle.dmi while the defaults are floors.dmi diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm index b012d1c360e..0c12ed23a01 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm @@ -39,7 +39,7 @@ // offset 24 pixels in direction of dir // this allows the APC to be embedded in a wall, yet still inside an area if (building) - dir = ndir + set_dir(ndir) else has_electronics = 3 opened = 0 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm index fab9eb87d5c..3d2e32f971e 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm @@ -39,7 +39,7 @@ // offset 24 pixels in direction of dir // this allows the APC to be embedded in a wall, yet still inside an area if (building) - dir = ndir + set_dir(ndir) else has_electronics = 3 opened = 0 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm index e3441dafd86..ad7ea622e25 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm @@ -294,7 +294,7 @@ if (usr.stat || usr.restrained() || anchored) return - src.dir = turn(src.dir, 90) + src.set_dir(turn(src.dir, 90)) /obj/machinery/power/rust_fuel_injector/verb/rotate_anticlock() set category = "Object" @@ -304,4 +304,4 @@ if (usr.stat || usr.restrained() || anchored) return - src.dir = turn(src.dir, -90) \ No newline at end of file + src.set_dir(turn(src.dir, -90)) \ No newline at end of file diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm b/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm index f375716b21e..0fff75bb508 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm @@ -95,7 +95,7 @@ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() - A.dir = src.dir + A.set_dir(src.dir) if(src.dir == 1)//Up A.yo = 20 A.xo = 0 @@ -125,7 +125,7 @@ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start()*/ - A.dir = src.dir + A.set_dir(src.dir) if(src.dir == 1)//Up A.yo = 20 A.xo = 0 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/radiation.dm b/code/WorkInProgress/Cael_Aislinn/Rust/radiation.dm index 155ef23c5c6..b94127ffa2b 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/radiation.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/radiation.dm @@ -26,7 +26,7 @@ if(!dir) RadiateParticleRand(energy, ionizing) var/obj/effect/accelerated_particle/particle = new - particle.dir = dir + particle.set_dir(dir) particle.ionizing = ionizing if(energy) particle.energy = energy diff --git a/code/WorkInProgress/Cael_Aislinn/Supermatter/Laser2.dm b/code/WorkInProgress/Cael_Aislinn/Supermatter/Laser2.dm index 38032c459ca..3782e76209c 100644 --- a/code/WorkInProgress/Cael_Aislinn/Supermatter/Laser2.dm +++ b/code/WorkInProgress/Cael_Aislinn/Supermatter/Laser2.dm @@ -22,7 +22,7 @@ if(!first) src.first = new /obj/beam/e_beam(src.loc) src.first.master = src - src.first.dir = src.dir + src.first.set_dir(src.dir) src.first.power = src.power src.first.freq = src.freq src.first.phase = src.phase @@ -61,7 +61,7 @@ if(!next) if(get_step(src.loc,src.dir)) var/obj/beam/e_beam/e = new /obj/beam/e_beam(src.loc) - e.dir = src.dir + e.set_dir(src.dir) src.next = e e.master = src.master e.power = src.power diff --git a/code/WorkInProgress/Cael_Aislinn/Supermatter/ZeroPointLaser.dm b/code/WorkInProgress/Cael_Aislinn/Supermatter/ZeroPointLaser.dm index 04c07733df2..66ccf181bd8 100644 --- a/code/WorkInProgress/Cael_Aislinn/Supermatter/ZeroPointLaser.dm +++ b/code/WorkInProgress/Cael_Aislinn/Supermatter/ZeroPointLaser.dm @@ -34,7 +34,7 @@ if (src.anchored || usr:stat) usr << "It is fastened to the floor!" return 0 - src.dir = turn(src.dir, 90) + src.set_dir(turn(src.dir, 90)) return 1 /obj/machinery/zero_point_emitter/New() @@ -98,7 +98,7 @@ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() - A.dir = src.dir + A.set_dir(src.dir) switch(dir) if(NORTH) A.yo = 20 diff --git a/code/WorkInProgress/Cael_Aislinn/meteor_battery.dm b/code/WorkInProgress/Cael_Aislinn/meteor_battery.dm index 85bcc084b7a..9ebc5fa5dec 100644 --- a/code/WorkInProgress/Cael_Aislinn/meteor_battery.dm +++ b/code/WorkInProgress/Cael_Aislinn/meteor_battery.dm @@ -13,7 +13,7 @@ /obj/item/projectile/missile/process(var/turf/newtarget) target = newtarget - dir = get_dir(src.loc, target) + set_dir(get_dir(src.loc, target)) walk_towards(src, target, MISSILE_SPEED) /obj/item/projectile/missile/Bump(atom/A) @@ -164,7 +164,7 @@ /obj/machinery/meteor_battery/proc/target() while(src && enabled && !stat) - src.dir = get_dir(src, cur_target) + src.set_dir(get_dir(src, cur_target)) shootAt(cur_target) sleep(shot_delay) return diff --git a/code/WorkInProgress/Cael_Aislinn/sculpture.dm b/code/WorkInProgress/Cael_Aislinn/sculpture.dm index 639c2c84877..808e968f55e 100644 --- a/code/WorkInProgress/Cael_Aislinn/sculpture.dm +++ b/code/WorkInProgress/Cael_Aislinn/sculpture.dm @@ -56,7 +56,7 @@ continue turfs += thisturf var/turf/target_turf = pick(turfs) - src.dir = get_dir(src, target_turf) + src.set_dir(get_dir(src, target_turf)) src.loc = target_turf hibernate = 1 @@ -193,7 +193,7 @@ if(!next_turf.CanPass(src, next_turf)) break src.loc = next_turf - src.dir = get_dir(src, target_mob) + src.set_dir(get_dir(src, target_mob)) next_turf = get_step(src, get_dir(next_turf,target_mob)) num_turfs-- @@ -233,7 +233,7 @@ if(!next_turf.CanPass(src, next_turf)) break src.loc = next_turf - src.dir = get_dir(src, target_mob) + src.set_dir(get_dir(src, target_mob)) next_turf = get_step(src, get_dir(next_turf,target_turf)) num_turfs-- else if(G) diff --git a/code/WorkInProgress/Chinsky/overmap/ships/engines/thermal.dm b/code/WorkInProgress/Chinsky/overmap/ships/engines/thermal.dm index b26e7216389..44a7dcb84f9 100644 --- a/code/WorkInProgress/Chinsky/overmap/ships/engines/thermal.dm +++ b/code/WorkInProgress/Chinsky/overmap/ships/engines/thermal.dm @@ -89,7 +89,7 @@ anchored = 1 New(var/turf/nloc, var/ndir, var/temp) - dir = ndir + set_dir(ndir) ..(nloc) if(nloc) diff --git a/code/WorkInProgress/Cib/amorph/amorph_hud.dm b/code/WorkInProgress/Cib/amorph/amorph_hud.dm index c9a4ef0cc9c..41a3adc9f58 100644 --- a/code/WorkInProgress/Cib/amorph/amorph_hud.dm +++ b/code/WorkInProgress/Cib/amorph/amorph_hud.dm @@ -46,7 +46,7 @@ using = new /obj/screen( src ) using.name = "act_intent" - using.dir = SOUTHWEST + using.set_dir(SOUTHWEST) using.icon = ui_style using.icon_state = (mymob.a_intent == "hurt" ? "harm" : mymob.a_intent) using.screen_loc = ui_acti @@ -105,7 +105,7 @@ using = new /obj/screen( src ) using.name = "mov_intent" - using.dir = SOUTHWEST + using.set_dir(SOUTHWEST) using.icon = ui_style using.icon_state = (mymob.m_intent == "run" ? "running" : "walking") using.screen_loc = ui_movi @@ -123,7 +123,7 @@ using = new /obj/screen( src ) using.name = "r_hand" - using.dir = WEST + using.set_dir(WEST) using.icon = ui_style using.icon_state = "hand_inactive" if(mymob && !mymob.hand) //This being 0 or null means the right hand is in use @@ -135,7 +135,7 @@ using = new /obj/screen( src ) using.name = "l_hand" - using.dir = EAST + using.set_dir(EAST) using.icon = ui_style using.icon_state = "hand_inactive" if(mymob && mymob.hand) //This being 1 means the left hand is in use @@ -147,7 +147,7 @@ using = new /obj/screen( src ) using.name = "hand" - using.dir = SOUTH + using.set_dir(SOUTH) using.icon = ui_style using.icon_state = "hand1" using.screen_loc = ui_swaphand1 @@ -156,7 +156,7 @@ using = new /obj/screen( src ) using.name = "hand" - using.dir = SOUTH + using.set_dir(SOUTH) using.icon = ui_style using.icon_state = "hand2" using.screen_loc = ui_swaphand2 @@ -165,7 +165,7 @@ using = new /obj/screen( src ) using.name = "mask" - using.dir = NORTH + using.set_dir(NORTH) using.icon = ui_style using.icon_state = "equip" using.screen_loc = ui_monkey_mask @@ -174,7 +174,7 @@ using = new /obj/screen( src ) using.name = "back" - using.dir = NORTHEAST + using.set_dir(NORTHEAST) using.icon = ui_style using.icon_state = "equip" using.screen_loc = ui_back @@ -291,19 +291,19 @@ mymob.gun_setting_icon = new /obj/screen/gun/mode(null) if (mymob.client) if (mymob.client.gun_mode) // If in aim mode, correct the sprite - mymob.gun_setting_icon.dir = 2 + mymob.gun_setting_icon.set_dir(2) for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons if (G.target) mymob.item_use_icon = new /obj/screen/gun/item(null) if (mymob.client.target_can_click) - mymob.item_use_icon.dir = 1 + mymob.item_use_icon.set_dir(1) src.adding += mymob.item_use_icon mymob.gun_move_icon = new /obj/screen/gun/move(null) if (mymob.client.target_can_move) - mymob.gun_move_icon.dir = 1 + mymob.gun_move_icon.set_dir(1) mymob.gun_run_icon = new /obj/screen/gun/run(null) if (mymob.client.target_can_run) - mymob.gun_run_icon.dir = 1 + mymob.gun_run_icon.set_dir(1) src.adding += mymob.gun_run_icon src.adding += mymob.gun_move_icon diff --git a/code/WorkInProgress/Tastyfish/livestock.dm b/code/WorkInProgress/Tastyfish/livestock.dm index f17265ba046..0befcb4c61b 100644 --- a/code/WorkInProgress/Tastyfish/livestock.dm +++ b/code/WorkInProgress/Tastyfish/livestock.dm @@ -63,15 +63,15 @@ if(movement_target) //Not redundant due to sleeps, Item can be gone in 6 decisecomds if (movement_target.loc.x < src.x) - dir = WEST + set_dir(WEST) else if (movement_target.loc.x > src.x) - dir = EAST + set_dir(EAST) else if (movement_target.loc.y < src.y) - dir = SOUTH + set_dir(SOUTH) else if (movement_target.loc.y > src.y) - dir = NORTH + set_dir(NORTH) else - dir = SOUTH + set_dir(SOUTH) if(isturf(movement_target.loc)) movement_target.attack_animal(src) diff --git a/code/WorkInProgress/Tastyfish/wallmount_frame.dm b/code/WorkInProgress/Tastyfish/wallmount_frame.dm index 16bdb12d6c6..28b6101a751 100644 --- a/code/WorkInProgress/Tastyfish/wallmount_frame.dm +++ b/code/WorkInProgress/Tastyfish/wallmount_frame.dm @@ -25,7 +25,7 @@ del(src) return - dir = get_dir(T, loc) + set_dir(get_dir(T, loc)) /obj/machinery/constructable_frame/wallmount_frame/attackby(obj/item/P as obj, mob/user as mob) if(P.crit_fail) @@ -109,7 +109,7 @@ if(component_check) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) var/obj/machinery/new_machine = new src.circuit.build_path(src.loc) - new_machine.dir = dir + new_machine.set_dir(dir) if(istype(circuit, /obj/item/weapon/circuitboard/status_display)) new_machine.pixel_x = pixel_x * 1.33 new_machine.pixel_y = pixel_y * 1.33 diff --git a/code/WorkInProgress/buildmode.dm b/code/WorkInProgress/buildmode.dm index d93d45fec5c..acd442355a0 100644 --- a/code/WorkInProgress/buildmode.dm +++ b/code/WorkInProgress/buildmode.dm @@ -48,15 +48,15 @@ Click() switch(dir) if(NORTH) - dir = EAST + set_dir(EAST) if(EAST) - dir = SOUTH + set_dir(SOUTH) if(SOUTH) - dir = WEST + set_dir(WEST) if(WEST) - dir = NORTHWEST + set_dir(NORTHWEST) if(NORTHWEST) - dir = NORTH + set_dir(NORTH) return 1 /obj/effect/bmode/buildhelp @@ -219,19 +219,19 @@ switch(holder.builddir.dir) if(NORTH) var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object)) - WIN.dir = NORTH + WIN.set_dir(NORTH) if(SOUTH) var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object)) - WIN.dir = SOUTH + WIN.set_dir(SOUTH) if(EAST) var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object)) - WIN.dir = EAST + WIN.set_dir(EAST) if(WEST) var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object)) - WIN.dir = WEST + WIN.set_dir(WEST) if(NORTHWEST) var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object)) - WIN.dir = NORTHWEST + WIN.set_dir(NORTHWEST) if(2) if(pa.Find("left")) if(ispath(holder.buildmode.objholder,/turf)) @@ -239,7 +239,7 @@ T.ChangeTurf(holder.buildmode.objholder) else var/obj/A = new holder.buildmode.objholder (get_turf(object)) - A.dir = holder.builddir.dir + A.set_dir(holder.builddir.dir) else if(pa.Find("right")) if(isobj(object)) del(object) diff --git a/code/ZAS/Fire.dm b/code/ZAS/Fire.dm index 24aa1d2a514..babce841261 100644 --- a/code/ZAS/Fire.dm +++ b/code/ZAS/Fire.dm @@ -161,7 +161,7 @@ turf/simulated/hotspot_expose(exposed_temperature, exposed_volume, soh) if(!istype(loc, /turf)) del src - dir = pick(cardinal) + set_dir(pick(cardinal)) SetLuminosity(3) firelevel = fl air_master.active_hotspots.Add(src) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 4a213027771..d78f3e7a9d0 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -623,7 +623,7 @@ proc/anim(turf/location as turf,target as mob|obj,a_icon,a_icon_state as text,fl //The variables should be apparent enough. var/atom/movable/overlay/animation = new(location) if(direction) - animation.dir = direction + animation.set_dir(direction) animation.icon = a_icon animation.layer = target:layer+1 if(a_icon_state) @@ -854,7 +854,7 @@ proc/anim(turf/location as turf,target as mob|obj,a_icon,a_icon_state as text,fl var/old_icon1 = T.icon var/turf/X = B.ChangeTurf(T.type) - X.dir = old_dir1 + X.set_dir(old_dir1) X.icon_state = old_icon_state1 X.icon = old_icon1 //Shuttle floors are in shuttle.dmi while the defaults are floors.dmi @@ -1027,7 +1027,7 @@ proc/DuplicateObject(obj/original, var/perfectcopy = 0 , var/sameloc = 0) continue moving var/turf/X = new T.type(B) - X.dir = old_dir1 + X.set_dir(old_dir1) X.icon_state = old_icon_state1 X.icon = old_icon1 //Shuttle floors are in shuttle.dmi while the defaults are floors.dmi diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index eadc657a9ce..5ab826fa867 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -350,7 +350,5 @@ else if(dx > 0) direction = EAST else direction = WEST - dir = direction - if(buckled && buckled.movable) - buckled.dir = direction - buckled.handle_rotation() \ No newline at end of file + if(direction != dir) + facedir(direction) diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/alien_larva.dm index 5037353ff1a..6c5da7817ad 100644 --- a/code/_onclick/hud/alien_larva.dm +++ b/code/_onclick/hud/alien_larva.dm @@ -7,7 +7,7 @@ using = new /obj/screen() using.name = "mov_intent" - using.dir = SOUTHWEST + using.set_dir(SOUTHWEST) using.icon = 'icons/mob/screen1_alien.dmi' using.icon_state = (mymob.m_intent == "run" ? "running" : "walking") using.screen_loc = ui_acti diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 8b3fe141340..33a14d2e4d2 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -34,7 +34,7 @@ inv_box.icon_state = slot_data["state"] if(slot_data["dir"]) - inv_box.dir = slot_data["dir"] + inv_box.set_dir(slot_data["dir"]) if(slot_data["toggle"]) src.other += inv_box @@ -58,7 +58,7 @@ using = new /obj/screen() using.name = "act_intent" - using.dir = SOUTHWEST + using.set_dir(SOUTHWEST) using.icon = ui_style using.icon_state = "intent_"+mymob.a_intent using.screen_loc = ui_acti @@ -125,7 +125,7 @@ if(hud_data.has_m_intent) using = new /obj/screen() using.name = "mov_intent" - using.dir = SOUTHWEST + using.set_dir(SOUTHWEST) using.icon = ui_style using.icon_state = (mymob.m_intent == "run" ? "running" : "walking") using.screen_loc = ui_movi @@ -160,7 +160,7 @@ inv_box = new /obj/screen/inventory() inv_box.name = "r_hand" - inv_box.dir = WEST + inv_box.set_dir(WEST) inv_box.icon = ui_style inv_box.icon_state = "hand_inactive" if(mymob && !mymob.hand) //This being 0 or null means the right hand is in use @@ -176,7 +176,7 @@ inv_box = new /obj/screen/inventory() inv_box.name = "l_hand" - inv_box.dir = EAST + inv_box.set_dir(EAST) inv_box.icon = ui_style inv_box.icon_state = "hand_inactive" if(mymob && mymob.hand) //This being 1 means the left hand is in use @@ -191,7 +191,7 @@ using = new /obj/screen/inventory() using.name = "hand" - using.dir = SOUTH + using.set_dir(SOUTH) using.icon = ui_style using.icon_state = "hand1" using.screen_loc = ui_swaphand1 @@ -202,7 +202,7 @@ using = new /obj/screen/inventory() using.name = "hand" - using.dir = SOUTH + using.set_dir(SOUTH) using.icon = ui_style using.icon_state = "hand2" using.screen_loc = ui_swaphand2 @@ -358,7 +358,7 @@ if (mymob.client) if (mymob.client.gun_mode) // If in aim mode, correct the sprite - mymob.gun_setting_icon.dir = 2 + mymob.gun_setting_icon.set_dir(2) mymob.client.screen = null diff --git a/code/_onclick/hud/monkey.dm b/code/_onclick/hud/monkey.dm index 7ca8216bf21..65924284b51 100644 --- a/code/_onclick/hud/monkey.dm +++ b/code/_onclick/hud/monkey.dm @@ -8,7 +8,7 @@ using = new /obj/screen() using.name = "act_intent" - using.dir = SOUTHWEST + using.set_dir(SOUTHWEST) using.icon = ui_style using.icon_state = (mymob.a_intent == "hurt" ? "harm" : mymob.a_intent) using.screen_loc = ui_acti @@ -67,7 +67,7 @@ using = new /obj/screen() using.name = "mov_intent" - using.dir = SOUTHWEST + using.set_dir(SOUTHWEST) using.icon = ui_style using.icon_state = (mymob.m_intent == "run" ? "running" : "walking") using.screen_loc = ui_movi @@ -85,7 +85,7 @@ inv_box = new /obj/screen/inventory() inv_box.name = "r_hand" - inv_box.dir = WEST + inv_box.set_dir(WEST) inv_box.icon = ui_style inv_box.icon_state = "hand_inactive" if(mymob && !mymob.hand) //This being 0 or null means the right hand is in use @@ -98,7 +98,7 @@ inv_box = new /obj/screen/inventory() inv_box.name = "l_hand" - inv_box.dir = EAST + inv_box.set_dir(EAST) inv_box.icon = ui_style inv_box.icon_state = "hand_inactive" if(mymob && mymob.hand) //This being 1 means the left hand is in use @@ -111,7 +111,7 @@ using = new /obj/screen/inventory() using.name = "hand" - using.dir = SOUTH + using.set_dir(SOUTH) using.icon = ui_style using.icon_state = "hand1" using.screen_loc = ui_swaphand1 @@ -120,7 +120,7 @@ using = new /obj/screen/inventory() using.name = "hand" - using.dir = SOUTH + using.set_dir(SOUTH) using.icon = ui_style using.icon_state = "hand2" using.screen_loc = ui_swaphand2 @@ -129,7 +129,7 @@ inv_box = new /obj/screen/inventory() inv_box.name = "mask" - inv_box.dir = NORTH + inv_box.set_dir(NORTH) inv_box.icon = ui_style inv_box.icon_state = "equip" inv_box.screen_loc = ui_monkey_mask @@ -139,7 +139,7 @@ inv_box = new /obj/screen/inventory() inv_box.name = "back" - inv_box.dir = NORTHEAST + inv_box.set_dir(NORTHEAST) inv_box.icon = ui_style inv_box.icon_state = "equip" inv_box.screen_loc = ui_back @@ -224,19 +224,19 @@ mymob.gun_setting_icon = new /obj/screen/gun/mode(null) if (mymob.client) if (mymob.client.gun_mode) // If in aim mode, correct the sprite - mymob.gun_setting_icon.dir = 2 + mymob.gun_setting_icon.set_dir(2) for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons if (G.target) mymob.item_use_icon = new /obj/screen/gun/item(null) if (mymob.client.target_can_click) - mymob.item_use_icon.dir = 1 + mymob.item_use_icon.set_dir(1) src.adding += mymob.item_use_icon mymob.gun_move_icon = new /obj/screen/gun/move(null) if (mymob.client.target_can_move) - mymob.gun_move_icon.dir = 1 + mymob.gun_move_icon.set_dir(1) mymob.gun_run_icon = new /obj/screen/gun/run(null) if (mymob.client.target_can_run) - mymob.gun_run_icon.dir = 1 + mymob.gun_run_icon.set_dir(1) src.adding += mymob.gun_run_icon src.adding += mymob.gun_move_icon diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm index c696308d2d9..644b8113765 100644 --- a/code/_onclick/hud/robot.dm +++ b/code/_onclick/hud/robot.dm @@ -11,7 +11,7 @@ var/obj/screen/robot_inventory //Radio using = new /obj/screen() using.name = "radio" - using.dir = SOUTHWEST + using.set_dir(SOUTHWEST) using.icon = 'icons/mob/screen1_robot.dmi' using.icon_state = "radio" using.screen_loc = ui_movi @@ -22,7 +22,7 @@ var/obj/screen/robot_inventory using = new /obj/screen() using.name = "module1" - using.dir = SOUTHWEST + using.set_dir(SOUTHWEST) using.icon = 'icons/mob/screen1_robot.dmi' using.icon_state = "inv1" using.screen_loc = ui_inv1 @@ -32,7 +32,7 @@ var/obj/screen/robot_inventory using = new /obj/screen() using.name = "module2" - using.dir = SOUTHWEST + using.set_dir(SOUTHWEST) using.icon = 'icons/mob/screen1_robot.dmi' using.icon_state = "inv2" using.screen_loc = ui_inv2 @@ -42,7 +42,7 @@ var/obj/screen/robot_inventory using = new /obj/screen() using.name = "module3" - using.dir = SOUTHWEST + using.set_dir(SOUTHWEST) using.icon = 'icons/mob/screen1_robot.dmi' using.icon_state = "inv3" using.screen_loc = ui_inv3 @@ -55,7 +55,7 @@ var/obj/screen/robot_inventory //Intent using = new /obj/screen() using.name = "act_intent" - using.dir = SOUTHWEST + using.set_dir(SOUTHWEST) using.icon = 'icons/mob/screen1_robot.dmi' using.icon_state = (mymob.a_intent == "hurt" ? "harm" : mymob.a_intent) using.screen_loc = ui_acti @@ -155,19 +155,19 @@ var/obj/screen/robot_inventory mymob.gun_setting_icon = new /obj/screen/gun/mode(null) if (mymob.client) if (mymob.client.gun_mode) // If in aim mode, correct the sprite - mymob.gun_setting_icon.dir = 2 + mymob.gun_setting_icon.set_dir(2) for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons if (G.target) mymob.item_use_icon = new /obj/screen/gun/item(null) if (mymob.client.target_can_click) - mymob.item_use_icon.dir = 1 + mymob.item_use_icon.set_dir(1) src.adding += mymob.item_use_icon mymob.gun_move_icon = new /obj/screen/gun/move(null) if (mymob.client.target_can_move) - mymob.gun_move_icon.dir = 1 + mymob.gun_move_icon.set_dir(1) mymob.gun_run_icon = new /obj/screen/gun/run(null) if (mymob.client.target_can_run) - mymob.gun_run_icon.dir = 1 + mymob.gun_run_icon.set_dir(1) src.adding += mymob.gun_run_icon src.adding += mymob.gun_move_icon diff --git a/code/_onclick/oldcode.dm b/code/_onclick/oldcode.dm index 2d52a26390a..8585eb8e5fc 100644 --- a/code/_onclick/oldcode.dm +++ b/code/_onclick/oldcode.dm @@ -23,16 +23,16 @@ if(dy || dx) if(abs(dx) < abs(dy)) - if(dy > 0) usr.dir = NORTH - else usr.dir = SOUTH + if(dy > 0) usr.set_dir(NORTH) + else usr.set_dir(SOUTH) else - if(dx > 0) usr.dir = EAST - else usr.dir = WEST + if(dx > 0) usr.set_dir(EAST) + else usr.set_dir(WEST) else - if(pixel_y > 16) usr.dir = NORTH - else if(pixel_y < -16) usr.dir = SOUTH - else if(pixel_x > 16) usr.dir = EAST - else if(pixel_x < -16) usr.dir = WEST + if(pixel_y > 16) usr.set_dir(NORTH) + else if(pixel_y < -16) usr.set_dir(SOUTH) + else if(pixel_x > 16) usr.set_dir(EAST) + else if(pixel_x < -16) usr.set_dir(WEST) diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index 3f74cbd0eae..88c9feca369 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -167,7 +167,7 @@ var/const/tk_maxrange = 15 O.anchored = 1 O.density = 0 O.layer = FLY_LAYER - O.dir = pick(cardinal) + O.set_dir(pick(cardinal)) O.icon = 'icons/effects/effects.dmi' O.icon_state = "nothing" flick("empdisable",O) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index a51ac42ee25..e69ed4b5ddd 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -670,8 +670,8 @@ client return switch(href_list["rotatedir"]) - if("right") A.dir = turn(A.dir, -45) - if("left") A.dir = turn(A.dir, 45) + if("right") A.set_dir(turn(A.dir, -45)) + if("left") A.set_dir(turn(A.dir, 45)) href_list["datumrefresh"] = href_list["rotatedatum"] else if(href_list["makemonkey"]) diff --git a/code/datums/spells/dumbfire.dm b/code/datums/spells/dumbfire.dm index 4a466d1663a..53df7d1f92d 100644 --- a/code/datums/spells/dumbfire.dm +++ b/code/datums/spells/dumbfire.dm @@ -43,7 +43,7 @@ projectile:linked_spells += proj_type projectile.icon = proj_icon projectile.icon_state = proj_icon_state - projectile.dir = get_dir(projectile, target) + projectile.set_dir(get_dir(projectile, target)) projectile.name = proj_name var/current_loc = usr.loc diff --git a/code/datums/spells/projectile.dm b/code/datums/spells/projectile.dm index 5d5ba5e1f8e..9bd1a34f18d 100644 --- a/code/datums/spells/projectile.dm +++ b/code/datums/spells/projectile.dm @@ -34,7 +34,7 @@ projectile:linked_spells += proj_type projectile.icon = proj_icon projectile.icon_state = proj_icon_state - projectile.dir = get_dir(target,projectile) + projectile.set_dir(get_dir(target,projectile)) projectile.name = proj_name var/current_loc = usr.loc @@ -47,7 +47,7 @@ if(proj_homing) if(proj_insubstantial) - projectile.dir = get_dir(projectile,target) + projectile.set_dir(get_dir(projectile,target)) projectile.loc = get_step_to(projectile,target) else step_to(projectile,target) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index adaaa5b9633..93cb08b5a09 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -138,7 +138,7 @@ its easier to just keep the beam vertical. //of range or to another z-level, then the beam will stop. Otherwise it will //continue to draw. - dir=get_dir(src,BeamTarget) //Causes the source of the beam to rotate to continuosly face the BeamTarget. + set_dir(get_dir(src,BeamTarget)) //Causes the source of the beam to rotate to continuosly face the BeamTarget. for(var/obj/effect/overlay/beam/O in orange(10,src)) //This section erases the previously drawn beam because I found it was easier to if(O.BeamSource==src) //just draw another instance of the beam instead of trying to manipulate all the @@ -209,6 +209,11 @@ its easier to just keep the beam vertical. /atom/proc/relaymove() return +//called to set the atom's dir and used to add behaviour to dir-changes +/atom/proc/set_dir(new_dir) + . = new_dir != dir + dir = new_dir + /atom/proc/ex_act() return diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 82c7eb3016e..21e8b5d9a9f 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -14,16 +14,6 @@ var/moved_recently = 0 var/mob/pulledby = null -/atom/movable/Move() - var/atom/A = src.loc - . = ..() - src.move_speed = world.time - src.l_move_time - src.l_move_time = world.time - src.m_flag = 1 - if ((A != src.loc && A && A.z == src.z)) - src.last_move = get_dir(A, src.loc) - return - /atom/movable/Bump(var/atom/A as mob|obj|turf|area, yes) if(src.throwing) src.throw_impact(A) diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm index 51b321528ee..f6351c84809 100644 --- a/code/game/gamemodes/blob/theblob.dm +++ b/code/game/gamemodes/blob/theblob.dm @@ -25,7 +25,7 @@ New(loc, var/h = 30) blobs += src src.health = h - src.dir = pick(1,2,4,8) + src.set_dir(pick(1,2,4,8)) src.update_icon() ..(loc) return @@ -195,7 +195,7 @@ New(loc, var/h = 10) src.health = h - src.dir = pick(1,2,4,8) + src.set_dir(pick(1,2,4,8)) src.update_idle() diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index 36137a74a93..50ae7b9fc13 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -30,7 +30,7 @@ if(!the_disk) icon_state = "pinonnull" return - dir = get_dir(src,the_disk) + set_dir(get_dir(src,the_disk)) switch(get_dist(src,the_disk)) if(0) icon_state = "pinondirect" @@ -79,7 +79,7 @@ if(!location) icon_state = "pinonnull" return - dir = get_dir(src,location) + set_dir(get_dir(src,location)) switch(get_dist(src,location)) if(0) icon_state = "pinondirect" @@ -98,7 +98,7 @@ if(!target) icon_state = "pinonnull" return - dir = get_dir(src,target) + set_dir(get_dir(src,target)) switch(get_dist(src,target)) if(0) icon_state = "pinondirect" @@ -215,7 +215,7 @@ // if(loc.z != the_disk.z) //If you are on a different z-level from the disk // icon_state = "pinonnull" // else - dir = get_dir(src, the_disk) + set_dir(get_dir(src, the_disk)) switch(get_dist(src, the_disk)) if(0) icon_state = "pinondirect" @@ -248,7 +248,7 @@ if(loc.z != home.z) //If you are on a different z-level from the shuttle icon_state = "pinonnull" else - dir = get_dir(src, home) + set_dir(get_dir(src, home)) switch(get_dist(src, home)) if(0) icon_state = "pinondirect" diff --git a/code/game/jobs/job/civilian_chaplain.dm b/code/game/jobs/job/civilian_chaplain.dm index d7b4b1f96ca..34fe340a126 100644 --- a/code/game/jobs/job/civilian_chaplain.dm +++ b/code/game/jobs/job/civilian_chaplain.dm @@ -84,7 +84,7 @@ for(var/area/chapel/main/A in world) for(var/turf/T in A.contents) if(T.icon_state == "carpetsymbol") - T.dir = 4 + T.set_dir(4) if("Scrapbook") B.icon_state = "scrapbook" B.item_state = "scrapbook" @@ -103,7 +103,7 @@ for(var/area/chapel/main/A in world) for(var/turf/T in A.contents) if(T.icon_state == "carpetsymbol") - T.dir = 10 + T.set_dir(10) if("Tome") B.icon_state = "tome" B.item_state = "syringe_kit" @@ -119,7 +119,7 @@ for(var/area/chapel/main/A in world) for(var/turf/T in A.contents) if(T.icon_state == "carpetsymbol") - T.dir = 8 + T.set_dir(8) if("the bible melts") B.icon_state = "melted" B.item_state = "melted" @@ -133,7 +133,7 @@ for(var/area/chapel/main/A in world) for(var/turf/T in A.contents) if(T.icon_state == "carpetsymbol") - T.dir = 2 + T.set_dir(2) H.update_inv_l_hand() // so that it updates the bible's item_state in his hand diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index e87b3c36ec6..326f705a5da 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -422,7 +422,7 @@ var/global/datum/controller/occupations/job_master // Moving wheelchair if they have one if(H.buckled && istype(H.buckled, /obj/structure/stool/bed/chair/wheelchair)) H.buckled.loc = H.loc - H.buckled.dir = H.dir + H.buckled.set_dir(H.dir) //give them an account in the station database var/datum/money_account/M = create_account(H.real_name, rand(50,500)*10, null) @@ -516,7 +516,7 @@ var/global/datum/controller/occupations/job_master var/obj/structure/stool/bed/chair/wheelchair/W = new /obj/structure/stool/bed/chair/wheelchair(H.loc) H.buckled = W H.update_canmove() - W.dir = H.dir + W.set_dir(H.dir) W.buckled_mob = H W.add_fingerprint(H) diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index f8074755a8b..0c7e738cff9 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -104,7 +104,7 @@ src.loc = loc if(dir) - src.dir = dir + src.set_dir(dir) buildstage = 0 wiresexposed = 1 @@ -1274,7 +1274,7 @@ FIRE ALARM src.loc = loc if(dir) - src.dir = dir + src.set_dir(dir) if(building) buildstage = 0 diff --git a/code/game/machinery/bots/bots.dm b/code/game/machinery/bots/bots.dm index 9f98f89deef..c4007c69944 100644 --- a/code/game/machinery/bots/bots.dm +++ b/code/game/machinery/bots/bots.dm @@ -120,7 +120,7 @@ pulse2.icon_state = "empdisable" pulse2.name = "emp sparks" pulse2.anchored = 1 - pulse2.dir = pick(cardinal) + pulse2.set_dir(pick(cardinal)) spawn(10) pulse2.delete() diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index a2436f9de41..e7f766a5b40 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -526,14 +526,14 @@ var/obj/effect/decal/cleanable/blood/tracks/B = new(loc) var/newdir = get_dir(next, loc) if(newdir == dir) - B.dir = newdir + B.set_dir(newdir) else newdir = newdir | dir if(newdir == 3) newdir = 1 else if(newdir == 12) newdir = 4 - B.dir = newdir + B.set_dir(newdir) bloodiness-- diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index 84f3efb167f..744c2468510 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -878,7 +878,7 @@ Auto Patrol: []"}, pulse2.icon_state = "empdisable" pulse2.name = "emp sparks" pulse2.anchored = 1 - pulse2.dir = pick(cardinal) + pulse2.set_dir(pick(cardinal)) spawn(10) pulse2.delete() var/list/mob/living/carbon/targets = new diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 140659a0e51..4b60d58a3fe 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -234,13 +234,13 @@ //If someone knows a better way to do this, let me know. -Giacom switch(i) if(NORTH) - src.dir = SOUTH + src.set_dir(SOUTH) if(SOUTH) - src.dir = NORTH + src.set_dir(NORTH) if(WEST) - src.dir = EAST + src.set_dir(EAST) if(EAST) - src.dir = WEST + src.set_dir(WEST) break //Return a working camera that can see a given mob diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 4e5b64c631b..03fa91212fc 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -294,7 +294,7 @@ obj/item/weapon/circuitboard/rdserver /obj/item/weapon/circuitboard/unary_atmos/construct(var/obj/machinery/atmospherics/unary/U) //TODO: Move this stuff into the relevant constructor when pipe/construction.dm is cleaned up. - U.dir = src.machine_dir + U.set_dir(src.machine_dir) U.initialize_directions = src.init_dirs U.initialize() U.build_network() diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index bb23176478c..7328c7b8f3d 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -899,7 +899,7 @@ About the new airlock wires panel: var/obj/structure/door_assembly/da = new assembly_type(src.loc) if (istype(da, /obj/structure/door_assembly/multi_tile)) - da.dir = src.dir + da.set_dir(src.dir) da.anchored = 1 if(mineral) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 37966deea69..720fbdc8227 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -29,7 +29,7 @@ var/hitsound = 'sound/weapons/smash.ogg' //sound door makes when hit with a weapon //Multi-tile doors - dir = EAST + set_dir(EAST) var/width = 1 /obj/machinery/door/New() diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index f2e81684855..209b993788a 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -194,7 +194,7 @@ wa.name = "Wired Windoor Assembly" if (src.base_state == "right" || src.base_state == "rightsecure") wa.facing = "r" - wa.dir = src.dir + wa.set_dir(src.dir) wa.state = "02" wa.update_icon() diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index fab5bbea6e0..b7cf1182870 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -152,7 +152,7 @@ Class Procs: pulse2.icon_state = "empdisable" pulse2.name = "emp sparks" pulse2.anchored = 1 - pulse2.dir = pick(cardinal) + pulse2.set_dir(pick(cardinal)) spawn(10) pulse2.delete() diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index 205cc1cedef..210948bbd3e 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -67,7 +67,7 @@ Buildable meters /obj/item/pipe/New(var/loc, var/pipe_type as num, var/dir as num, var/obj/machinery/atmospherics/make_from = null) ..() if (make_from) - src.dir = make_from.dir + src.set_dir(make_from.dir) src.pipename = make_from.name color = make_from.pipe_color var/is_bent @@ -180,7 +180,7 @@ Buildable meters ///// Z-Level stuff else src.pipe_type = pipe_type - src.dir = dir + src.set_dir(dir) if (pipe_type == 29 || pipe_type == 30 || pipe_type == 33 || pipe_type == 35 || pipe_type == 37 || pipe_type == 39 || pipe_type == 41) connect_types = list(2) src.color = PIPE_COLOR_BLUE @@ -314,28 +314,28 @@ Buildable meters if ( usr.stat || usr.restrained() ) return - src.dir = turn(src.dir, -90) + src.set_dir(turn(src.dir, -90)) if (pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_SUPPLY_STRAIGHT, PIPE_SCRUBBERS_STRAIGHT, PIPE_UNIVERSAL, PIPE_HE_STRAIGHT, PIPE_INSULATED_STRAIGHT, PIPE_MVALVE)) if(dir==2) - dir = 1 + set_dir(1) else if(dir==8) - dir = 4 + set_dir(4) else if (pipe_type in list (PIPE_MANIFOLD4W, PIPE_SUPPLY_MANIFOLD4W, PIPE_SCRUBBERS_MANIFOLD4W)) - dir = 2 - //src.pipe_dir = get_pipe_dir() + set_dir(2) + //src.pipe_set_dir(get_pipe_dir()) return /obj/item/pipe/Move() ..() if ((pipe_type in list (PIPE_SIMPLE_BENT, PIPE_SUPPLY_BENT, PIPE_SCRUBBERS_BENT, PIPE_HE_BENT, PIPE_INSULATED_BENT)) \ && (src.dir in cardinal)) - src.dir = src.dir|turn(src.dir, 90) + src.set_dir(src.dir|turn(src.dir, 90)) else if (pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_SUPPLY_STRAIGHT, PIPE_SCRUBBERS_STRAIGHT, PIPE_UNIVERSAL, PIPE_HE_STRAIGHT, PIPE_INSULATED_STRAIGHT, PIPE_MVALVE)) if(dir==2) - dir = 1 + set_dir(1) else if(dir==8) - dir = 4 + set_dir(4) return // returns all pipe's endpoints @@ -427,11 +427,11 @@ Buildable meters return 1 if (pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_SUPPLY_STRAIGHT, PIPE_SCRUBBERS_STRAIGHT, PIPE_HE_STRAIGHT, PIPE_INSULATED_STRAIGHT, PIPE_MVALVE)) if(dir==2) - dir = 1 + set_dir(1) else if(dir==8) - dir = 4 + set_dir(4) else if (pipe_type in list(PIPE_MANIFOLD4W, PIPE_SUPPLY_MANIFOLD4W, PIPE_SCRUBBERS_MANIFOLD4W, PIPE_OMNI_MIXER, PIPE_OMNI_FILTER)) - dir = 2 + set_dir(2) var/pipe_dir = get_pipe_dir() for(var/obj/machinery/atmospherics/M in src.loc) @@ -447,7 +447,7 @@ Buildable meters if(PIPE_SIMPLE_STRAIGHT, PIPE_SIMPLE_BENT) var/obj/machinery/atmospherics/pipe/simple/P = new( src.loc ) P.pipe_color = color - P.dir = src.dir + P.set_dir(src.dir) P.initialize_directions = pipe_dir var/turf/T = P.loc P.level = T.intact ? 2 : 1 @@ -466,7 +466,7 @@ Buildable meters if(PIPE_SUPPLY_STRAIGHT, PIPE_SUPPLY_BENT) var/obj/machinery/atmospherics/pipe/simple/hidden/supply/P = new( src.loc ) P.color = color - P.dir = src.dir + P.set_dir(src.dir) P.initialize_directions = pipe_dir var/turf/T = P.loc P.level = T.intact ? 2 : 1 @@ -485,7 +485,7 @@ Buildable meters if(PIPE_SCRUBBERS_STRAIGHT, PIPE_SCRUBBERS_BENT) var/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers/P = new( src.loc ) P.color = color - P.dir = src.dir + P.set_dir(src.dir) P.initialize_directions = pipe_dir var/turf/T = P.loc P.level = T.intact ? 2 : 1 @@ -504,7 +504,7 @@ Buildable meters if(PIPE_UNIVERSAL) var/obj/machinery/atmospherics/pipe/simple/hidden/universal/P = new( src.loc ) P.color = color - P.dir = src.dir + P.set_dir(src.dir) P.initialize_directions = pipe_dir var/turf/T = P.loc P.level = T.intact ? 2 : 1 @@ -522,7 +522,7 @@ Buildable meters if(PIPE_HE_STRAIGHT, PIPE_HE_BENT) var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/P = new ( src.loc ) - P.dir = src.dir + P.set_dir(src.dir) P.initialize_directions = pipe_dir //this var it's used to know if the pipe is bent or not P.initialize_directions_he = pipe_dir //var/turf/T = P.loc @@ -541,7 +541,7 @@ Buildable meters if(PIPE_CONNECTOR) // connector var/obj/machinery/atmospherics/portables_connector/C = new( src.loc ) - C.dir = dir + C.set_dir(dir) C.initialize_directions = pipe_dir if (pipename) C.name = pipename @@ -557,7 +557,7 @@ Buildable meters if(PIPE_MANIFOLD) //manifold var/obj/machinery/atmospherics/pipe/manifold/M = new( src.loc ) M.pipe_color = color - M.dir = dir + M.set_dir(dir) M.initialize_directions = pipe_dir //M.New() var/turf/T = M.loc @@ -580,7 +580,7 @@ Buildable meters if(PIPE_SUPPLY_MANIFOLD) //manifold var/obj/machinery/atmospherics/pipe/manifold/hidden/supply/M = new( src.loc ) M.color = color - M.dir = dir + M.set_dir(dir) M.initialize_directions = pipe_dir //M.New() var/turf/T = M.loc @@ -603,7 +603,7 @@ Buildable meters if(PIPE_SCRUBBERS_MANIFOLD) //manifold var/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers/M = new( src.loc ) M.color = color - M.dir = dir + M.set_dir(dir) M.initialize_directions = pipe_dir //M.New() var/turf/T = M.loc @@ -626,7 +626,7 @@ Buildable meters if(PIPE_MANIFOLD4W) //4-way manifold var/obj/machinery/atmospherics/pipe/manifold4w/M = new( src.loc ) M.pipe_color = color - M.dir = dir + M.set_dir(dir) M.initialize_directions = pipe_dir //M.New() var/turf/T = M.loc @@ -652,7 +652,7 @@ Buildable meters if(PIPE_SUPPLY_MANIFOLD4W) //4-way manifold var/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply/M = new( src.loc ) M.color = color - M.dir = dir + M.set_dir(dir) M.initialize_directions = pipe_dir M.connect_types = src.connect_types //M.New() @@ -679,7 +679,7 @@ Buildable meters if(PIPE_SCRUBBERS_MANIFOLD4W) //4-way manifold var/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers/M = new( src.loc ) M.color = color - M.dir = dir + M.set_dir(dir) M.initialize_directions = pipe_dir M.connect_types = src.connect_types //M.New() @@ -705,7 +705,7 @@ Buildable meters if(PIPE_JUNCTION) var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction/P = new ( src.loc ) - P.dir = src.dir + P.set_dir(src.dir) P.initialize_directions = src.get_pdir() P.initialize_directions_he = src.get_hdir() //var/turf/T = P.loc @@ -724,7 +724,7 @@ Buildable meters if(PIPE_UVENT) //unary vent var/obj/machinery/atmospherics/unary/vent_pump/V = new( src.loc ) - V.dir = dir + V.set_dir(dir) V.initialize_directions = pipe_dir if (pipename) V.name = pipename @@ -739,7 +739,7 @@ Buildable meters if(PIPE_MVALVE) //manual valve var/obj/machinery/atmospherics/valve/V = new( src.loc) - V.dir = dir + V.set_dir(dir) V.initialize_directions = pipe_dir if (pipename) V.name = pipename @@ -758,7 +758,7 @@ Buildable meters if(PIPE_PUMP) //gas pump var/obj/machinery/atmospherics/binary/pump/P = new(src.loc) - P.dir = dir + P.set_dir(dir) P.initialize_directions = pipe_dir if (pipename) P.name = pipename @@ -775,7 +775,7 @@ Buildable meters if(PIPE_GAS_FILTER) //gas filter var/obj/machinery/atmospherics/trinary/filter/P = new(src.loc) - P.dir = dir + P.set_dir(dir) P.initialize_directions = pipe_dir if (pipename) P.name = pipename @@ -795,7 +795,7 @@ Buildable meters if(PIPE_GAS_MIXER) //gas mixer var/obj/machinery/atmospherics/trinary/mixer/P = new(src.loc) - P.dir = dir + P.set_dir(dir) P.initialize_directions = pipe_dir if (pipename) P.name = pipename @@ -815,7 +815,7 @@ Buildable meters if(PIPE_GAS_FILTER_M) //gas filter mirrored var/obj/machinery/atmospherics/trinary/filter/m_filter/P = new(src.loc) - P.dir = dir + P.set_dir(dir) P.initialize_directions = pipe_dir if (pipename) P.name = pipename @@ -835,7 +835,7 @@ Buildable meters if(PIPE_GAS_MIXER_T) //gas mixer-t var/obj/machinery/atmospherics/trinary/mixer/t_mixer/P = new(src.loc) - P.dir = dir + P.set_dir(dir) P.initialize_directions = pipe_dir if (pipename) P.name = pipename @@ -855,7 +855,7 @@ Buildable meters if(PIPE_GAS_MIXER_M) //gas mixer mirrored var/obj/machinery/atmospherics/trinary/mixer/m_mixer/P = new(src.loc) - P.dir = dir + P.set_dir(dir) P.initialize_directions = pipe_dir if (pipename) P.name = pipename @@ -875,7 +875,7 @@ Buildable meters if(PIPE_SCRUBBER) //scrubber var/obj/machinery/atmospherics/unary/vent_scrubber/S = new(src.loc) - S.dir = dir + S.set_dir(dir) S.initialize_directions = pipe_dir if (pipename) S.name = pipename @@ -889,7 +889,7 @@ Buildable meters if(PIPE_INSULATED_STRAIGHT, PIPE_INSULATED_BENT) var/obj/machinery/atmospherics/pipe/simple/insulated/P = new( src.loc ) - P.dir = src.dir + P.set_dir(src.dir) P.initialize_directions = pipe_dir var/turf/T = P.loc P.level = T.intact ? 2 : 1 @@ -907,7 +907,7 @@ Buildable meters if(PIPE_MTVALVE) //manual t-valve var/obj/machinery/atmospherics/tvalve/V = new(src.loc) - V.dir = dir + V.set_dir(dir) V.initialize_directions = pipe_dir if (pipename) V.name = pipename @@ -927,7 +927,7 @@ Buildable meters if(PIPE_CAP) var/obj/machinery/atmospherics/pipe/cap/C = new(src.loc) - C.dir = dir + C.set_dir(dir) C.initialize_directions = pipe_dir C.initialize() C.build_network() @@ -937,7 +937,7 @@ Buildable meters if(PIPE_SUPPLY_CAP) var/obj/machinery/atmospherics/pipe/cap/hidden/supply/C = new(src.loc) - C.dir = dir + C.set_dir(dir) C.initialize_directions = pipe_dir C.initialize() C.build_network() @@ -947,7 +947,7 @@ Buildable meters if(PIPE_SCRUBBERS_CAP) var/obj/machinery/atmospherics/pipe/cap/hidden/scrubbers/C = new(src.loc) - C.dir = dir + C.set_dir(dir) C.initialize_directions = pipe_dir C.initialize() C.build_network() @@ -957,7 +957,7 @@ Buildable meters if(PIPE_PASSIVE_GATE) //passive gate var/obj/machinery/atmospherics/binary/passive_gate/P = new(src.loc) - P.dir = dir + P.set_dir(dir) P.initialize_directions = pipe_dir if (pipename) P.name = pipename @@ -974,7 +974,7 @@ Buildable meters if(PIPE_VOLUME_PUMP) //volume pump var/obj/machinery/atmospherics/binary/pump/high_power/P = new(src.loc) - P.dir = dir + P.set_dir(dir) P.initialize_directions = pipe_dir if (pipename) P.name = pipename @@ -991,7 +991,7 @@ Buildable meters if(PIPE_HEAT_EXCHANGE) // heat exchanger var/obj/machinery/atmospherics/unary/heat_exchanger/C = new( src.loc ) - C.dir = dir + C.set_dir(dir) C.initialize_directions = pipe_dir if (pipename) C.name = pipename @@ -1005,7 +1005,7 @@ Buildable meters ///// Z-Level stuff if(PIPE_UP) var/obj/machinery/atmospherics/pipe/zpipe/up/P = new(src.loc) - P.dir = dir + P.set_dir(dir) P.initialize_directions = pipe_dir if (pipename) P.name = pipename @@ -1021,7 +1021,7 @@ Buildable meters P.node2.build_network() if(PIPE_DOWN) var/obj/machinery/atmospherics/pipe/zpipe/down/P = new(src.loc) - P.dir = dir + P.set_dir(dir) P.initialize_directions = pipe_dir if (pipename) P.name = pipename @@ -1037,7 +1037,7 @@ Buildable meters P.node2.build_network() if(PIPE_SUPPLY_UP) var/obj/machinery/atmospherics/pipe/zpipe/up/supply/P = new(src.loc) - P.dir = dir + P.set_dir(dir) P.initialize_directions = pipe_dir if (pipename) P.name = pipename @@ -1053,7 +1053,7 @@ Buildable meters P.node2.build_network() if(PIPE_SUPPLY_DOWN) var/obj/machinery/atmospherics/pipe/zpipe/down/supply/P = new(src.loc) - P.dir = dir + P.set_dir(dir) P.initialize_directions = pipe_dir if (pipename) P.name = pipename @@ -1069,7 +1069,7 @@ Buildable meters P.node2.build_network() if(PIPE_SCRUBBERS_UP) var/obj/machinery/atmospherics/pipe/zpipe/up/scrubbers/P = new(src.loc) - P.dir = dir + P.set_dir(dir) P.initialize_directions = pipe_dir if (pipename) P.name = pipename @@ -1085,7 +1085,7 @@ Buildable meters P.node2.build_network() if(PIPE_SCRUBBERS_DOWN) var/obj/machinery/atmospherics/pipe/zpipe/down/scrubbers/P = new(src.loc) - P.dir = dir + P.set_dir(dir) P.initialize_directions = pipe_dir if (pipename) P.name = pipename diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index b0b8df60c8e..8acc0726a47 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -525,7 +525,7 @@ if(target && (target.stat != DEAD) && (!(target.lying) || emagged)) spawn() popUp() //pop the turret up if it's not already up. - dir = get_dir(src, target) //even if you can't shoot, follow the target + set_dir(get_dir(src, target)) //even if you can't shoot, follow the target spawn() shootAt(target) return 1 diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index acd89ee17cd..b014ece92a6 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -25,11 +25,11 @@ if(istype(station)) station.com = hub - station.dir = dir + station.set_dir(dir) if(istype(hub)) hub.com = src - hub.dir = dir + hub.set_dir(dir) /obj/machinery/computer/teleporter/attackby(I as obj, mob/living/user as mob) if(istype(I, /obj/item/weapon/card/data/)) diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm index 567afc0d6d6..29811e1a18d 100644 --- a/code/game/machinery/turrets.dm +++ b/code/game/machinery/turrets.dm @@ -232,7 +232,7 @@ /obj/machinery/turret/proc/target() while(src && enabled && !stat && check_target(cur_target)) - src.dir = get_dir(src, cur_target) + src.set_dir(get_dir(src, cur_target)) shootAt(cur_target) sleep(shot_delay) return @@ -487,7 +487,7 @@ if(!target) cur_target = null return - src.dir = get_dir(src,target) + src.set_dir(get_dir(src,target)) var/turf/targloc = get_turf(target) var/target_x = targloc.x var/target_y = targloc.y diff --git a/code/game/mecha/equipment/tools/unused_tools.dm b/code/game/mecha/equipment/tools/unused_tools.dm index 68578913813..470159e06fb 100644 --- a/code/game/mecha/equipment/tools/unused_tools.dm +++ b/code/game/mecha/equipment/tools/unused_tools.dm @@ -61,7 +61,7 @@ if(chassis.hasInternalDamage(MECHA_INT_CONTROL_LOST)) move_result = step_rand(chassis) else if(chassis.dir!=direction) - chassis.dir = direction + chassis.set_dir(direction) move_result = 1 else move_result = step(chassis,direction) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index c8f8f261a24..031077d2eab 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -316,7 +316,7 @@ return 0 /obj/mecha/proc/mechturn(direction) - dir = direction + set_dir(direction) playsound(src,'sound/mecha/mechturn.ogg',40,1) return 1 @@ -1014,7 +1014,7 @@ src.forceMove(src.loc) src.log_append_to_last("[H] moved in as pilot.") src.icon_state = src.reset_icon() - dir = dir_in + set_dir(dir_in) playsound(src, 'sound/machines/windowdoor.ogg', 50, 1) if(!hasInternalDamage()) src.occupant << sound('sound/mecha/nominal.ogg',volume=50) @@ -1073,7 +1073,7 @@ src.Entered(mmi_as_oc) src.Move(src.loc) src.icon_state = src.reset_icon() - dir = dir_in + set_dir(dir_in) src.log_message("[mmi_as_oc] moved in as pilot.") if(!hasInternalDamage()) src.occupant << sound('sound/mecha/nominal.ogg',volume=50) @@ -1162,7 +1162,7 @@ src.verbs += /obj/mecha/verb/eject src.occupant = null src.icon_state = src.reset_icon()+"-open" - src.dir = dir_in + src.set_dir(dir_in) return ///////////////////////// diff --git a/code/game/mecha/medical/medical.dm b/code/game/mecha/medical/medical.dm index 7fe4c456950..027c9f84afc 100644 --- a/code/game/mecha/medical/medical.dm +++ b/code/game/mecha/medical/medical.dm @@ -7,7 +7,7 @@ /obj/mecha/medical/mechturn(direction) - dir = direction + set_dir(direction) playsound(src,'sound/mecha/mechmove01.ogg',40,1) return 1 diff --git a/code/game/mecha/working/hoverpod.dm b/code/game/mecha/working/hoverpod.dm index 5f775d619b5..5736e00b4fb 100644 --- a/code/game/mecha/working/hoverpod.dm +++ b/code/game/mecha/working/hoverpod.dm @@ -56,7 +56,7 @@ //these three procs overriden to play different sounds /obj/mecha/working/hoverpod/mechturn(direction) - dir = direction + set_dir(direction) //playsound(src,'sound/machines/hiss.ogg',40,1) return 1 diff --git a/code/game/objects/effects/biomass_rift.dm b/code/game/objects/effects/biomass_rift.dm index 247f485b570..c619ccb1e7a 100644 --- a/code/game/objects/effects/biomass_rift.dm +++ b/code/game/objects/effects/biomass_rift.dm @@ -30,7 +30,7 @@ if(!IsValidBiomassLoc(T)) continue var/obj/effect/biomass/starting = new /obj/effect/biomass(T) - starting.dir = get_dir(src,starting) + starting.set_dir(get_dir(src,starting)) starting.originalRift = src linkedBiomass += starting spawn(1) //DEBUG @@ -53,13 +53,13 @@ return switch(dir) if(NORTHWEST) - dir = NORTH + set_dir(NORTH) if(NORTHEAST) - dir = EAST + set_dir(EAST) if(SOUTHWEST) - dir = WEST + set_dir(WEST) if(SOUTHEAST) - dir = SOUTH + set_dir(SOUTH) sleep(spreadDelay) Spread() @@ -93,7 +93,7 @@ var/obj/effect/biomass/newBiomass = new /obj/effect/biomass(get_step(src,direction)) newBiomass.curDistance = curDistance + 1 newBiomass.maxDistance = maxDistance - newBiomass.dir = direction + newBiomass.set_dir(direction) newBiomass.originalRift = originalRift newBiomass.icon_state = "[originalRift.newicon]" //DEBUG originalRift.linkedBiomass += newBiomass @@ -110,7 +110,7 @@ if(!IsValidBiomassLoc(T,src)) continue var/obj/effect/biomass/starting = new /obj/effect/biomass(T) - starting.dir = get_dir(src,starting) + starting.set_dir(get_dir(src,starting)) starting.maxDistance = maxDistance /proc/IsValidBiomassLoc(turf/location,obj/effect/biomass/source = null) diff --git a/code/game/objects/effects/chemsmoke.dm b/code/game/objects/effects/chemsmoke.dm index fb9b049a3e0..e62623e2ec0 100644 --- a/code/game/objects/effects/chemsmoke.dm +++ b/code/game/objects/effects/chemsmoke.dm @@ -192,7 +192,7 @@ chemholder.reagents.copy_to(smoke, chemholder.reagents.total_volume / dist, safety = 1) //copy reagents to the smoke so mob/breathe() can handle inhaling the reagents smoke.icon = I smoke.layer = 6 - smoke.dir = pick(cardinal) + smoke.set_dir(pick(cardinal)) smoke.pixel_x = -32 + rand(-8,8) smoke.pixel_y = -32 + rand(-8,8) walk_to(smoke, T) diff --git a/code/game/objects/effects/decals/Cleanable/fuel.dm b/code/game/objects/effects/decals/Cleanable/fuel.dm index 6b7ef0242e7..5162d0f6dff 100644 --- a/code/game/objects/effects/decals/Cleanable/fuel.dm +++ b/code/game/objects/effects/decals/Cleanable/fuel.dm @@ -40,7 +40,7 @@ obj/effect/decal/cleanable/liquid_fuel icon_state = "mustard" anchored = 0 New(newLoc, amt = 1, d = 0) - dir = d //Setting this direction means you won't get torched by your own flamethrower. + set_dir(d) //Setting this direction means you won't get torched by your own flamethrower. . = ..() Spread() diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index 5b209e0423d..db7abda850a 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -402,7 +402,7 @@ steam.start() -- spawns the effect if(istype(T, /turf/space)) var/obj/effect/effect/ion_trails/I = new /obj/effect/effect/ion_trails(src.oldposition) src.oldposition = T - I.dir = src.holder.dir + I.set_dir(src.holder.dir) flick("ion_fade", I) I.icon_state = "blank" spawn( 20 ) @@ -449,7 +449,7 @@ steam.start() -- spawns the effect var/obj/effect/effect/steam/I = new /obj/effect/effect/steam(src.oldposition) src.number++ src.oldposition = get_turf(holder) - I.dir = src.holder.dir + I.set_dir(src.holder.dir) spawn(10) I.delete() src.number-- diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm index 68285d4f986..f7a6795e84c 100644 --- a/code/game/objects/effects/glowshroom.dm +++ b/code/game/objects/effects/glowshroom.dm @@ -28,7 +28,7 @@ ..() - dir = CalcDir() + set_dir(CalcDir()) if(!floor) switch(dir) //offset to make it be on the wall rather than on the floor diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm index cd9142bdc0b..59a71ddaa82 100644 --- a/code/game/objects/effects/step_triggers.dm +++ b/code/game/objects/effects/step_triggers.dm @@ -71,7 +71,7 @@ var/predir = AM.dir step(AM, direction) if(!facedir) - AM.dir = predir + AM.set_dir(predir) diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index b97ef5746c1..af350bd56bc 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -95,7 +95,7 @@ icon = new_icon icon_state = new_iconstate overlays = new_overlays - dir = O.dir + set_dir(O.dir) M.loc = src master = C master.active_dummy = src diff --git a/code/game/objects/items/devices/floor_painter.dm b/code/game/objects/items/devices/floor_painter.dm index d0bb6b93c05..27b4054fa5e 100644 --- a/code/game/objects/items/devices/floor_painter.dm +++ b/code/game/objects/items/devices/floor_painter.dm @@ -29,7 +29,7 @@ switch(tile_dir_mode) if(1) // All directions accepted - F.dir = D + F.set_dir(D) F.icon_state = mode if(2) // Corner mode - diagonal directions converted CW around. switch(D) @@ -41,7 +41,7 @@ D = WEST if(NORTHWEST) D = NORTH - F.dir = D + F.set_dir(D) F.icon_state = mode if(3) // cardinal directions only. I've adjusted diagonals the same way the facing code does. switch(D) @@ -53,7 +53,7 @@ D = WEST if(NORTHWEST) D = WEST - F.dir = D + F.set_dir(D) F.icon_state = mode if(4) // floors.dmi icon_states "warningcorner" and "warnwhitecorner" are incorrect, this fixes it var/D2 @@ -66,16 +66,16 @@ D2 = NORTH if(NORTHWEST) D2 = EAST - F.dir = D2 + F.set_dir(D2) F.icon_state = mode if(5) - F.dir = 0 + F.set_dir(0) if(D == NORTH || D == SOUTH || D == NORTHEAST || D == SOUTHWEST) F.icon_state = mode else F.icon_state = "[mode]_inv" else - F.dir = 0 + F.set_dir(0) F.icon_state = mode else usr << "You can't paint that!" diff --git a/code/game/objects/items/shooting_range.dm b/code/game/objects/items/shooting_range.dm index 54c159d8db7..2f0b67d31d8 100644 --- a/code/game/objects/items/shooting_range.dm +++ b/code/game/objects/items/shooting_range.dm @@ -116,7 +116,7 @@ if(Proj.damage >= 20 || istype(Proj, /obj/item/projectile/beam/practice)) bmark.icon_state = "scorch" - bmark.dir = pick(NORTH,SOUTH,EAST,WEST) // random scorch design + bmark.set_dir(pick(NORTH,SOUTH,EAST,WEST)) // random scorch design else diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index aa93aec8ba6..c3fa049b17e 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -131,7 +131,7 @@ if (src.amount < R.req_amount*multiplier) return var/atom/O = new R.result_type( usr.loc ) - O.dir = usr.dir + O.set_dir(usr.dir) if (R.max_res_amount>1) var/obj/item/stack/new_item = O new_item.amount = R.res_amount*multiplier diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm index 2ff3114423d..46854c6a2a8 100644 --- a/code/game/objects/items/weapons/grenades/grenade.dm +++ b/code/game/objects/items/weapons/grenades/grenade.dm @@ -35,7 +35,7 @@ spawn(det_time) prime() return - user.dir = get_dir(user, target) + user.set_dir(get_dir(user, target)) user.drop_item() var/t = (isturf(target) ? target : target.loc) walk_towards(src, t, 3) diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index 6bb08bb451f..70485e67a2a 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -169,7 +169,7 @@ if((wielded) && prob(50)) spawn(0) for(var/i in list(1,2,4,8,4,2,1,2,4,8,4,2)) - user.dir = i + user.set_dir(i) sleep(1) /obj/item/weapon/twohanded/dualsaber/IsShield() diff --git a/code/game/objects/structures/electricchair.dm b/code/game/objects/structures/electricchair.dm index 2330e63ecc3..28d9ebc6232 100644 --- a/code/game/objects/structures/electricchair.dm +++ b/code/game/objects/structures/electricchair.dm @@ -15,7 +15,7 @@ if(istype(W, /obj/item/weapon/wrench)) var/obj/structure/stool/bed/chair/C = new /obj/structure/stool/bed/chair(loc) playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) - C.dir = dir + C.set_dir(dir) part.loc = loc part.master = null part = null diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index b12a1a74d05..535b73d3b56 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -170,14 +170,14 @@ /obj/structure/stool/bed/chair/janicart/New() - handle_rotation() create_reagents(100) + update_layer() /obj/structure/stool/bed/chair/janicart/examine(mob/user) if(!..(user, 1)) return - + user << "\icon[src] This [callme] contains [reagents.total_volume] unit\s of water!" if(mybag) user << "\A [mybag] is hanging on the [callme]." @@ -215,7 +215,6 @@ if(istype(user.l_hand, /obj/item/key) || istype(user.r_hand, /obj/item/key)) step(src, direction) update_mob() - handle_rotation() else user << "You'll need the keys in one of your hands to drive this [callme]." @@ -238,13 +237,20 @@ "You climb onto the [callme]!") M.buckled = src M.loc = loc - M.dir = dir + M.set_dir(dir) M.update_canmove() buckled_mob = M update_mob() add_fingerprint(user) +/obj/structure/stool/bed/chair/janicart/update_layer() + if(dir == SOUTH) + layer = FLY_LAYER + else + layer = OBJ_LAYER + + /obj/structure/stool/bed/chair/janicart/unbuckle() if(buckled_mob) buckled_mob.pixel_x = 0 @@ -252,12 +258,9 @@ ..() -/obj/structure/stool/bed/chair/janicart/handle_rotation() - if(dir == SOUTH) - layer = FLY_LAYER - else - layer = OBJ_LAYER - +/obj/structure/stool/bed/chair/janicart/set_dir() + ..() + update_layer() if(buckled_mob) if(buckled_mob.loc != loc) buckled_mob.buckled = null //Temporary, so Move() succeeds. @@ -268,7 +271,7 @@ /obj/structure/stool/bed/chair/janicart/proc/update_mob() if(buckled_mob) - buckled_mob.dir = dir + buckled_mob.set_dir(dir) switch(dir) if(SOUTH) buckled_mob.pixel_x = 0 diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 3db68575c98..e1c8427ecf6 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -77,7 +77,7 @@ for(var/atom/movable/A as mob|obj in src) A.loc = src.connected.loc src.connected.icon_state = "morguet" - src.connected.dir = src.dir + src.connected.set_dir(src.dir) else //src.connected = null del(src.connected) diff --git a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm index 3c5bbfc1ca2..3d21575c749 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm @@ -56,7 +56,7 @@ "You hear squelching...") M.buckled = src M.loc = src.loc - M.dir = src.dir + M.set_dir(src.dir) M.update_canmove() M.pixel_y = 6 M.old_y = 6 diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index a3f99324b74..8902dbc8ecf 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -33,9 +33,6 @@ manual_unbuckle(user) return -/obj/structure/stool/bed/proc/handle_rotation() - return - /obj/structure/stool/bed/MouseDrop(atom/over_object) return @@ -104,7 +101,7 @@ "You hear metal clanking") M.buckled = src M.loc = src.loc - M.dir = src.dir + M.set_dir(src.dir) M.update_canmove() src.buckled_mob = M src.add_fingerprint(user) diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index 5db6d2f2068..0e8e7d5850a 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -11,7 +11,7 @@ /obj/structure/stool/bed/chair/New() ..() spawn(3) //sorry. i don't think there's a better way to do this. - handle_rotation() + update_layer() return /obj/structure/stool/bed/chair/attackby(obj/item/weapon/W as obj, mob/user as mob) @@ -24,7 +24,7 @@ user.drop_item() var/obj/structure/stool/bed/chair/e_chair/E = new /obj/structure/stool/bed/chair/e_chair(src.loc) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - E.dir = dir + E.set_dir(dir) E.part = SK SK.loc = E SK.master = E @@ -37,13 +37,17 @@ rotate() return -/obj/structure/stool/bed/chair/handle_rotation() //making this into a seperate proc so office chairs can call it on Move() +/obj/structure/stool/bed/chair/proc/update_layer() if(src.dir == NORTH) src.layer = FLY_LAYER else src.layer = OBJ_LAYER + +/obj/structure/stool/bed/chair/set_dir() + ..() + update_layer() if(buckled_mob) - buckled_mob.dir = dir + buckled_mob.set_dir(dir) /obj/structure/stool/bed/chair/verb/rotate() set name = "Rotate Chair" @@ -51,8 +55,7 @@ set src in oview(1) if(config.ghost_interaction) - src.dir = turn(src.dir, 90) - handle_rotation() + src.set_dir(turn(src.dir, 90)) return else if(istype(usr,/mob/living/simple_animal/mouse)) @@ -62,8 +65,7 @@ if(usr.stat || usr.restrained()) return - src.dir = turn(src.dir, 90) - handle_rotation() + src.set_dir(turn(src.dir, 90)) return /obj/structure/stool/bed/chair/MouseDrop_T(mob/M as mob, mob/user as mob) @@ -142,7 +144,6 @@ Bump(O) else unbuckle() - handle_rotation() /obj/structure/stool/bed/chair/office/Bump(atom/A) ..() diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm index 8e801de6e2d..0ed780ebddf 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -10,12 +10,13 @@ var/bloodiness -/obj/structure/stool/bed/chair/wheelchair/handle_rotation() +/obj/structure/stool/bed/chair/wheelchair/set_dir() + ..() overlays = null var/image/O = image(icon = 'icons/obj/objects.dmi', icon_state = "w_overlay", layer = FLY_LAYER, dir = src.dir) overlays += O if(buckled_mob) - buckled_mob.dir = dir + buckled_mob.set_dir(dir) /obj/structure/stool/bed/chair/wheelchair/relaymove(mob/user, direction) // Redundant check? @@ -64,8 +65,7 @@ step(src, direction) if(buckled_mob) // Make sure it stays beneath the occupant Move(buckled_mob.loc) - dir = direction - handle_rotation() + set_dir(direction) if(pulling) // Driver if(pulling.loc == src.loc) // We moved onto the wheelchair? Revert! pulling.loc = T @@ -74,7 +74,7 @@ if(get_dist(src, pulling) > 1) // We are too far away? Losing control. pulling = null user.pulledby = null - pulling.dir = get_dir(pulling, src) // When everything is right, face the wheelchair + pulling.set_dir(get_dir(pulling, src)) // When everything is right, face the wheelchair if(bloodiness) create_track() driving = 0 @@ -101,7 +101,6 @@ else if (occupant && (src.loc != occupant.loc)) src.loc = occupant.loc // Failsafe to make sure the wheelchair stays beneath the occupant after driving - handle_rotation() /obj/structure/stool/bed/chair/wheelchair/attack_hand(mob/user as mob) if (pulling) @@ -122,7 +121,7 @@ usr.pulledby = src if(usr.pulling) usr.stop_pulling() - usr.dir = get_dir(usr, src) + usr.set_dir(get_dir(usr, src)) usr << "You grip \the [name]'s handles." else if(usr != pulling) @@ -176,14 +175,14 @@ var/obj/effect/decal/cleanable/blood/tracks/B = new(loc) var/newdir = get_dir(get_step(loc, dir), loc) if(newdir == dir) - B.dir = newdir + B.set_dir(newdir) else newdir = newdir | dir if(newdir == 3) newdir = 1 else if(newdir == 12) newdir = 4 - B.dir = newdir + B.set_dir(newdir) bloodiness-- /obj/structure/stool/bed/chair/wheelchair/buckle_mob(mob/M as mob, mob/user as mob) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index bcd09a51cd4..2dc9ae80572 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -250,9 +250,9 @@ if(6) icon_state = "tabledir3" if (dir_sum in list(1,2,4,8,5,6,9,10)) - dir = dir_sum + set_dir(dir_sum) else - dir = 2 + set_dir(2) /obj/structure/table/attack_tk() // no telehulk sorry return @@ -445,7 +445,7 @@ spawn(0) A.throw_at(pick(targets),1,1) - dir = direction + set_dir(direction) if(dir != NORTH) layer = 5 climbable = 0 //flipping tables allows them to be used as makeshift barriers diff --git a/code/game/objects/structures/transit_tubes.dm b/code/game/objects/structures/transit_tubes.dm index aed971b20d1..2c8c534dd47 100644 --- a/code/game/objects/structures/transit_tubes.dm +++ b/code/game/objects/structures/transit_tubes.dm @@ -170,7 +170,7 @@ obj/structure/ex_act(severity) nexttube = tube break if(!nexttube) - pod.dir = turn(pod.dir, 180) + pod.set_dir(turn(pod.dir, 180)) if(icon_state == "closed" && pod) pod.follow_tube() @@ -320,13 +320,13 @@ obj/structure/ex_act(severity) break if(current_tube == null) - dir = next_dir + set_dir(next_dir) Move(get_step(loc, dir)) // Allow collisions when leaving the tubes. break last_delay = current_tube.enter_delay(src, next_dir) sleep(last_delay) - dir = next_dir + set_dir(next_dir) loc = next_loc // When moving from one tube to another, skip collision and such. density = current_tube.density @@ -429,14 +429,14 @@ obj/structure/ex_act(severity) station.open_animation() else if(direction in station.directions()) - dir = direction + set_dir(direction) station.launch_pod() return for(var/obj/structure/transit_tube/tube in loc) if(dir in tube.directions()) if(tube.has_exit(direction)) - dir = direction + set_dir(direction) return diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index 9e1b47a0b17..c115f230e2b 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -32,9 +32,9 @@ obj/structure/windoor_assembly/New(Loc, start_dir=NORTH, constructed=0) anchored = 0 switch(start_dir) if(NORTH, SOUTH, EAST, WEST) - dir = start_dir + set_dir(start_dir) else //If the user is facing northeast. northwest, southeast, southwest or north, default to north - dir = NORTH + set_dir(NORTH) update_nearby_tiles(need_rebuild=1) @@ -220,7 +220,7 @@ obj/structure/windoor_assembly/Del() else windoor.icon_state = "rightsecureopen" windoor.base_state = "rightsecure" - windoor.dir = src.dir + windoor.set_dir(src.dir) windoor.density = 0 if(src.electronics.one_access) @@ -238,7 +238,7 @@ obj/structure/windoor_assembly/Del() else windoor.icon_state = "rightopen" windoor.base_state = "right" - windoor.dir = src.dir + windoor.set_dir(src.dir) windoor.density = 0 if(src.electronics.one_access) @@ -272,7 +272,7 @@ obj/structure/windoor_assembly/Del() if(src.state != "01") update_nearby_tiles(need_rebuild=1) //Compel updates before - src.dir = turn(src.dir, 270) + src.set_dir(turn(src.dir, 270)) if(src.state != "01") update_nearby_tiles(need_rebuild=1) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index a8492748a3c..73ec443e0a6 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -246,7 +246,7 @@ return 0 update_nearby_tiles(need_rebuild=1) //Compel updates before - dir = turn(dir, 90) + set_dir(turn(dir, 90)) // updateSilicate() update_nearby_tiles(need_rebuild=1) return @@ -262,7 +262,7 @@ return 0 update_nearby_tiles(need_rebuild=1) //Compel updates before - dir = turn(dir, 270) + set_dir(turn(dir, 270)) // updateSilicate() update_nearby_tiles(need_rebuild=1) return @@ -292,7 +292,7 @@ anchored = 0 if (start_dir) - dir = start_dir + set_dir(start_dir) health = maxhealth @@ -313,7 +313,7 @@ var/ini_dir = dir update_nearby_tiles(need_rebuild=1) ..() - dir = ini_dir + set_dir(ini_dir) update_nearby_tiles(need_rebuild=1) //checks if this window is full-tile one diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index db622996da2..6c417a35e12 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1769,7 +1769,7 @@ else var/atom/O = new path(target) if(O) - O.dir = obj_dir + O.set_dir(obj_dir) if(obj_name) O.name = obj_name if(istype(O,/mob)) diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 50b2c862058..3a70e853996 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -60,7 +60,7 @@ var/obj/effect/beam/i_beam/I = new /obj/effect/beam/i_beam((holder ? holder.loc : loc) ) I.master = src I.density = 1 - I.dir = dir + I.set_dir(dir) step(I, I.dir) if(I) I.density = 0 @@ -85,14 +85,14 @@ Move() var/t = dir ..() - dir = t + set_dir(t) del(first) return holder_movement() if(!holder) return 0 -// dir = holder.dir +// set_dir(holder.dir) del(first) return 1 @@ -151,7 +151,7 @@ set category = "Object" set src in usr - dir = turn(dir, 90) + set_dir(turn(dir, 90)) return @@ -213,7 +213,7 @@ var/obj/effect/beam/i_beam/I = new /obj/effect/beam/i_beam(loc) I.master = master I.density = 1 - I.dir = dir + I.set_dir(dir) //world << "created new beam \ref[I] at [I.x] [I.y] [I.z]" step(I, I.dir) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 20864c641ee..04c255b94eb 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -120,13 +120,13 @@ obj/machinery/gateway/centerstation/process() if(!awaygate) return if(awaygate.calibrated) M.loc = get_step(awaygate.loc, SOUTH) - M.dir = SOUTH + M.set_dir(SOUTH) return else var/obj/effect/landmark/dest = pick(awaydestinations) if(dest) M.loc = dest.loc - M.dir = SOUTH + M.set_dir(SOUTH) use_power(5000) return @@ -222,7 +222,7 @@ obj/machinery/gateway/centerstation/process() M << "\black The station gate has detected your exile implant and is blocking your entry." return M.loc = get_step(stationgate.loc, SOUTH) - M.dir = SOUTH + M.set_dir(SOUTH) /obj/machinery/gateway/centeraway/attackby(obj/item/device/W as obj, mob/user as mob) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index c6487cc9d2e..79a3fb28353 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -144,7 +144,7 @@ desc = O.desc icon = O.icon icon_state = O.icon_state - dir = O.dir + set_dir(O.dir) /obj/item/clothing/ears/earmuffs name = "earmuffs" diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index bd3d93ae72f..fe6c3ea0315 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -295,7 +295,7 @@ proc/check_panel(mob/M) collapse() continue if(get_dist(src,my_target) > 1) - src.dir = get_dir(src,my_target) + src.set_dir(get_dir(src,my_target)) step_towards(src,my_target) updateimage() else diff --git a/code/modules/mining/drilling/drill.dm b/code/modules/mining/drilling/drill.dm index 4ed2cd08673..7f9d331aace 100644 --- a/code/modules/mining/drilling/drill.dm +++ b/code/modules/mining/drilling/drill.dm @@ -388,5 +388,5 @@ usr << "It is anchored in place!" return 0 - src.dir = turn(src.dir, 90) + src.set_dir(turn(src.dir, 90)) return 1 \ No newline at end of file diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 0f3c764878b..c5e1afbc4cb 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -182,7 +182,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp /mob/dead/observer/Move(NewLoc, direct) following = null - dir = direct + set_dir(direct) if(NewLoc) loc = NewLoc for(var/obj/effect/step_trigger/S in NewLoc) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index eb96d51512d..67197567440 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -130,9 +130,9 @@ hud_used.l_hand_hud_object.icon_state = "hand_inactive" hud_used.r_hand_hud_object.icon_state = "hand_active" /*if (!( src.hand )) - src.hands.dir = NORTH + src.hands.set_dir(NORTH) else - src.hands.dir = SOUTH*/ + src.hands.set_dir(SOUTH)*/ return /mob/living/carbon/proc/activate_hand(var/selhand) //0 or "r" or "right" for right hand; 1 or "l" or "left" for left hand. diff --git a/code/modules/mob/living/carbon/monkey/npc.dm b/code/modules/mob/living/carbon/monkey/npc.dm index f863558605a..a7d4bfc7aef 100644 --- a/code/modules/mob/living/carbon/monkey/npc.dm +++ b/code/modules/mob/living/carbon/monkey/npc.dm @@ -53,7 +53,7 @@ mob/living/carbon/monkey/proc/npc_act() hiding_behind = null hid_behind = 0 - if(loc == prevloc) dir = get_dir(src, npc_fleeing) + if(loc == prevloc) set_dir(get_dir(src, npc_fleeing)) else if(prob(33) && canmove && isturf(loc)) step(src, pick(cardinal)) diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm index 2b632c70f57..162038dd070 100644 --- a/code/modules/mob/living/simple_animal/friendly/corgi.dm +++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm @@ -297,15 +297,15 @@ if(movement_target) //Not redundant due to sleeps, Item can be gone in 6 decisecomds if (movement_target.loc.x < src.x) - dir = WEST + set_dir(WEST) else if (movement_target.loc.x > src.x) - dir = EAST + set_dir(EAST) else if (movement_target.loc.y < src.y) - dir = SOUTH + set_dir(SOUTH) else if (movement_target.loc.y > src.y) - dir = NORTH + set_dir(NORTH) else - dir = SOUTH + set_dir(SOUTH) if(isturf(movement_target.loc) ) UnarmedAttack(movement_target) @@ -316,7 +316,7 @@ visible_emote(pick("dances around","chases their tail")) spawn(0) for(var/i in list(1,2,4,8,4,2,1,2,4,8,4,2,1,2,4,8,4,2)) - dir = i + set_dir(i) sleep(1) /obj/item/weapon/reagent_containers/food/snacks/meat/corgi @@ -369,7 +369,7 @@ M.show_message("\blue [user] baps [name] on the nose with the rolled up [O]") spawn(0) for(var/i in list(1,2,4,8,4,2,1,2)) - dir = i + set_dir(i) sleep(1) else ..() @@ -471,5 +471,5 @@ visible_emote(pick("dances around","chases her tail")) spawn(0) for(var/i in list(1,2,4,8,4,2,1,2,4,8,4,2,1,2,4,8,4,2)) - dir = i + set_dir(i) sleep(1) diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index fa3e8c23853..5bc3d41afc6 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -74,7 +74,7 @@ stance_step = max(0, stance_step) //If we have not seen a mob in a while, the stance_step will be negative, we need to reset it to 0 as soon as we see a mob again. stance_step++ found_mob = 1 - src.dir = get_dir(src,target_mob) //Keep staring at the mob + src.set_dir(get_dir(src,target_mob)) //Keep staring at the mob if(stance_step in list(1,4,7)) //every 3 ticks var/action = pick( list( "growls at [target_mob]", "stares angrily at [target_mob]", "prepares to attack [target_mob]", "closely watches [target_mob]" ) ) diff --git a/code/modules/mob/living/simple_animal/worm.dm b/code/modules/mob/living/simple_animal/worm.dm index 6dad3655e31..0df4f5c7c42 100644 --- a/code/modules/mob/living/simple_animal/worm.dm +++ b/code/modules/mob/living/simple_animal/worm.dm @@ -75,7 +75,7 @@ if(stat == CONSCIOUS || stat == UNCONSCIOUS) icon_state = "spacewormhead[previous?1:0]" if(previous) - dir = get_dir(previous,src) + set_dir(get_dir(previous,src)) else icon_state = "spacewormheaddead" @@ -129,7 +129,7 @@ icon_state = "spaceworm[get_dir(src,previous) | get_dir(src,next)]" //see 3 lines below else //tail icon_state = "spacewormtail" - dir = get_dir(src,next) //next will always be present since it's not a head and if it's dead, it goes in the other if branch + set_dir(get_dir(src,next)) //next will always be present since it's not a head and if it's dead, it goes in the other if branch else icon_state = "spacewormdead" diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index fa70ccbfc54..6bf10756d0f 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -905,10 +905,9 @@ note dizziness decrements automatically in the mob's Life() proc. /mob/proc/facedir(var/ndir) if(!canface()) return 0 - dir = ndir + set_dir(ndir) if(buckled && buckled.movable) - buckled.dir = ndir - buckled.handle_rotation() + buckled.set_dir(ndir) client.move_delay += movement_delay() return 1 diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index f999b26ec02..da6d01de79b 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -110,8 +110,8 @@ */ return - -/atom/movable/Move(NewLoc, direct) +//This proc should never be overridden elsewhere at /atom/movable to keep directions sane. +/atom/movable/Move(newloc, direct) if (direct & (direct - 1)) if (direct & 1) if (direct & 4) @@ -143,9 +143,20 @@ if (step(src, WEST)) step(src, SOUTH) else - . = ..() - return + var/atom/A = src.loc + var/olddir = dir //we can't override this without sacrificing the rest of movable/New() + . = ..() + if(direct != olddir) + dir = olddir + set_dir(direct) + + src.move_speed = world.time - src.l_move_time + src.l_move_time = world.time + src.m_flag = 1 + if ((A != src.loc && A && A.z == src.z)) + src.last_move = get_dir(A, src.loc) + return /client/proc/Move_object(direct) if(mob && mob.control_object) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 48d0140d906..00c6f9d05ee 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -334,7 +334,7 @@ // Moving wheelchair if they have one if(character.buckled && istype(character.buckled, /obj/structure/stool/bed/chair/wheelchair)) character.buckled.loc = character.loc - character.buckled.dir = character.dir + character.buckled.set_dir(character.dir) ticker.mode.latespawn(character) diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 6d830d1559f..7816b914cfa 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -1037,7 +1037,7 @@ obj/item/weapon/organ/New(loc, mob/living/carbon/human/H) base.Blend(rgb(H.r_skin, H.g_skin, H.b_skin), ICON_ADD) icon = base - dir = SOUTH + set_dir(SOUTH) src.transform = turn(src.transform, rand(70,130)) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 510602122f3..45114d9e78d 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -143,9 +143,9 @@ // offset 24 pixels in direction of dir // this allows the APC to be embedded in a wall, yet still inside an area if (building) - dir = ndir + set_dir(ndir) src.tdir = dir // to fix Vars bug - dir = SOUTH + set_dir(SOUTH) pixel_x = (src.tdir & 3)? 0 : (src.tdir == 4 ? 24 : -24) pixel_y = (src.tdir & 3)? (src.tdir ==1 ? 24 : -24) : 0 @@ -184,7 +184,7 @@ // create a terminal object at the same position as original turf loc // wires will attach to this terminal = new/obj/machinery/power/terminal(src.loc) - terminal.dir = tdir + terminal.set_dir(tdir) terminal.master = src /obj/machinery/power/apc/proc/init() diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index e6bd2151c8b..c574c37ef83 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -191,7 +191,7 @@ if (usr.stat || usr.restrained() || anchored) return - src.dir = turn(src.dir, 90) + src.set_dir(turn(src.dir, 90)) /obj/machinery/power/generator/verb/rotate_anticlock() set category = "Object" @@ -201,4 +201,4 @@ if (usr.stat || usr.restrained() || anchored) return - src.dir = turn(src.dir, -90) \ No newline at end of file + src.set_dir(turn(src.dir, -90)) \ No newline at end of file diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 4ae6e0b2543..59e93c23b64 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -33,7 +33,7 @@ if (src.anchored || usr:stat) usr << "It is fastened to the floor!" return 0 - src.dir = turn(src.dir, 90) + src.set_dir(turn(src.dir, 90)) return 1 /obj/machinery/power/emitter/initialize() @@ -137,7 +137,7 @@ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() - A.dir = src.dir + A.set_dir(src.dir) switch(dir) if(NORTH) A.yo = 20 diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index cf339eff301..501ccd989aa 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -299,7 +299,7 @@ field_generator power level display fields += CF G.fields += CF CF.loc = T - CF.dir = field_dir + CF.set_dir(field_dir) var/listcheck = 0 for(var/obj/machinery/field_generator/FG in connected_gens) if (isnull(FG)) diff --git a/code/modules/power/singularity/particle_accelerator/particle.dm b/code/modules/power/singularity/particle_accelerator/particle.dm index 0fc32904ab9..cbec31306be 100644 --- a/code/modules/power/singularity/particle_accelerator/particle.dm +++ b/code/modules/power/singularity/particle_accelerator/particle.dm @@ -29,7 +29,7 @@ /obj/effect/accelerated_particle/New(loc, dir = 2) src.loc = loc - src.dir = dir + src.set_dir(dir) if(movement_range > 20) movement_range = 20 spawn(0) diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm index a122fd12f38..6739bd165e4 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm @@ -91,7 +91,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin if (src.anchored || usr:stat) usr << "It is fastened to the floor!" return 0 - src.dir = turn(src.dir, 270) + src.set_dir(turn(src.dir, 270)) return 1 /obj/structure/particle_accelerator/verb/rotateccw() @@ -102,7 +102,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin if (src.anchored || usr:stat) usr << "It is fastened to the floor!" return 0 - src.dir = turn(src.dir, 90) + src.set_dir(turn(src.dir, 90)) return 1 /obj/structure/particle_accelerator/examine(mob/user) @@ -282,7 +282,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin if (src.anchored || usr:stat) usr << "It is fastened to the floor!" return 0 - src.dir = turn(src.dir, 270) + src.set_dir(turn(src.dir, 270)) return 1 /obj/machinery/particle_accelerator/verb/rotateccw() @@ -293,7 +293,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin if (src.anchored || usr:stat) usr << "It is fastened to the floor!" return 0 - src.dir = turn(src.dir, 90) + src.set_dir(turn(src.dir, 90)) return 1 /obj/machinery/particle_accelerator/update_icon() diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm index 5b30c000c70..26239ff5678 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm @@ -157,7 +157,7 @@ /obj/machinery/particle_accelerator/control_box/proc/part_scan() for(var/obj/structure/particle_accelerator/fuel_chamber/F in orange(1,src)) - src.dir = F.dir + src.set_dir(F.dir) connected_parts = list() var/tally = 0 var/ldir = turn(dir,-90) diff --git a/code/modules/power/singularity/particle_accelerator/particle_emitter.dm b/code/modules/power/singularity/particle_accelerator/particle_emitter.dm index 01666774a96..ff6a444a538 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_emitter.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_emitter.dm @@ -44,6 +44,6 @@ if(2) A = new/obj/effect/accelerated_particle/strong(T, dir) if(A) - A.dir = src.dir + A.set_dir(src.dir) return 1 return 0 diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index f18aa2eb2aa..611c8546f30 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -207,7 +207,7 @@ user << "You start adding cable to the [src]." if(do_after(user, 50)) terminal = new /obj/machinery/power/terminal(tempLoc) - terminal.dir = tempDir + terminal.set_dir(tempDir) terminal.master = src return 0 return 1 diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index a3cf39280d9..861665b462c 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -102,7 +102,7 @@ var/list/solars_list = list() overlays += image('icons/obj/power.dmi', icon_state = "solar_panel-b", layer = FLY_LAYER) else overlays += image('icons/obj/power.dmi', icon_state = "solar_panel", layer = FLY_LAYER) - src.dir = angle2dir(adir) + src.set_dir(angle2dir(adir)) return //calculates the fraction of the sunlight that the panel recieves diff --git a/code/modules/power/tracker.dm b/code/modules/power/tracker.dm index 92b6d2924c2..38824dec5d9 100644 --- a/code/modules/power/tracker.dm +++ b/code/modules/power/tracker.dm @@ -52,7 +52,7 @@ sun_angle = angle //set icon dir to show sun illumination - dir = turn(NORTH, -angle - 22.5) // 22.5 deg bias ensures, e.g. 67.5-112.5 is EAST + set_dir(turn(NORTH, -angle - 22.5)) // 22.5 deg bias ensures, e.g. 67.5-112.5 is EAST if(powernet && (powernet == control.powernet)) //update if we're still in the same powernet control.cdir = angle diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index 972f6206ae1..610c0f28a3b 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -18,7 +18,7 @@ BB = new projectile_type(src) pixel_x = rand(-10.0, 10) pixel_y = rand(-10.0, 10) - dir = pick(cardinal) + set_dir(pick(cardinal)) /obj/item/ammo_casing/attackby(obj/item/weapon/W as obj, mob/user as mob) diff --git a/code/modules/projectiles/targeting.dm b/code/modules/projectiles/targeting.dm index ddacdbead5c..496455f24e4 100644 --- a/code/modules/projectiles/targeting.dm +++ b/code/modules/projectiles/targeting.dm @@ -48,7 +48,7 @@ //Lets not spam it. if(lock_time > world.time - 2) return - user.dir = get_cardinal_dir(src, A) + user.set_dir(get_cardinal_dir(src, A)) if(isliving(A) && !(A in target)) Aim(A) //Clicked a mob, aim at them return 1 @@ -103,7 +103,7 @@ else click_empty(M) - usr.dir = get_cardinal_dir(src, T) + usr.set_dir(get_cardinal_dir(src, T)) if (!firerate) // If firerate is set to lower aim after one shot, untarget the target T.NotTargeted(src) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 314e6dbccfd..2244e98bf10 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -24,7 +24,7 @@ /obj/machinery/conveyor/New(loc, newdir, on = 0) ..(loc) if(newdir) - dir = newdir + set_dir(newdir) switch(dir) if(NORTH) forwards = NORTH diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm index b4c8cfc2f52..8b26dd31333 100644 --- a/code/modules/recycling/disposal-construction.dm +++ b/code/modules/recycling/disposal-construction.dm @@ -111,7 +111,7 @@ usr << "You must unfasten the pipe before rotating it." return - dir = turn(dir, -90) + set_dir(turn(dir, -90)) update() verb/flip() @@ -125,7 +125,7 @@ usr << "You must unfasten the pipe before flipping it." return - dir = turn(dir, 180) + set_dir(turn(dir, 180)) switch(ptype) if(2) ptype = 3 @@ -260,7 +260,7 @@ var/obj/structure/disposalpipe/P = new pipetype(src.loc) src.transfer_fingerprints_to(P) P.base_icon_state = base_state - P.dir = dir + P.set_dir(dir) P.dpdir = dpdir P.updateicon() @@ -278,7 +278,7 @@ var/obj/structure/disposaloutlet/P = new /obj/structure/disposaloutlet(src.loc) src.transfer_fingerprints_to(P) - P.dir = dir + P.set_dir(dir) var/obj/structure/disposalpipe/trunk/Trunk = CP Trunk.linked = P @@ -286,7 +286,7 @@ var/obj/machinery/disposal/deliveryChute/P = new /obj/machinery/disposal/deliveryChute(src.loc) src.transfer_fingerprints_to(P) - P.dir = dir + P.set_dir(dir) del(src) return diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 3b5d5a197a2..2bfac53547a 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -543,7 +543,7 @@ loc = D.trunk active = 1 - dir = DOWN + set_dir(DOWN) spawn(1) move() // spawn off the movement process @@ -702,7 +702,7 @@ // proc/transfer(var/obj/structure/disposalholder/H) var/nextdir = nextdir(H.dir) - H.dir = nextdir + H.set_dir(nextdir) var/turf/T = H.nextloc() var/obj/structure/disposalpipe/P = H.findpipe(T) @@ -808,7 +808,7 @@ for(var/D in cardinal) if(D & dpdir) var/obj/structure/disposalpipe/broken/P = new(src.loc) - P.dir = D + P.set_dir(D) src.invisibility = 101 // make invisible (since we won't delete the pipe immediately) var/obj/structure/disposalholder/H = locate() in src @@ -919,7 +919,7 @@ if("pipe-tagger-partial") C.ptype = 14 src.transfer_fingerprints_to(C) - C.dir = dir + C.set_dir(dir) C.density = 0 C.anchored = 1 C.update() @@ -965,7 +965,7 @@ transfer(var/obj/structure/disposalholder/H) var/nextdir = nextdir(H.dir) - H.dir = nextdir + H.set_dir(nextdir) var/turf/T var/obj/structure/disposalpipe/P @@ -1229,7 +1229,7 @@ transfer(var/obj/structure/disposalholder/H) var/nextdir = nextdir(H.dir, H.destinationTag) - H.dir = nextdir + H.set_dir(nextdir) var/turf/T = H.nextloc() var/obj/structure/disposalpipe/P = H.findpipe(T) diff --git a/code/modules/research/xenoarchaeology/tools/suspension_generator.dm b/code/modules/research/xenoarchaeology/tools/suspension_generator.dm index 9b461b5d198..9f498d3faab 100644 --- a/code/modules/research/xenoarchaeology/tools/suspension_generator.dm +++ b/code/modules/research/xenoarchaeology/tools/suspension_generator.dm @@ -322,7 +322,7 @@ if(anchored) usr << "\red You cannot rotate [src], it has been firmly fixed to the floor." else - dir = turn(dir, 90) + set_dir(turn(dir, 90)) /obj/machinery/suspension_gen/verb/rotate_cw() set src in view(1) @@ -332,7 +332,7 @@ if(anchored) usr << "\red You cannot rotate [src], it has been firmly fixed to the floor." else - dir = turn(dir, -90) + set_dir(turn(dir, -90)) /obj/effect/suspension_field name = "energy field" diff --git a/code/modules/research/xenoarchaeology/tools/tools_locater.dm b/code/modules/research/xenoarchaeology/tools/tools_locater.dm index dfecd5979ba..ad84f0e0100 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_locater.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_locater.dm @@ -22,7 +22,7 @@ /obj/item/device/beacon_locator/process() if(target_radio) - dir = get_dir(src,target_radio) + set_dir(get_dir(src,target_radio)) switch(get_dist(src,target_radio)) if(0 to 3) icon_state = "pinondirect" diff --git a/code/modules/shieldgen/emergency_shield.dm b/code/modules/shieldgen/emergency_shield.dm index 8ecb5fb3b18..a3616319604 100644 --- a/code/modules/shieldgen/emergency_shield.dm +++ b/code/modules/shieldgen/emergency_shield.dm @@ -13,7 +13,7 @@ var/shield_idle_power = 1500 //how much power we use when just being sustained. /obj/machinery/shield/New() - src.dir = pick(1,2,3,4) + src.set_dir(pick(1,2,3,4)) ..() update_nearby_tiles(need_rebuild=1) diff --git a/code/modules/shieldgen/sheldwallgen.dm b/code/modules/shieldgen/sheldwallgen.dm index 9bce6c3597a..d2d8148c133 100644 --- a/code/modules/shieldgen/sheldwallgen.dm +++ b/code/modules/shieldgen/sheldwallgen.dm @@ -154,7 +154,7 @@ T2 = T var/obj/machinery/shieldwall/CF = new/obj/machinery/shieldwall/(src, G) //(ref to this gen, ref to connected gen) CF.loc = T - CF.dir = field_dir + CF.set_dir(field_dir) /obj/machinery/shieldwallgen/attackby(obj/item/W, mob/user) diff --git a/code/modules/shieldgen/shield_capacitor.dm b/code/modules/shieldgen/shield_capacitor.dm index 2893f11b89f..0c26178314e 100644 --- a/code/modules/shieldgen/shield_capacitor.dm +++ b/code/modules/shieldgen/shield_capacitor.dm @@ -149,5 +149,5 @@ if (src.anchored) usr << "It is fastened to the floor!" return - src.dir = turn(src.dir, 270) + src.set_dir(turn(src.dir, 270)) return diff --git a/code/modules/vehicles/train.dm b/code/modules/vehicles/train.dm index d8e372d8189..c323eed8091 100644 --- a/code/modules/vehicles/train.dm +++ b/code/modules/vehicles/train.dm @@ -155,7 +155,7 @@ //latch with src as the follower lead = T T.tow = src - dir = lead.dir + set_dir(lead.dir) if(user) user << "\blue You hitch [src] to [T]." diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index 5b40c9e5fc2..b6746552045 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -55,7 +55,7 @@ if(load) load.forceMove(loc)// = loc - load.dir = dir + load.set_dir(dir) return 1 else @@ -140,7 +140,7 @@ pulse2.icon_state = "empdisable" pulse2.name = "emp sparks" pulse2.anchored = 1 - pulse2.dir = pick(cardinal) + pulse2.set_dir(pick(cardinal)) spawn(10) pulse2.delete() @@ -154,9 +154,6 @@ /obj/vehicle/attack_ai(mob/user as mob) return -/obj/vehicle/proc/handle_rotation() - return - //------------------------------------------- // Vehicle procs //------------------------------------------- @@ -273,7 +270,7 @@ crate.close() C.forceMove(loc) - C.dir = dir + C.set_dir(dir) C.anchored = 1 load = C @@ -325,7 +322,7 @@ return 0 load.forceMove(dest) - load.dir = get_dir(loc, dest) + load.set_dir(get_dir(loc, dest)) load.anchored = initial(load.anchored) load.pixel_x = initial(load.pixel_x) load.pixel_y = initial(load.pixel_y) diff --git a/code/unused/Agouri_stuff.dm b/code/unused/Agouri_stuff.dm index bb5e7d3b35f..e204fbd7d39 100644 --- a/code/unused/Agouri_stuff.dm +++ b/code/unused/Agouri_stuff.dm @@ -539,7 +539,7 @@ var/turf/simulated/floor/W = new /turf/simulated/floor( locate(src.x, src.y, src.z) ) W.RemoveLattice() - W.dir = old_dir + W.set_dir(old_dir) if(prior_icon) W.icon_state = prior_icon else W.icon_state = "floor" @@ -557,7 +557,7 @@ var/turf/simulated/floor/plating/W = new /turf/simulated/floor/plating( locate(src.x, src.y, src.z) ) W.RemoveLattice() - W.dir = old_dir + W.set_dir(old_dir) if(prior_icon) W.icon_state = prior_icon else W.icon_state = "plating" W.opacity = 1 @@ -570,7 +570,7 @@ var/turf/simulated/floor/engine/E = new /turf/simulated/floor/engine( locate(src.x, src.y, src.z) ) - E.dir = old_dir + E.set_dir(old_dir) E.icon_state = "engine" /turf/simulated/Entered(atom/A, atom/OL) @@ -633,13 +633,13 @@ /turf/proc/ReplaceWithSpace() var/old_dir = dir var/turf/space/S = new /turf/space( locate(src.x, src.y, src.z) ) - S.dir = old_dir + S.set_dir(old_dir) return S /turf/proc/ReplaceWithLattice() var/old_dir = dir var/turf/space/S = new /turf/space( locate(src.x, src.y, src.z) ) - S.dir = old_dir + S.set_dir(old_dir) new /obj/structure/lattice( locate(src.x, src.y, src.z) ) return S diff --git a/code/unused/_debug.dm b/code/unused/_debug.dm index 6b8bb9c3e36..fb4a994f28a 100644 --- a/code/unused/_debug.dm +++ b/code/unused/_debug.dm @@ -502,7 +502,7 @@ Doing this because FindTurfs() isn't even used set category = "Debug" if(Debug) var/obj/effect/smoke/O = new /obj/effect/smoke( src.loc ) - O.dir = pick(NORTH, SOUTH, EAST, WEST) + O.set_dir(pick(NORTH, SOUTH, EAST, WEST)) spawn( 0 ) O.Life() else diff --git a/code/unused/assemblies.dm b/code/unused/assemblies.dm index 8f7d0f71e1c..2c6909287a9 100644 --- a/code/unused/assemblies.dm +++ b/code/unused/assemblies.dm @@ -480,8 +480,8 @@ set category = "Object" set src in usr - src.dir = turn(src.dir, 90) - src.part2.dir = src.dir + src.set_dir(turn(src.dir, 90)) + src.part2.set_dir(src.dir) src.add_fingerprint(usr) return @@ -489,7 +489,7 @@ var/t = src.dir ..() - src.dir = t + src.set_dir(t) //src.part2.first = null del(src.part2.first) return diff --git a/code/unused/asteroiddevice.dm b/code/unused/asteroiddevice.dm index f9c6aa9185e..57a5747cfec 100644 --- a/code/unused/asteroiddevice.dm +++ b/code/unused/asteroiddevice.dm @@ -47,7 +47,7 @@ var/atom/cur_loc = src.loc if(cur_loc.z == beacon.z) - src.dir = get_dir(cur_loc,beacon) + src.set_dir(get_dir(cur_loc,beacon)) else var/list/beacon_global_loc = beacon.get_global_map_pos() var/list/src_global_loc = cur_loc.get_global_map_pos() @@ -64,7 +64,7 @@ else if(beacon_global_loc["y"] Date: Tue, 2 Dec 2014 02:34:34 +1030 Subject: [PATCH 43/56] Fixes most of #7206, fixes #7200, fixes #7184 --- code/modules/clothing/clothing.dm | 34 +++-- code/modules/clothing/shoes/magboots.dm | 42 +++--- code/modules/clothing/spacesuits/rig/rig.dm | 9 +- .../clothing/spacesuits/rig/rig_pieces.dm | 1 + .../clothing/spacesuits/rig/suits/combat.dm | 2 + .../clothing/spacesuits/rig/suits/light.dm | 1 - .../clothing/spacesuits/rig/suits/station.dm | 7 + code/modules/clothing/spacesuits/void/void.dm | 132 +++++++++++++++++- 8 files changed, 185 insertions(+), 43 deletions(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index d2d1f27e016..17a1e811477 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -244,6 +244,7 @@ BLIND // can't see anything w_class = 2.0 var/light_overlay = "helmet_light" + var/light_applied var/brightness_on var/on = 0 @@ -258,32 +259,37 @@ BLIND // can't see anything user << "You cannot turn the light on while in this [user.loc]" return on = !on + user << "You [on ? "enable" : "disable"] the helmet light." update_light(user) else return ..(user) /obj/item/clothing/head/proc/update_light(var/mob/user = null) - if(on) + if(on && !light_applied) if(loc == user) user.SetLuminosity(user.luminosity + brightness_on) - else if(isturf(loc)) - SetLuminosity(brightness_on) - else + SetLuminosity(brightness_on) + light_applied = 1 + else if(!on && light_applied) if(loc == user) user.SetLuminosity(user.luminosity - brightness_on) - else if(isturf(loc)) - SetLuminosity(0) - update_icon() - -/obj/item/clothing/head/pickup(mob/user) - if(on) - user.SetLuminosity(user.luminosity + brightness_on) SetLuminosity(0) + light_applied = 0 + update_icon(user) + +/obj/item/clothing/head/equipped(mob/user) + ..() + spawn(1) + if(on && loc == user && !light_applied) + user.SetLuminosity(user.luminosity + brightness_on) + light_applied = 1 /obj/item/clothing/head/dropped(mob/user) - if(on) - user.SetLuminosity(user.luminosity - brightness_on) - SetLuminosity(brightness_on) + ..() + spawn(1) + if(on && loc != user && light_applied) + user.SetLuminosity(user.luminosity - brightness_on) + light_applied = 0 /obj/item/clothing/head/update_icon(var/mob/user) diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index 3908d0cf75d..287d3ed7487 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -4,28 +4,28 @@ icon_state = "magboots0" species_restricted = null var/magpulse = 0 + var/icon_base = "magboots" icon_action_button = "action_blank" action_button_name = "Toggle the magboots" -// flags = NOSLIP //disabled by default - attack_self(mob/user) - if(magpulse) - flags &= ~NOSLIP - slowdown = SHOES_SLOWDOWN - magpulse = 0 - icon_state = "magboots0" - user << "You disable the mag-pulse traction system." - else - flags |= NOSLIP - slowdown = 2 - magpulse = 1 - icon_state = "magboots1" - user << "You enable the mag-pulse traction system." - user.update_inv_shoes() //so our mob-overlays update +/obj/item/clothing/shoes/magboots/attack_self(mob/user) + if(magpulse) + flags &= ~NOSLIP + slowdown = SHOES_SLOWDOWN + magpulse = 0 + if(icon_base) icon_state = "[icon_base]0" + user << "You disable the mag-pulse traction system." + else + flags |= NOSLIP + slowdown = 2 + magpulse = 1 + if(icon_base) icon_state = "[icon_base]1" + user << "You enable the mag-pulse traction system." + user.update_inv_shoes() //so our mob-overlays update - examine(mob/user) - ..(user) - var/state = "disabled" - if(src.flags&NOSLIP) - state = "enabled" - user << "Its mag-pulse traction system appears to be [state]." \ No newline at end of file +/obj/item/clothing/shoes/magboots/examine(mob/user) + ..(user) + var/state = "disabled" + if(src.flags&NOSLIP) + state = "enabled" + user << "Its mag-pulse traction system appears to be [state]." \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index e2850953bca..7fdffb00f29 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -69,7 +69,6 @@ var/offline_slowdown = 10 // If the suit is deployed and unpowered, it sets slowdown to this. var/vision_restriction var/offline_vision_restriction = 1 // 0 - none, 1 - welder vision, 2 - blind. Maybe move this to helmets. - var/list/suit_can_hold // Wiring! How exciting. var/datum/wires/rig/wires @@ -123,10 +122,8 @@ verbs |= /obj/item/weapon/rig/proc/toggle_boots if(chest_type) chest = new chest_type(src) - if(suit_can_hold) - chest.allowed = suit_can_hold - else - chest.allowed = list() + if(allowed) + chest.allowed = allowed verbs |= /obj/item/weapon/rig/proc/toggle_chest for(var/obj/item/piece in list(gloves,helmet,boots,chest)) @@ -174,7 +171,7 @@ if(sealing) return - if(M && !(istype(M) && M.back == src ) && !istype(M,/mob/living/silicon) ) + if(M && !(istype(M) && M.back == src ) && !istype(M,/mob/living/silicon)) return 0 if(!check_power_cost(M)) diff --git a/code/modules/clothing/spacesuits/rig/rig_pieces.dm b/code/modules/clothing/spacesuits/rig/rig_pieces.dm index 8e7285a6287..5d8c8532ce0 100644 --- a/code/modules/clothing/spacesuits/rig/rig_pieces.dm +++ b/code/modules/clothing/spacesuits/rig/rig_pieces.dm @@ -27,6 +27,7 @@ heat_protection = FEET species_restricted = null gender = PLURAL + icon_base = null /obj/item/clothing/suit/space/rig name = "chestpiece" diff --git a/code/modules/clothing/spacesuits/rig/suits/combat.dm b/code/modules/clothing/spacesuits/rig/suits/combat.dm index 0ed811e4b46..8774a0310e7 100644 --- a/code/modules/clothing/spacesuits/rig/suits/combat.dm +++ b/code/modules/clothing/spacesuits/rig/suits/combat.dm @@ -12,6 +12,7 @@ offline_vision_restriction = 1 helm_type = /obj/item/clothing/head/helmet/space/rig/combat + allowed = list(/obj/item/weapon/gun,/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/melee/baton) initial_modules = list( /obj/item/rig_module/mounted, @@ -28,6 +29,7 @@ desc = "A blood-red hardsuit featuring some fairly illegal technology." icon_state = "merc_rig" suit_type = "crimson hardsuit" + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs) initial_modules = list( /obj/item/rig_module/mounted, diff --git a/code/modules/clothing/spacesuits/rig/suits/light.dm b/code/modules/clothing/spacesuits/rig/suits/light.dm index 6f510942d92..3568a4b64d9 100644 --- a/code/modules/clothing/spacesuits/rig/suits/light.dm +++ b/code/modules/clothing/spacesuits/rig/suits/light.dm @@ -53,7 +53,6 @@ suit_type = "ominous" desc = "A unique, vaccum-proof suit of nano-enhanced armor designed specifically for Spider Clan assassins." icon_state = "ninja_rig" - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/cell) armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) slowdown = 0 diff --git a/code/modules/clothing/spacesuits/rig/suits/station.dm b/code/modules/clothing/spacesuits/rig/suits/station.dm index e4b9a212692..4a34ebd3092 100644 --- a/code/modules/clothing/spacesuits/rig/suits/station.dm +++ b/code/modules/clothing/spacesuits/rig/suits/station.dm @@ -8,6 +8,8 @@ offline_slowdown = 10 offline_vision_restriction = 2 + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd) + req_access = null req_one_access = null @@ -31,6 +33,8 @@ offline_slowdown = 0 offline_vision_restriction = 0 + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd) + req_access = list(access_ce) initial_modules = list( @@ -55,6 +59,9 @@ offline_slowdown = 3 offline_vision_restriction = 1 + //Todo: add xenoarch gear. + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical) + req_access = list(access_rd) initial_modules = list( diff --git a/code/modules/clothing/spacesuits/void/void.dm b/code/modules/clothing/spacesuits/void/void.dm index 558b719bea6..269c4c2dd9e 100644 --- a/code/modules/clothing/spacesuits/void/void.dm +++ b/code/modules/clothing/spacesuits/void/void.dm @@ -49,4 +49,134 @@ //Breach thresholds, should ideally be inherited by most (if not all) voidsuits. breach_threshold = 18 - can_breach = 1 \ No newline at end of file + can_breach = 1 + + //Inbuilt devices. + var/obj/item/clothing/shoes/magboots/boots = null // Deployable boots, if any. + var/obj/item/clothing/head/helmet/helmet = null // Deployable helmet, if any. + +/obj/item/clothing/suit/space/void/equipped(mob/M) + ..() + + var/mob/living/carbon/human/H = M + + if(!istype(H)) return + + if(H.wear_suit != src) + return + + if(helmet) + if(H.head) + M << "You are unable to deploy your suit's helmet as \the [H.head] is in the way." + else + M << "Your suit's helmet deploys with a hiss." + //TODO: Species check, skull damage for forcing an unfitting helmet on? + helmet.loc = H + H.equip_to_slot(helmet, slot_head) + helmet.canremove = 0 + + if(boots) + if(H.shoes) + M << "You are unable to deploy your suit's magboots as \the [H.shoes] are in the way." + else + M << "Your suit's boots deploy with a hiss." + boots.loc = H + H.equip_to_slot(boots, slot_shoes) + boots.canremove = 0 + +/obj/item/clothing/suit/space/void/dropped() + ..() + + var/mob/living/carbon/human/H + + if(helmet) + H = helmet.loc + if(istype(H)) + if(helmet && H.head == helmet) + helmet.canremove = 1 + H.drop_from_inventory(helmet) + helmet.loc = src + + if(boots) + H = boots.loc + if(istype(H)) + if(boots && H.shoes == boots) + boots.canremove = 1 + H.drop_from_inventory(boots) + boots.loc = src + +/obj/item/clothing/suit/space/void/verb/toggle_helmet() + + set name = "Toggle Helmet" + set category = "Object" + set src in usr + + if(!istype(src.loc,/mob/living)) return + + if(!helmet) + usr << "There is no helmet installed." + return + + var/mob/living/carbon/human/H = usr + + if(!istype(H)) return + if(H.stat) return + if(H.wear_suit != src) return + + if(H.head == helmet) + H << "\blue You retract your suit helmet." + helmet.canremove = 1 + H.drop_from_inventory(helmet) + helmet.loc = src + else + if(H.head) + H << "\red You cannot deploy your helmet while wearing another helmet." + return + //TODO: Species check, skull damage for forcing an unfitting helmet on? + helmet.loc = H + helmet.pickup(H) + H.equip_to_slot(helmet, slot_head) + helmet.canremove = 0 + H << "\blue You deploy your suit helmet, sealing you off from the world." + helmet.update_light(H) + +/obj/item/clothing/suit/space/void/attackby(obj/item/W as obj, mob/user as mob) + + if(!istype(user,/mob/living)) return + + if(istype(src.loc,/mob/living)) + user << "How do you propose to modify a hardsuit while it is being worn?" + return + + if(istype(W,/obj/item/weapon/screwdriver)) + if(helmet) + user << "You detatch \the [helmet] from \the [src]'s helmet mount." + helmet.loc = get_turf(src) + src.helmet = null + else if (boots) + user << "You detatch \the [helmet] from \the [src]'s helmet mount." + helmet.loc = get_turf(src) + src.helmet = null + else + user << "\The [src] does not have anything installed." + return + else if(istype(W,/obj/item/clothing/head/helmet/space)) + if(helmet) + user << "\The [src] already has a helmet installed." + else + user << "You attach \the [W] to \the [src]'s helmet mount." + user.drop_item() + W.loc = src + src.helmet = W + return + else if(istype(W,/obj/item/clothing/shoes/magboots)) + if(boots) + user << "\The [src] already has magboots installed." + else + user << "You attach \the [W] to \the [src]'s boot mounts." + user.drop_item() + W.loc = src + boots = W + return + + ..() \ No newline at end of file From 33406d6e47773c04b22e351174c4a4fd01c44ef7 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 2 Dec 2014 02:51:14 +1030 Subject: [PATCH 44/56] Removing macros. --- code/modules/clothing/spacesuits/void/void.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/clothing/spacesuits/void/void.dm b/code/modules/clothing/spacesuits/void/void.dm index 269c4c2dd9e..5d0247283ea 100644 --- a/code/modules/clothing/spacesuits/void/void.dm +++ b/code/modules/clothing/spacesuits/void/void.dm @@ -130,14 +130,14 @@ helmet.loc = src else if(H.head) - H << "\red You cannot deploy your helmet while wearing another helmet." + H << "You cannot deploy your helmet while wearing another helmet." return //TODO: Species check, skull damage for forcing an unfitting helmet on? helmet.loc = H helmet.pickup(H) H.equip_to_slot(helmet, slot_head) helmet.canremove = 0 - H << "\blue You deploy your suit helmet, sealing you off from the world." + H << "You deploy your suit helmet, sealing you off from the world." helmet.update_light(H) /obj/item/clothing/suit/space/void/attackby(obj/item/W as obj, mob/user as mob) @@ -145,7 +145,7 @@ if(!istype(user,/mob/living)) return if(istype(src.loc,/mob/living)) - user << "How do you propose to modify a hardsuit while it is being worn?" + user << "How do you propose to modify a hardsuit while it is being worn?" return if(istype(W,/obj/item/weapon/screwdriver)) From 17f32c3ab35efebfee154434d01d088476e35e27 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 2 Dec 2014 02:58:26 +1030 Subject: [PATCH 45/56] Replacing a loop with the older code. --- code/modules/mob/living/carbon/human/life.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 69890e58a82..058619cbc7e 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1245,8 +1245,7 @@ if(copytext(hud.icon_state,1,4) == "hud") //ugly, but icon comparison is worse, I believe client.images.Remove(hud) - for(var/hud in global_huds) - client.screen.Remove(hud) + client.screen.Remove(global_hud.blurry, global_hud.druggy, global_hud.vimpaired, global_hud.darkMask, global_hud.nvg, global_hud.thermal, global_hud.meson) update_action_buttons() From 8e2b0978a8bf31e4c1c5e417643e053f75a30377 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 2 Dec 2014 11:26:44 +1030 Subject: [PATCH 46/56] Fixes #7209 --- code/game/gamemodes/events/space_ninja.dm | 14 +- code/modules/clothing/spacesuits/rig/rig.dm | 121 ++++++++++-------- .../clothing/spacesuits/rig/rig_attackby.dm | 1 + .../clothing/spacesuits/rig/rig_verbs.dm | 21 +-- 4 files changed, 86 insertions(+), 71 deletions(-) diff --git a/code/game/gamemodes/events/space_ninja.dm b/code/game/gamemodes/events/space_ninja.dm index 97bb3e2404a..1bf2406db5b 100644 --- a/code/game/gamemodes/events/space_ninja.dm +++ b/code/game/gamemodes/events/space_ninja.dm @@ -531,7 +531,19 @@ As such, it's hard-coded for now. No reason for it not to be, really. else equip_to_slot_or_del(new /obj/item/clothing/under/color/black(src), slot_w_uniform) - equip_to_slot_or_del(new /obj/item/weapon/rig/light/ninja(src), slot_back) + var/obj/item/weapon/rig/light/ninja/ninjasuit = new(src) + + // Make sure the ninja can actually equip the suit. + if(src.dna && src.dna.unique_enzymes) + src << "Suit hardware locked to your DNA hash." + ninjasuit.locked_dna = src.dna.unique_enzymes + else + ninjasuit.req_access = list() + + equip_to_slot_or_del(ninjasuit,slot_back) + spawn(10) + ninjasuit.toggle_seals(src,1) + equip_to_slot_or_del(new /obj/item/clothing/mask/gas/voice/space_ninja(src), slot_wear_mask) equip_to_slot_or_del(new /obj/item/device/flashlight(src), slot_belt) equip_to_slot_or_del(new /obj/item/weapon/tank/oxygen(src), slot_s_store) diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index 7fdffb00f29..de586a2707c 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -63,6 +63,7 @@ var/malfunction_delay = 0 var/electrified = 0 var/locked_down = 0 + var/locked_dna = null var/sealing // Keeps track of seal status independantly of canremove. var/offline = 1 // Should we be applying suit maluses? @@ -139,12 +140,6 @@ piece.siemens_coefficient = siemens_coefficient piece.permeability_coefficient = permeability_coefficient - spawn(1) - var/mob/M = loc - if(istype(M)) - toggle_seals(M,1) - update_icon() - /obj/item/weapon/rig/Del() for(var/obj/item/piece in list(gloves,boots,helmet,chest)) var/mob/living/M = piece.loc @@ -171,9 +166,6 @@ if(sealing) return - if(M && !(istype(M) && M.back == src ) && !istype(M,/mob/living/silicon)) - return 0 - if(!check_power_cost(M)) return 0 @@ -189,19 +181,13 @@ M << "The suit flashes an error light. It can't function properly without being fully deployed." failed_to_seal = 1 - if(!failed_to_seal && instant) - for(var/obj/item/piece in list(helmet,boots,gloves,chest)) - if(!piece) continue - piece.icon_state = "[initial(icon_state)]_sealed" - update_icon() + if(!failed_to_seal) - else if(!failed_to_seal) - - M << "With a quiet hum, the suit begins running checks and adjusting components." - - if(!do_after(M,SEAL_DELAY)) - if(M) M << "You must remain still while the suit is adjusting the components." - failed_to_seal = 1 + if(!instant) + M << "With a quiet hum, the suit begins running checks and adjusting components." + if(!do_after(M,SEAL_DELAY)) + if(M) M << "You must remain still while the suit is adjusting the components." + failed_to_seal = 1 if(!M) failed_to_seal = 1 @@ -222,7 +208,12 @@ failed_to_seal = 1 break - if(M.back == src && piece == compare_piece && do_after(M,SEAL_DELAY)) + if(M.back == src && piece == compare_piece) + + if(!instant) + if(!do_after(M,SEAL_DELAY)) + failed_to_seal = 1 + piece.icon_state = "[initial(icon_state)][!seal_target ? "_sealed" : ""]" switch(msg_type) if("boots") @@ -292,6 +283,10 @@ piece.flags |= AIRTIGHT update_icon(1) + if(instant && air_supply) + wearer.internals = air_supply + wearer.internals.icon_state = "internal1" + /obj/item/weapon/rig/process() if(!istype(wearer) || loc != wearer || wearer.back != src || canremove || !cell || cell.charge <= 0) @@ -477,45 +472,59 @@ wearer.update_inv_back() return +/obj/item/weapon/rig/proc/check_suit_access(var/mob/living/carbon/human/user) + + if(!security_check_enabled) + return 1 + + if(istype(user)) + if(user.back != src) + return 0 + if(locked_dna) + if(!user.dna || user.dna.unique_enzymes != locked_dna) + user << "DNA scan mismatch. Access denied." + return 0 + else if(!src.allowed(user)) + user << "Unauthorized user. Access denied." + return 0 + + else if(user.loc && user.loc.loc && istype(user.loc.loc,/obj/item/rig_module/ai_container)) + if(!ai_override_enabled) + user << "Synthetic access disabled. Please consult hardware provider." + return 0 + + return 1 + /obj/item/weapon/rig/Topic(href,href_list) - var/mob/living/carbon/human/H = usr + if(!check_suit_access(usr)) + return - if((istype(H) && H.back == src) || (istype(H,/mob/living/silicon))) + if(href_list["toggle_piece"]) + toggle_piece(href_list["toggle_piece"], usr) + else if(href_list["toggle_seals"]) + toggle_seals(usr) + else if(href_list["interact_module"]) - if(istype(H,/mob/living/silicon)) - if(!ai_override_enabled) - usr << "Synthetic access disabled. Please consult hardware provider." - return - else if(security_check_enabled && !src.allowed(usr)) - usr << "Access denied." - return + var/module_index = text2num(href_list["interact_module"]) - if(href_list["toggle_piece"]) - toggle_piece(href_list["toggle_piece"], H) - else if(href_list["toggle_seals"]) - toggle_seals(H) - else if(href_list["interact_module"]) - - var/module_index = text2num(href_list["interact_module"]) - - if(module_index > 0 && module_index <= installed_modules.len) - var/obj/item/rig_module/module = installed_modules[module_index] - switch(href_list["module_mode"]) - if("activate") - module.activate() - if("deactivate") - module.deactivate() - if("engage") - module.engage() - if("select") - selected_module = module - if("select_charge_type") - module.charge_selected = href_list["charge_type"] - else if(href_list["toggle_ai_control"]) - ai_override_enabled = !ai_override_enabled - else if(href_list["toggle_suit_lock"]) - locked = !locked + if(module_index > 0 && module_index <= installed_modules.len) + var/obj/item/rig_module/module = installed_modules[module_index] + switch(href_list["module_mode"]) + if("activate") + module.activate() + if("deactivate") + module.deactivate() + if("engage") + module.engage() + if("select") + selected_module = module + if("select_charge_type") + module.charge_selected = href_list["charge_type"] + else if(href_list["toggle_ai_control"]) + ai_override_enabled = !ai_override_enabled + else if(href_list["toggle_suit_lock"]) + locked = !locked usr.set_machine(src) src.add_fingerprint(usr) diff --git a/code/modules/clothing/spacesuits/rig/rig_attackby.dm b/code/modules/clothing/spacesuits/rig/rig_attackby.dm index 26a2621e2cd..1b54b8f1eee 100644 --- a/code/modules/clothing/spacesuits/rig/rig_attackby.dm +++ b/code/modules/clothing/spacesuits/rig/rig_attackby.dm @@ -20,6 +20,7 @@ user << "It looks like the locking system has been shorted out." return else if(istype(W, /obj/item/weapon/card/emag)) + locked_dna = null req_access = null req_one_access = null locked = 0 diff --git a/code/modules/clothing/spacesuits/rig/rig_verbs.dm b/code/modules/clothing/spacesuits/rig/rig_verbs.dm index 5347bbc5b94..9ec6f03df7b 100644 --- a/code/modules/clothing/spacesuits/rig/rig_verbs.dm +++ b/code/modules/clothing/spacesuits/rig/rig_verbs.dm @@ -27,8 +27,7 @@ usr << "The suit is not active." return - if((security_check_enabled && !src.allowed(wearer)) || control_overridden) - wearer << "Access denied." + if(!check_suit_access(usr)) return if(!visor) @@ -51,8 +50,7 @@ usr << "The hardsuit is not being worn." return - if((security_check_enabled && !src.allowed(wearer)) || control_overridden) - wearer << "Access denied." + if(!check_suit_access(usr)) return toggle_piece("helmet",wearer) @@ -64,8 +62,7 @@ set category = "Hardsuit" set src = usr.contents - if((security_check_enabled && !src.allowed(wearer)) || control_overridden) - wearer << "Access denied." + if(!check_suit_access(usr)) return toggle_piece("chest",wearer) @@ -81,8 +78,7 @@ usr << "The hardsuit is not being worn." return - if((security_check_enabled && !src.allowed(wearer)) || control_overridden) - wearer << "Access denied." + if(!check_suit_access(usr)) return toggle_piece("gauntlets",wearer) @@ -98,8 +94,7 @@ usr << "The hardsuit is not being worn." return - if((security_check_enabled && !src.allowed(wearer)) || control_overridden) - wearer << "Access denied." + if(!check_suit_access(usr)) return toggle_piece("boots",wearer) @@ -115,8 +110,7 @@ usr << "The hardsuit is not being worn." return - if((security_check_enabled && !src.allowed(wearer)) || control_overridden) - wearer << "Access denied." + if(!check_suit_access(usr)) return if(!check_power_cost(usr)) @@ -135,8 +129,7 @@ usr << "The hardsuit is not being worn." return - if((security_check_enabled && !src.allowed(wearer)) || control_overridden) - wearer << "Access denied." + if(!check_suit_access(usr)) return toggle_seals(wearer) From 0f2b0b79bdcff887084910265056450f20ad3fb4 Mon Sep 17 00:00:00 2001 From: Loganbacca Date: Wed, 26 Nov 2014 23:32:16 +1300 Subject: [PATCH 47/56] Initial rig ui pass - Narrowed UI window, we shouldn't need it this wide once I'm done - Started converting html template to divs for easier formatting --- code/modules/clothing/spacesuits/rig/rig.dm | 2 +- nano/templates/hardsuit.tmpl | 202 ++++++++++---------- 2 files changed, 103 insertions(+), 101 deletions(-) diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index 7fdffb00f29..2f6196f5586 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -442,7 +442,7 @@ ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) - ui = new(user, src, ui_key, ((src.loc != user) ? ai_interface_path : interface_path), interface_title, 750, 550) + ui = new(user, src, ui_key, ((src.loc != user) ? ai_interface_path : interface_path), interface_title, 500, 600) ui.set_initial_data(data) ui.open() ui.set_auto_update(1) diff --git a/nano/templates/hardsuit.tmpl b/nano/templates/hardsuit.tmpl index db07636eb70..e416afaaead 100644 --- a/nano/templates/hardsuit.tmpl +++ b/nano/templates/hardsuit.tmpl @@ -9,127 +9,129 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm {{if data.aicontrol && data.ai != 1}} -- HARDSUIT CONTROL OVERRIDDEN BY AI -- {{else}} - - - - - - - - - - - - - - - - - - - - -
- Power supply - +
+
+
+ Power supply +
+
{{:helper.displayBar(data.chargestatus, 0, 50, (data.chargestatus >= 35) ? 'good' : (data.chargestatus >= 15) ? 'average' : 'bad')}} {{:data.charge}}/{{:data.maxcharge}} -
- AI control: - - {{if data.aioverride}} - ENABLED - {{else}} - DISABLED - {{/if}} - - {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_ai_control' : 1}, null)}} -
- Suit status: - - {{if data.sealing == 1}} - SEALING - {{else}} - {{if data.seals == 1}} - OPEN + + +
+
+
+ AI control: +
+
+ {{if data.aioverride}} + ENABLED {{else}} - SEALED + DISABLED {{/if}} - {{/if}} -
- {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_seals' : 1}, null)}} -
- Cover status: - - {{if data.emagged || !data.securitycheck}} - ERROR - MAINTENANCE LOCK CONTROL OFFLINE - {{else}} - {{if data.coverlock}} - LOCKED + +
+ {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_ai_control' : 1}, null)}} +
+ +
+
+ Suit status: +
+
+ {{if data.sealing == 1}} + SEALING {{else}} - UNLOCKED + {{if data.seals == 1}} + OPEN + {{else}} + SEALED + {{/if}} {{/if}} - {{/if}} -
- {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_suit_lock' : 1}, null)}} -
+ +

+ {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_seals' : 1}, null)}} +
+ +
+
+ Cover status: +
+
+ {{if data.emagged || !data.securitycheck}} + ERROR - MAINTENANCE LOCK CONTROL OFFLINE + {{else}} + {{if data.coverlock}} + LOCKED + {{else}} + UNLOCKED + {{/if}} + {{/if}} +
+
+ {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_suit_lock' : 1}, null)}} +
+
+ +

Hardware

Suit pieces

- - - - - - - - - - - - - - - - - - - - - -
- Helmet: - - {{:data.helmet}}
-
+
+
+
+ Helmet: +
+
+ {{:data.helmet}} +
+
{{if data.sealing != 1}} {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_piece' : 'helmet'}, null)}}
{{/if}} -
- Gauntlets: - - {{:data.gauntlets}}
-
+ + +
+
+ Gauntlets: +
+
+ {{:data.gauntlets}} +
+
{{if data.sealing != 1}} {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_piece' : 'gauntlets'}, null)}}
{{/if}} -
- Boots: - - {{:data.boots}}
-
+ + +
+
+ Boots: +
+
+ {{:data.boots}} +
+
{{if data.sealing != 1}} {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_piece' : 'boots'}, null)}}
{{/if}} -
- Chestpiece: - - {{:data.chest}}
-
+ + +
+
+ Chestpiece: +
+
+ {{:data.chest}} +
+
{{if data.sealing != 1}} {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_piece' : 'chest'}, null)}}
{{/if}} -
+ + +

System modules

{{if data.seals == 1 || data.sealing == 1}} From 9e48b9706812dba525d0a2e05fbef15b9c8785a1 Mon Sep 17 00:00:00 2001 From: Loganbacca Date: Sun, 30 Nov 2014 23:16:58 +1300 Subject: [PATCH 48/56] Capitalization function - adds a NanoUI helper function which the first character in a string --- nano/js/nano_base_helpers.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nano/js/nano_base_helpers.js b/nano/js/nano_base_helpers.js index c9a190679a5..d5a019e2f85 100644 --- a/nano/js/nano_base_helpers.js +++ b/nano/js/nano_base_helpers.js @@ -83,6 +83,10 @@ NanoBaseHelpers = function () parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ","); return parts.join("."); }, + // Capitalize the first letter of a string. From http://stackoverflow.com/questions/1026069/capitalize-the-first-letter-of-string-in-javascript + capitalizeFirstLetter: function(string) { + return string.charAt(0).toUpperCase() + string.slice(1); + }, // Display a bar. Used to show health, capacity, etc. displayBar: function(value, rangeMin, rangeMax, styleClass, showText) { From acab8eb1cc0fbd360536bd592e981c9ab3e99cde Mon Sep 17 00:00:00 2001 From: Loganbacca Date: Sun, 30 Nov 2014 23:18:39 +1300 Subject: [PATCH 49/56] Second rig UI pass - Converted remaining code to class controlled divs - Added prototype modules layout --- nano/templates/hardsuit.tmpl | 169 +++++++++++++++++++---------------- 1 file changed, 91 insertions(+), 78 deletions(-) diff --git a/nano/templates/hardsuit.tmpl b/nano/templates/hardsuit.tmpl index e416afaaead..bdcffae21da 100644 --- a/nano/templates/hardsuit.tmpl +++ b/nano/templates/hardsuit.tmpl @@ -3,6 +3,23 @@ Title: Integrated Hardsuit Controller Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm --> + + {{if data.interfacelock || data.malf > 0}} -- HARDSUIT INTERFACE OFFLINE -- {{else}} @@ -10,7 +27,7 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm -- HARDSUIT CONTROL OVERRIDDEN BY AI -- {{else}}
-
+
Power supply
@@ -19,7 +36,7 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm
-
+
AI control:
@@ -34,7 +51,7 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_ai_control' : 1}, null)}}
-
+
Suit status:
@@ -53,7 +70,7 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_seals' : 1}, null)}}
-
+
Cover status:
@@ -79,101 +96,106 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm

Suit pieces

-
+
Helmet:
- {{:data.helmet}} -
-
- {{if data.sealing != 1}} - {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_piece' : 'helmet'}, null)}}
- {{/if}} + {{:helper.capitalizeFirstLetter(data.helmet)}}
+ {{if data.sealing != 1}} +
+ {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_piece' : 'helmet'}, null)}} +
+ {{/if}}
-
+
Gauntlets:
- {{:data.gauntlets}} -
-
- {{if data.sealing != 1}} - {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_piece' : 'gauntlets'}, null)}}
- {{/if}} + {{:helper.capitalizeFirstLetter(data.gauntlets)}}
+ {{if data.sealing != 1}} +
+ {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_piece' : 'gauntlets'}, null)}} +
+ {{/if}}
-
+
Boots:
- {{:data.boots}} -
-
- {{if data.sealing != 1}} - {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_piece' : 'boots'}, null)}}
- {{/if}} + {{:helper.capitalizeFirstLetter(data.boots)}}
+ {{if data.sealing != 1}} +
+ {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_piece' : 'boots'}, null)}} +
+ {{/if}}
-
+
Chestpiece:
- {{:data.chest}} -
-
- {{if data.sealing != 1}} - {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_piece' : 'chest'}, null)}}
- {{/if}} + {{:helper.capitalizeFirstLetter(data.chest)}}
+ {{if data.sealing != 1}} +
+ {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_piece' : 'chest'}, null)}} +
+ {{/if}}

System modules

{{if data.seals == 1 || data.sealing == 1}} -

HARDSUIT SYSTEMS OFFLINE.

+

HARDSUIT SYSTEMS OFFLINE

{{else}} + + + +

Selected primary system: {{if data.primarysystem}} - {{:data.primarysystem}} + {{:helper.capitalizeFirstLetter(data.primarysystem)}} {{else}} - None. + None {{/if}}

{{if data.modules}} - +
{{for data.modules}} -
- - - - - - - {{if value.charges}} - - - - - {{/if}} - - - + {{/if}} + + + {{/for}} -
-
- {{:value.name}} - {{if value.damage > 0}} - {{if value.damage == 1}} - (damaged) - {{else}} - (destroyed) - {{/if}} +
+
+
{{:helper.capitalizeFirstLetter(value.name)}}
+ {{if value.damage > 0}} + {{if value.damage == 1}} + (damaged) + {{else}} + (destroyed) {{/if}} - [E: {{:value.engagecost}} | A: {{:value.activecost}} | P: {{:value.passivecost}}] + {{/if}} +
+
+ Engage: {{:value.engagecost}}
+ Activate: {{:value.activecost}}
+ Passive: {{:value.passivecost}}
+
+
+ {{:value.desc}} +
-
-
{{:value.desc}}
-
+
{{if value.can_use == 1}} -
+
{{:helper.link(value.engagestring, 'circle-arrow-s', {'interact_module' : value.index, 'module_mode' : 'engage'}, null)}}
{{/if}} {{if value.can_select == 1}} -
+
{{if value.name == data.primarysystem}}
SELECTED
{{else}} @@ -182,7 +204,7 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm
{{/if}} {{if value.can_toggle == 1}} -
+
{{if value.is_active == 1}} {{:helper.link(value.deactivatestring, 'circle-arrow-s', {'interact_module' : value.index, 'module_mode' : 'deactivate'}, null)}} {{else}} @@ -191,30 +213,21 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm
{{/if}}
-
-
- Stored charges
-
- Selected: {{:value.chargetype}} -
-
+
+ {{if value.charges}} +
Stored charges
+ Selected: {{:helper.capitalizeFirstLetter(value.chargetype)}} {{for value.charges :itemValue:itemIndex}} - {{:helper.link(itemValue.caption, 'circle-arrow-s', {'interact_module' : value.index, 'module_mode' : 'select_charge_type', 'charge_type' : itemValue.index}, null)}}
+
+ {{:helper.link(helper.capitalizeFirstLetter(itemValue.caption), null, {'interact_module' : value.index, 'module_mode' : 'select_charge_type', 'charge_type' : itemValue.index}, null)}} +
{{/for}} -
-

+
{{else}} None. {{/if}} From 9fb58d8568ed5c78c2ffb7b5f0b7c21574d0d990 Mon Sep 17 00:00:00 2001 From: Loganbacca Date: Tue, 2 Dec 2014 00:11:32 +1300 Subject: [PATCH 50/56] Third rig UI pass - Resized the initial ui window again - Rewrote the modules section to a horizontal layout --- code/modules/clothing/spacesuits/rig/rig.dm | 2 +- nano/templates/hardsuit.tmpl | 102 +++++++++++--------- 2 files changed, 58 insertions(+), 46 deletions(-) diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index 2f6196f5586..0eec83e449e 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -442,7 +442,7 @@ ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) - ui = new(user, src, ui_key, ((src.loc != user) ? ai_interface_path : interface_path), interface_title, 500, 600) + ui = new(user, src, ui_key, ((src.loc != user) ? ai_interface_path : interface_path), interface_title, 480, 550) ui.set_initial_data(data) ui.open() ui.set_auto_update(1) diff --git a/nano/templates/hardsuit.tmpl b/nano/templates/hardsuit.tmpl index bdcffae21da..235512a7a32 100644 --- a/nano/templates/hardsuit.tmpl +++ b/nano/templates/hardsuit.tmpl @@ -16,7 +16,18 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm margin: 0 auto; } .info { - display: none; + width: 100px; + } + .floatLeft { + float: left; + margin-left: 5px; + } + .paddedBorderBlue { + border: 1px solid #517087; + padding: 2px; + } + .displayBar { + width: 200px; } @@ -34,6 +45,7 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm
{{:helper.displayBar(data.chargestatus, 0, 50, (data.chargestatus >= 35) ? 'good' : (data.chargestatus >= 15) ? 'average' : 'bad')}} {{:data.charge}}/{{:data.maxcharge}}
+
@@ -154,10 +166,6 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm {{if data.seals == 1 || data.sealing == 1}}

HARDSUIT SYSTEMS OFFLINE

{{else}} - - - -

Selected primary system: {{if data.primarysystem}} {{:helper.capitalizeFirstLetter(data.primarysystem)}} @@ -168,57 +176,61 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm {{if data.modules}}
{{for data.modules}} -
-
-
{{:helper.capitalizeFirstLetter(value.name)}}
- {{if value.damage > 0}} - {{if value.damage == 1}} - (damaged) - {{else}} - (destroyed) - {{/if}} - {{/if}} -
-
- Engage: {{:value.engagecost}}
- Activate: {{:value.activecost}}
- Passive: {{:value.passivecost}}
-
-
- {{:value.desc}} -
-
-
- {{if value.can_use == 1}} -
- {{:helper.link(value.engagestring, 'circle-arrow-s', {'interact_module' : value.index, 'module_mode' : 'engage'}, null)}} -
- {{/if}} - {{if value.can_select == 1}} -
- {{if value.name == data.primarysystem}} -
SELECTED
+
+
+
+
{{:helper.capitalizeFirstLetter(value.name)}}
+ {{if value.damage > 0}} +
+ {{if value.damage == 1}} + (damaged) {{else}} - {{:helper.link('Select', 'circle-arrow-s', {'interact_module' : value.index, 'module_mode' : 'select'}, null)}} + (destroyed) {{/if}}
{{/if}} - {{if value.can_toggle == 1}} -
- {{if value.is_active == 1}} - {{:helper.link(value.deactivatestring, 'circle-arrow-s', {'interact_module' : value.index, 'module_mode' : 'deactivate'}, null)}} - {{else}} - {{:helper.link(value.activatestring, 'circle-arrow-s', {'interact_module' : value.index, 'module_mode' : 'activate'}, null)}} +
+
+ Engage: {{:value.engagecost}}
+ Activate: {{:value.activecost}}
+ Passive: {{:value.passivecost}} +
+
+ {{:value.desc}} +
+
+ {{if value.can_use == 1}} +
+ {{:helper.link(value.engagestring, 'circle-arrow-s', {'interact_module' : value.index, 'module_mode' : 'engage'}, null)}} +
+ {{/if}} + {{if value.can_select == 1}} +
+ {{if value.name == data.primarysystem}} +
SELECTED
+ {{else}} + {{:helper.link('Select', 'circle-arrow-s', {'interact_module' : value.index, 'module_mode' : 'select'}, null)}} + {{/if}} +
+ {{/if}} + {{if value.can_toggle == 1}} +
+ {{if value.is_active == 1}} + {{:helper.link(value.deactivatestring, 'circle-arrow-s', {'interact_module' : value.index, 'module_mode' : 'deactivate'}, null)}} + {{else}} + {{:helper.link(value.activatestring, 'circle-arrow-s', {'interact_module' : value.index, 'module_mode' : 'activate'}, null)}} + {{/if}} +
{{/if}}
- {{/if}} +
-
+
{{if value.charges}}
Stored charges
Selected: {{:helper.capitalizeFirstLetter(value.chargetype)}} {{for value.charges :itemValue:itemIndex}} -
+
{{:helper.link(helper.capitalizeFirstLetter(itemValue.caption), null, {'interact_module' : value.index, 'module_mode' : 'select_charge_type', 'charge_type' : itemValue.index}, null)}}
{{/for}} From 3988b96459b29a35c5e9f4d266c7d981d28a5849 Mon Sep 17 00:00:00 2001 From: Loganbacca Date: Tue, 2 Dec 2014 22:17:35 +1300 Subject: [PATCH 51/56] Rig activate message fix Electrowarfare and power sink modules weren't displaying the correct activate string message. Fixed both. --- code/modules/clothing/spacesuits/rig/modules/computer.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/spacesuits/rig/modules/computer.dm b/code/modules/clothing/spacesuits/rig/modules/computer.dm index 457ad2ecd7e..7b7e2374d4c 100644 --- a/code/modules/clothing/spacesuits/rig/modules/computer.dm +++ b/code/modules/clothing/spacesuits/rig/modules/computer.dm @@ -291,7 +291,7 @@ toggleable = 1 usable = 0 - engage_string = "Enable Countermeasures" + activate_string = "Enable Countermeasures" deactivate_string = "Disable Countermeasures" interface_name = "electrowarfare system" @@ -322,7 +322,7 @@ activates_on_touch = 1 disruptive = 0 - engage_string = "Enable Power Sink" + activate_string = "Enable Power Sink" deactivate_string = "Disable Power Sink" interface_name = "niling d-sink" From b7d340cee4975fa911b1426f4eb1670e31df373c Mon Sep 17 00:00:00 2001 From: Loganbacca Date: Tue, 2 Dec 2014 22:22:11 +1300 Subject: [PATCH 52/56] Rig UI cleanup - Cleaned up html to use classes as much as possible - Removed and renamed a few classes - General code cleanup --- nano/templates/hardsuit.tmpl | 117 +++++++++++++++++++---------------- 1 file changed, 63 insertions(+), 54 deletions(-) diff --git a/nano/templates/hardsuit.tmpl b/nano/templates/hardsuit.tmpl index 235512a7a32..a8d3e59ac72 100644 --- a/nano/templates/hardsuit.tmpl +++ b/nano/templates/hardsuit.tmpl @@ -5,18 +5,11 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm {{if data.interfacelock || data.malf > 0}} - -- HARDSUIT INTERFACE OFFLINE -- +
-- HARDSUIT INTERFACE OFFLINE --
{{else}} {{if data.aicontrol && data.ai != 1}} - -- HARDSUIT CONTROL OVERRIDDEN BY AI -- +
-- HARDSUIT CONTROL OVERRIDDEN BY AI --
{{else}}
-
-
- Power supply +
+
+ Power supply
{{:helper.displayBar(data.chargestatus, 0, 50, (data.chargestatus >= 35) ? 'good' : (data.chargestatus >= 15) ? 'average' : 'bad')}} {{:data.charge}}/{{:data.maxcharge}}
-
-
-
- AI control: +
+
+ AI control:
{{if data.aioverride}} - ENABLED +
ENABLED
{{else}} - DISABLED +
DISABLED
{{/if}}
@@ -64,17 +73,17 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm
-
- Suit status: +
+ Suit status:
{{if data.sealing == 1}} - SEALING +
SEALING
{{else}} {{if data.seals == 1}} - OPEN +
OPEN
{{else}} - SEALED +
SEALED
{{/if}} {{/if}}
@@ -83,17 +92,17 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm
-
- Cover status: +
+ Cover status:
{{if data.emagged || !data.securitycheck}} - ERROR - MAINTENANCE LOCK CONTROL OFFLINE +
ERROR - MAINTENANCE LOCK CONTROL OFFLINE
{{else}} {{if data.coverlock}} - LOCKED +
LOCKED
{{else}} - UNLOCKED +
UNLOCKED
{{/if}} {{/if}}
@@ -109,21 +118,21 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm
-
- Helmet: +
+ Helmet:
{{:helper.capitalizeFirstLetter(data.helmet)}}
{{if data.sealing != 1}}
- {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_piece' : 'helmet'}, null)}} + {{:helper.link('Toggle', 'circle-arrow-s', {'toggle_piece' : 'helmet'}, null)}}
{{/if}}
-
- Gauntlets: +
+ Gauntlets:
{{:helper.capitalizeFirstLetter(data.gauntlets)}} @@ -135,8 +144,8 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm {{/if}}
-
- Boots: +
+ Boots:
{{:helper.capitalizeFirstLetter(data.boots)}} @@ -148,8 +157,8 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm {{/if}}
-
- Chestpiece: +
+ Chestpiece:
{{:helper.capitalizeFirstLetter(data.chest)}} @@ -166,39 +175,39 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm {{if data.seals == 1 || data.sealing == 1}}

HARDSUIT SYSTEMS OFFLINE

{{else}} -

Selected primary system: +

Selected primary system: {{if data.primarysystem}} {{:helper.capitalizeFirstLetter(data.primarysystem)}} {{else}} None {{/if}} -

+

{{if data.modules}}
{{for data.modules}}
-
+
{{:helper.capitalizeFirstLetter(value.name)}}
{{if value.damage > 0}}
{{if value.damage == 1}} - (damaged) + (
damaged
) {{else}} - (destroyed) + (
destroyed
) {{/if}}
{{/if}}
-
- Engage: {{:value.engagecost}}
- Activate: {{:value.activecost}}
+
+ Engage: {{:value.engagecost}} + Activate: {{:value.activecost}} Passive: {{:value.passivecost}}
-
+
{{:value.desc}}
-
+
{{if value.can_use == 1}}
{{:helper.link(value.engagestring, 'circle-arrow-s', {'interact_module' : value.index, 'module_mode' : 'engage'}, null)}} @@ -207,7 +216,7 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm {{if value.can_select == 1}}
{{if value.name == data.primarysystem}} -
SELECTED
+
SELECTED
{{else}} {{:helper.link('Select', 'circle-arrow-s', {'interact_module' : value.index, 'module_mode' : 'select'}, null)}} {{/if}} @@ -227,8 +236,8 @@ Used In File(s): /code/modules/clothing/spacesuits/rig/rig.dm
{{if value.charges}} -
Stored charges
- Selected: {{:helper.capitalizeFirstLetter(value.chargetype)}} +
Stored charges
+
Selected:
{{:helper.capitalizeFirstLetter(value.chargetype)}} {{for value.charges :itemValue:itemIndex}}
{{:helper.link(helper.capitalizeFirstLetter(itemValue.caption), null, {'interact_module' : value.index, 'module_mode' : 'select_charge_type', 'charge_type' : itemValue.index}, null)}} From 224b2f3899ebf7172beb46fe182b47ed78aa030b Mon Sep 17 00:00:00 2001 From: Loganbacca Date: Sun, 20 Jul 2014 19:28:15 +1200 Subject: [PATCH 53/56] Duct Tape First pass for adding duct tape. It can stick paper to things. It can patch up walls (crudely). Coder sprites! --- baystation12.dme | 1 + code/game/objects/items/weapons/tape.dm | 83 ++++++++++++++++++++++++ code/game/turfs/simulated/walls.dm | 21 +++++- code/modules/paperwork/paper.dm | 5 ++ icons/obj/bureaucracy.dmi | Bin 10562 -> 11702 bytes 5 files changed, 108 insertions(+), 2 deletions(-) create mode 100644 code/game/objects/items/weapons/tape.dm diff --git a/baystation12.dme b/baystation12.dme index d6dee8af999..a7176e3b98a 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -577,6 +577,7 @@ #include "code\game\objects\items\weapons\surgery_tools.dm" #include "code\game\objects\items\weapons\swords_axes_etc.dm" #include "code\game\objects\items\weapons\table_rack_parts.dm" +#include "code\game\objects\items\weapons\tape.dm" #include "code\game\objects\items\weapons\teleportation.dm" #include "code\game\objects\items\weapons\tools.dm" #include "code\game\objects\items\weapons\twohanded.dm" diff --git a/code/game/objects/items/weapons/tape.dm b/code/game/objects/items/weapons/tape.dm new file mode 100644 index 00000000000..b7d571f136a --- /dev/null +++ b/code/game/objects/items/weapons/tape.dm @@ -0,0 +1,83 @@ +/obj/item/weapon/tape_roll + name = "tape roll" + desc = "A roll of sticky tape. Possibly for taping ducks... or was that ducts?" + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "taperoll" + w_class = 1 + +/obj/item/weapon/tape_roll/attack_self(mob/user as mob) + user << "You remove a length of tape from [src]." + + var/obj/item/weapon/ducttape/tape = new() + user.put_in_hands(tape) + +/obj/item/weapon/tape_roll/proc/stick(var/obj/item/weapon/W, mob/user as mob) + if(!istype(W, /obj/item/weapon/paper)) + return + + user.drop_from_inventory(W) + var/obj/item/weapon/ducttape/tape = new(get_turf(src)) + tape.attach(W) + user.put_in_hands(tape) + +/obj/item/weapon/ducttape + name = "tape" + desc = "A piece of sticky tape." + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "tape" + w_class = 1 + layer = 4 + anchored = 1 //it's sticky, no you cant move it + + var/obj/item/weapon/stuck = null + +/obj/item/weapon/ducttape/New() + ..() + flags |= NOBLUDGEON + +/obj/item/weapon/ducttape/examine() + return stuck.examine() + +/obj/item/weapon/ducttape/proc/attach(var/obj/item/weapon/W) + stuck = W + W.forceMove(src) + icon_state = W.icon_state + "_taped" + name = W.name + " (taped)" + +/obj/item/weapon/ducttape/attack_self(mob/user as mob) + user << "You remove \the [initial(name)] from [stuck]." + + user.drop_from_inventory(src) + stuck.forceMove(get_turf(src)) + user.put_in_hands(stuck) + stuck = null + del(src) + +/obj/item/weapon/ducttape/afterattack(var/A, mob/user as mob, flag, params) + if(!in_range(user, A) || istype(A, /obj/machinery/door) || !stuck) + return + + var/turf/target_turf = get_turf(A) + var/turf/source_turf = get_turf(user) + + var/dir_offset = 0 + if(target_turf != source_turf) + dir_offset = get_dir(source_turf, target_turf) + + user.drop_from_inventory(src) + forceMove(source_turf) + + if(params) + var/list/mouse_control = params2list(params) + if(mouse_control["icon-x"]) + pixel_x = text2num(mouse_control["icon-x"]) - 16 + if(dir_offset & EAST) + pixel_x += 32 + else if(dir_offset & WEST) + pixel_x -= 32 + if(mouse_control["icon-y"]) + pixel_y = text2num(mouse_control["icon-y"]) - 16 + if(dir_offset & NORTH) + pixel_y += 32 + else if(dir_offset & SOUTH) + pixel_y -= 32 \ No newline at end of file diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index d8f91582b6c..ca990b342e3 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -10,6 +10,8 @@ var/damage_overlay var/global/damage_overlays[8] + + var/list/other_overlays = new() var/max_temperature = 1800 //K, walls will take damage if they're next to a fire hotter than this @@ -55,17 +57,19 @@ if(!damage) overlays.Cut() + overlays += other_overlays return var/overlay = round(damage / damage_cap * damage_overlays.len) + 1 if(overlay > damage_overlays.len) overlay = damage_overlays.len - +/* if(damage_overlay && overlay == damage_overlay) //No need to update. return - +*/ overlays.Cut() overlays += damage_overlays[overlay] + overlays += other_overlays damage_overlay = overlay return @@ -444,6 +448,19 @@ place_poster(W,user) return + else if(istype(W, /obj/item/weapon/tape_roll)) + if(damage) + user << "You patch up [src]." + var/image/I = image(icon = 'icons/obj/bureaucracy.dmi', icon_state = "tape") + I.transform = turn(I.transform, rand(0,360)) + I.pixel_x = rand(-6,6) + I.pixel_y = rand(-6,6) + other_overlays += I + take_damage(-min(10, damage)) + + else if(istype(W, /obj/item/weapon/ducttape)) + return + else return attack_hand(user) return diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 8a79226dab9..72f827f7edd 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -365,6 +365,11 @@ if(user.mind && (user.mind.assigned_role == "Clown")) clown = 1 + if(istype(P, /obj/item/weapon/tape_roll)) + var/obj/item/weapon/tape_roll/tape = P + tape.stick(src, user) + return + if(istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/photo)) if (istype(P, /obj/item/weapon/paper/carbon)) var/obj/item/weapon/paper/carbon/C = P diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index b44265089264032458e63e5724ef75bb8dee1384..775c097c29deec5874bdbb1a47c86aadbcdaf9ec 100644 GIT binary patch literal 11702 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 OQRP zJsDjTL)jrIfClt?q^K0k7_#7FnE%qbw`?k_rXZO=c_su0w)BB*Gylit6rD1E@AJR3 zV2TR^$_!&;V~_@?-69WUcsp-@vZX!~7)x{W3imHWB=`IK`)IV(U^5^A0lDbMfL4r1*q@*ddjcDGzBnT( z>)p>NMa{W)!@|Kq0ifsz1z1>E#C{Hjr+6z!kWY~b0z^vPOVTgPkv5PBL9rwU#M0!{ zw(^`CDk;1cpbX|J40kpU4i1KTyAlp{!5d48!>$AQO$Ht0Q*u?lFCHDoR*GODK7kX zs3&hP>`60TQr52*G71WHb2pch3Y0uNbHu2u8XOWd5*P{nrXq(k$umgB9E6o1nlL1=6Cq`=9Q^RT3WxFX+L5t15xZ`+Nu@B|F#`C z8;x2#Z+fdt28VK85(2KTkvn(Lohq#7*)IC`Ky1I@a%n=yq9mDxo3yOKz00ULwGZRs zH8AaXZwS8FoioAz)JFawLbW#q`LLv*6JhG=>7kL5lK!R4Ld>EC7afi7u>GlUF9=lv z)}YK54j%rO+(#64QZ56~tVbLcAn(&Os8tcW?_m}w-yXX18Z0w7V0TN2gHo!|t1TR> z8W@n-F4Y_IMY+ah?FEq$Z=MeqL`Hj3aWH#p*BJwObU~;*u#klXEzs9H^SzC^mcwN+ zB7f&5Q;*F%6VFswCQkJSp#<;!eeIWdixnFKg(*l7B`;Qty6uD@rYBH_qJSZBY{|yoKMC1Sf literal 10562 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 From 26d428e6594c3113f5e78120073c4cb88bf38a5a Mon Sep 17 00:00:00 2001 From: Loganbacca Date: Tue, 2 Dec 2014 23:17:04 +1300 Subject: [PATCH 54/56] Reverted wall repairing with tape --- code/game/turfs/simulated/walls.dm | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index ca990b342e3..d8f91582b6c 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -10,8 +10,6 @@ var/damage_overlay var/global/damage_overlays[8] - - var/list/other_overlays = new() var/max_temperature = 1800 //K, walls will take damage if they're next to a fire hotter than this @@ -57,19 +55,17 @@ if(!damage) overlays.Cut() - overlays += other_overlays return var/overlay = round(damage / damage_cap * damage_overlays.len) + 1 if(overlay > damage_overlays.len) overlay = damage_overlays.len -/* + if(damage_overlay && overlay == damage_overlay) //No need to update. return -*/ + overlays.Cut() overlays += damage_overlays[overlay] - overlays += other_overlays damage_overlay = overlay return @@ -448,19 +444,6 @@ place_poster(W,user) return - else if(istype(W, /obj/item/weapon/tape_roll)) - if(damage) - user << "You patch up [src]." - var/image/I = image(icon = 'icons/obj/bureaucracy.dmi', icon_state = "tape") - I.transform = turn(I.transform, rand(0,360)) - I.pixel_x = rand(-6,6) - I.pixel_y = rand(-6,6) - other_overlays += I - take_damage(-min(10, damage)) - - else if(istype(W, /obj/item/weapon/ducttape)) - return - else return attack_hand(user) return From 76d87e7c848cb4e4f9ec7e204c981a7b890d66d0 Mon Sep 17 00:00:00 2001 From: Loganbacca Date: Tue, 2 Dec 2014 23:45:33 +1300 Subject: [PATCH 55/56] Tape fixes - Shrunk tape roll sprite - Disabled tearing off individual strips of tape until they have a use - Fixed a runtime when removing tape with nothing stuck to it --- code/game/objects/items/weapons/tape.dm | 5 +++++ icons/obj/bureaucracy.dmi | Bin 11702 -> 11622 bytes 2 files changed, 5 insertions(+) diff --git a/code/game/objects/items/weapons/tape.dm b/code/game/objects/items/weapons/tape.dm index b7d571f136a..9bbd4c15fe2 100644 --- a/code/game/objects/items/weapons/tape.dm +++ b/code/game/objects/items/weapons/tape.dm @@ -5,11 +5,13 @@ icon_state = "taperoll" w_class = 1 +/* -- Disabled for now until it has a use -- /obj/item/weapon/tape_roll/attack_self(mob/user as mob) user << "You remove a length of tape from [src]." var/obj/item/weapon/ducttape/tape = new() user.put_in_hands(tape) +*/ /obj/item/weapon/tape_roll/proc/stick(var/obj/item/weapon/W, mob/user as mob) if(!istype(W, /obj/item/weapon/paper)) @@ -45,6 +47,9 @@ name = W.name + " (taped)" /obj/item/weapon/ducttape/attack_self(mob/user as mob) + if(!stuck) + return + user << "You remove \the [initial(name)] from [stuck]." user.drop_from_inventory(src) diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index 775c097c29deec5874bdbb1a47c86aadbcdaf9ec..2cef74e33a6cf679cadfaecd56c2fc9d333f75e7 100644 GIT binary patch delta 10715 zcmY*@Fz`RI5-Ew}=+Cif2)WFnA`3<9eYp~cmga&?ho-Ra z_J%FV%SHR7SFl8@8iFq3HzqlrbW$%mA?ST9 z0Sh{k5p?{;RJHZ`6UXG4U_cWcG6S6TXRTe*(RcRBv<4IJRa9veLUluM%RYOhQQKy- zt-{M&bsCis&WdMpXA*eL46LN+zO9Z>@GS^bZ=5ZmEm4R?#6JGjRlWZ}DCqoYCPCNo z-Fqd_*r2BD=K40*T}kp`08G{H0Q2%XpWZh%3hAF;9xUx9Ka}Zz6RS5g#odj1491lJ zfJMK*3Ryzj1RniuPXJE~tjEBpTU|{QKPgd0| zDPP~__?(;r4bot~&yV+h0HJam_(&7}_~2goBNg*+5PpcvCl37rpVd&(kp)J=L~dSs z4B)66lZ%eM0q1?<+>^cH;vM!6uNAlNPFON;*L&_0OnzHNCVyWNspPb4)UtjLcIL71 z8$C;+dfN0IqlY;2cEI7@1?+Z_b^HA1*~P)~)QXoA2Mtd#YKNy9Ps;YHQzy$6Y=L5ElJ#l<4Rx zTTxb@@+!Z~Rt+KNfF{?bC!c(8YWqAl|I={FjpqAf<5)c(n_I1?eGd|YPpjwOUM?(X z&6u?NH}zfIobPJSfTyD`p4aPE7?pgLz};l3Bu0{pePME!`j@MdRfr7nl!E6IF$4D> z&uQJjxX$>6gxg7WZ_5X+kd80n%uyIev${w_XztBLs0{+QX}OYwB(o)>j-wJnOFx3V zuh!jPW3mi-a;qxM=f3(U#PTqqfZnjaPyjqc8hC1stQD#|nz zq@`hU9{xi_L`0^)YV9Bi6ar6BQBfy$+}YUJI-zrBIi(u~Ry1?Yl6ElC7}TTY?q792 zC0r@56y%hZ!VN_o3ZPNt;V@Elc%Ku_dU}8BBTxCwW_E?alHDv1+VlEdyxaTvEj&{KXiR#v6S5HPm`UNOI=}@W zg^BGMLRM1Pa}`fLXcBFm>%<@Ap8w^7^j7-yt9qR+wYqjuv*(*Pgn$43Wop=0+*@c+ zOG*ZlnSjptE~z&g9gg*cTh3I>Nkx#Xu=Wgf6d62%`3C1)wC!eP&RBjuQQbn^FE%j- zH}UZ=&08AK3i&zp#SrLL5%!3 zN#pn|NxA5(po_24tV*UJ22f==L=cmF?^bQz_eAkDq0F#hjL|xX5#Ei8oFV+41&2n= zR*-7f!rt{_@2Bc5q_u?PWTyE{wN#hvvNDcv6M)ZpM13z{t6YsOc#1GFTM}#^#(k-$ zmu60jM1q1WJCdrDR)nj<`g@DI&MsJK@Q;V z`gHUf*Wt&HA5|6uI6u#Q7zER+j*e7slh@3(Q@D3OvZ`Cv8qxTByKqB&)Lm@+Ti3Se z`hU55r^U^?8}ZO0umXmLffu9lcqq2~C;o!ak|qn~UH?u$joyjCVo}MkG?Q@q zd)luRfni)<&!T=4LGzF zJVd1H+X;->&88#%U! ^xCO*XDfA=LZ}Z)YcaA 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 C3zfbA delta 10805 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 From c5833dfb9a7f7d4348154905344e673504189433 Mon Sep 17 00:00:00 2001 From: Loganbacca Date: Wed, 3 Dec 2014 00:02:47 +1300 Subject: [PATCH 56/56] Allow reading of taped paper via examine --- code/game/objects/items/weapons/tape.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/tape.dm b/code/game/objects/items/weapons/tape.dm index 9bbd4c15fe2..8177c746d70 100644 --- a/code/game/objects/items/weapons/tape.dm +++ b/code/game/objects/items/weapons/tape.dm @@ -37,8 +37,8 @@ ..() flags |= NOBLUDGEON -/obj/item/weapon/ducttape/examine() - return stuck.examine() +/obj/item/weapon/ducttape/examine(mob/user as mob) + return stuck.examine(user) /obj/item/weapon/ducttape/proc/attach(var/obj/item/weapon/W) stuck = W