diff --git a/baystation12.dme b/baystation12.dme
index c6bbb28d78d..a271554e66c 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -756,6 +756,7 @@
#include "code\modules\clothing\spacesuits\rig.dm"
#include "code\modules\clothing\spacesuits\syndi.dm"
#include "code\modules\clothing\spacesuits\void.dm"
+#include "code\modules\clothing\suits\alien.dm"
#include "code\modules\clothing\suits\armor.dm"
#include "code\modules\clothing\suits\bio.dm"
#include "code\modules\clothing\suits\jobs.dm"
diff --git a/code/WorkInProgress/Cib/MedicalSideEffects.dm b/code/WorkInProgress/Cib/MedicalSideEffects.dm
index ea828276837..e9dcb51e136 100644
--- a/code/WorkInProgress/Cib/MedicalSideEffects.dm
+++ b/code/WorkInProgress/Cib/MedicalSideEffects.dm
@@ -24,12 +24,11 @@
side_effects += M
/mob/living/carbon/human/proc/handle_medical_side_effects()
- if(src.reagents.has_reagent("bicaridine") || src.reagents.has_reagent("tricordrazine") || src.reagents.has_reagent("cryoxadone"))
+ if(src.reagents.has_reagent("cryoxadone"))
src.add_side_effect("Headache")
-
- if(src.reagents.has_reagent("kelotane") || src.reagents.has_reagent("dermaline"))
- src.add_side_effect("Bad Stomach")
+ /*if(src.reagents.has_reagent("kelotane") && prob(20) || src.reagents.has_reagent("dermaline"))
+ src.add_side_effect("Bad Stomach")*/
// One full cycle(in terms of strength) every 10 minutes
var/strength_percent = sin(life_tick / 2)
diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm
index e07e6687ac5..4c71c36f26e 100644
--- a/code/datums/datacore.dm
+++ b/code/datums/datacore.dm
@@ -118,7 +118,7 @@ proc/get_id_photo(var/mob/living/carbon/human/H)
switch(H.get_species())
if("Tajaran")
icobase = 'icons/mob/human_races/r_tajaran.dmi'
- if( "Soghun")
+ if("Unathi")
icobase = 'icons/mob/human_races/r_lizard.dmi'
if("Skrell")
icobase = 'icons/mob/human_races/r_skrell.dmi'
diff --git a/code/datums/organs/organ_external.dm b/code/datums/organs/organ_external.dm
index 74c28006266..a90389dc214 100644
--- a/code/datums/organs/organ_external.dm
+++ b/code/datums/organs/organ_external.dm
@@ -12,94 +12,129 @@
var/burn_dam = 0
var/max_damage = 0
var/max_size = 0
- var/tmp/list/obj/item/weapon/implant/implant
var/display_name
var/list/wounds = list()
var/number_wounds = 0 // cache the number of wounds, which is NOT wounds.len!
var/tmp/perma_injury = 0
- var/tmp/perma_dmg = 0
var/tmp/destspawn = 0 //Has it spawned the broken limb?
- var/tmp/amputated = 0 // Whether this has been cleanly amputated, thus causing no pain
+ var/tmp/amputated = 0 //Whether this has been cleanly amputated, thus causing no pain
var/min_broken_damage = 30
var/datum/organ/external/parent
var/list/datum/organ/external/children
var/damage_msg = "\red You feel an intense pain"
+ var/broken_description
var/status = 0
- var/broken_description
var/open = 0
var/stage = 0
+ var/obj/item/hidden = null
var/list/implants = list()
// INTERNAL germs inside the organ, this is BAD if it's greater 0
var/germ_level = 0
- // how often wounds should be updated, a higher number means less often
+ // how often wounds should be updated, a higher number means less often
var/wound_update_accuracy = 20 // update every 20 ticks(roughly every minute)
- New(var/datum/organ/external/P)
- if(P)
- parent = P
- if(!parent.children)
- parent.children = list()
- parent.children.Add(src)
- return ..()
+/datum/organ/external/New(var/datum/organ/external/P)
+ if(P)
+ parent = P
+ if(!parent.children)
+ parent.children = list()
+ parent.children.Add(src)
+ return ..()
- proc/take_damage(brute, burn, sharp, used_weapon = null, list/forbidden_limbs = list())
- if((brute <= 0) && (burn <= 0))
- return 0
- if(status & ORGAN_DESTROYED)
- return 0
- if(status & ORGAN_ROBOT)
- brute *= 0.66 //~2/3 damage for ROBOLIMBS
- burn *= 0.66 //~2/3 damage for ROBOLIMBS
+/datum/organ/external/proc/add_autopsy_data(var/used_weapon, var/damage)
+ var/datum/autopsy_data/W = autopsy_data[used_weapon]
+ if(!W)
+ W = new()
+ W.weapon = used_weapon
+ autopsy_data[used_weapon] = W
- //if(owner && !(status & ORGAN_ROBOT))
- // owner.pain(display_name, (brute+burn)*3, 1, burn > brute)
+ W.hits += 1
+ W.damage += damage
+ W.time_inflicted = world.time
- if(sharp)
- var/nux = brute * rand(10,15)
- if(config.limbs_can_break && brute_dam >= max_damage * config.organ_health_multiplier)
- if(prob(5 * brute))
- droplimb(1)
- return
+/****************************************************
+ DAMAGE PROCS
+****************************************************/
- else if(prob(nux))
+/datum/organ/external/proc/emp_act(severity)
+ if(!(status & ORGAN_ROBOT)) //meatbags do not care about EMP
+ return
+ var/probability = 30
+ var/damage = 15
+ if(severity == 2)
+ probability = 1
+ damage = 3
+ if(prob(probability))
+ droplimb(1)
+ else
+ take_damage(damage, 0, 1, used_weapon = "EMP")
+
+/datum/organ/external/proc/take_damage(brute, burn, sharp, used_weapon = null, list/forbidden_limbs = list())
+ if((brute <= 0) && (burn <= 0))
+ return 0
+
+ if(status & ORGAN_DESTROYED)
+ return 0
+ if(status & ORGAN_ROBOT)
+ brute *= 0.66 //~2/3 damage for ROBOLIMBS
+ burn *= 0.66 //~2/3 damage for ROBOLIMBS
+
+ //If limb took enough damage, try to cut or tear it off
+ if(config.limbs_can_break && brute_dam >= max_damage * config.organ_health_multiplier)
+ if( (sharp && prob(5 * brute)) || (brute > 20 && prob(2 * brute)) )
+ droplimb(1)
+ return
+
+ if(status & ORGAN_BROKEN && prob(40) && brute)
+ owner.emote("scream") //getting hit on broken hand hurts
+ if(used_weapon)
+ add_autopsy_data(used_weapon, brute + burn)
+
+ var/can_cut = (prob(brute*2) || sharp) && !(status & ORGAN_ROBOT)
+ // If the limbs can break, make sure we don't exceed the maximum damage a limb can take before breaking
+ if((brute_dam + burn_dam + brute + burn) < max_damage || !config.limbs_can_break)
+ if(brute)
+ if(can_cut)
createwound( CUT, brute )
- if(!(status & ORGAN_ROBOT))
- owner << "You feel something wet on your [display_name]"
+ else
+ createwound( BRUISE, brute )
+ if(burn)
+ createwound( BURN, burn )
+ else
+ //If we can't inflict the full amount of damage, spread the damage in other ways
+ //How much damage can we actually cause?
+ var/can_inflict = max_damage * config.organ_health_multiplier - (brute_dam + burn_dam)
+ if(can_inflict)
+ if (brute > 0)
+ //Inflict all burte damage we can
+ if(can_cut)
+ createwound( CUT, min(brute,can_inflict) )
+ else
+ createwound( BRUISE, min(brute,can_inflict) )
+ var/temp = can_inflict
+ //How much mroe damage can we inflict
+ can_inflict = max(0, can_inflict - brute)
+ //How much brute damage is left to inflict
+ brute = max(0, brute - temp)
- else if(brute > 20)
- if(config.limbs_can_break && brute_dam >= max_damage * config.organ_health_multiplier)
- if(prob(5 * brute))
- droplimb(1)
- return
-
- // If the limbs can break, make sure we don't exceed the maximum damage a limb can take before breaking
- if((brute_dam + burn_dam + brute + burn) < max_damage || !config.limbs_can_break)
- if(brute)
- if( (prob(brute*2) && !sharp) || sharp )
- createwound( CUT, brute )
- else if(!sharp)
- createwound( BRUISE, brute )
- if(burn)
- createwound( BURN, burn )
- else
- // If we can't inflict the full amount of damage, spread the damage in other ways
- var/can_inflict = max_damage * config.organ_health_multiplier - (brute_dam + burn_dam) //How much damage can we actually cause?
- if(can_inflict)
- if (brute > 0)
- brute = can_inflict
- createwound(BRUISE, brute)
- if (burn > 0)
- burn = can_inflict
- createwound(BURN, burn)
- else if(!(status & ORGAN_ROBOT))
- var/passed_dam = (brute + burn) - can_inflict //Getting how much overdamage we have.
+ if (burn > 0 && can_inflict)
+ //Inflict all burn damage we can
+ createwound(BURN, min(burn,can_inflict))
+ //How much burn damage is left to inflict
+ burn = max(0, burn - can_inflict)
+ //If there are still hurties to dispense
+ if (burn || brute)
+ if (status & ORGAN_ROBOT)
+ droplimb(1) //Robot limbs just kinda fail at full damage.
+ else
+ //List organs we can pass it to
var/list/datum/organ/external/possible_points = list()
if(parent)
possible_points += parent
@@ -107,483 +142,372 @@
possible_points += children
if(forbidden_limbs.len)
possible_points -= forbidden_limbs
- if(!possible_points.len)
- if(owner.stat != 2)
- message_admins("Oh god WHAT! [owner]'s [src] was unable to find an organ to pass overdamage to!")
- else
+ if(possible_points.len)
+ //And pass the pain around
var/datum/organ/external/target = pick(possible_points)
- if(brute)
- target.take_damage(passed_dam, 0, sharp, used_weapon, forbidden_limbs + src)
- else
- target.take_damage(0, passed_dam, sharp, used_weapon, forbidden_limbs + src)
- else
- droplimb(1) //Robot limbs just kinda fail at full damage.
+ target.take_damage(brute, burn, sharp, used_weapon, forbidden_limbs + src)
+ // sync the organ's damage with its wounds
+ src.update_damages()
+ owner.updatehealth()
- if(status & ORGAN_BROKEN)
- owner.emote("scream")
+ var/result = update_icon()
+ return result
- if(used_weapon) add_autopsy_data(used_weapon, brute + burn)
-
- owner.updatehealth()
-
- // sync the organ's damage with its wounds
- src.update_damages()
-
- var/result = update_icon()
- return result
-
-
-
- proc/heal_damage(brute, burn, internal = 0, robo_repair = 0)
- if(status & ORGAN_ROBOT && !robo_repair)
- return
-
- // heal damage on the individual wounds
- for(var/datum/wound/W in wounds)
- if(brute == 0 && burn == 0)
- break
-
- // heal brute damage
- if(W.damage_type == CUT || W.damage_type == BRUISE)
- brute = W.heal_damage(brute)
- else if(W.damage_type == BURN)
- burn = W.heal_damage(burn)
-
- // sync organ damage with wound damages
- update_damages()
-
- if(internal)
- status &= ~ORGAN_BROKEN
- perma_injury = 0
-
- // sync the organ's damage with its wounds
- src.update_damages()
-
- owner.updatehealth()
- var/result = update_icon()
- return result
-
- proc/update_damages()
- number_wounds = 0
- brute_dam = 0
- burn_dam = 0
- status &= ~ORGAN_BLEEDING
- for(var/datum/wound/W in wounds)
- if(W.damage_type == CUT || W.damage_type == BRUISE)
- brute_dam += W.damage
- else if(W.damage_type == BURN)
- burn_dam += W.damage
-
- if(!(status & ORGAN_ROBOT) && W.bleeding())
- status |= ORGAN_BLEEDING
-
- number_wounds += W.amount
-
- proc/update_wounds()
- for(var/datum/wound/W in wounds)
- // wounds can disappear after 10 minutes at the earliest
- if(W.damage == 0 && W.created + 10 * 10 * 60 <= world.time)
- wounds -= W
- // let the GC handle the deletion of the wound
- if(W.internal && !W.is_treated() && owner.bodytemperature >= 170)
- // internal wounds get worse over time
- W.open_wound(0.1 * wound_update_accuracy)
- owner.vessel.remove_reagent("blood",0.07 * W.damage * wound_update_accuracy)
- if(prob(1 * wound_update_accuracy))
- owner.custom_pain("You feel a stabbing pain in your [display_name]!",1)
-
- if(W.bandaged || W.salved)
- // slow healing
- var/amount = 0.2
- if(W.is_treated())
- amount += 10
- // amount of healing is spread over all the wounds
- W.heal_damage((wound_update_accuracy * amount * W.amount * config.organ_regeneration_multiplier) / (20*owner.number_wounds+1))
-
- if(W.germ_level > 100 && prob(10))
- owner.adjustToxLoss(1 * wound_update_accuracy)
- if(W.germ_level > 1000)
- owner.adjustToxLoss(1 * wound_update_accuracy)
-
- // Salving also helps against infection
- if(W.germ_level > 0 && W.salved && prob(2))
- W.germ_level = 0
-
- // sync the organ's damage with its wounds
- src.update_damages()
-
- proc/bandage()
- var/rval = 0
- src.status &= ~ORGAN_BLEEDING
- for(var/datum/wound/W in wounds)
- if(W.internal) continue
- rval |= !W.bandaged
- W.bandaged = 1
- return rval
-
- proc/clamp()
- var/rval = 0
- src.status &= ~ORGAN_BLEEDING
- for(var/datum/wound/W in wounds)
- if(W.internal) continue
- rval |= !W.clamped
- W.clamped = 1
- return rval
-
- proc/salve()
- var/rval = 0
- for(var/datum/wound/W in wounds)
- rval |= !W.salved
- W.salved = 1
- return rval
-
- proc/get_damage() //returns total damage
- return max(brute_dam + burn_dam - perma_injury, perma_injury) //could use health?
-
- proc/get_damage_brute()
- return max(brute_dam+perma_injury, perma_injury)
-
- proc/get_damage_fire()
- return burn_dam
-
- proc/is_infected()
- for(var/datum/wound/W in wounds)
- if(W.germ_level > 100)
- return 1
- return 0
-
- process()
- // process wounds, doing healing etc., only do this every 4 ticks to save processing power
- if(owner.life_tick % wound_update_accuracy == 0)
- update_wounds()
- if(status & ORGAN_DESTROYED)
- if(!destspawn && config.limbs_can_break)
- droplimb()
- return
- if(!(status & ORGAN_BROKEN))
- perma_dmg = 0
- if(parent)
- if(parent.status & ORGAN_DESTROYED)
- status |= ORGAN_DESTROYED
- owner.update_body(1)
- return
- if(config.bones_can_break && brute_dam > min_broken_damage * config.organ_health_multiplier && !(status & ORGAN_ROBOT))
- src.fracture()
- if(germ_level > 0)
- for(var/datum/wound/W in wounds) if(!W.bandaged && !W.salved)
- W.germ_level = max(W.germ_level, germ_level)
- update_icon()
+/datum/organ/external/proc/heal_damage(brute, burn, internal = 0, robo_repair = 0)
+ if(status & ORGAN_ROBOT && !robo_repair)
return
- proc/fracture()
- if(status & ORGAN_BROKEN)
+ //Heal damage on the individual wounds
+ for(var/datum/wound/W in wounds)
+ if(brute == 0 && burn == 0)
+ break
+
+ // heal brute damage
+ if(W.damage_type == CUT || W.damage_type == BRUISE)
+ brute = W.heal_damage(brute)
+ else if(W.damage_type == BURN)
+ burn = W.heal_damage(burn)
+
+ if(internal)
+ status &= ~ORGAN_BROKEN
+ perma_injury = 0
+
+ //Sync the organ's damage with its wounds
+ src.update_damages()
+ owner.updatehealth()
+
+ var/result = update_icon()
+ return result
+
+
+/datum/organ/external/proc/createwound(var/type = CUT, var/damage)
+ if(damage == 0) return
+
+ // first check whether we can widen an existing wound
+ if(wounds.len > 0 && prob(max(50+owner.number_wounds*10,100)))
+ if((type == CUT || type == BRUISE) && damage >= 5)
+ var/datum/wound/W = pick(wounds)
+ if(W.amount == 1 && W.started_healing())
+ W.open_wound(damage)
+ if(prob(25))
+ owner.visible_message("\red The wound on [owner.name]'s [display_name] widens with a nasty ripping voice.",\
+ "\red The wound on your [display_name] widens with a nasty ripping voice.",\
+ "You hear a nasty ripping noise, as if flesh is being torn apart.")
+ return
+
+ //Creating wound
+ var/datum/wound/W
+ var/size = min( max( 1, damage/10 ) , 6)
+ //Possible types of wound
+ var/list/size_names = list()
+ switch(type)
+ if(CUT)
+ size_names = typesof(/datum/wound/cut/) - /datum/wound/cut/
+ if(BRUISE)
+ size_names = typesof(/datum/wound/bruise/) - /datum/wound/bruise/
+ if(BURN)
+ size_names = typesof(/datum/wound/burn/) - /datum/wound/burn/
+
+ size = min(size,size_names.len)
+ var/wound_type = size_names[size]
+ W = new wound_type(damage)
+
+ //Possibly trigger an internal wound, too.
+ var/local_damage = brute_dam + burn_dam + damage
+ if(damage > 10 && type != BURN && local_damage > 20 && prob(damage) && !(status & ORGAN_ROBOT))
+ var/datum/wound/internal_bleeding/I = new (15)
+ wounds += I
+ owner.custom_pain("You feel something rip in your [display_name]!", 1)
+
+ //Check whether we can add the wound to an existing wound
+ for(var/datum/wound/other in wounds)
+ if(other.desc == W.desc)
+ // okay, add it!
+ other.damage += W.damage
+ other.amount += 1
+ W = null // to signify that the wound was added
+ break
+ if(W)
+ wounds += W
+
+/****************************************************
+ PROCESSING & UPDATING
+****************************************************/
+
+/datum/organ/external/process()
+ // process wounds, doing healing etc., only do this every 4 ticks to save processing power
+ if(owner.life_tick % wound_update_accuracy == 0)
+ update_wounds()
+ if(status & ORGAN_DESTROYED)
+ if(!destspawn && config.limbs_can_break)
+ droplimb()
+ return
+ if(!(status & ORGAN_BROKEN))
+ perma_injury = 0
+ if(parent)
+ if(parent.status & ORGAN_DESTROYED)
+ status |= ORGAN_DESTROYED
+ owner.update_body(1)
return
- owner.visible_message("\red You hear a loud cracking sound coming from \the [owner].","\red Something feels like it shattered in your [display_name]!","You hear a sickening crack.")
- owner.emote("scream")
- status |= ORGAN_BROKEN
- broken_description = pick("broken","fracture","hairline fracture")
- perma_injury = brute_dam
+ if(config.bones_can_break && brute_dam > min_broken_damage * config.organ_health_multiplier && !(status & ORGAN_ROBOT))
+ src.fracture()
+ if(germ_level > 0)
+ for(var/datum/wound/W in wounds) if(!W.bandaged && !W.salved)
+ W.germ_level = max(W.germ_level, germ_level)
+ update_icon()
+ return
-// new damage icon system
-// returns just the brute/burn damage code
- proc/damage_state_text()
- if(status & ORGAN_DESTROYED)
- return "--"
+//Updating wounds. Handles wound natural healing, internal bleedings and infections
+/datum/organ/external/proc/update_wounds()
+ for(var/datum/wound/W in wounds)
+ // wounds can disappear after 10 minutes at the earliest
+ if(W.damage == 0 && W.created + 10 * 10 * 60 <= world.time)
+ wounds -= W
+ // let the GC handle the deletion of the wound
- var/tburn = 0
- var/tbrute = 0
+ // Internal wounds get worse over time. Low temperatures (cryo) stop them.
+ if(W.internal && !W.is_treated() && owner.bodytemperature >= 170)
+ W.open_wound(0.1 * wound_update_accuracy)
+ owner.vessel.remove_reagent("blood",0.07 * W.damage * wound_update_accuracy)
+ if(prob(1 * wound_update_accuracy))
+ owner.custom_pain("You feel a stabbing pain in your [display_name]!",1)
- if(burn_dam ==0)
- tburn =0
- else if (burn_dam < (max_damage * 0.25 / 2))
- tburn = 1
- else if (burn_dam < (max_damage * 0.75 / 2))
- tburn = 2
- else
- tburn = 3
+ if(W.bandaged || W.salved)
+ // slow healing
+ var/amount = 0.2
+ if(W.is_treated())
+ amount += 10
+ // amount of healing is spread over all the wounds
+ W.heal_damage((wound_update_accuracy * amount * W.amount * config.organ_regeneration_multiplier) / (20*owner.number_wounds+1))
- if (brute_dam == 0)
- tbrute = 0
- else if (brute_dam < (max_damage * 0.25 / 2))
- tbrute = 1
- else if (brute_dam < (max_damage * 0.75 / 2))
- tbrute = 2
- else
- tbrute = 3
- return "[tbrute][tburn]"
+ if(W.germ_level > 100 && prob(10))
+ owner.adjustToxLoss(1 * wound_update_accuracy)
+ if(W.germ_level > 1000)
+ owner.adjustToxLoss(1 * wound_update_accuracy)
+
+ // Salving also helps against infection
+ if(W.germ_level > 0 && W.salved && prob(2))
+ W.germ_level = 0
+
+ // sync the organ's damage with its wounds
+ src.update_damages()
+
+//Updates brute_damn and burn_damn from wound damages. Updates BLEEDING status.
+/datum/organ/external/proc/update_damages()
+ number_wounds = 0
+ brute_dam = 0
+ burn_dam = 0
+ status &= ~ORGAN_BLEEDING
+ for(var/datum/wound/W in wounds)
+ if(W.damage_type == CUT || W.damage_type == BRUISE)
+ brute_dam += W.damage
+ else if(W.damage_type == BURN)
+ burn_dam += W.damage
+
+ if(!(status & ORGAN_ROBOT) && W.bleeding())
+ status |= ORGAN_BLEEDING
+
+ number_wounds += W.amount
// new damage icon system
// adjusted to set damage_state to brute/burn code only (without r_name0 as before)
- proc/update_icon()
- var/n_is = damage_state_text()
- if (n_is != damage_state)
- damage_state = n_is
- owner.update_body(1)
- return 1
- return 0
+/datum/organ/external/proc/update_icon()
+ var/n_is = damage_state_text()
+ if (n_is != damage_state)
+ damage_state = n_is
+ owner.update_body(1)
+ return 1
+ return 0
- proc/setAmputatedTree()
- for(var/datum/organ/external/O in children)
- O.amputated=amputated
- O.setAmputatedTree()
+// new damage icon system
+// returns just the brute/burn damage code
+/datum/organ/external/proc/damage_state_text()
+ if(status & ORGAN_DESTROYED)
+ return "--"
- proc/droplimb(var/override = 0,var/no_explode = 0)
- if(destspawn) return
- if(override)
- status |= ORGAN_DESTROYED
- if(status & ORGAN_DESTROYED)
- if(body_part == UPPER_TORSO)
- return
+ var/tburn = 0
+ var/tbrute = 0
- if(status & ORGAN_SPLINTED)
- status &= ~ORGAN_SPLINTED
- if(implant)
- for(var/implants in implant)
- del(implants)
- //owner.unlock_medal("Lost something?", 0, "Lose a limb.", "easy")
+ if(burn_dam ==0)
+ tburn =0
+ else if (burn_dam < (max_damage * 0.25 / 2))
+ tburn = 1
+ else if (burn_dam < (max_damage * 0.75 / 2))
+ tburn = 2
+ else
+ tburn = 3
- // If any organs are attached to this, destroy them
- for(var/datum/organ/external/O in owner.organs)
- if(O.parent == src)
- O.droplimb(1)
+ if (brute_dam == 0)
+ tbrute = 0
+ else if (brute_dam < (max_damage * 0.25 / 2))
+ tbrute = 1
+ else if (brute_dam < (max_damage * 0.75 / 2))
+ tbrute = 2
+ else
+ tbrute = 3
+ return "[tbrute][tburn]"
- var/obj/item/weapon/organ/H
- switch(body_part)
-// if(UPPER_TORSO)
-// owner.gib()
- if(LOWER_TORSO)
- owner << "\red You are now sterile."
- if(HEAD)
- H = new /obj/item/weapon/organ/head(owner.loc, owner)
- if(ishuman(owner))
- if(owner.gender == FEMALE)
- H.icon_state = "head_f"
- H.overlays += owner.generate_head_icon()
- H:transfer_identity(owner)
- H.pixel_x = -10
- H.pixel_y = 6
- H.name = "[owner.real_name]'s head"
+/****************************************************
+ DISMEMBERMENT
+****************************************************/
- owner.u_equip(owner.glasses)
- owner.u_equip(owner.head)
- owner.u_equip(owner.ears)
- owner.u_equip(owner.wear_mask)
+//Recursive setting of all child organs to amputated
+/datum/organ/external/proc/setAmputatedTree()
+ for(var/datum/organ/external/O in children)
+ O.amputated=amputated
+ O.setAmputatedTree()
- owner.regenerate_icons()
+//Handles dismemberment
+/datum/organ/external/proc/droplimb(var/override = 0,var/no_explode = 0)
+ if(destspawn) return
+ if(override)
+ status |= ORGAN_DESTROYED
+ if(status & ORGAN_DESTROYED)
+ if(body_part == UPPER_TORSO)
+ return
- owner.death()
- if(ARM_RIGHT)
- H = new /obj/item/weapon/organ/r_arm(owner.loc, owner)
- if(ismonkey(owner))
- H.icon_state = "r_arm_l"
- if(ARM_LEFT)
- H = new /obj/item/weapon/organ/l_arm(owner.loc, owner)
- if(ismonkey(owner))
- H.icon_state = "l_arm_l"
- if(LEG_RIGHT)
- H = new /obj/item/weapon/organ/r_leg(owner.loc, owner)
- if(ismonkey(owner))
- H.icon_state = "r_leg_l"
- if(LEG_LEFT)
- H = new /obj/item/weapon/organ/l_leg(owner.loc, owner)
- if(ismonkey(owner))
- H.icon_state = "l_leg_l"
- if(HAND_RIGHT)
- H = new /obj/item/weapon/organ/r_hand(owner.loc, owner)
- if(ismonkey(owner))
- H.icon_state = "r_hand_l"
- owner.u_equip(owner.gloves)
- if(HAND_LEFT)
- H = new /obj/item/weapon/organ/l_hand(owner.loc, owner)
- if(ismonkey(owner))
- H.icon_state = "l_hand_l"
- owner.u_equip(owner.gloves)
- if(FOOT_RIGHT)
- H = new /obj/item/weapon/organ/r_foot/(owner.loc, owner)
- if(ismonkey(owner))
- H.icon_state = "r_foot_l"
- owner.u_equip(owner.shoes)
- if(FOOT_LEFT)
- H = new /obj/item/weapon/organ/l_foot(owner.loc, owner)
- if(ismonkey(owner))
- H.icon_state = "l_foot_l"
- owner.u_equip(owner.shoes)
- if(H)
- if(ismonkey(owner))
- H.icon = 'monkey.dmi'
- else if(ishuman(owner) && owner.dna)
- var/icon/I
- switch(owner.dna.mutantrace)
- if("tajaran")
- I = new('icons/mob/human_races/r_tajaran.dmi')
- if("lizard")
- I = new('icons/mob/human_races/r_lizard.dmi')
- if("skrell")
- I = new('icons/mob/human_races/r_skrell.dmi')
- else
- I = new('icons/mob/human_races/r_human.dmi')
- if(I)
- H.icon = I.MakeLying()
+ src.status &= ~ORGAN_BROKEN
+ src.status &= ~ORGAN_BLEEDING
+ src.status &= ~ORGAN_SPLINTED
+ for(var/implant in implants)
+ del(implant)
+
+ // If any organs are attached to this, destroy them
+ for(var/datum/organ/external/O in owner.organs)
+ if(O.parent == src)
+ O.droplimb(1)
+
+ var/obj/organ //Dropped limb object
+ switch(body_part)
+ if(LOWER_TORSO)
+ owner << "\red You are now sterile."
+ if(HEAD)
+ organ= new /obj/item/weapon/organ/head(owner.loc, owner)
+ owner.u_equip(owner.glasses)
+ owner.u_equip(owner.head)
+ owner.u_equip(owner.ears)
+ owner.u_equip(owner.wear_mask)
+ if(ARM_RIGHT)
+ if(status & ORGAN_ROBOT)
+ organ = new /obj/item/robot_parts/r_arm(owner.loc)
else
- H.icon_state = initial(H.icon_state)+"_l"
-
- if(status & ORGAN_ROBOT)
- del H
- switch(body_part)
- if(LEG_RIGHT)
- H = new /obj/item/robot_parts/r_leg(owner.loc)
- if(LEG_LEFT)
- H = new /obj/item/robot_parts/l_leg(owner.loc)
- if(ARM_RIGHT)
- H = new /obj/item/robot_parts/r_arm(owner.loc)
- if(ARM_LEFT)
- H = new /obj/item/robot_parts/l_arm(owner.loc)
-
- if(H)
- var/lol = pick(cardinal)
- step(H,lol)
-
+ organ= new /obj/item/weapon/organ/r_arm(owner.loc, owner)
+ if(ARM_LEFT)
+ if(status & ORGAN_ROBOT)
+ organ= new /obj/item/robot_parts/l_arm(owner.loc)
+ else
+ organ= new /obj/item/weapon/organ/l_arm(owner.loc, owner)
+ if(LEG_RIGHT)
+ if(status & ORGAN_ROBOT)
+ organ = new /obj/item/robot_parts/l_leg(owner.loc)
+ else
+ organ= new /obj/item/weapon/organ/r_leg(owner.loc, owner)
+ if(LEG_LEFT)
+ if(status & ORGAN_ROBOT)
+ organ = new /obj/item/robot_parts/r_leg(owner.loc)
+ else
+ organ= new /obj/item/weapon/organ/l_leg(owner.loc, owner)
+ if(HAND_RIGHT)
+ organ= new /obj/item/weapon/organ/r_hand(owner.loc, owner)
+ owner.u_equip(owner.gloves)
+ if(HAND_LEFT)
+ organ= new /obj/item/weapon/organ/l_hand(owner.loc, owner)
+ owner.u_equip(owner.gloves)
+ if(FOOT_RIGHT)
+ organ= new /obj/item/weapon/organ/r_foot/(owner.loc, owner)
+ owner.u_equip(owner.shoes)
+ if(FOOT_LEFT)
+ organ = new /obj/item/weapon/organ/l_foot(owner.loc, owner)
+ owner.u_equip(owner.shoes)
+ if(organ)
destspawn = 1
- if(status & ORGAN_ROBOT)
+ //Robotic limbs explode until specified otherwise
+ if(status & ORGAN_ROBOT && !no_explode)
owner.visible_message("\red \The [owner]'s [display_name] explodes violently!",\
"\red Your [display_name] explodes!",\
"You hear an explosion followed by a scream!")
- if(!no_explode)
- explosion(get_turf(owner),-1,-1,2,3)
- var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
- spark_system.set_up(5, 0, owner)
- spark_system.attach(owner)
- spark_system.start()
- spawn(10)
- del(spark_system)
+ explosion(get_turf(owner),-1,-1,2,3)
+ var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
+ spark_system.set_up(5, 0, owner)
+ spark_system.attach(owner)
+ spark_system.start()
+ spawn(10)
+ del(spark_system)
else
owner.visible_message("\red [owner.name]'s [display_name] flies off in an arc.",\
"Your [display_name] goes flying off!",\
"You hear a terrible sound of ripping tendons and flesh.")
- // force the icon to rebuild
+ //Throw organs around
+ var/lol = pick(cardinal)
+ step(organ,lol)
+
owner.regenerate_icons()
- proc/createwound(var/type = CUT, var/damage)
- if(hasorgans(owner))
- var/wound_type
- var/size = min( max( 1, damage/10 ) , 6)
- // first check whether we can widen an existing wound
- if(wounds.len > 0 && prob(max(50+owner.number_wounds*10,100)))
- if((type == CUT || type == BRUISE) && damage >= 5)
- var/datum/wound/W = pick(wounds)
- if(W.amount == 1 && W.started_healing())
- W.open_wound(damage)
- if(prob(25))
- owner.visible_message("\red The wound on [owner.name]'s [display_name] widens with a nasty ripping voice.",\
- "\red The wound on your [display_name] widens with a nasty ripping voice.",\
- "You hear a nasty ripping noise, as if flesh is being torn apart.")
+/****************************************************
+ HELPERS
+****************************************************/
- return
+/datum/organ/external/proc/bandage()
+ var/rval = 0
+ src.status &= ~ORGAN_BLEEDING
+ for(var/datum/wound/W in wounds)
+ if(W.internal) continue
+ rval |= !W.bandaged
+ W.bandaged = 1
+ return rval
- if(damage == 0) return
+/datum/organ/external/proc/clamp()
+ var/rval = 0
+ src.status &= ~ORGAN_BLEEDING
+ for(var/datum/wound/W in wounds)
+ if(W.internal) continue
+ rval |= !W.clamped
+ W.clamped = 1
+ return rval
- // the wound we will create
- var/datum/wound/W
+/datum/organ/external/proc/salve()
+ var/rval = 0
+ for(var/datum/wound/W in wounds)
+ rval |= !W.salved
+ W.salved = 1
+ return rval
- switch(type)
- if(CUT)
- if(!(status & ORGAN_ROBOT))
- src.status |= ORGAN_BLEEDING
- var/list/size_names = list(/datum/wound/cut, /datum/wound/deep_cut, /datum/wound/flesh_wound, /datum/wound/gaping_wound, /datum/wound/big_gaping_wound, /datum/wound/massive_wound)
- wound_type = size_names[size]
+/datum/organ/external/proc/fracture()
+ if(status & ORGAN_BROKEN)
+ return
+ owner.visible_message("\red You hear a loud cracking sound coming from \the [owner].","\red Something feels like it shattered in your [display_name]!","You hear a sickening crack.")
+ owner.emote("scream")
+ status |= ORGAN_BROKEN
+ broken_description = pick("broken","fracture","hairline fracture")
+ perma_injury = brute_dam
- W = new wound_type(damage)
+/datum/organ/external/proc/robotize()
+ src.status &= ~ORGAN_BROKEN
+ src.status &= ~ORGAN_BLEEDING
+ src.status &= ~ORGAN_SPLINTED
+ src.status &= ~ORGAN_ATTACHABLE
+ src.status &= ~ORGAN_DESTROYED
+ src.status |= ORGAN_ROBOT
+ for (var/datum/organ/external/T in children)
+ if(T)
+ T.robotize()
- if(BRUISE)
- var/list/size_names = list(/datum/wound/bruise/tiny_bruise, /datum/wound/bruise/small_bruise, /datum/wound/bruise/moderate_bruise, /datum/wound/bruise/large_bruise, /datum/wound/bruise/huge_bruise, /datum/wound/bruise/monumental_bruise)
- wound_type = size_names[size]
+/datum/organ/external/proc/get_damage() //returns total damage
+ return max(brute_dam + burn_dam - perma_injury, perma_injury) //could use health?
- W = new wound_type(damage)
- if(BURN)
- var/list/size_names = list(/datum/wound/moderate_burn, /datum/wound/large_burn, /datum/wound/severe_burn, /datum/wound/deep_burn, /datum/wound/carbonised_area, /datum/wound/carbonised_area)
- wound_type = size_names[size]
+/datum/organ/external/proc/is_infected()
+ for(var/datum/wound/W in wounds)
+ if(W.germ_level > 100)
+ return 1
+ return 0
- W = new wound_type(damage)
-
- // Possibly trigger an internal wound, too.
- var/local_damage = brute_dam + burn_dam + damage
- if(damage > 10 && type != BURN && local_damage > 20 && prob(damage) && !(status & ORGAN_ROBOT))
- var/datum/wound/internal_bleeding/I = new (15)
- wounds += I
- owner.custom_pain("You feel something rip in your [display_name]!", 1)
-
- // check whether we can add the wound to an existing wound
- for(var/datum/wound/other in wounds)
- if(other.desc == W.desc)
- // okay, add it!
- other.damage += W.damage
- other.amount += 1
- W = null // to signify that the wound was added
- break
-
- // if we couldn't add the wound to another wound, ignore
- if(W)
- wounds += W
-
- proc/emp_act(severity)
- if(!(status & ORGAN_ROBOT))
- return
- var/probability = 30
- var/damage = 15
- if(severity == 2)
- probability = 1
- damage = 3
- if(prob(probability))
- droplimb(1)
- else
- take_damage(damage, 0, 1, used_weapon = "EMP")
-
- proc/getDisplayName()
- switch(name)
- if("l_leg")
- return "left leg"
- if("r_leg")
- return "right leg"
- if("l_arm")
- return "left arm"
- if("r_arm")
- return "right arm"
- if("l_foot")
- return "left foot"
- if("r_foot")
- return "right foot"
- if("l_hand")
- return "left hand"
- if("r_hand")
- return "right hand"
- else
- return name
-
- proc/robotize()
- src.status &= ~ORGAN_BROKEN
- src.status &= ~ORGAN_BLEEDING
- src.status &= ~ORGAN_SPLINTED
- src.status &= ~ORGAN_ATTACHABLE
- src.status &= ~ORGAN_DESTROYED
- src.status |= ORGAN_ROBOT
- for (var/datum/organ/external/T in children)
- if(T)
- T.robotize()
-
- proc/add_autopsy_data(var/used_weapon, var/damage)
- var/datum/autopsy_data/W = autopsy_data[used_weapon]
- if(!W)
- W = new()
- W.weapon = used_weapon
- autopsy_data[used_weapon] = W
-
- W.hits += 1
- W.damage += damage
- W.time_inflicted = world.time
+/****************************************************
+ ORGAN DEFINES
+****************************************************/
/datum/organ/external/chest
name = "chest"
@@ -602,37 +526,6 @@
min_broken_damage = 70
body_part = LOWER_TORSO
-/datum/organ/external/head
- name = "head"
- icon_name = "head"
- display_name = "head"
- max_damage = 75
- min_broken_damage = 40
- body_part = HEAD
- var/disfigured = 0
-
- take_damage(brute, burn, sharp, used_weapon = null, list/forbidden_limbs = list())
- ..(brute, burn, sharp, used_weapon, forbidden_limbs)
- if (!disfigured)
- if (brute_dam > 40)
- if (prob(50))
- disfigure("brute")
- if (burn_dam > 40)
- disfigure("burn")
-
- proc/disfigure(var/type = "brute")
- if (disfigured)
- return
- if(type == "brute")
- owner.visible_message("\red You hear a sickening cracking sound coming from \the [owner]'s face.", \
- "\red Your face becomes unrecognizible mangled mess!", \
- "\red You hear a sickening crack.")
- else
- owner.visible_message("\red [owner]'s face melts away, turning into mangled mess!", \
- "\red Your face melts off!", \
- "\red You hear a sickening sizzle.")
- disfigured = 1
-
/datum/organ/external/l_arm
name = "l_arm"
display_name = "left arm"
@@ -701,6 +594,37 @@
min_broken_damage = 15
body_part = HAND_LEFT
+/datum/organ/external/head
+ name = "head"
+ icon_name = "head"
+ display_name = "head"
+ max_damage = 75
+ min_broken_damage = 40
+ body_part = HEAD
+ var/disfigured = 0
+
+ take_damage(brute, burn, sharp, used_weapon = null, list/forbidden_limbs = list())
+ ..(brute, burn, sharp, used_weapon, forbidden_limbs)
+ if (!disfigured)
+ if (brute_dam > 40)
+ if (prob(50))
+ disfigure("brute")
+ if (burn_dam > 40)
+ disfigure("burn")
+
+ proc/disfigure(var/type = "brute")
+ if (disfigured)
+ return
+ if(type == "brute")
+ owner.visible_message("\red You hear a sickening cracking sound coming from \the [owner]'s face.", \
+ "\red Your face becomes unrecognizible mangled mess!", \
+ "\red You hear a sickening crack.")
+ else
+ owner.visible_message("\red [owner]'s face melts away, turning into mangled mess!", \
+ "\red Your face melts off!", \
+ "\red You hear a sickening sizzle.")
+ disfigured = 1
+
/****************************************************
EXTERNAL ORGAN ITEMS
****************************************************/
@@ -708,18 +632,6 @@
obj/item/weapon/organ
icon = 'icons/mob/human_races/r_human.dmi'
-/*
-//Damage will not exceed max_damage using this proc
-//Cannot apply negative damage
-/datum/organ/external/proc/take_damage(brute, burn)
- if(owner && (owner.status_flags & GODMODE)) return 0 //godmode
- brute = max(brute,0)
- burn = max(burn,0)
-
- var/can_inflict = max_damage - (brute_dam + burn_dam)
- if(!can_inflict) return 0
-*/
-
obj/item/weapon/organ/New(loc, mob/living/carbon/human/H)
..(loc)
if(!istype(H))
@@ -729,25 +641,82 @@ obj/item/weapon/organ/New(loc, mob/living/carbon/human/H)
blood_DNA = list()
blood_DNA[H.dna.unique_enzymes] = H.dna.b_type
+ //Forming icon for the limb
+
+ //Setting base icon for this mob's race
+ if(ishuman(H) && H.dna)
+ var/icon/base
+ switch(H.dna.mutantrace)
+ if("tajaran")
+ base = new('icons/mob/human_races/r_tajaran.dmi')
+ if("lizard")
+ base = new('icons/mob/human_races/r_lizard.dmi')
+ if("skrell")
+ base = new('icons/mob/human_races/r_skrell.dmi')
+ else
+ base = new('icons/mob/human_races/r_human.dmi')
+ if(base)
+ icon = base.MakeLying()
+ else
+ icon_state = initial(icon_state)+"_l"
+
var/icon/I = new /icon(icon, icon_state)
+ //Changing limb's skin tone to match owner
if (H.s_tone >= 0)
I.Blend(rgb(H.s_tone, H.s_tone, H.s_tone), ICON_ADD)
else
I.Blend(rgb(-H.s_tone, -H.s_tone, -H.s_tone), ICON_SUBTRACT)
icon = I
+
+obj/item/weapon/organ/l_arm
+ name = "left arm"
+ icon_state = "l_arm"
+obj/item/weapon/organ/l_foot
+ name = "left foot"
+ icon_state = "l_foot"
+obj/item/weapon/organ/l_hand
+ name = "left hand"
+ icon_state = "l_hand"
+obj/item/weapon/organ/l_leg
+ name = "left leg"
+ icon_state = "l_leg"
+obj/item/weapon/organ/r_arm
+ name = "right arm"
+ icon_state = "r_arm"
+obj/item/weapon/organ/r_foot
+ name = "right foot"
+ icon_state = "r_foot"
+obj/item/weapon/organ/r_hand
+ name = "right hand"
+ icon_state = "r_hand"
+obj/item/weapon/organ/r_leg
+ name = "right leg"
+ icon_state = "r_leg"
obj/item/weapon/organ/head
name = "head"
icon_state = "head_m"
var/mob/living/carbon/brain/brainmob
var/brain_op_stage = 0
-obj/item/weapon/organ/head/New()
+obj/item/weapon/organ/head/New(loc, mob/living/carbon/human/H)
..()
spawn(5)
if(brainmob && brainmob.client)
brainmob.client.screen.len = null //clear the hud
+ if(ishuman(H))
+ if(H.gender == FEMALE)
+ H.icon_state = "head_f"
+ H.overlays += H.generate_head_icon()
+ transfer_identity(H)
+ pixel_x = -10
+ pixel_y = 6
+ name = "[H.real_name]'s head"
+
+ H.regenerate_icons()
+
+ H.death()
obj/item/weapon/organ/head/proc/transfer_identity(var/mob/living/carbon/human/H)//Same deal as the regular brain proc. Used for human-->head
brainmob = new(src)
@@ -806,28 +775,3 @@ obj/item/weapon/organ/head/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
else
..()
-
-obj/item/weapon/organ/l_arm
- name = "left arm"
- icon_state = "l_arm"
-obj/item/weapon/organ/l_foot
- name = "left foot"
- icon_state = "l_foot"
-obj/item/weapon/organ/l_hand
- name = "left hand"
- icon_state = "l_hand"
-obj/item/weapon/organ/l_leg
- name = "left leg"
- icon_state = "l_leg"
-obj/item/weapon/organ/r_arm
- name = "right arm"
- icon_state = "r_arm"
-obj/item/weapon/organ/r_foot
- name = "right foot"
- icon_state = "r_foot"
-obj/item/weapon/organ/r_hand
- name = "right hand"
- icon_state = "r_hand"
-obj/item/weapon/organ/r_leg
- name = "right leg"
- icon_state = "r_leg"
diff --git a/code/datums/organs/wound.dm b/code/datums/organs/wound.dm
index c9ef227c904..b90ddfca81a 100644
--- a/code/datums/organs/wound.dm
+++ b/code/datums/organs/wound.dm
@@ -131,31 +131,31 @@
return (!(bandaged||clamped) && (damage_type == BRUISE && damage >= 20 || damage_type == CUT) && current_stage <= max_bleeding_stage && !src.internal)
/** CUTS **/
-/datum/wound/cut
+/datum/wound/cut/small
// link wound descriptions to amounts of damage
max_bleeding_stage = 2
stages = list("ugly ripped cut" = 20, "ripped cut" = 10, "cut" = 5, "healing cut" = 2, "small scab" = 0)
-/datum/wound/deep_cut
+/datum/wound/cut/deep
max_bleeding_stage = 3
stages = list("ugly deep ripped cut" = 25, "deep ripped cut" = 20, "deep cut" = 15, "clotted cut" = 8, "scab" = 2, "fresh skin" = 0)
-/datum/wound/flesh_wound
+/datum/wound/cut/flesh
max_bleeding_stage = 3
stages = list("ugly ripped flesh wound" = 35, "ugly flesh wound" = 30, "flesh wound" = 25, "blood soaked clot" = 15, "large scab" = 5, "fresh skin" = 0)
-/datum/wound/gaping_wound
+/datum/wound/cut/gaping
max_bleeding_stage = 2
stages = list("gaping wound" = 50, "large blood soaked clot" = 25, "large clot" = 15, "small angry scar" = 5, \
"small straight scar" = 0)
-/datum/wound/big_gaping_wound
+/datum/wound/cut/gaping_big
max_bleeding_stage = 2
stages = list("big gaping wound" = 60, "healing gaping wound" = 40, "large angry scar" = 10, "large straight scar" = 0)
needs_treatment = 1 // this only heals when bandaged
-/datum/wound/massive_wound
+datum/wound/cut/massive
max_bleeding_stage = 2
stages = list("massive wound" = 70, "massive healing wound" = 50, "massive angry scar" = 10, "massive jagged scar" = 0)
@@ -169,50 +169,51 @@
needs_treatment = 1 // this only heals when bandaged
damage_type = BRUISE
-/datum/wound/bruise/monumental_bruise
+/datum/wound/bruise/monumental
// implement sub-paths by starting at a later stage
-/datum/wound/bruise/huge_bruise
- current_stage = 1
-/datum/wound/bruise/large_bruise
- current_stage = 2
-
-/datum/wound/bruise/moderate_bruise
- current_stage = 3
- needs_treatment = 0
-
-/datum/wound/bruise/small_bruise
- current_stage = 4
- needs_treatment = 0
-
-/datum/wound/bruise/tiny_bruise
+/datum/wound/bruise/tiny
current_stage = 5
needs_treatment = 0
+/datum/wound/bruise/small
+ current_stage = 4
+ needs_treatment = 0
+
+/datum/wound/bruise/moderate
+ current_stage = 3
+ needs_treatment = 0
+
+/datum/wound/bruise/large
+ current_stage = 2
+
+/datum/wound/bruise/huge
+ current_stage = 1
+
/** BURNS **/
-/datum/wound/moderate_burn
+/datum/wound/burn/moderate
stages = list("ripped burn" = 10, "moderate burn" = 5, "moderate salved burn" = 2, "fresh skin" = 0)
needs_treatment = 1 // this only heals when bandaged
damage_type = BURN
-/datum/wound/large_burn
+/datum/wound/burn/large
stages = list("ripped large burn" = 20, "large burn" = 15, "large salved burn" = 5, "fresh skin" = 0)
needs_treatment = 1 // this only heals when bandaged
damage_type = BURN
-/datum/wound/severe_burn
+/datum/wound/burn/severe
stages = list("ripped severe burn" = 35, "severe burn" = 30, "severe salved burn" = 10, "burn scar" = 0)
needs_treatment = 1 // this only heals when bandaged
damage_type = BURN
-/datum/wound/deep_burn
+/datum/wound/burn/deep
stages = list("ripped deep burn" = 45, "deep burn" = 40, "deep salved burn" = 15, "large burn scar" = 0)
needs_treatment = 1 // this only heals when bandaged
@@ -220,7 +221,7 @@
damage_type = BURN
-/datum/wound/carbonised_area
+/datum/wound/burn/carbonised
stages = list("carbonised area" = 50, "treated carbonised area" = 20, "massive burn scar" = 0)
needs_treatment = 1 // this only heals when bandaged
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index f948f769061..94b9c03811f 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -64,8 +64,8 @@ Whitespace:Seperator;
Implants;
/obj/item/weapon/storage/box/syndie_kit/imp_freedom:3:Freedom Implant;
/obj/item/weapon/storage/box/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals);
-/obj/item/weapon/implant/explosive:6:Explosive Implant (DANGER!);
-/obj/item/weapon/implant/compressed:4:Compressed Matter Implant;Whitespace:Seperator;
+/obj/item/weapon/storage/box/syndie_kit/imp_explosive:6:Explosive Implant (DANGER!);
+/obj/item/weapon/storage/box/syndie_kit/imp_compress:4:Compressed Matter Implant;Whitespace:Seperator;
(Pointless) Badassery;
/obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"}
diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm
index 895c579b1f7..020fb720922 100644
--- a/code/game/gamemodes/traitor/traitor.dm
+++ b/code/game/gamemodes/traitor/traitor.dm
@@ -294,6 +294,6 @@
// Tell them about people they might want to contact.
var/mob/living/carbon/human/M = get_nt_opposed()
- if(M != traitor_mob)
+ if(M && M != traitor_mob)
traitor_mob << "We have received credible reports that [M.real_name] might be willing to help our cause. If you need assistance, consider contacting them."
traitor_mob.mind.store_memory("Potential Collaborator: [M.real_name]")
\ No newline at end of file
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 5d6aa3823ff..8db6aa50b73 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -910,7 +910,7 @@ About the new airlock wires panel:
/obj/machinery/door/airlock/Topic(href, href_list, var/nowindow = 0)
if(!nowindow)
..()
- if(usr.stat || usr.restrained())
+ if(usr.stat || usr.restrained()|| usr.small)
return
add_fingerprint(usr)
if(href_list["close"])
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 9405732d940..f8c71f4decf 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -47,7 +47,7 @@
var/mob/M = AM
if(world.time - M.last_bumped <= 10) return //Can bump-open one airlock per second. This is to prevent shock spam.
M.last_bumped = world.time
- if(!M.restrained())
+ if(!M.restrained() && !M.small)
bumpopen(M)
return
diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm
index 46b7a8b4f36..3d97d7eb7cd 100755
--- a/code/game/objects/items/devices/PDA/PDA.dm
+++ b/code/game/objects/items/devices/PDA/PDA.dm
@@ -914,7 +914,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
user.show_message("\blue Localized Damage, Brute/Burn:",1)
if(length(damaged)>0)
for(var/datum/organ/external/org in damaged)
- user.show_message(text("\blue \t []: []\blue-[]",capitalize(org.getDisplayName()),(org.brute_dam > 0)?"\red [org.brute_dam]":0,(org.burn_dam > 0)?"\red [org.burn_dam]":0),1)
+ user.show_message(text("\blue \t []: []\blue-[]",capitalize(org.display_name),(org.brute_dam > 0)?"\red [org.brute_dam]":0,(org.burn_dam > 0)?"\red [org.burn_dam]":0),1)
else
user.show_message("\blue \t Limbs are OK.",1)
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index a0f4f202d90..6d8a77549f2 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -112,7 +112,7 @@ MASS SPECTROMETER
if(length(damaged)>0)
for(var/datum/organ/external/org in damaged)
user.show_message(text("\blue \t []: [][]\blue - []", \
- capitalize(org.getDisplayName()), \
+ capitalize(org.display_name), \
(org.brute_dam > 0) ? "\red [org.brute_dam]" :0, \
(org.status & ORGAN_BLEEDING)?"\red \[Bleeding\]":"\t", \
(org.burn_dam > 0) ? "[org.burn_dam]" :0),1)
@@ -146,7 +146,7 @@ MASS SPECTROMETER
var/mob/living/carbon/human/H = M
for(var/name in H.organs_by_name)
var/datum/organ/external/e = H.organs_by_name[name]
- var/limb = e.getDisplayName()
+ var/limb = e.display_name
if(e.status & ORGAN_BROKEN)
if(((e.name == "l_arm") || (e.name == "r_arm") || (e.name == "l_leg") || (e.name == "r_leg")) && (!(e.status & ORGAN_SPLINTED)))
user << "\red Unsecured fracture in subject [limb]. Splinting recommended for transport."
@@ -328,4 +328,4 @@ MASS SPECTROMETER
name = "advanced mass-spectrometer"
icon_state = "adv_spectrometer"
details = 1
- origin_tech = "magnets=4;biotech=2"
+ origin_tech = "magnets=4;biotech=2"
diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm
index 3c66e61d80a..d79a76507a5 100644
--- a/code/game/objects/items/stacks/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -48,7 +48,7 @@
if (W.current_stage <= W.max_bleeding_stage)
user.visible_message( "\blue [user] bandages [W.desc] on [M]'s [affecting.display_name].", \
"\blue You bandage [W.desc] on [M]'s [affecting.display_name]." )
- H.add_side_effect("Itch")
+ //H.add_side_effect("Itch")
else if (istype(W,/datum/wound/bruise))
user.visible_message( "\blue [user] places bruise patch over [W.desc] on [M]'s [affecting.display_name].", \
"\blue You place bruise patch over [W.desc] on [M]'s [affecting.display_name]." )
diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm
index deddad910b2..c123ebde2bb 100644
--- a/code/game/objects/items/weapons/implants/implant.dm
+++ b/code/game/objects/items/weapons/implants/implant.dm
@@ -440,7 +440,10 @@ the implant may become unstable and either pre-maturely inject the subject or si
activate()
var/turf/t = get_turf(src)
- src.scanned.loc = t
+ if (imp_in)
+ imp_in.put_in_hands(scanned)
+ else
+ scanned.loc = t
del src
implanted(mob/source as mob)
diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm
index ae21beff2d4..785997a3db8 100644
--- a/code/game/objects/items/weapons/implants/implanter.dm
+++ b/code/game/objects/items/weapons/implants/implanter.dm
@@ -83,7 +83,7 @@
/obj/item/weapon/implanter/compressed
name = "implanter (C)"
- icon_state = "cimplanter0"
+ icon_state = "cimplanter1"
/obj/item/weapon/implanter/compressed/New()
imp = new /obj/item/weapon/implant/compressed( src )
@@ -95,11 +95,11 @@
if (imp)
var/obj/item/weapon/implant/compressed/c = imp
if(!c.scanned)
- icon_state = "cimplanter0"
- else
icon_state = "cimplanter1"
+ else
+ icon_state = "cimplanter2"
else
- icon_state = "cimplanter2"
+ icon_state = "cimplanter0"
return
/obj/item/weapon/implanter/compressed/attack(mob/M as mob, mob/user as mob)
diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm
index 3653d1322e9..646fc4d244c 100644
--- a/code/game/objects/items/weapons/storage/uplink_kits.dm
+++ b/code/game/objects/items/weapons/storage/uplink_kits.dm
@@ -83,24 +83,21 @@
O.update()
return
-/*/obj/item/weapon/storage/box/syndie_kit/imp_compress
- name = "Compressed Matter Implant (with injector)"
+/obj/item/weapon/storage/box/syndie_kit/imp_compress
+ name = "box (C)"
-/obj/item/weapon/storage/syndie_kit/imp_compress/New()
+/obj/item/weapon/storage/box/syndie_kit/imp_compress/New()
new /obj/item/weapon/implanter/compressed(src)
..()
return
-/obj/item/weapon/storage/syndie_kit/imp_explosive
- name = "Explosive Implant (with injector)"
+/obj/item/weapon/storage/box/syndie_kit/imp_explosive
+ name = "box (E)"
-/obj/item/weapon/storage/syndie_kit/imp_explosive/New()
- var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src)
- O.imp = new /obj/item/weapon/implant/explosive(O)
- O.name = "(BIO-HAZARD) BIO-detpack"
- O.update()
+/obj/item/weapon/storage/box/syndie_kit/imp_explosive/New()
+ new /obj/item/weapon/implanter/explosive(src)
..()
- return*/
+ return
/obj/item/weapon/storage/box/syndie_kit/imp_uplink
name = "Uplink Implant (with injector)"
diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm
index 4e3d77bedbb..6b43ee2d442 100644
--- a/code/game/objects/items/weapons/twohanded.dm
+++ b/code/game/objects/items/weapons/twohanded.dm
@@ -111,8 +111,8 @@
force = 5
w_class = 4.0
slot_flags = SLOT_BACK
- force_unwielded = 5
- force_wielded = 18
+ force_unwielded = 10
+ force_wielded = 40
attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut")
/obj/item/weapon/twohanded/fireaxe/update_icon() //Currently only here to fuck with the on-mob icons.
diff --git a/code/global.dm b/code/global.dm
index c7b2404e0ab..3a81f7bac43 100644
--- a/code/global.dm
+++ b/code/global.dm
@@ -103,6 +103,7 @@ var/list/shuttles = list( )
var/list/reg_dna = list( )
// list/traitobj = list( )
+var/mouse_respawn_time = 5 //Amount of time that must pass between a player dying as a mouse and repawning as a mouse. In minutes.
var/CELLRATE = 0.002 // multiplier for watts per tick <> cell storage (eg: .002 means if there is a load of 1000 watts, 20 units will be taken from a cell per second)
var/CHARGELEVEL = 0.001 // Cap for how fast cells charge, as a percentage-per-tick (.001 means cellcharge is capped to 1% per second)
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 67f32a7188c..ca49eea8ae6 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -641,7 +641,7 @@ var/list/admin_verbs_mod = list(
if(!istype(M, /mob/living/carbon/human))
usr << "\red You can only do this to humans!"
return
- switch(alert("Are you sure you wish to edit this mob's appearance? Skrell, Soghun and Tajaran can result in unintended consequences.",,"Yes","No"))
+ switch(alert("Are you sure you wish to edit this mob's appearance? Skrell, Unathi and Tajaran can result in unintended consequences.",,"Yes","No"))
if("No")
return
var/new_facial = input("Please select facial hair color.", "Character Generation") as color
diff --git a/code/modules/client/client defines.dm b/code/modules/client/client defines.dm
index 2675436c33a..2c69b9957ef 100644
--- a/code/modules/client/client defines.dm
+++ b/code/modules/client/client defines.dm
@@ -16,6 +16,7 @@
var/moving = null
var/adminobs = null
var/area = null
+ var/time_died_as_mouse = null //when the client last died as a mouse
///////////////
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 9955cee8092..8a21fc6b6ce 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -768,8 +768,8 @@ datum/preferences
var/prev_species = species
var/whitelisted = 0
if(config.usealienwhitelist) //If we're using the whitelist, make sure to check it!
- if(is_alien_whitelisted(user, "Soghun")) //Check for Soghun and admins
- new_species += "Soghun"
+ if(is_alien_whitelisted(user, "Soghun")) //Check for Unathi and admins
+ new_species += "Unathi"
whitelisted = 1
if(is_alien_whitelisted(user, "Tajaran")) //Check for Tajaran and admins
new_species += "Tajaran"
@@ -782,7 +782,7 @@ datum/preferences
alert(user, "You cannot change your species as you need to be whitelisted. If you wish to be whitelisted contact an admin in-game, on the forums, or on IRC.")
else //Not using the whitelist? Aliens for everyone!
new_species += "Tajaran"
- new_species += "Soghun"
+ new_species += "Unathi"
new_species += "Skrell"
species = input("Please select a species", "Character Generation", null) in new_species
@@ -843,7 +843,7 @@ datum/preferences
b_type = new_b_type
if("hair")
- if(species == "Human" || species == "Soghun")
+ if(species == "Human" || species == "Unathi")
var/new_hair = input(user, "Choose your character's hair colour:", "Character Preference") as color|null
if(new_hair)
r_hair = hex2num(copytext(new_hair, 2, 4))
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 5727e7b671e..f60a5409da9 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -151,6 +151,7 @@
metadata = sanitize_text(metadata, initial(metadata))
real_name = reject_bad_name(real_name)
if(isnull(species)) species = "Human"
+ if(isnull(nanotrasen_relation)) nanotrasen_relation = initial(nanotrasen_relation)
if(!real_name) real_name = random_name()
be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name))
gender = sanitize_gender(gender)
diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm
index efecebf2c6c..b9ab877f59f 100644
--- a/code/modules/clothing/spacesuits/alien.dm
+++ b/code/modules/clothing/spacesuits/alien.dm
@@ -1,19 +1,23 @@
-/obj/item/clothing/head/helmet/space/helmet_soghun_cheap
+/obj/item/clothing/head/helmet/space/unathi
+
+ var/up = 0 //So Unathi helmets play nicely with the weldervision check.
+
+/obj/item/clothing/head/helmet/space/unathi/helmet_cheap
name = "NT breacher helmet"
- desc = "Hey! Watch it with that thing! It's a knock-off of a soghun battle-helm, and that spike could put someone's eye out."
- icon_state = "sog_helm_cheap"
- item_state = "sog_helm_cheap"
- color = "sog_helm_cheap"
+ desc = "Hey! Watch it with that thing! It's a knock-off of a Unathi battle-helm, and that spike could put someone's eye out."
+ icon_state = "unathi_helm_cheap"
+ item_state = "unathi_helm_cheap"
+ color = "unathi_helm_cheap"
armor = list(melee = 40, bullet = 30, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 50)
heat_protection = HEAD
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE
-/obj/item/clothing/suit/space/rig_soghun_cheap
+/obj/item/clothing/suit/space/unathi/rig_cheap
name = "NT breacher chassis"
- desc = "A cheap NT knock-off of a soghun battle-rig. Looks like a fish, moves like a fish, steers like a cow."
- icon_state = "rig-soghun-cheap"
- item_state = "rig-soghun-cheap"
- slowdown = 2
+ desc = "A cheap NT knock-off of a Unathi battle-rig. Looks like a fish, moves like a fish, steers like a cow."
+ icon_state = "rig-unathi-cheap"
+ item_state = "rig-unathi-cheap"
+ slowdown = 3
armor = list(melee = 40, bullet = 30, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 50)
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd)
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
diff --git a/code/modules/clothing/suits/alien.dm b/code/modules/clothing/suits/alien.dm
new file mode 100644
index 00000000000..5b664f21b35
--- /dev/null
+++ b/code/modules/clothing/suits/alien.dm
@@ -0,0 +1,15 @@
+//Unathi clothing.
+
+/obj/item/clothing/suit/unathi/robe
+ name = "roughspun robes"
+ desc = "A traditional Unathi garment."
+ icon_state = "robe-unathi"
+ item_state = "robe-unathi"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
+
+/obj/item/clothing/suit/unathi/mantle
+ name = "hide mantle"
+ desc = "A rather grisly selection of cured hides and skin, sewn together to form a ragged mantle."
+ icon_state = "mantle-unathi"
+ item_state = "mantle-unathi"
+ body_parts_covered = UPPER_TORSO
\ 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 d8b3b9b92ca..4b4dac419d9 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -263,6 +263,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
set name = "Become mouse"
set category = "Ghost"
+ var/timedifference = world.time - client.time_died_as_mouse
+ if(client.time_died_as_mouse && timedifference <= mouse_respawn_time * 600)
+ var/timedifference_text
+ timedifference_text = time2text(mouse_respawn_time * 600 - timedifference,"mm:ss")
+ src << "You may only spawn again as a mouse more than [mouse_respawn_time] minutes after your death. You have [timedifference_text] left."
+ return
+
//find a viable mouse candidate
var/mob/living/simple_animal/mouse/host
var/obj/machinery/atmospherics/unary/vent_pump/vent_found
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 8f8fe88145a..7eca9638fc5 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -188,7 +188,7 @@
status = "MISSING!"
if(status == "")
status = "OK"
- src.show_message(text("\t []My [] is [].",status=="OK"?"\blue ":"\red ",org.getDisplayName(),status),1)
+ src.show_message(text("\t []My [] is [].",status=="OK"?"\blue ":"\red ",org.display_name,status),1)
if((SKELETON in H.mutations) && (!H.w_uniform) && (!H.wear_suit))
H.play_xylophone()
else
diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm
index 24c03f57445..1fa82e5778d 100644
--- a/code/modules/mob/living/carbon/human/inventory.dm
+++ b/code/modules/mob/living/carbon/human/inventory.dm
@@ -461,6 +461,7 @@ It can still be worn/put on as normal.
*/
/obj/effect/equip_e/human/done() //TODO: And rewrite this :< ~Carn
target.cpr_time = 1
+ if(isanimal(source)) return //animals cannot strip people
if(!source || !target) return //Target or source no longer exist
if(source.loc != s_loc) return //source has moved
if(target.loc != t_loc) return //target has moved
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 8b238f6ee91..d24f835153f 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -1402,7 +1402,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
var/masked = 0
- if( istype(head, /obj/item/clothing/head/welding) )
+ if( istype(head, /obj/item/clothing/head/welding) || istype(head, /obj/item/clothing/head/helmet/space/unathi))
var/obj/item/clothing/head/welding/O = head
if(!O.up && tinted_weldhelh)
client.screen += global_hud.darkMask
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index 9cf18615f98..478416aae1c 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -789,7 +789,7 @@ proc/get_damage_icon_part(damage_state, body_part)
if(!wear_suit || !(wear_suit.flags_inv & HIDEJUMPSUIT) && !istype(wear_suit, /obj/item/clothing/suit/space))
overlays_lying[TAIL_LAYER] = image("icon" = 'icons/effects/species.dmi', "icon_state" = "tajtail_l")
overlays_standing[TAIL_LAYER] = image("icon" = 'icons/effects/species.dmi', "icon_state" = "tajtail_s")
- else if( cur_species == "Soghun")
+ else if( cur_species == "Unathi")
if(!wear_suit || !(wear_suit.flags_inv & HIDEJUMPSUIT) && !istype(wear_suit, /obj/item/clothing/suit/space))
overlays_lying[TAIL_LAYER] = image("icon" = 'icons/effects/species.dmi', "icon_state" = "sogtail_l")
overlays_standing[TAIL_LAYER] = image("icon" = 'icons/effects/species.dmi', "icon_state" = "sogtail_s")
diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm
index 418e4b68582..98ab4560a3a 100644
--- a/code/modules/mob/living/simple_animal/friendly/crab.dm
+++ b/code/modules/mob/living/simple_animal/friendly/crab.dm
@@ -5,6 +5,7 @@
icon_state = "crab"
icon_living = "crab"
icon_dead = "crab_dead"
+ small = 1
speak_emote = list("clicks")
emote_hear = list("clicks")
emote_see = list("clacks")
diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
index 4db364cb5a6..52f241c8681 100644
--- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
+++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
@@ -167,6 +167,7 @@
health = 1
var/amount_grown = 0
pass_flags = PASSTABLE | PASSGRILLE
+ small = 1
/mob/living/simple_animal/chick/New()
..()
@@ -208,6 +209,7 @@ var/global/chicken_count = 0
var/eggsleft = 0
var/color
pass_flags = PASSTABLE
+ small = 1
/mob/living/simple_animal/chicken/New()
..()
diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm
index 4a235c30fa7..171e96fc62b 100644
--- a/code/modules/mob/living/simple_animal/friendly/lizard.dm
+++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm
@@ -5,6 +5,7 @@
icon_state = "lizard"
icon_living = "lizard"
icon_dead = "lizard-dead"
+ small = 1
speak_emote = list("hisses")
health = 5
maxHealth = 5
diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm
index 837b7e24903..379ab571347 100644
--- a/code/modules/mob/living/simple_animal/friendly/mouse.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm
@@ -10,6 +10,7 @@
emote_hear = list("squeeks","squeaks","squiks")
emote_see = list("runs in a circle", "shakes", "scritches at something")
pass_flags = PASSTABLE
+ small = 1
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
@@ -48,6 +49,8 @@
src.stat = DEAD
src.icon_dead = "mouse_[color]_splat"
src.icon_state = "mouse_[color]_splat"
+ if(client)
+ client.time_died_as_mouse = world.time
//copy paste from alien/larva, if that func is updated please update this one also
/mob/living/simple_animal/mouse/verb/ventcrawl()
@@ -84,9 +87,11 @@
if(loc==startloc)
var/obj/target_vent = vents[selection_position]
if(target_vent)
+ /*
for(var/mob/O in oviewers(src, null))
if ((O.client && !( O.blinded )))
O.show_message(text("[src] scrambles into the ventillation ducts!"), 1)
+ */
loc = target_vent.loc
else
src << "\blue You need to remain still while entering a vent."
@@ -107,15 +112,19 @@
if (layer != TURF_LAYER+0.2)
layer = TURF_LAYER+0.2
src << text("\blue You are now hiding.")
+ /*
for(var/mob/O in oviewers(src, null))
if ((O.client && !( O.blinded )))
O << text("[] scurries to the ground!", src)
+ */
else
layer = MOB_LAYER
src << text("\blue You have stopped hiding.")
+ /*
for(var/mob/O in oviewers(src, null))
if ((O.client && !( O.blinded )))
O << text("[] slowly peaks up from the ground...", src)
+ */
//make mice fit under tables etc? this was hacky, and not working
/*
@@ -152,6 +161,11 @@
M << 'sound/effects/mousesqueek.ogg'
..()
+/mob/living/simple_animal/mouse/Die()
+ if(client)
+ client.time_died_as_mouse = world.time
+ ..()
+
/*
* Mouse types
*/
diff --git a/code/modules/mob/living/simple_animal/friendly/mushroom.dm b/code/modules/mob/living/simple_animal/friendly/mushroom.dm
index 736aeeed6be..ef2eb6cd61e 100644
--- a/code/modules/mob/living/simple_animal/friendly/mushroom.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mushroom.dm
@@ -4,6 +4,7 @@
icon_state = "mushroom"
icon_living = "mushroom"
icon_dead = "mushroom_dead"
+ small = 1
speak_chance = 0
turns_per_move = 1
maxHealth = 5
diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm
index 97cf632cf04..b8c5d4150bd 100644
--- a/code/modules/mob/living/simple_animal/hostile/hostile.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm
@@ -8,7 +8,7 @@
var/projectiletype
var/projectilesound
var/casingtype
- var/move_to_delay = 2 //delay for the automated movement.
+ var/move_to_delay = 4 //delay for the automated movement.
var/list/friends = list()
var/break_stuff_probability = 10
stop_automated_movement_when_pulled = 0
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm
index dd50f3aef6c..f97e0eb8c28 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm
@@ -19,7 +19,7 @@
stop_automated_movement_when_pulled = 0
health = 300
maxHealth = 300
- speed = 4
+ speed = 8
projectiletype = /obj/item/projectile/beam/drone
projectilesound = 'sound/weapons/laser3.ogg'
destroy_surroundings = 0
@@ -35,11 +35,16 @@
var/disabled = 0
var/exploding = 0
+ //Drones aren't affected by atmos.
min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
max_tox = 0
+ min_co2 = 0
max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
minbodytemp = 0
- maxbodytemp = 600
var/has_loot = 1
faction = "malf_drone"
diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm
index 931c88587fd..756d49bbf21 100644
--- a/code/modules/mob/living/simple_animal/parrot.dm
+++ b/code/modules/mob/living/simple_animal/parrot.dm
@@ -33,6 +33,7 @@
icon_living = "parrot_fly"
icon_dead = "parrot_dead"
pass_flags = PASSTABLE
+ small = 1
speak = list("Hi","Hello!","Cracker?","BAWWWWK george mellons griffing me")
speak_emote = list("squawks","says","yells")
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index 3601ab3547a..4c29fff323f 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -446,7 +446,7 @@
/mob/living/simple_animal/proc/SA_attackable(target_mob)
if (isliving(target_mob))
var/mob/living/L = target_mob
- if(!L.stat || L.health <= 0)
+ if(!L.stat && L.health >= 0)
return (0)
if (istype(target_mob,/obj/mecha))
var/obj/mecha/M = target_mob
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index f85f989a9e3..f8960a586db 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -79,6 +79,7 @@
var/eye_stat = null//Living, potentially Carbon
var/lastpuke = 0
var/unacidable = 0
+ var/small = 0
var/name_archive //For admin things like possession
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index 18b317cb4fb..29b2bfeac3c 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -134,7 +134,7 @@ proc/hasorgans(A)
zone = "head"
if("mouth")
zone = "head"
- if("l_hand")
+/* if("l_hand")
zone = "l_arm"
if("r_hand")
zone = "r_arm"
@@ -144,6 +144,7 @@ proc/hasorgans(A)
zone = "r_leg"
if("groin")
zone = "chest"
+*/
return zone
@@ -171,7 +172,7 @@ proc/hasorgans(A)
// you can only miss if your target is standing and not restrained
if(!target.buckled && !target.lying)
- var/miss_chance = max(10 + miss_chance_mod, 0)
+ var/miss_chance = 10
switch(zone)
if("head")
miss_chance = 40
@@ -191,6 +192,7 @@ proc/hasorgans(A)
miss_chance = 50
if("r_foot")
miss_chance = 50
+ miss_chance = max(miss_chance + miss_chance_mod, 0)
if(prob(miss_chance))
if(prob(70))
return null
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index a967ed8b59a..4597b038e82 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -338,7 +338,7 @@
if(is_alien_whitelisted(src, "Tajaran") || !config.usealienwhitelist)
new_character.dna.mutantrace = "tajaran"
new_character.tajaran_talk_understand = 1
- if(client.prefs.species == "Soghun")
+ if(client.prefs.species == "Unathi")
if(is_alien_whitelisted(src, "Soghun") || !config.usealienwhitelist)
new_character.dna.mutantrace = "lizard"
new_character.soghun_talk_understand = 1
diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm
index 2523e10ceec..b7b8c32393e 100644
--- a/code/modules/mob/new_player/preferences_setup.dm
+++ b/code/modules/mob/new_player/preferences_setup.dm
@@ -138,7 +138,7 @@ datum/preferences
if(species == "Tajaran")
preview_icon = new /icon('icons/effects/species.dmi', "tajaran_[g]_s")
preview_icon.Blend(new /icon('icons/effects/species.dmi', "tajtail_s"), ICON_OVERLAY)
- else if(species == "Soghun")
+ else if(species == "Unathi")
preview_icon = new /icon('icons/effects/species.dmi', "lizard_[g]_s")
preview_icon.Blend(new /icon('icons/effects/species.dmi', "sogtail_s"), ICON_OVERLAY)
else if(species == "Skrell")
diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm
index 2be45074837..38d1d9cdf90 100644
--- a/code/modules/mob/new_player/sprite_accessories.dm
+++ b/code/modules/mob/new_player/sprite_accessories.dm
@@ -48,7 +48,7 @@
name = "Bald"
icon_state = "bald"
gender = MALE
- species_allowed = list("Human","Soghun")
+ species_allowed = list("Human","Unathi")
short
name = "Short Hair" // try to capatilize the names please~
@@ -119,7 +119,7 @@
name = "Pompadour"
icon_state = "hair_pompadour"
gender = MALE
- species_allowed = list("Human","Soghun")
+ species_allowed = list("Human","Unathi")
quiff
name = "Quiff"
@@ -142,19 +142,19 @@
name = "Beehive"
icon_state = "hair_beehive"
gender = FEMALE
- species_allowed = list("Human","Soghun")
+ species_allowed = list("Human","Unathi")
bobcurl
name = "Bobcurl"
icon_state = "hair_bobcurl"
gender = FEMALE
- species_allowed = list("Human","Soghun")
+ species_allowed = list("Human","Unathi")
bob
name = "Bob"
icon_state = "hair_bobcut"
gender = FEMALE
- species_allowed = list("Human","Soghun")
+ species_allowed = list("Human","Unathi")
bowl
name = "Bowl"
@@ -165,7 +165,7 @@
name = "Buzzcut"
icon_state = "hair_buzzcut"
gender = MALE
- species_allowed = list("Human","Soghun")
+ species_allowed = list("Human","Unathi")
crew
name = "Crewcut"
@@ -227,7 +227,7 @@
mohawk
name = "Mohawk"
icon_state = "hair_d"
- species_allowed = list("Human","Soghun")
+ species_allowed = list("Human","Unathi")
jensen
name = "Adam Jensen Hair"
icon_state = "hair_jensen"
@@ -241,7 +241,7 @@
spiky
name = "Spiky"
icon_state = "hair_spikey"
- species_allowed = list("Human","Soghun")
+ species_allowed = list("Human","Unathi")
kusangi
name = "Kusanagi Hair"
icon_state = "hair_kusanagi"
@@ -306,7 +306,7 @@
name = "Shaved"
icon_state = "bald"
gender = NEUTER
- species_allowed = list("Human","Soghun","Tajaran","Skrell")
+ species_allowed = list("Human","Unathi","Tajaran","Skrell")
watson
name = "Watson Mustache"
@@ -347,7 +347,7 @@
elvis
name = "Elvis Sideburns"
icon_state = "facial_elvis"
- species_allowed = list("Human","Soghun")
+ species_allowed = list("Human","Unathi")
abe
name = "Abraham Lincoln Beard"
@@ -521,11 +521,11 @@
icon = 'icons/mob/human_races/r_tajaran.dmi'
species_allowed = list("Tajaran")
- soghun
- name = "Default soghun skin"
+ unathi
+ name = "Default Unathi skin"
icon_state = "default"
icon = 'icons/mob/human_races/r_lizard.dmi'
- species_allowed = list("Soghun")
+ species_allowed = list("Unathi")
skrell
name = "Default skrell skin"
diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm
index c7141e741d8..cabad829839 100644
--- a/code/modules/projectiles/guns/projectile.dm
+++ b/code/modules/projectiles/guns/projectile.dm
@@ -1,3 +1,7 @@
+#define SPEEDLOADER 0
+#define FROM_BOX 1
+#define MAGAZINE 2
+
/obj/item/weapon/gun/projectile
desc = "A classic revolver. Uses 357 ammo"
name = "revolver"
@@ -10,7 +14,7 @@
var/ammo_type = "/obj/item/ammo_casing/a357"
var/list/loaded = list()
var/max_shells = 7
- var/load_method = 0 //0 = Single shells or quick loader, 1 = box, 2 = magazine
+ var/load_method = SPEEDLOADER //0 = Single shells or quick loader, 1 = box, 2 = magazine
var/obj/item/ammo_magazine/empty_mag = null
@@ -45,7 +49,7 @@
var/num_loaded = 0
if(istype(A, /obj/item/ammo_magazine))
- if((load_method == 2) && loaded.len) return
+ if((load_method == MAGAZINE) && loaded.len) return
var/obj/item/ammo_magazine/AM = A
for(var/obj/item/ammo_casing/AC in AM.stored_ammo)
if(loaded.len >= max_shells)
@@ -55,11 +59,11 @@
AM.stored_ammo -= AC
loaded += AC
num_loaded++
- if(load_method == 2)
+ if(load_method == MAGAZINE)
user.remove_from_mob(AM)
empty_mag = AM
empty_mag.loc = src
- if(istype(A, /obj/item/ammo_casing) && !load_method)
+ if(istype(A, /obj/item/ammo_casing) && load_method == SPEEDLOADER)
var/obj/item/ammo_casing/AC = A
if(AC.caliber == caliber && loaded.len < max_shells)
user.drop_item()
@@ -72,6 +76,25 @@
update_icon()
return
+/obj/item/weapon/gun/projectile/attack_self(mob/user as mob)
+ if (loaded.len)
+ if (load_method == SPEEDLOADER)
+ var/obj/item/ammo_casing/AC = loaded[1]
+ loaded -= AC
+ AC.loc = get_turf(src) //Eject casing onto ground.
+ user << "\blue You unload shell from \the [src]!"
+ if (load_method == MAGAZINE)
+ var/obj/item/ammo_magazine/AM = empty_mag
+ for (var/obj/item/ammo_casing/AC in loaded)
+ AM.stored_ammo += AC
+ loaded -= AC
+ AM.loc = get_turf(src)
+ empty_mag = null
+ user << "\blue You unload magazine from \the [src]!"
+ else
+ user << "\red Nothing loaded in \the [src]!"
+
+
/obj/item/weapon/gun/projectile/examine()
..()
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index cbeb12baaef..97825c60da9 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -74,37 +74,34 @@
loc = A.loc
return 0// nope.avi
- var/distance = get_dist(original,loc)
+ var/distance = get_dist(starting,loc)
//Lower accurancy/longer range tradeoff. Distance matters a lot here, so at
// close distance, actually RAISE the chance to hit.
def_zone = get_zone_with_miss_chance(def_zone, M, -30 + 8*distance)
- if(silenced)
- if(def_zone)
- M << "\red You've been shot in the [parse_zone(def_zone)] by the [src.name]!"
+ if(!def_zone)
+ visible_message("\blue \The [src] misses [M] narrowly!")
+ forcedodge = -1
else
- if(!def_zone)
- visible_message("\The [src] misses [M] narrowly.")
- del(src)
- return
if(silenced)
M << "\red You've been shot in the [parse_zone(def_zone)] by the [src.name]!"
else
visible_message("\red [A.name] is hit by the [src.name] in the [parse_zone(def_zone)]!")//X has fired Y is now given by the guns so you cant tell who shot you if you could not see the shooter
- if(istype(firer, /mob))
- M.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [M]/[M.ckey] with a [src.type]"
- firer.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [M]/[M.ckey] with a [src.type]"
- log_attack("[firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src.type]")
- msg_admin_attack("ATTACK: [firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src]") //BS12 EDIT ALG
- else
- M.attack_log += "\[[time_stamp()]\] UNKNOWN SUBJECT (No longer exists) shot [M]/[M.ckey] with a [src]"
- log_attack("UNKNOWN shot [M] ([M.ckey]) with a [src.type]")
- msg_admin_attack("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a [src]") //BS12 EDIT ALG
+ if(istype(firer, /mob))
+ M.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [M]/[M.ckey] with a [src.type]"
+ firer.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [M]/[M.ckey] with a [src.type]"
+ log_attack("[firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src.type]")
+ msg_admin_attack("ATTACK: [firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src]") //BS12 EDIT ALG
+ else
+ M.attack_log += "\[[time_stamp()]\] UNKNOWN SUBJECT (No longer exists) shot [M]/[M.ckey] with a [src]"
+ log_attack("UNKNOWN shot [M] ([M.ckey]) with a [src.type]")
+ msg_admin_attack("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a [src]") //BS12 EDIT ALG
spawn(0)
if(A)
- var/permutation = A.bullet_act(src, def_zone) // searches for return value
- if(permutation == -1 || forcedodge) // the bullet passes through a dense object!
+ if (!forcedodge)
+ forcedodge = A.bullet_act(src, def_zone) // searches for return value
+ if(forcedodge == -1) // the bullet passes through a dense object!
bumped = 0 // reset bumped variable!
if(istype(A, /turf))
loc = A
@@ -118,7 +115,6 @@
O.bullet_act(src)
for(var/mob/M in A)
M.bullet_act(src, def_zone)
-
density = 0
invisibility = 101
del(src)
diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm
index fbd08538b86..f513c83da33 100644
--- a/code/modules/projectiles/projectile/beams.dm
+++ b/code/modules/projectiles/projectile/beams.dm
@@ -20,50 +20,56 @@ var/list/beam_master = list()
process()
var/reference = "\ref[src]" //So we do not have to recalculate it a ton
var/first = 1 //So we don't make the overlay in the same tile as the firer
+ spawn while(src) //Move until we hit something
- spawn(0)
- while(!bumped) //Move until we hit something
- step_towards(src, current) //Move~
+ if((!( current ) || loc == current)) //If we pass our target
+ current = locate(min(max(x + xo, 1), world.maxx), min(max(y + yo, 1), world.maxy), z)
+ if((x == 1 || x == world.maxx || y == 1 || y == world.maxy))
+ del(src) //Delete if it passes the world edge
+ return
+ step_towards(src, current) //Move~
- for(var/mob/living/M in loc)
- Bump(M) //Bump anyone we touch
+ if(kill_count < 1)
+ del(src)
+ kill_count--
- if((!( current ) || loc == current)) //If we pass our target
- current = locate(min(max(x + xo, 1), world.maxx), min(max(y + yo, 1), world.maxy), z)
+ if(!bumped && !isturf(original))
+ if(loc == get_turf(original))
+ if(!(original in permutated))
+ Bump(original)
- if((x == 1 || x == world.maxx || y == 1 || y == world.maxy))
- del(src) //Delete if it passes the world edge
- return
+ if(!first) //Add the overlay as we pass over tiles
+ var/target_dir = get_dir(src, current) //So we don't call this too much
- if(!first) //Add the overlay as we pass over tiles
- var/target_dir = get_dir(src, current) //So we don't call this too much
+ //If the icon has not been added yet
+ if( !("[icon_state][target_dir]" in beam_master) )
+ var/image/I = image(icon,icon_state,10,target_dir) //Generate it.
+ beam_master["[icon_state][target_dir]"] = I //And cache it!
- //If the icon has not been added yet
- if( !("[icon_state][target_dir]" in beam_master) )
- var/image/I = image(icon,icon_state,10,target_dir) //Generate it.
- beam_master["[icon_state][target_dir]"] = I //And cache it!
+ //Finally add the overlay
+ src.loc.overlays += beam_master["[icon_state][target_dir]"]
- //Finally add the overlay
- src.loc.overlays += beam_master["[icon_state][target_dir]"]
-
- //Add the turf to a list in the beam master so they can be cleaned up easily.
- if(reference in beam_master)
- var/list/turf_master = beam_master[reference]
- if("[icon_state][target_dir]" in turf_master)
- var/list/turfs = turf_master["[icon_state][target_dir]"]
- turfs += loc
- else
- turf_master["[icon_state][target_dir]"] = list(loc)
+ //Add the turf to a list in the beam master so they can be cleaned up easily.
+ if(reference in beam_master)
+ var/list/turf_master = beam_master[reference]
+ if("[icon_state][target_dir]" in turf_master)
+ var/list/turfs = turf_master["[icon_state][target_dir]"]
+ turfs += loc
else
- var/list/turfs = list()
- turfs["[icon_state][target_dir]"] = list(loc)
- beam_master[reference] = turfs
+ turf_master["[icon_state][target_dir]"] = list(loc)
else
- first = 0
-
+ var/list/turfs = list()
+ turfs["[icon_state][target_dir]"] = list(loc)
+ beam_master[reference] = turfs
+ else
+ first = 0
cleanup(reference)
return
+ Del()
+ cleanup("\ref[src]")
+ ..()
+
proc/cleanup(reference) //Waits .3 seconds then removes the overlay.
src = null
sleep(3)
diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm
index 49c6aac75d6..c20091e4c30 100644
--- a/code/modules/reagents/reagent_containers/food/snacks.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks.dm
@@ -198,7 +198,10 @@
del(src)
if(ismouse(M))
var/mob/living/simple_animal/mouse/N = M
- N.emote("nibbles away at the [src]")
+ N << text("\blue You nibble away at [src].")
+ if(prob(50))
+ N.visible_message("[N] nibbles away at [src].", "")
+ //N.emote("nibbles away at the [src]")
N.health = min(N.health + 1, N.maxHealth)
diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index 51a44003ed3..6ff62b6565b 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -136,6 +136,7 @@
MouseDrop_T(mob/target, mob/user)
if (!istype(target) || target.buckled || get_dist(user, src) > 1 || get_dist(user, target) > 1 || user.stat || istype(user, /mob/living/silicon/ai))
return
+ if(isanimal(user) && target != user) return //animals cannot put mobs other than themselves into disposal
src.add_fingerprint(user)
var/target_loc = target.loc
var/msg
diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm
index 132fdbf67ff..39593d05ee1 100644
--- a/code/modules/surgery/generic.dm
+++ b/code/modules/surgery/generic.dm
@@ -85,7 +85,7 @@
/datum/surgery_step/generic/retract_skin
required_tool = /obj/item/weapon/retractor
- allowed_tools = list(/obj/item/weapon/kitchen/utensil/fork)
+ allowed_tools = list(/obj/item/weapon/crowbar,/obj/item/weapon/kitchen/utensil/fork)
min_duration = 30
max_duration = 40
diff --git a/code/modules/surgery/other.dm b/code/modules/surgery/other.dm
index 8c0d01c06d8..3c3dd477b40 100644
--- a/code/modules/surgery/other.dm
+++ b/code/modules/surgery/other.dm
@@ -80,15 +80,23 @@
find_prob +=40
if (isright(tool))
find_prob +=20
-
- if (prob(find_prob))
+ if (prob(find_prob))
+ user.visible_message("\blue [user] takes something out of incision on [target]'s [affected.display_name] with \the [tool].", \
+ "\blue You take something out of incision on [target]'s [affected.display_name]s with \the [tool]." )
+ affected.implants -= imp
+ imp.loc = get_turf(target)
+ imp.imp_in = null
+ imp.implanted = 0
+ else if (affected.hidden)
user.visible_message("\blue [user] takes something out of incision on [target]'s [affected.display_name] with \the [tool].", \
"\blue You take something out of incision on [target]'s [affected.display_name]s with \the [tool]." )
- var/obj/item/weapon/implant/imp = affected.implants[1]
- affected.implants -= imp
- imp.loc = get_turf(target)
- imp.imp_in = null
- imp.implanted = 0
+ affected.hidden.loc = get_turf(target)
+ if(!affected.hidden.blood_DNA)
+ affected.hidden.blood_DNA = list()
+ affected.hidden.blood_DNA[target.dna.unique_enzymes] = target.dna.b_type
+ affected.hidden.update_icon()
+ affected.hidden = null
+
else
user.visible_message("\blue [user] could not find anything inside [target]'s [affected.display_name], and pulls \the [tool] out.", \
"\blue You could not find anything inside [target]'s [affected.display_name]." )
@@ -107,4 +115,50 @@
user.visible_message("\red Something beeps inside [target]'s [affected.display_name]!")
playsound(imp.loc, 'sound/items/countdown.ogg', 75, 1, -3)
spawn(25)
- imp.activate()
\ No newline at end of file
+ imp.activate()
+
+//////////////////////////////////////////////////////////////////
+// ITEM PLACEMENT SURGERY //
+//////////////////////////////////////////////////////////////////
+
+/datum/surgery_step/item_place
+ required_tool = /obj/item
+
+ min_duration = 80
+ max_duration = 100
+ var/max_size = 2 //maximum w_class of item that fits.
+
+ can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
+ var/datum/organ/external/affected = target.get_organ(target_zone)
+ if (affected.name in list("chest","groin","head"))
+ max_size = 3
+ else
+ max_size = 2
+ return affected.open == 2 && !(affected.status & ORGAN_BLEEDING) && tool.w_class <= max_size && !affected.hidden
+
+ begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
+ var/datum/organ/external/affected = target.get_organ(target_zone)
+ user.visible_message("[user] starts putting [tool] inside the incision on [target]'s [affected.display_name].", \
+ "You start putting [tool] inside the incision on [target]'s [affected.display_name]." )
+ target.custom_pain("The pain in your chest is living hell!",1)
+ ..()
+
+ end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
+ var/datum/organ/external/chest/affected = target.get_organ(target_zone)
+
+ user.visible_message("\blue [user] puts [tool] inside [target]'s [affected.display_name].", \
+ "\blue You put [tool] inside [target]'s [affected.display_name]." )
+ if (tool.w_class > max_size/2 && prob(50))
+ user << "\red You tear some vessels trying to fit such big object in this cavity."
+ var/datum/wound/internal_bleeding/I = new (15)
+ affected.wounds += I
+ affected.owner.custom_pain("You feel something rip in your [affected.display_name]!", 1)
+ user.drop_item()
+ affected.hidden = tool
+ tool.loc = target
+
+ fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
+ var/datum/organ/external/chest/affected = target.get_organ(target_zone)
+ user.visible_message("\red [user]'s hand slips, scraping tissue inside [target]'s [affected.display_name] with \the [tool]!", \
+ "\red Your hand slips, scraping tissue inside [target]'s [affected.display_name] with \the [tool]!")
+ affected.createwound(CUT, 20)
diff --git a/html/changelog.html b/html/changelog.html
index a2ac370d751..7a6ebff0b4c 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -58,6 +58,19 @@ Stuff which is in development and not yet visible to players or just code relate
should be listed in the changelog upon commit though. Thanks. -->
+
+
20/02/2013
+
Chinsky updated:
+
+ - Added new surgery: putting items inside people. After you use retractor to keep incision open, just click with any item to put it inside. But be wary, if you try to fit something too big, you might rip the veins. To remove items, use implant removal surgery.
+ - Crowbar can be used as alternative to retractor.
+ - Can now unload guns by clicking them in hand.
+ - Fixed distance calculation in bullet missing chance computation, it was always assuming 1 or 0 tiles. Now distace REALLY matters when you shoot.
+ - To add more FUN to previous thing, bullets missed to not disappear but keep going until they hit something else.
+ - Compressed Matter and Explosive implants spawn properly now.
+ - Tweaks to medical effects: removed itch caused by bandages. Chemical effects now have non-100 chance of appearing, the stronger medicine, the more probality it'll have side effects.
+
+
February 18th 2013
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index 1f8d62db91f..8f0993e8ea9 100644
Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ
diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi
index cc22183397c..2d4079f37f7 100644
Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.dmi differ
diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi
index 3e4ac55d2de..87ec4cb246a 100644
Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index 3e1964161f7..6e9fd6de034 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index 6b96c548c47..f28943162b6 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi
index c92c4471419..110ef9c2b54 100644
Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index 0860f0d2ad8..8bcbb5b9d02 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi
index b0a67761b70..a8f3633eccd 100644
Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ
diff --git a/maps/tgstation.2.1.0.0.1.dmm b/maps/tgstation.2.1.0.0.1.dmm
index 78a09b3cadd..952f0c05287 100644
--- a/maps/tgstation.2.1.0.0.1.dmm
+++ b/maps/tgstation.2.1.0.0.1.dmm
@@ -811,7 +811,7 @@
"apE" = (/obj/machinery/computer/med_data,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office)
"apF" = (/obj/machinery/hologram/holopad,/obj/machinery/newscaster{pixel_x = -28; pixel_y = 1},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/lawoffice)
"apG" = (/obj/structure/stool/bed/chair/comfy/black,/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/lawoffice)
-"apH" = (/obj/structure/stool/bed/chair/comfy/black,/obj/effect/landmark/start{name = "Lawyer"},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/lawoffice)
+"apH" = (/obj/item/clothing/gloves/rainbow,/obj/item/clothing/shoes/rainbow,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/clothing/head/soft/rainbow,/obj/item/clothing/under/rainbow,/turf/simulated/floor/plating,/area/maintenance/port)
"apI" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/hallway/primary/fore)
"apJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/crew_quarters/sleep)
"apK" = (/obj/machinery/light/small{dir = 8},/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep)
@@ -854,7 +854,7 @@
"aqv" = (/obj/structure/stool,/turf/simulated/floor/carpet,/area/security/detectives_office)
"aqw" = (/obj/machinery/computer/secure_data,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office)
"aqx" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/requests_console{pixel_x = -30},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/lawoffice)
-"aqy" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Lawyer"},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/lawoffice)
+"aqy" = (/obj/structure/table/reinforced,/obj/item/weapon/pen/blue{pixel_x = -5; pixel_y = -1},/obj/item/weapon/pen/red{pixel_x = -1; pixel_y = 3},/obj/item/ashtray/plastic{pixel_x = 5; pixel_y = 6},/obj/machinery/power/apc{dir = 2; name = "Law Office APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/lawoffice)
"aqz" = (/obj/structure/table/reinforced,/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/lawoffice)
"aqA" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/lawoffice)
"aqB" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/lawoffice)
@@ -900,7 +900,7 @@
"arp" = (/obj/structure/table/reinforced,/obj/item/weapon/folder{pixel_x = -4},/obj/item/weapon/folder/red{pixel_y = 3},/obj/item/weapon/folder/blue{pixel_x = 5},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/lawoffice)
"arq" = (/obj/structure/table/reinforced,/obj/item/weapon/pen/blue{pixel_x = -5; pixel_y = -1},/obj/item/weapon/pen/red{pixel_x = -1; pixel_y = 3},/obj/item/ashtray/plastic{pixel_x = 4; pixel_y = 6},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/lawoffice)
"arr" = (/obj/structure/table/reinforced,/obj/item/device/flashlight/lamp,/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/lawoffice)
-"ars" = (/obj/structure/table/reinforced,/obj/item/weapon/pen/blue{pixel_x = -5; pixel_y = -1},/obj/item/weapon/pen/red{pixel_x = -1; pixel_y = 3},/obj/item/ashtray/plastic{pixel_x = 5; pixel_y = 6},/obj/machinery/power/apc{dir = 2; name = "Law Office APC"; pixel_y = -24},/obj/structure/cable,/obj/machinery/camera{c_tag = "Internal Affairs"; dir = 1},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/lawoffice)
+"ars" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/lawoffice)
"art" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/reinforced,/obj/machinery/door_control{id = "lawyer_blast"; name = "Privacy Shutters"; pixel_y = -25},/obj/item/weapon/folder{pixel_x = -4},/obj/item/weapon/folder/red{pixel_y = 3},/obj/item/weapon/folder/blue{pixel_x = 5},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/lawoffice)
"aru" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "lawyer_blast"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/lawoffice)
"arv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/hallway/primary/fore)
@@ -1375,7 +1375,7 @@
"aAw" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/fpmaint)
"aAx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva)
"aAy" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_command{name = "E.V.A."; req_access_txt = "18"},/turf/simulated/floor,/area/ai_monitored/storage/eva)
-"aAz" = (/obj/structure/sign/greencross{pixel_x = -32; pixel_y = 0},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
+"aAz" = (/obj/structure/sign/redcross{pixel_x = -32},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
"aAA" = (/obj/structure/cable,/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
"aAB" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
"aAC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall,/area/crew_quarters/sleep)
@@ -2371,7 +2371,7 @@
"aTE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/port)
"aTF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plating,/area/maintenance/port)
"aTG" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/port)
-"aTH" = (/obj/item/clothing/gloves/rainbow,/obj/item/clothing/shoes/rainbow,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/port)
+"aTH" = (/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/obj/machinery/meter,/obj/machinery/door_control{id = "mixvent"; name = "Mixing Room Vent Control"; pixel_x = -25; pixel_y = 5; req_access_txt = "7"},/obj/machinery/ignition_switch{id = "mixingsparker"; pixel_x = -25; pixel_y = -5},/turf/simulated/floor{dir = 4; icon_state = "warnwhitecorner"; tag = "icon-warnwhitecorner (EAST)"},/area/toxins/mixing)
"aTI" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor,/area/storage/tools)
"aTJ" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor,/area/storage/tools)
"aTK" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/rack{dir = 8; layer = 2.9},/obj/machinery/light,/obj/item/device/multitool,/turf/simulated/floor,/area/storage/tools)
@@ -2864,10 +2864,10 @@
"bdd" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central)
"bde" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor,/area/hallway/primary/central)
"bdf" = (/turf/simulated/wall/r_wall,/area/medical/chemistry)
-"bdg" = (/obj/structure/sign/greencross,/turf/simulated/wall,/area/medical/medbay)
-"bdh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/medbay)
-"bdi" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/medbay)
-"bdj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/medical/medbay)
+"bdg" = (/obj/machinery/atmospherics/valve{dir = 4},/obj/machinery/light,/turf/simulated/floor{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/mixing)
+"bdh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
+"bdi" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
+"bdj" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"bdk" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"bdl" = (/turf/simulated/wall/r_wall,/area/medical/cmo)
"bdm" = (/turf/simulated/wall,/area/medical/morgue)
@@ -3199,12 +3199,12 @@
"bjA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/bridge/meeting_room)
"bjB" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/lattice,/turf/space,/area)
"bjC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/turret_protected/ai_upload)
-"bjD" = (/obj/structure/table,/obj/item/weapon/aiModule/asimov,/obj/item/weapon/aiModule/freeformcore,/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Core Modules"; req_access_txt = "20"},/obj/structure/window/reinforced,/obj/item/weapon/aiModule/corp,/obj/item/weapon/aiModule/paladin,/obj/item/weapon/aiModule/robocop,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
+"bjD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/fire{pixel_y = -32},/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_on"; on = 1},/turf/simulated/floor/engine,/area/toxins/mixing)
"bjE" = (/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bjF" = (/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/obj/machinery/computer/borgupload,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bjG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bjH" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/computer/aiupload,/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
-"bjI" = (/obj/structure/table,/obj/item/weapon/aiModule/oxygen,/obj/item/weapon/aiModule/oneHuman,/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "High-Risk Modules"; req_access_txt = "20"},/obj/item/weapon/aiModule/purge,/obj/structure/window/reinforced,/obj/item/weapon/aiModule/antimov,/obj/item/weapon/aiModule/teleporterOffline,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
+"bjI" = (/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/turf/simulated/wall/r_wall,/area/toxins/mixing)
"bjJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/lattice,/turf/space,/area)
"bjK" = (/turf/simulated/wall,/area/crew_quarters/captain)
"bjL" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/turf/simulated/floor/carpet,/area/crew_quarters/captain)
@@ -3246,7 +3246,7 @@
"bkv" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/weapon/pen,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
"bkw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bkx" = (/obj/machinery/light,/turf/simulated/floor{icon_state = "warning"},/area/hallway/secondary/entry)
-"bky" = (/obj/machinery/conveyor{dir = 1; id = "garbage"},/obj/machinery/door/poddoor{density = 1; icon_state = "pdoor1"; id = "Disposal Exit"; name = "Disposal Exit Vent"; opacity = 1},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/maintenance/disposal)
+"bky" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; frequency = 1443; icon_state = "on"; id = "air_in"; on = 1},/turf/simulated/floor/engine/vacuum,/area/toxins/mixing)
"bkz" = (/turf/space,/area/supply/station)
"bkA" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/quartermaster/storage)
"bkB" = (/obj/machinery/status_display{density = 0; pixel_x = 0; pixel_y = 32; supply_display = 1},/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/quartermaster/storage)
@@ -3348,7 +3348,7 @@
"bmt" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/crew_quarters/heads)
"bmu" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/lattice,/turf/space,/area)
"bmv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/turret_protected/ai_upload)
-"bmw" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/aiModule/nanotrasen,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
+"bmw" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 0; icon_state = "in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine/vacuum,/area/toxins/mixing)
"bmx" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
"bmy" = (/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload)
"bmz" = (/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload)
@@ -3433,7 +3433,7 @@
"boa" = (/obj/structure/stool/bed/roller,/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Exit Button"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 26; range = 3},/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"bob" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/medbay)
"boc" = (/obj/machinery/status_display,/turf/simulated/wall,/area/medical/medbay)
-"bod" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Reception"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
+"bod" = (/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/obj/machinery/meter,/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "tox_airlock_pump"; exterior_door_tag = "tox_airlock_exterior"; id_tag = "tox_airlock_control"; interior_door_tag = "tox_airlock_interior"; pixel_x = -24; pixel_y = 0; sanitize_external = 1; sensor_tag = "tox_airlock_sensor"},/turf/simulated/floor{dir = 1; icon_state = "warnwhitecorner"; tag = "icon-warnwhitecorner (EAST)"},/area/toxins/mixing)
"boe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/medbay)
"bof" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/cmo)
"bog" = (/obj/machinery/door/airlock/glass_command{name = "Chief Medical Officer"; req_access_txt = "40"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo)
@@ -3498,7 +3498,7 @@
"bpn" = (/obj/machinery/door/airlock/maintenance{name = "Teleporter Maintenance"; req_access_txt = "17"},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/teleporter)
"bpo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/teleporter)
"bpp" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor,/area/hallway/primary/central)
-"bpq" = (/obj/structure/sign/greencross,/turf/simulated/wall/r_wall,/area/medical/chemistry)
+"bpq" = (/obj/machinery/airlock_sensor{id_tag = "tox_airlock_sensor"; master_tag = "tox_airlock_control"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_on"; on = 1},/turf/simulated/floor/engine,/area/toxins/mixing)
"bpr" = (/obj/structure/sign/securearea,/turf/simulated/wall,/area/medical/chemistry)
"bps" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Chemistry Lab"; req_access_txt = "5; 33"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry)
"bpt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/medical/chemistry)
@@ -4095,7 +4095,7 @@
"bAM" = (/obj/machinery/power/apc{dir = 8; name = "RD Office APC"; pixel_x = -25},/obj/structure/cable,/obj/machinery/light_switch{pixel_y = -23},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor)
"bAN" = (/obj/machinery/hologram/holopad,/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor)
"bAO" = (/obj/structure/table,/obj/item/weapon/cartridge/signal/toxins,/obj/item/weapon/cartridge/signal/toxins{pixel_x = -4; pixel_y = 2},/obj/item/weapon/cartridge/signal/toxins{pixel_x = 4; pixel_y = 6},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Research Director's Office"; dir = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor)
-"bAP" = (/obj/structure/closet/secure_closet/RD,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor)
+"bAP" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/sign/securearea{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bAQ" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor)
"bAR" = (/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor)
"bAS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/wall/r_wall,/area/crew_quarters/hor)
@@ -4161,7 +4161,7 @@
"bCa" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"bCb" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"})
"bCc" = (/turf/simulated/wall/r_wall,/area/toxins/mixing)
-"bCd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/toxins/mixing)
+"bCd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bCe" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/toxins/mixing)
"bCf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/toxins/mixing)
"bCg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/toxins/mixing)
@@ -4213,9 +4213,9 @@
"bDa" = (/obj/machinery/holosign_switch{pixel_x = 24; pixel_y = 2},/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/medical/sleeper)
"bDb" = (/obj/machinery/light/small{dir = 8},/obj/machinery/iv_drip,/turf/simulated/floor{dir = 8; icon_state = "whiteredcorner"},/area/medical/sleeper)
"bDc" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{dir = 4; icon_state = "whitered"},/area/medical/sleeper)
-"bDd" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper)
+"bDd" = (/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/mixing)
"bDe" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper)
-"bDf" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "5"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper)
+"bDf" = (/turf/simulated/floor{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/mixing)
"bDg" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2 (EAST)"; icon_state = "pipe-j2"; dir = 4},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/medbay)
"bDh" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/dr_gibb{pixel_x = -3; pixel_y = -1},/obj/item/weapon/reagent_containers/food/drinks/dr_gibb{pixel_x = 4; pixel_y = 3},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay)
"bDi" = (/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/engine,/area/toxins/misc_lab)
@@ -4234,13 +4234,13 @@
"bDv" = (/obj/structure/closet/secure_closet/scientist,/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
"bDw" = (/obj/structure/closet/secure_closet/scientist,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
"bDx" = (/obj/machinery/portable_atmospherics/canister,/obj/structure/window/reinforced{dir = 8},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{dir = 10; icon_state = "whitepurple"},/area/toxins/mixing)
-"bDy" = (/obj/machinery/portable_atmospherics/canister,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/toxins/mixing)
+"bDy" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/mixing)
"bDz" = (/obj/machinery/portable_atmospherics/scrubber,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/toxins/mixing)
-"bDA" = (/obj/machinery/portable_atmospherics/pump,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/toxins/mixing)
-"bDB" = (/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/screwdriver{pixel_y = 10},/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 6; icon_state = "whitepurple"},/area/toxins/mixing)
-"bDC" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/turf/simulated/floor{dir = 9; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/toxins/mixing)
-"bDD" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/trinary/filter{tag = "icon-intact_off (EAST)"; icon_state = "intact_off"; dir = 4},/turf/simulated/floor{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/mixing)
-"bDE" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor{tag = "icon-warnwhite (NORTHEAST)"; icon_state = "warnwhite"; dir = 5},/area/toxins/mixing)
+"bDA" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology)
+"bDB" = (/obj/structure/sign/securearea,/turf/simulated/wall,/area/toxins/xenobiology)
+"bDC" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology)
+"bDD" = (/obj/structure/sign/securearea,/turf/simulated/wall,/area/medical/virology)
+"bDE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/toxins/mixing)
"bDF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bDG" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'BOMB RANGE"; name = "BOMB RANGE"},/turf/simulated/wall,/area/toxins/test_area)
"bDH" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/mining/station)
@@ -4306,11 +4306,11 @@
"bEP" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; name = "hazard door east"},/obj/machinery/door/airlock/glass_research{name = "Toxins Lab"; req_access_txt = "8"},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
"bEQ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
"bER" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
-"bES" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
+"bES" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "45"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper)
"bET" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
-"bEU" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
-"bEV" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
-"bEW" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; dir = 10; pixel_x = 0; level = 2; initialize_directions = 10},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
+"bEU" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "45"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper)
+"bEV" = (/obj/machinery/portable_atmospherics/pump,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/toxins/mixing)
+"bEW" = (/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/screwdriver{pixel_y = 10},/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 6; icon_state = "whitepurple"},/area/toxins/mixing)
"bEX" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bEY" = (/turf/simulated/wall,/area/toxins/mixing)
"bEZ" = (/turf/simulated/floor/airless{dir = 9; icon_state = "warning"},/area/toxins/test_area)
@@ -4384,11 +4384,11 @@
"bGp" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"bGq" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/firedoor/border_only{dir = 4; name = "hazard door east"},/obj/machinery/door/airlock/glass_research{name = "Toxins Lab"; req_access_txt = "8"},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
"bGr" = (/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
-"bGs" = (/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
-"bGt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
+"bGs" = (/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor{dir = 9; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/toxins/mixing)
+"bGt" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/light{dir = 1},/turf/simulated/floor{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/mixing)
"bGu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
-"bGv" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_off"; name = "Gas pump"; on = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
-"bGw" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
+"bGv" = (/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/toxins/mixing)
+"bGw" = (/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor{tag = "icon-warnwhite (NORTHEAST)"; icon_state = "warnwhite"; dir = 5},/area/toxins/mixing)
"bGx" = (/obj/structure/sign/securearea{pixel_x = -32},/turf/simulated/floor{tag = "icon-warningcorner (NORTH)"; icon_state = "warningcorner"; dir = 1},/area/toxins/mixing)
"bGy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/mixing)
"bGz" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{tag = "icon-warningcorner"; icon_state = "warningcorner"; dir = 2},/area/toxins/mixing)
@@ -4450,17 +4450,17 @@
"bHD" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/storage)
"bHE" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"})
"bHF" = (/obj/structure/closet/bombcloset,/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
-"bHG" = (/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 5},/obj/item/device/transfer_valve{pixel_x = 5},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
+"bHG" = (/obj/structure/closet/secure_closet/RD,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor)
"bHH" = (/obj/item/device/assembly/prox_sensor{pixel_x = -4; pixel_y = 1},/obj/item/device/assembly/prox_sensor{pixel_x = 8; pixel_y = 9},/obj/item/device/assembly/prox_sensor{pixel_x = 9; pixel_y = -2},/obj/item/device/assembly/prox_sensor{pixel_x = 0; pixel_y = 2},/obj/structure/table,/turf/simulated/floor{dir = 9; icon_state = "whitepurple"},/area/toxins/mixing)
"bHI" = (/obj/item/device/assembly/signaler{pixel_x = 0; pixel_y = 8},/obj/item/device/assembly/signaler{pixel_x = -8; pixel_y = 5},/obj/item/device/assembly/signaler{pixel_x = 6; pixel_y = 5},/obj/item/device/assembly/signaler{pixel_x = -2; pixel_y = -2},/obj/structure/table,/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/mixing)
"bHJ" = (/obj/item/device/assembly/timer{pixel_x = 5; pixel_y = 4},/obj/item/device/assembly/timer{pixel_x = -4; pixel_y = 2},/obj/item/device/assembly/timer{pixel_x = 6; pixel_y = -4},/obj/item/device/assembly/timer{pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/mixing)
-"bHK" = (/obj/structure/dispenser,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/mixing)
-"bHL" = (/obj/machinery/atmospherics/pipe/tank{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor{dir = 5; icon_state = "whitepurple"},/area/toxins/mixing)
+"bHK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/research{name = "Toxins Launch Room Access"; req_access_txt = "8"},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
+"bHL" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
"bHM" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/obj/machinery/meter,/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
-"bHN" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
-"bHO" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
-"bHP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/research{name = "Toxins Launch Room Access"; req_access_txt = "8"},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
-"bHQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/toxins/mixing)
+"bHN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/toxins/mixing)
+"bHO" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
+"bHP" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
+"bHQ" = (/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 5},/obj/item/device/transfer_valve{pixel_x = 5},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/mixing)
"bHR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/mixing)
"bHS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/mixing)
"bHT" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/research{name = "Toxins Launch Room"; req_access_txt = "8"},/turf/simulated/floor,/area/toxins/mixing)
@@ -4518,9 +4518,9 @@
"bIT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/toxins/storage)
"bIU" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"})
"bIV" = (/obj/structure/sign/fire{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"})
-"bIW" = (/obj/structure/sign/nosmoking_2{pixel_x = -32},/obj/machinery/camera{c_tag = "Toxins Research"; dir = 4; network = list("RD"); pixel_y = -22},/obj/machinery/camera{c_tag = "Toxins Lab"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
-"bIX" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
-"bIY" = (/obj/machinery/power/apc{dir = 4; name = "Toxins Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
+"bIW" = (/obj/structure/dispenser,/turf/simulated/floor{dir = 5; icon_state = "whitepurple"},/area/toxins/mixing)
+"bIX" = (/obj/structure/closet/bombcloset,/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
+"bIY" = (/obj/machinery/power/apc{dir = 4; name = "Toxins Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable,/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
"bIZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/toxins/mixing)
"bJa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/mixing)
"bJb" = (/obj/machinery/camera{c_tag = "Toxins Launch Room Access"; dir = 1},/turf/simulated/floor{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/toxins/mixing)
@@ -4552,9 +4552,9 @@
"bJB" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bJC" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bJD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint)
-"bJE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/sign/securearea{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/maintenance/asmaint)
+"bJE" = (/obj/structure/sign/nosmoking_2{pixel_x = -32},/obj/machinery/camera{c_tag = "Toxins Research"; dir = 4; network = list("RD"); pixel_y = -22},/obj/machinery/camera{c_tag = "Toxins Lab"; dir = 4; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
"bJF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint)
-"bJG" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint)
+"bJG" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
"bJH" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bJI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bJJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
@@ -4586,12 +4586,12 @@
"bKj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"})
"bKk" = (/obj/machinery/door/poddoor{id = "mixvent"; name = "Mixer Room Vent"},/turf/simulated/floor/engine/vacuum,/area/toxins/mixing)
"bKl" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/engine/vacuum,/area/toxins/mixing)
-"bKm" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 0; icon_state = "in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine/vacuum,/area/toxins/mixing)
-"bKn" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_on"; on = 1},/turf/simulated/wall/r_wall,/area/toxins/mixing)
-"bKo" = (/obj/machinery/airlock_sensor{id_tag = "tox_airlock_sensor"; master_tag = "tox_airlock_control"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/engine,/area/toxins/mixing)
-"bKp" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/toxins/mixing)
-"bKq" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "tox_airlock_pump"; exterior_door_tag = "tox_airlock_exterior"; id_tag = "tox_airlock_control"; interior_door_tag = "tox_airlock_interior"; pixel_x = -24; pixel_y = 0; sanitize_external = 1; sensor_tag = "tox_airlock_sensor"},/obj/machinery/atmospherics/pipe/manifold4w/general/visible,/turf/simulated/floor{dir = 1; icon_state = "warnwhitecorner"; tag = "icon-warnwhitecorner (EAST)"},/area/toxins/mixing)
-"bKr" = (/obj/machinery/atmospherics/binary/pump{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/mixing)
+"bKm" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
+"bKn" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
+"bKo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
+"bKp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
+"bKq" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
+"bKr" = (/obj/structure/sign/redcross,/turf/simulated/wall/r_wall,/area/medical/chemistry)
"bKs" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/toxins/mixing)
"bKt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/maintenance/asmaint2)
"bKu" = (/obj/machinery/mass_driver{dir = 4; id = "toxinsdriver"},/turf/simulated/floor/plating,/area/toxins/mixing)
@@ -4648,9 +4648,9 @@
"bLt" = (/obj/machinery/door/airlock/glass_research{autoclose = 0; frequency = 1449; glass = 1; icon_state = "door_locked"; id_tag = "tox_airlock_exterior"; locked = 1; name = "Mixing Room Exterior Airlock"; req_access_txt = "8"},/turf/simulated/floor/engine,/area/toxins/mixing)
"bLu" = (/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume{dir = 2; frequency = 1449; id = "tox_airlock_pump"},/turf/simulated/floor/engine,/area/toxins/mixing)
"bLv" = (/obj/machinery/door/airlock/glass_research{autoclose = 0; frequency = 1449; glass = 1; icon_state = "door_locked"; id_tag = "tox_airlock_interior"; locked = 1; name = "Mixing Room Interior Airlock"; req_access_txt = "8"},/turf/simulated/floor/engine,/area/toxins/mixing)
-"bLw" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{tag = "icon-manifold (WEST)"; icon_state = "manifold"; dir = 8},/obj/machinery/meter,/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/mixing)
+"bLw" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Medbay Reception"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"bLx" = (/obj/machinery/atmospherics/valve{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/mixing)
-"bLy" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/mixing)
+"bLy" = (/obj/structure/sign/redcross,/turf/simulated/wall,/area/medical/medbay)
"bLz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/wrench,/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bLA" = (/obj/structure/closet/wardrobe/grey,/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bLB" = (/turf/simulated/floor/airless{dir = 5; icon_state = "warning"},/area/toxins/test_area)
@@ -4696,11 +4696,11 @@
"bMp" = (/obj/machinery/camera{c_tag = "Research Division South"; dir = 1; network = list("SS13"); pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"bMq" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"bMr" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"})
-"bMs" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; frequency = 1443; icon_state = "on"; id = "air_in"; on = 1},/turf/simulated/floor/engine/vacuum,/area/toxins/mixing)
-"bMt" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_on"; on = 1},/turf/simulated/wall/r_wall,/area/toxins/mixing)
-"bMu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/fire{pixel_y = -32},/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/engine,/area/toxins/mixing)
-"bMv" = (/obj/machinery/door_control{id = "mixvent"; name = "Mixing Room Vent Control"; pixel_x = -25; pixel_y = 5; req_access_txt = "7"},/obj/machinery/ignition_switch{id = "mixingsparker"; pixel_x = -25; pixel_y = -5},/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/turf/simulated/floor{dir = 4; icon_state = "warnwhitecorner"; tag = "icon-warnwhitecorner (EAST)"},/area/toxins/mixing)
-"bMw" = (/obj/machinery/light,/obj/machinery/atmospherics/binary/pump{dir = 8},/turf/simulated/floor{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/mixing)
+"bMs" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/aiModule/nanotrasen,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
+"bMt" = (/obj/machinery/conveyor{dir = 1; id = "garbage"},/obj/machinery/door/poddoor{density = 1; icon_state = "pdoor1"; id = "Disposal Exit"; name = "Disposal Exit Vent"; opacity = 1},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/maintenance/disposal)
+"bMu" = (/obj/structure/table,/obj/item/weapon/aiModule/asimov,/obj/item/weapon/aiModule/freeformcore,/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Core Modules"; req_access_txt = "20"},/obj/structure/window/reinforced,/obj/item/weapon/aiModule/corp,/obj/item/weapon/aiModule/paladin,/obj/item/weapon/aiModule/robocop,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
+"bMv" = (/obj/structure/table,/obj/item/weapon/aiModule/oxygen,/obj/item/weapon/aiModule/oneHuman,/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "High-Risk Modules"; req_access_txt = "20"},/obj/item/weapon/aiModule/purge,/obj/structure/window/reinforced,/obj/item/weapon/aiModule/antimov,/obj/item/weapon/aiModule/teleporterOffline,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload)
+"bMw" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/engine/engineering)
"bMx" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/toxins/mixing)
"bMy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bMz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
@@ -4797,7 +4797,7 @@
"bOm" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/maintenance/asmaint)
"bOn" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology)
"bOo" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology)
-"bOp" = (/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology)
+"bOp" = (/obj/machinery/power/apc{dir = 4; name = "Aft Port Solar APC"; pixel_x = 23; pixel_y = 2},/obj/machinery/camera{c_tag = "Aft Port Solar Control"; dir = 1},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/portsolar)
"bOq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bOr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bOs" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
@@ -4857,7 +4857,7 @@
"bPu" = (/turf/simulated/wall/r_wall,/area/medical/virology)
"bPv" = (/obj/structure/sign/biohazard,/turf/simulated/wall,/area/medical/virology)
"bPw" = (/obj/machinery/door/airlock/medical{name = "Virology Access"; req_access_txt = "39"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
-"bPx" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/virology)
+"bPx" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/space/rig,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig,/obj/item/clothing/shoes/magboots,/turf/simulated/floor,/area/engine/engineering)
"bPy" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bPz" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 13},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bPA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint)
@@ -4910,7 +4910,7 @@
"bQv" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "on"; id = "waste_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos)
"bQw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/virology)
"bQx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
-"bQy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/medical/virology)
+"bQy" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Xenobiology APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 1; icon_state = "whitegreencorner"},/area/toxins/xenobiology)
"bQz" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bQA" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bQB" = (/obj/structure/stool/bed/chair,/obj/item/weapon/storage/fancy/cigarettes,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint)
@@ -4921,7 +4921,7 @@
"bQG" = (/obj/structure/rack{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bQH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology)
"bQI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology)
-"bQJ" = (/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology)
+"bQJ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/light{dir = 1},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor{icon_state = "yellow"},/area/engine/engineering)
"bQK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/maintenance/asmaint2)
"bQL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bQM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
@@ -4967,14 +4967,14 @@
"bRA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; dir = 4; icon_state = "manifold-c"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area/atmos)
"bRB" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "virology_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bRC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/virology)
-"bRD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/medical/virology)
+"bRD" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/portsolar)
"bRE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bRF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bRG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bRH" = (/turf/simulated/wall/r_wall,/area/toxins/xenobiology)
"bRI" = (/obj/structure/sign/biohazard,/turf/simulated/wall,/area/toxins/xenobiology)
"bRJ" = (/obj/machinery/door/airlock/research{name = "Xenobiology Access"; req_access_txt = "55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
-"bRK" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/toxins/xenobiology)
+"bRK" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/portsolar)
"bRL" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bRM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bRN" = (/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "Aft Starboard Solar Access"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
@@ -5016,10 +5016,10 @@
"bSx" = (/turf/simulated/floor/engine/n20,/area/atmos)
"bSy" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "virology_airlock"; name = "exterior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bSz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/light,/turf/simulated/floor/plating,/area/medical/virology)
-"bSA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/medical/virology)
+"bSA" = (/obj/machinery/door/airlock/engineering{name = "Aft Port Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/portsolar)
"bSB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/toxins/xenobiology)
"bSC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
-"bSD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/toxins/xenobiology)
+"bSD" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft)
"bSE" = (/turf/simulated/wall/r_wall,/area/maintenance/starboardsolar)
"bSF" = (/obj/machinery/door/airlock/engineering{name = "Aft Starboard Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
"bSG" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/maintenance/starboardsolar)
@@ -5043,7 +5043,7 @@
"bSY" = (/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; dir = 1; icon_state = "manifold-c"; level = 2},/obj/machinery/meter,/turf/simulated/wall/r_wall,/area/atmos)
"bSZ" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/machinery/space_heater,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/atmos)
"bTa" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/turf/simulated/floor{icon_state = "caution"; dir = 4},/area/atmos)
-"bTb" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/simulated/floor,/area/atmos)
+"bTb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft)
"bTc" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos)
"bTd" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_on"; name = "Air to External"; on = 1},/turf/simulated/floor,/area/atmos)
"bTe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/turf/simulated/floor,/area/atmos)
@@ -5060,9 +5060,9 @@
"bTp" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine/n20,/area/atmos)
"bTq" = (/obj/structure/sign/biohazard,/turf/simulated/wall/r_wall,/area/medical/virology)
"bTr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_exterior"; locked = 1; name = "Virology Exterior Airlock"; req_access_txt = "39"},/obj/machinery/access_button{command = "cycle_exterior"; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -24; pixel_y = 0; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
-"bTs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/medical/virology)
+"bTs" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/simulated/floor,/area/atmos)
"bTt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/toxins/xenobiology)
-"bTu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/toxins/xenobiology)
+"bTu" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/l3closet,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/virology)
"bTv" = (/obj/machinery/power/apc{dir = 8; name = "Aft Starboard Solar APC"; pixel_x = -26; pixel_y = 3},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
"bTw" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
"bTx" = (/obj/machinery/power/smes{charge = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
@@ -5085,9 +5085,9 @@
"bTO" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "on"; id = "n2o_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine/n20,/area/atmos)
"bTP" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor{dir = 9; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/virology)
"bTQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
-"bTR" = (/obj/structure/closet/emcloset,/obj/machinery/camera/xray{c_tag = "Virology Access"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{tag = "icon-warnwhite (NORTHEAST)"; icon_state = "warnwhite"; dir = 5},/area/medical/virology)
+"bTR" = (/obj/structure/closet/emcloset,/obj/machinery/camera/xray{c_tag = "Virology Access"},/turf/simulated/floor{tag = "icon-warnwhite (NORTHEAST)"; icon_state = "warnwhite"; dir = 5},/area/medical/virology)
"bTS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/light,/turf/simulated/floor/plating,/area/toxins/xenobiology)
-"bTT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/toxins/xenobiology)
+"bTT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft)
"bTU" = (/obj/structure/stool,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/camera{c_tag = "Aft Starboard Solar Control"; dir = 4; network = list("SS13")},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
"bTV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
"bTW" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
@@ -5113,7 +5113,7 @@
"bUq" = (/turf/simulated/wall/r_wall,/area)
"bUr" = (/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/virology)
"bUs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
-"bUt" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/l3closet,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/virology)
+"bUt" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bUu" = (/turf/simulated/wall,/area/medical/virology)
"bUv" = (/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bUw" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
@@ -5122,7 +5122,7 @@
"bUz" = (/obj/structure/lattice,/obj/structure/lattice,/turf/space,/area)
"bUA" = (/obj/structure/sign/biohazard,/turf/simulated/wall/r_wall,/area/toxins/xenobiology)
"bUB" = (/obj/machinery/access_button{command = "cycle_exterior"; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -24; pixel_y = 0; req_access_txt = "55"},/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "xeno_airlock_exterior"; locked = 1; name = "Xenobiology External Airlock"; req_access_txt = "55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
-"bUC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/toxins/xenobiology)
+"bUC" = (/obj/structure/closet/l3closet/scientist,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology)
"bUD" = (/obj/machinery/power/solar_control{id = "starboardsolar"; name = "Aft Starboard Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
"bUE" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "solar_xeno_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "10;13"},/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
"bUF" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
@@ -5131,7 +5131,7 @@
"bUI" = (/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "robotics_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/plating,/area/maintenance/aft)
"bUJ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "robotics_pump"},/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "robotics_pump"; exterior_door_tag = "robotics_outer"; frequency = 1379; id_tag = "robotics_airlock"; interior_door_tag = "robotics_inner"; pixel_x = 0; pixel_y = -25; req_access_txt = "13"; sensor_tag = "robotics_sensor"},/turf/simulated/floor/plating,/area/maintenance/aft)
"bUK" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "robotics_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/aft)
-"bUL" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/aft)
+"bUL" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "robotics_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/aft)
"bUM" = (/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/maintenance/aft)
"bUN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/aft)
"bUO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/aft)
@@ -5156,18 +5156,18 @@
"bVh" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos)
"bVi" = (/obj/structure/closet/wardrobe/virology_white,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bVj" = (/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = 29},/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/camera{c_tag = "Virology Break Room"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
-"bVk" = (/obj/machinery/light{dir = 1},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
-"bVl" = (/obj/structure/closet/l3closet/virology,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
+"bVk" = (/obj/structure/closet/l3closet,/turf/simulated/floor{dir = 6; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/virology)
+"bVl" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bVm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/wall,/area/medical/virology)
"bVn" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/access_button{command = "cycle_interior"; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = 8; pixel_y = -28; req_access_txt = "39"},/turf/simulated/floor{dir = 10; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/virology)
-"bVo" = (/obj/structure/closet/l3closet,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 6; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/virology)
+"bVo" = (/obj/machinery/light{dir = 1},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/closet/l3closet/virology,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bVp" = (/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bVq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bVr" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bVs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bVt" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{dir = 9; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/toxins/xenobiology)
"bVu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
-"bVv" = (/obj/structure/closet/emcloset,/obj/machinery/camera/xray{c_tag = "Xenobiology Access"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{tag = "icon-warnwhite (NORTHEAST)"; icon_state = "warnwhite"; dir = 5},/area/toxins/xenobiology)
+"bVv" = (/obj/structure/closet/emcloset,/obj/machinery/camera/xray{c_tag = "Xenobiology Access"},/turf/simulated/floor{tag = "icon-warnwhite (NORTHEAST)"; icon_state = "warnwhite"; dir = 5},/area/toxins/xenobiology)
"bVw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
"bVx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
"bVy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "solar_xeno_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
@@ -5183,7 +5183,7 @@
"bVI" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2"; icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft)
"bVJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft)
"bVK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft)
-"bVL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft)
+"bVL" = (/obj/structure/table,/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line)
"bVM" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/engine/break_room)
"bVN" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room)
"bVO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "caution"},/area/engine/break_room)
@@ -5202,7 +5202,7 @@
"bWb" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos)
"bWc" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bWd" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
-"bWe" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
+"bWe" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bWf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/virology)
"bWg" = (/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_interior"; locked = 1; name = "Virology Interior Airlock"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bWh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/virology)
@@ -5212,7 +5212,7 @@
"bWl" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/virology)
"bWm" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology)
"bWn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
-"bWo" = (/obj/structure/closet/l3closet/scientist,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology)
+"bWo" = (/obj/structure/closet/l3closet/scientist,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 6; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/toxins/xenobiology)
"bWp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
"bWq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "solar_xeno_pump"; exterior_door_tag = "solar_xeno_outer"; frequency = 1379; id_tag = "solar_xeno_airlock"; interior_door_tag = "solar_xeno_inner"; pixel_x = 25; req_access_txt = "13"; sensor_tag = "solar_xeno_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "solar_xeno_sensor"; pixel_x = 25; pixel_y = 12},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "solar_xeno_pump"},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
"bWr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft)
@@ -5249,7 +5249,7 @@
"bWW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bWX" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/embedded_controller/radio/access_controller{exterior_door_tag = "virology_airlock_exterior"; id_tag = "virology_airlock_control"; interior_door_tag = "virology_airlock_interior"; name = "Virology Access Console"; pixel_x = 8; pixel_y = 22},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bWY" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
-"bWZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/light{dir = 1},/obj/machinery/firealarm{pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
+"bWZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/light{dir = 1},/obj/machinery/firealarm{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bXa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Virology APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera{c_tag = "Virology Module"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bXb" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bXc" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
@@ -5265,7 +5265,7 @@
"bXm" = (/turf/simulated/wall,/area/toxins/xenobiology)
"bXn" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/access_button{command = "cycle_interior"; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = 8; pixel_y = -28; req_access_txt = "55"},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{dir = 10; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/toxins/xenobiology)
"bXo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
-"bXp" = (/obj/structure/closet/l3closet/scientist,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 6; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/toxins/xenobiology)
+"bXp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bXq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/toxins/xenobiology)
"bXr" = (/obj/machinery/atmospherics/pipe/vent{dir = 8},/turf/simulated/floor/plating/airless,/area)
"bXs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
@@ -5280,7 +5280,7 @@
"bXB" = (/obj/structure/table,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/item/weapon/storage/belt/utility,/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line)
"bXC" = (/obj/structure/table,/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line)
"bXD" = (/obj/structure/computerframe,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line)
-"bXE" = (/obj/structure/table,/obj/item/clothing/glasses/welding,/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line)
+"bXE" = (/obj/machinery/portable_atmospherics/canister/air,/turf/unsimulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/centcom/control)
"bXF" = (/obj/structure/table,/turf/simulated/floor,/area/assembly/assembly_line)
"bXG" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line)
"bXH" = (/obj/structure/closet/crate,/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line)
@@ -5306,7 +5306,7 @@
"bYb" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bYc" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bYd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
-"bYe" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
+"bYe" = (/obj/machinery/portable_atmospherics/scrubber,/turf/unsimulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/centcom/control)
"bYf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bYg" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bYh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
@@ -5365,7 +5365,7 @@
"bZi" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = 30},/obj/machinery/camera{c_tag = "Xenobiology Module North"; dir = 2; network = list("SS13"); pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
"bZj" = (/obj/machinery/embedded_controller/radio/access_controller{exterior_door_tag = "xeno_airlock_exterior"; id_tag = "xeno_airlock_control"; interior_door_tag = "xeno_airlock_interior"; name = "Xenobiology Access Console"; pixel_x = 8; pixel_y = 22},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light_switch{pixel_x = -6; pixel_y = 26},/turf/simulated/floor{dir = 4; icon_state = "whitegreencorner"},/area/toxins/xenobiology)
"bZk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/toxins/xenobiology)
-"bZl" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Xenobiology APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 1; icon_state = "whitegreencorner"},/area/toxins/xenobiology)
+"bZl" = (/obj/machinery/door/airlock/centcom{name = "ERT Access"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry)
"bZm" = (/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
"bZn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating/airless,/area/solar/starboard)
"bZo" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/port)
@@ -5403,7 +5403,7 @@
"bZU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
"bZV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
"bZW" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
-"bZX" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
+"bZX" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/energy,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/handcuffs,/obj/item/device/flash,/obj/item/weapon/melee/baton,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/control)
"bZY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
"bZZ" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area)
"caa" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area)
@@ -5572,7 +5572,7 @@
"cdh" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/portsolar)
"cdi" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes{charge = 0},/turf/simulated/floor/plating,/area/maintenance/portsolar)
"cdj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/maintenance/portsolar)
-"cdk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/aft)
+"cdk" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/weapon/storage/backpack/security,/obj/item/weapon/storage/belt/security,/obj/item/weapon/storage/box,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/control)
"cdl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft)
"cdm" = (/obj/machinery/optable{name = "Robotics Operating Table"},/turf/simulated/floor{icon_state = "white"},/area/assembly/assembly_line)
"cdn" = (/obj/machinery/computer/operating{icon_state = "operatingb"; name = "Robotics Operating Computer"; stat = 1},/turf/simulated/floor{icon_state = "white"},/area/assembly/assembly_line)
@@ -5616,14 +5616,14 @@
"cdZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "robotics_solar_pump"},/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "robotics_solar_pump"; exterior_door_tag = "robotics_solar_outer"; frequency = 1379; id_tag = "robotics_solar_airlock"; interior_door_tag = "robotics_solar_inner"; pixel_x = 0; pixel_y = -25; req_access_txt = "13"; sensor_tag = "robotics_solar_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "robotics_solar_sensor"; pixel_x = 12; pixel_y = -25},/turf/simulated/floor/plating,/area/maintenance/portsolar)
"cea" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "robotics_solar_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/portsolar)
"ceb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "robotics_solar_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/portsolar)
-"cec" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/portsolar)
+"cec" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/weapon/storage/backpack/security,/obj/item/weapon/storage/belt/security,/obj/item/weapon/storage/box,/obj/item/weapon/tank/emergency_oxygen/double,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/centcom/control)
"ced" = (/turf/simulated/floor/plating,/area/maintenance/portsolar)
-"cee" = (/obj/machinery/door/airlock/engineering{name = "Aft Port Solar Access"; req_access_txt = "10"},/turf/simulated/floor/plating,/area/maintenance/portsolar)
+"cee" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/energy,/obj/item/weapon/storage/box/flashbangs,/obj/item/device/flash,/obj/item/weapon/melee/baton,/obj/item/weapon/gun/energy/ionrifle,/obj/item/weapon/handcuffs,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/centcom/control)
"cef" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/maintenance/aft)
"ceg" = (/obj/machinery/shieldgen,/turf/simulated/floor/plating,/area/engine/engineering)
"ceh" = (/obj/machinery/the_singularitygen{anchored = 0},/turf/simulated/floor/plating,/area/engine/engineering)
"cei" = (/obj/machinery/power/apc{cell_type = 15000; dir = 1; name = "Engineering APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "yellow"},/area/engine/engineering)
-"cej" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/light{dir = 1},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor{icon_state = "yellow"},/area/engine/engineering)
+"cej" = (/turf/simulated/floor{icon_state = "red"; dir = 10},/area/centcom/control)
"cek" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/engine/engine_smes)
"cel" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engine_smes)
"cem" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/engine/engine_smes)
@@ -5652,8 +5652,8 @@
"ceJ" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating/airless,/area/solar/port)
"ceK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/maintenance/portsolar)
"ceL" = (/obj/machinery/power/solar_control{id = "portsolar"; name = "Aft Port Solar Control"; track = 0},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/portsolar)
-"ceM" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/portsolar)
-"ceN" = (/obj/machinery/power/apc{dir = 4; name = "Aft Port Solar APC"; pixel_x = 23; pixel_y = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera{c_tag = "Aft Port Solar Control"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/portsolar)
+"ceM" = (/obj/structure/reagent_dispensers/watertank,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"ceN" = (/turf/simulated/floor{icon_state = "blue"; dir = 6},/area/centcom/control)
"ceO" = (/obj/structure/closet/wardrobe/black,/obj/machinery/camera{c_tag = "Aft Port Solar Access"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/aft)
"ceP" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft)
"ceQ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/aft)
@@ -5662,7 +5662,7 @@
"ceT" = (/turf/simulated/floor/plating,/area/engine/engineering)
"ceU" = (/obj/machinery/door/poddoor{id = "Secure Storage"; name = "Secure Storage"},/turf/simulated/floor/plating,/area/engine/engineering)
"ceV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering)
-"ceW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/engine/engineering)
+"ceW" = (/turf/simulated/floor{icon_state = "red"; dir = 6},/area/centcom/control)
"ceX" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering)
"ceY" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering)
"ceZ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/engine/engineering)
@@ -5737,7 +5737,7 @@
"cgq" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/solar_control,/obj/item/weapon/tracker_electronics,/obj/item/weapon/paper/solar,/turf/simulated/floor,/area/engine/engineering)
"cgr" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig,/turf/simulated/floor,/area/engine/engineering)
"cgs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig,/turf/simulated/floor,/area/engine/engineering)
-"cgt" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/space/rig,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig,/turf/simulated/floor,/area/engine/engineering)
+"cgt" = (/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/centcom/control)
"cgu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/engine/chiefs_office)
"cgv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office)
"cgw" = (/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
@@ -8820,10 +8820,10 @@
"dnF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/eva)
"dnG" = (/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact-f"},/turf/simulated/floor,/area/mine/eva)
"dnH" = (/turf/simulated/floor,/area/mine/eva)
-"dnI" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor,/area/mine/eva)
+"dnI" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/lights/mixed,/obj/item/device/flash,/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
"dnJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/eva)
-"dnK" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/eva)
-"dnL" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/eva)
+"dnK" = (/obj/structure/rack,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/combat,/obj/item/clothing/gloves/latex,/obj/item/clothing/suit/space/ert/medical,/obj/item/clothing/head/helmet/space/ert/medical,/obj/item/device/radio/headset/ert,/obj/item/clothing/mask/breath,/obj/item/weapon/card/id/centcom,/obj/item/device/pda/medical,/obj/item/clothing/glasses/hud/health,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"dnL" = (/obj/structure/rack,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/combat,/obj/item/clothing/gloves/red,/obj/item/clothing/suit/space/ert/security,/obj/item/clothing/head/helmet/space/ert/security,/obj/item/device/radio/headset/ert,/obj/item/clothing/mask/breath,/obj/item/weapon/card/id/centcom,/obj/item/device/pda/security,/obj/item/clothing/glasses/sunglasses/sechud,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
"dnM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/eva)
"dnN" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor,/area/mine/west_outpost)
"dnO" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/mine/west_outpost)
@@ -8855,10 +8855,10 @@
"doo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor,/area/mine/production)
"dop" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/glass_mining{name = "Mining Station EVA"; req_access_txt = "54"},/turf/simulated/floor,/area/mine/eva)
"doq" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/mine/eva)
-"dor" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor,/area/mine/eva)
+"dor" = (/obj/structure/rack,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/combat,/obj/item/clothing/gloves/yellow,/obj/item/clothing/suit/space/ert/engineer,/obj/item/clothing/head/helmet/space/ert/engineer,/obj/item/device/radio/headset/ert,/obj/item/clothing/mask/breath,/obj/item/weapon/card/id/centcom,/obj/item/device/pda/engineering,/obj/item/clothing/glasses/meson,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
"dos" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/eva)
"dot" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/eva)
-"dou" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"; tag = "icon-asteroidfloor"},/area/mine/eva)
+"dou" = (/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
"dov" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/west_outpost)
"dow" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/west_outpost)
"dox" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "54"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/mine/west_outpost)
@@ -8885,8 +8885,8 @@
"doS" = (/obj/machinery/mech_bay_recharge_port,/turf/simulated/floor/plating,/area/mine/eva)
"doT" = (/turf/simulated/floor/mech_bay_recharge_floor,/area/mine/eva)
"doU" = (/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor,/area/mine/eva)
-"doV" = (/obj/structure/closet/emcloset,/turf/simulated/floor,/area/mine/eva)
-"doW" = (/obj/structure/ore_box,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/eva)
+"doV" = (/obj/structure/rack,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/gloves/purple,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/device/radio/headset/ert,/obj/item/clothing/mask/breath,/obj/item/weapon/card/id/centcom,/obj/item/device/pda/janitor,/obj/item/clothing/glasses/science,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"doW" = (/obj/structure/rack,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/combat,/obj/item/clothing/gloves/blue,/obj/item/clothing/suit/space/ert/commander,/obj/item/clothing/head/helmet/space/ert/commander,/obj/item/device/radio/headset/ert,/obj/item/clothing/mask/breath,/obj/item/weapon/card/id/centcom,/obj/item/device/pda/captain,/obj/item/clothing/glasses/sunglasses/sechud,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
"doX" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/west_outpost)
"doY" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/west_outpost)
"doZ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/mine/west_outpost)
@@ -8898,7 +8898,7 @@
"dpf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/living_quarters)
"dpg" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1},/turf/simulated/floor,/area/mine/living_quarters)
"dph" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/machinery/light,/turf/simulated/floor,/area/mine/living_quarters)
-"dpi" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/mine/living_quarters)
+"dpi" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/weapon/storage/backpack/security,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/storage/box,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
"dpj" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/mine/living_quarters)
"dpk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/living_quarters)
"dpl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/living_quarters)
@@ -8925,7 +8925,7 @@
"dpG" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/living_quarters)
"dpH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "48"},/turf/simulated/floor/plating,/area/mine/living_quarters)
"dpI" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/living_quarters)
-"dpJ" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/mine/living_quarters)
+"dpJ" = (/obj/structure/table/reinforced,/obj/item/stack/sheet/metal,/obj/item/stack/sheet/glass,/obj/item/stack/sheet/rglass,/obj/item/stack/sheet/plasteel,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
"dpK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/living_quarters)
"dpL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/production)
"dpM" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/mine/production)
@@ -8948,7 +8948,7 @@
"dqd" = (/turf/simulated/floor/plating,/area/mine/living_quarters)
"dqe" = (/obj/structure/closet/emcloset,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/living_quarters)
"dqf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/living_quarters)
-"dqg" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/mine/living_quarters)
+"dqg" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/centcom/control)
"dqh" = (/obj/machinery/status_display{layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor,/area/mine/production)
"dqi" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/mine/production)
"dqj" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/obj/structure/plasticflaps/mining,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production)
@@ -8975,14 +8975,14 @@
"dqE" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/living_quarters)
"dqF" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/living_quarters)
"dqG" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/mine/living_quarters)
-"dqH" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"; tag = "icon-asteroidfloor"},/area/mine/living_quarters)
+"dqH" = (/turf/simulated/floor{dir = 5; icon_state = "yellow"},/area/centcom/control)
"dqI" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor,/area/mine/production)
"dqJ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/production)
"dqK" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/obj/machinery/camera{c_tag = "Shuttle Airlock"; dir = 8; network = list("MINE")},/obj/machinery/conveyor_switch/oneway{id = "mining_internal"; name = "mining conveyor"},/obj/machinery/light{dir = 4},/turf/simulated/floor,/area/mine/production)
"dqL" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/production)
"dqM" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production)
"dqN" = (/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"; tag = "icon-asteroidfloor"},/area/mine/explored)
-"dqO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"; tag = "icon-asteroidfloor"},/area/mine/explored)
+"dqO" = (/turf/simulated/floor{dir = 4; icon_state = "whitecorner"},/area/centcom/control)
"dqP" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored)
"dqQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/floor/plating,/area/mine/production)
"dqR" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/simulated/floor/plating,/area/mine/production)
@@ -9033,6 +9033,30 @@
"drK" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production)
"drL" = (/obj/machinery/mineral/stacking_machine,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production)
"drM" = (/obj/machinery/conveyor{tag = "icon-conveyor0 (SOUTHWEST)"; icon_state = "conveyor0"; dir = 10; id = "mining_internal"},/obj/machinery/mineral/input,/turf/simulated/floor{dir = 8; icon_state = "loadingarea"; tag = "loading"},/area/mine/production)
+"drN" = (/turf/simulated/floor{icon_state = "whitehall"; dir = 5},/area/centcom/control)
+"drO" = (/turf/simulated/floor{dir = 9; icon_state = "yellow"},/area/centcom/control)
+"drP" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/energy,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/toxin,/obj/item/device/flash,/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/centcom/control)
+"drQ" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/weapon/storage/backpack/security,/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/obj/item/weapon/storage/box,/obj/item/weapon/tank/emergency_oxygen/double,/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/centcom/control)
+"drR" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/weapon/storage/backpack/security,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/box,/obj/item/weapon/tank/emergency_oxygen/double,/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/centcom/control)
+"drS" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/energy,/obj/item/device/flash,/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/centcom/control)
+"drT" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1},/turf/simulated/floor,/area/mine/eva)
+"drU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor/plating,/area/mine/eva)
+"drV" = (/obj/structure/dispenser/oxygen,/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/turf/simulated/floor,/area/mine/eva)
+"drW" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"},/turf/simulated/floor,/area/mine/eva)
+"drX" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "mining_east_pump"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/eva)
+"drY" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/eva)
+"drZ" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_east_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"; tag = "icon-asteroidfloor"},/area/mine/eva)
+"dsa" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining_east_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = null},/turf/simulated/floor/airless{tag = "icon-asteroidwarning (EAST)"; icon_state = "asteroidwarning"; dir = 4},/area/mine/explored)
+"dsb" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_east_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = null},/turf/simulated/floor,/area/mine/eva)
+"dsc" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "mining_east_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = null},/turf/simulated/floor,/area/mine/eva)
+"dsd" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "mining_east_pump"; exterior_door_tag = "mining_east_outer"; frequency = 1379; id_tag = "mining_east_airlock"; interior_door_tag = "mining_east_inner"; pixel_x = 0; pixel_y = -25; req_access_txt = null; sensor_tag = "mining_east_sensor"},/turf/simulated/floor,/area/mine/eva)
+"dse" = (/obj/structure/ore_box,/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "mining_east_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/mine/eva)
+"dsf" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "mining_west_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = null},/turf/simulated/floor,/area/mine/living_quarters)
+"dsg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"dsh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_inner"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/turf/simulated/floor,/area/mine/living_quarters)
+"dsi" = (/obj/machinery/light/small{dir = 4},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "mining_west_sensor"; pixel_x = 25; pixel_y = -5},/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "mining_west_pump"; exterior_door_tag = "mining_west_outer"; frequency = 1379; id_tag = "mining_west_airlock"; interior_door_tag = "mining_west_inner"; pixel_x = 25; pixel_y = 5; req_access_txt = null; sensor_tag = "mining_west_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "mining_west_pump"},/turf/simulated/floor,/area/mine/living_quarters)
+"dsj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"; tag = "icon-asteroidfloor"},/area/mine/living_quarters)
+"dsk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "mining_west_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = null},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"; tag = "icon-asteroidfloor"},/area/mine/explored)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -9132,9 +9156,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanJanIaaaaaaaaaaaaaaaaaaaaaajpaafamdameameameameamfamgamhamiamiamiamiamjaafajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamkanKanLamkanManManNanOanNanManManPanPanPanPanQanPanPanRanSanTaivaivanUaivaivaivaivaivajlajlajlajlajlanVanWanXanYaiVaiWanZaoaaobaocaodaivaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajpaafamxamxamxamxamxaafalZaafamxamxamxamxamxaafajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaoeaofaoeaaaaaaaaaaaaaaaaaaaaaajpaafamyamyamyamyamyaafamgaafamyamyamyamyamyaafajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagamkaogaohamkaoiaojaokaolaomaonanMaooaopaoqaoraosaotaouaovamIaowaivanWaoxaoyaoyaoyaoyaoyaozaoyaoyaoyaoAaoBaoCaoDaoEaoFaoGaoHaoIaoJaoKaoLaivaafaoMaoNaoNaoOaoNaoNaoPaaaaaaaaaaaaaaaajqaaaaaaaaaaafaaaaaaaaaalZaaaaaaaaaaafaaaaaaaaaajqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoQaoRaoSaaaaoTaoUaoVaaaaafaoWanIaoWaaaaaaaaaaaaaaaaaaaaaajqaaaaaaaaaaafaaaaaaaaaamgaaaaaaaaaaafaaaaaaaaaajqaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafamkamkamkamkaohamkaoXaoYaoYaoZaoYapaanMapbapcapcapcaosapdapeamHamIaowaivapfapgaphaphaphaphapiapgaphapjaphapgaphaphapjaphapkaplapmapnapoappapqapqapqaprapsapsapsapsapsaprapqaaaaaaaaaaaaajpaafalEalEalEalEalEaafalZaafalEalEalEalEalEaafajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaptapuapvapuaptapwapxapwaptaafaoWapyapzaaaaaaaaaaaaaaaaaaaaaajpaafalGalGalGalGalGaafamgaafalGalGalGalGalGaafajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafamkapAapBamkaohamkapCaoYapDaoZaoYapEanMapFapcapGapHaosapcapeamHamIapIaivajmapJapKapLapMapNapOapPapNapQapRapSapNapTapUapVapWapXapYapZaqaaqbaqcaqdapqaprapsapsapsapsapsaprapqaafaaaaaaaaaajqaafalWalXalXalXalXalYalZamaambambambambamcaafajpaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqeapuaqfapuaqeapwaqgapwaqeaqhaqiaqjaqkaqlaqlaqmaqhaqhaafaaaajpaafamdameameameameamfamgamhamiamiamiamiamjaafajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafamkaqnaqoaqpaqqaqraqsaqtaquaoZaqvaqwanMaqxaqyaqzaqzaqAaqBapeamHamIaowaivajmapJaqCaqDapMapNaqEaqFapNaqGaqHaqIapNaqJaqHaqKapqaqLaqMaqNaqOaqPaqQaqRaqSaqTapsapsapsapsapsaqUapqapqapqaaaaaaajqaaaamxamxamxamxamxaafalZaafamxamxamxamxamxaaaajXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqeaqVaqWaqXaqeaqYaqZaraaqeanIanIarbarcardarearfargaqhaaaaaaajXaaaamyamyamyamyamyaafamgaafamyamyamyamyamyaaaajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagamkarhanKamkariamkarjarkarlarmarnaroanMarparqarrarrarsartaruarvarwarxaryarzarAaqCapLapMapNarBaqFapNapNarCapNapNapNarDapNapqarEarFarGarHarIarJaqParKarLapsapsapsapsapsarMarNarOarPaaaaaaajqaaaaafaaaaafaafaaaaaaalZaaaaaaaafaaaaaaaafaaaajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaptapuapvapuaptapwapxapwaptaafaoWapyapzaaaaaaaaaaaaaaaaaaaaaajpaafalGalGalGalGalGaafamgaafalGalGalGalGalGaafajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafamkapAapBamkaohamkapCaoYapDaoZaoYapEanMapFapcapGapGaosapcapeamHamIapIaivajmapJapKapLapMapNapOapPapNapQapRapSapNapTapUapVapWapXapYapZaqaaqbaqcaqdapqaprapsapsapsapsapsaprapqaafaaaaaaaaaajqaafalWalXalXalXalXalYalZamaambambambambamcaafajpaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqeapuaqfapuaqeapwaqgapwaqeaqhaqiaqjaqkaqlaqlaqmaqhaqhaafaaaajpaafamdameameameameamfamgamhamiamiamiamiamjaafajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafamkaqnaqoaqpaqqaqraqsaqtaquaoZaqvaqwanMaqxarsaqzaqzaqAaqBapeamHamIaowaivajmapJaqCaqDapMapNaqEaqFapNaqGaqHaqIapNaqJaqHaqKapqaqLaqMaqNaqOaqPaqQaqRaqSaqTapsapsapsapsapsaqUapqapqapqaaaaaaajqaaaamxamxamxamxamxaafalZaafamxamxamxamxamxaaaajXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqeaqVaqWaqXaqeaqYaqZaraaqeanIanIarbarcardarearfargaqhaaaaaaajXaaaamyamyamyamyamyaafamgaafamyamyamyamyamyaaaajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagamkarhanKamkariamkarjarkarlarmarnaroanMarparqarrarraqyartaruarvarwarxaryarzarAaqCapLapMapNarBaqFapNapNarCapNapNapNarDapNapqarEarFarGarHarIarJaqParKarLapsapsapsapsapsarMarNarOarPaaaaaaajqaaaaafaaaaafaafaaaaaaalZaaaaaaaafaaaaaaaafaaaajpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqearQarRarSaqearQarRarSaqearTarUarVarVarVarVarWarXaoeaaaaaaajpaaaaafaaaaafaafaaaaaaarYaaaaaaaafaaaaaaaafaaaajpaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaagamkamkamkamkariamkarZasaasaasbasaasaasaascasdasdasdasdaseasfasgamIashaivasiapgasjapLaskaslarBasmasnasoaspaspasqasraspassastasuarFasvaswasxasyaszasAasBapsapsapsapsapsasBasCasDasEaaaaaaajqajqajpaaaaaaaafaaaaaaalZaaaaafaafaafaafajpajpajpaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaptaqeasFasGaptaqeasFasGaptaqhasHaqhaqhaqhaqhaqhasIaoWaaaaaaajpajpajpaaaaaaaafaaaasJasKasJaafaafaafaafajpajpajpaafamkamkamkamkasLasMasMasMasMasMasMasMasNamkamkasOasPasQamkasRanKasSasTasUasVasVasVasWasVasVasVasXasYasYasYasZasZataatbatcatdanhateatfatgathatiapNarBatjatjatkatlatlatmatkatjatjatnatoatpasvaswasxasyaszatqatrapsapsapsapsapsatratsasDasEaaaaaaaaaaaaaafaafaaaaafaaaaaaattaaaaaaaafaaaaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatuatvatvatvatwatvatvatvatxatyatzatxatxatxatAaqhatBaoWaaaaafaafaaaaaaaaaaaaaafaaaatCatDatEaafaaaaafaaaaaaaaaaaaaaaamkanKanKatFanKanKanKanKanKanKanKanKatGatHatIatJatJatJatJatJatJatKatLatMatNatNatNatOatNatNatNatNatNatNatNatNatNatNatPatQatRatSatTarAapNapNapNapNaqEatUatjatkatlatVatlatWatXatYatZauaaqMaubaucaudaueaufaugauhapsapsapsapsapsauiaujaukaulaaaaaaaaaaaaaaaaafaaaaafaaaaumaunaumaaaaafaaaaaaaafaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -9156,63 +9180,63 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaauoaOTaOUaOTaOTaOTaOTaOTaOTaOUaOTaOTaOVauqauqaOWauqauqaOXauqaOYaOZaPaaPbaPcaMfaNzaPdaPeaMiaPfaNIaNIaNIaNIaNIaNJaPgaNIaNIaNIaNOaMlaPhaPiaPjaMoaNTaMqaPkaPlaPmaPnaMvaPoaPpaPqaPraPsaPtaFCaFCaFDaNZaaaaaaaaaaaaaMzaMzaMzaMzaPuaPvaPwaPxaPyaPzaPAaPBaPCaPDaPEaMzaMzaMzaMzaaaaaaaaaaaaaOkaFBaFCaFCaPFaHwaPGaHwaHwaHwaPHaPIaPIaPJaOpaPKaOsaPLaOsaPMaOvaPNaPOaPPaPQaPRaPSaOvaPTaPUaPVaOEaPWaPXaOEaPYaLIaGaaGdaGeaNcaEDaLNaLOaEDaEDaEDaPZaQaaEDaQbaBgaQcaQdaQeaOMaOMaQfaQeaQgaBgaQhaQiaQiaQiaQiaQjaQkaNraNraQlaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaptaptaQmaQnaQnaQnaQnaQnaQnaQnawyaptaqeaQoaQpaQqaQqaQqaQraQqaQqaQqaQsaQqaQsaMfaNzaQtaQuaMiaQvaNIaNIaQwaQxaQyaQzaQwaNIaNIaNIaQAaMlaQBaQCaQDaMoaQEaMqaQFaQGaQHaQIaMvaQJaQKaQLaPqaQMaQNaFCaFCaFDaHgaMyaQOaQPaMzaMzaQQaQRaQSaQTaQUaQUaQVaQWaQUaQVaQWaQUaQXaQYaQZaRaaRbaMzaMzaQPaQOaHbaRcaFBaFCaFCaFPaRdaReaRfaRgaHwaRhaRiaRgaRjaOpaPKaRkaOsaRlaFWaOvaRmaRnaRoaRpaRqaRraOvaRsaRtaRuaOEaRvaRwaOEaRxaRyaGaaGdaGeaRzaRzaLNaLOaRAaEDaEDaRBaEDaRCaRDaBgaREaRFaRGaOMaOMaRHaRGaRIaBgaRJaQiaQiaQiaQiaQiaRKaRLaRMaRNaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaROaROaROaROaROaROaROaROaROaROaROaROaafaRPawtausauqaRQaRRaRSaRTaRUaRVaRWaRXaRYaRZaSaaSbaScaSdaMiaSeaNIaNIaQwaQyaSfaSgaQwaNIaNIaNIaNOaMlaMoaMoaShaMoaSiaSjaSjaSjaSjaSkaSlaSmaPqaPqaPqaPqaQNaFCaFCaFDaFEaFEaSnaSoaSpaMzaSqaPzaQUaSraQUaQUaQUaQUaSsaQUaQUaQUaStaSuaSuaSvaSwaMzaSxaSoaSyaSzaFEaFBaFCaFCaPFaHwaPGaHwaHwaSAaRhaSBaRgaRjaOpaPKaOsaOsaOsaSCaOvaSDaSEaSFaSGaSHaRraSIaFWaLIaRuaSJaOEaOEaOEaRxaLIaGaaSKaGeaBaaBaaSLaLOaSMaSNaEDaSOaSPaHOaSQaSRaSSaSTaSUaSVaSVaSWaSXaSYaSRaSZaTaaQiaQiaQiaQjaTbaNraNraTcaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaROaROaROaROaROaROaROaROaROaROaROaROaROaTdaTeaTfavuaTgaThaTiaTjaTkaTlaTmaTnaToaTjaTpaTqaTraTsaTtaMiaTuaNIaTvaTwaTxaTxaTyaTxaTxaTxaTzaTAaTBaNzaTCaTDaTEaTFaNzaNzaTGaMfaTHaMvaTIaTJaTKaTLaTLaTMaFCaFCaFCaFCaFCaTNaTOaTPaTQaTRaTSaQUaTTaTUaTVaTWaTXaTYaTZaUaaUbaUcaUdaTRaUeaUfaUgaUhaUiaUjaUkaUlaUmaFCaUnaFPaUoaReaRfaRgaHwaRhaRiaRgaRjaOpaUpaUqaUraUsaFWaOvaSDaOvaUtaOvaUuaRraUvaFWaMWaRuaOEaOEaOEaOEaRxaNaaGaaUwaUxaUyaUzaUAaUBaUCaUCaUCaUCaUCaUCaUDaUEaUFaOMaOMaOMaOMaOMaOMaUGaUHaUIaQiaQiaQiaQiaQjaOSaaaaafaafaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaROaROaROaROaROaROaROaROaROaROaROaROaROaTdaTeaTfavuaTgaThaTiaTjaTkaTlaTmaTnaToaTjaTpaTqaTraTsaTtaMiaTuaNIaTvaTwaTxaTxaTyaTxaTxaTxaTzaTAaTBaNzaTCaTDaTEaTFaNzaNzaTGaMfapHaMvaTIaTJaTKaTLaTLaTMaFCaFCaFCaFCaFCaTNaTOaTPaTQaTRaTSaQUaTTaTUaTVaTWaTXaTYaTZaUaaUbaUcaUdaTRaUeaUfaUgaUhaUiaUjaUkaUlaUmaFCaUnaFPaUoaReaRfaRgaHwaRhaRiaRgaRjaOpaUpaUqaUraUsaFWaOvaSDaOvaUtaOvaUuaRraUvaFWaMWaRuaOEaOEaOEaOEaRxaNaaGaaUwaUxaUyaUzaUAaUBaUCaUCaUCaUCaUCaUCaUDaUEaUFaOMaOMaOMaOMaOMaOMaUGaUHaUIaQiaQiaQiaQiaQjaOSaaaaafaafaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaROaROaROaROaROaROaROaROaROaROaROaROaROavtarRavtauqaUJaQsaUKaULaUMaUMaUMaUMaUNaUOaQqaUPaUQaURaUSaUTaUTaUTaUUaUTaUVaUWaUXaUYaUZaUZaVaaNOaVbaVcaVdaVeaVfaVgaVhaVhaViaVjaVkaVlaVmaVnaVnaVnaVoaMvaVpaFCaVqaVraVsaVtaVuaVvaVwaVxaVyaVzaVAaMzaMzaMzaMzaMzaMzaVBaVCaVDaVEaTUaVFaVGaMzaVvaVuaVHaVIaVraVJaFCaFCaPFaHwaVKaHwaHwaHwaKuaHwaHwaRjaHwaVLaVLaVLaVLaVMaVNaVOaOvaOvaOvaVPaVQaVRaFWaVSaVTaOEaVUaVUaVVaVTaVWaGaaVXaVYaVZaWaaLNaLNaLNaLNaWbaLNaLNaLNaWcaUHaOMaOMaOMaOMaOMaOMaOMaUGaUHaUIaQiaQiaWdaQiaWeaOSaafaafaaaaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaROaROaROaROaROaROaROaROaROaROaROaROaROaWfaWgaTfavuaWhaWiaWjaWkaWlaWmaWnaUMaWoaWpaQqaWqaWraURaUSaWsaWtaWuaWvaUTaWwaWxaWyaMiaWzaWAaWBaWCaMiaWDaWEaWFaWFaWFaWFaWGaWFaWFaWHaWIaWIaWIaWJaWIaWKaWLaWMaWMaWNaWOaWPaWPaWPaWPaWQaWRaWSaWRaWTaWUaWUaWUaWUaWUaWUaWUaWUaWVaWWaWWaWXaWWaWWaWWaWWaWWaWWaWWaVJaFCaFCaFPaWYaWZaXaaXbaHwaXcaHwaXdaXeaXfaVLaXgaXhaXiaFWaFWaFWaXjaXkaXkaXkaFWaFWaFWaXlaOEaOEaXmaXnaXoaXpaKBaGaaXqaVYaXraBaaXsaXtaXuaSNaXvaXtaXwaSNaXxaBgaXyaEPaXzaOMaOMaXzaEPaXAaBgaXBaXCaXDaQiaQiaQjaOSaaaaafaafaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaROaROaROaROaROaROaROaROaROaROaROaROaafauoaXEaMcaXFaQsaXGaXGaXHaXIaXJaXHaXKaXGaQqaXLaXMaXNaXOaXPaXPaXQaXRaXPaXSaWxaXTaMiaWzaWAaXUaXVaMiaXWaWEaWFaXXaXYaXYaXYaXZaWFaYaaYbaYcaYdaWLaWLaWLaWLaFCaFCaYeaYfaYgaYhaYiaYjaYkaYlaYmaYnaWTaWUaYoaYpaYqaYraYsaYtaYuaWVaWWaYvaYwaYxaYyaYzaYAaYBaYCaWWaYDaYEaYEaFPaFPaFPaFPaFPaYFaPFaYFaYGaYHaFPaOmaFPaFPaFPaYIaYJaYJaYJaYJaYJaYJaYKaYJaYIaKBaYLaYLaYMaVZaVZaVZaVZaYIaXqaYNaXraBaaBaaBaaBaaBaaYOaBaaBaaBaaBaaBgaYPaYQaYRaYRaYRaYRaYSaBgaBgaYTaQiaYUaQiaQiaQjaQkaNraNraTcaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawqaptaYVaxmaTfaqeaqeaqeaqeaqeaqeaYWaXFaQsaQqaQqaQqaQqaQqaQqaQqaQqaQqaYXaNzaURaUSaWsaYYaYZaZaaUTaZbaZcaZdaMiaWzaWAaZeaZfaMiaXWaWEaWFaXYaZgaZgaXYaZgaWFaYaaZhaZiaZiaZjaZkaZlaWLaZmaFCaVqaZnaZoaZpaZqaZraZraZqaZsaZtaWTaWUaZuaZvaZwaZxaZyaZzaZAaZBaZCaYCaYCaYCaZDaZEaZFaYCaZGaWWaVJaZHaFCaICaVZaVZaVZaVZaVZaVZaVZaVZaVZaZIaVZaVZaVZaVZaZJaVZaVZaVZaVZaVZaVZaVZaVZaZKaVZaVZaVZaVZaVZaVZaVZaVZaZLaZMaZNaZOaZPaZOaZOaZOaZQaZRaZSaZOaZTaZOaZUaZVaZOaZOaZOaZOaZOaZOaZOaZWaZXaZYaYUaQiaQiaQiaRNaZZaRMaRNaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaafbabawtausbacbadbaebaebaebaebaebaebafbagaMfaTGaNzaURaUSaUTaUTbahbaiaUTaMiaMibajaMiaWzbakaZebalaMiaXWaWEaWFbambanaXYaZgbaoaWFaYabapaZiaZiaZibaqbaraWLbasaFCaVqbatbaubavbawbaxbaybazaZsbaAaWTaWUbaBbaCbaDbaDbaDbaEbaFaWUbaGbaHaYCaYCaZDbaIaZFaYCbaJaWWbaKaFCaFCaICaVZaVZaVZaVZaVZaVZaVZaVZaVZbaLaVZaVZaVZaVZaVZaVZbaMaZOaZOaZOaZOaZOaZObaNaZOaZOaZOaZOaZOaZOaZObaObaPbaQbaRaVZaVZaVZaVZaVZaVYaVZaVZaVZaVZaVZaVZaVZaVZaVZaVZaVZaVZbaSaVZbaTaQiaQiaYUaQiaQibaUaTbaNraNraQlaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaaTdaTeaTfavubaVbaWbaXbaXbaYbaXbaXbaXbaZaMfaMfaMfaMfaURaUSaWsbbabbbbbcaUTbbdbbebbfaMiaMiaMiaMibbgaMiaXWaWEaWFbbhaXYaZgbbibbjaWFaYaaWLbbkaZiaZibblbbmaWLbbnaFCaVqbbobbpbavbawbbqbbrbazaZsbbsaWTbbtbbubbvbaDbbwbaDbbxbbybbzbaGbbAbbBbbCbbDbbDbbEaYCbbFaWWaVJbbGaFCaICaVZaVZaVZbbHaVZbbIbbJbbJbbJbbKbbJbbJbbJbbLaVZaVZaVZaVZbbMaVZbbHbbNbbObbPaVZaVZaVZbbQbbRbbSbbTbbUbbVbbWaVZaVZaVZaVZaVZbbXbbYbbMaVZaVZaVZaVZaVZaVZaVZaVZaVZaVZaVZaVZaVZbbZbcabcbbccbcdbcebcfbcgaafaaaaafaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaavtarRavtauqbchbaXbcibcjbckbckbclbcmbcnbcobcobcobcobcpbcqbcrbcrbcsbctbcrbcubcubcvbcubcwbcxbcxbcybcxbczbcAbcBbcCbcDbcDbcEbcFbcBbcGbcHbcIaZiaZibblbcJbcKbbnaFCaVqbcLbcMbcNaZqaZqaZqaZqaZsbcOaWTaWUbcPbcQbcRbcSbcTbcQbcUaWUbaGbcVbcWbcXbcYbcZbdabdbbdcaWWbddbdebdebdfbdfbdfbdfbdfbdfbdfbdgbdhbdibdjbdkbdkbdgbdlbdlbdlbdlbdlbdlbdmbdmbdmbdnbdmbdmbdmbdobdpbbXbdqbdrbdsbdtbduaVZaVZbdvbdvbdwbdwbdwbdwbdwbdxbdybdybdzbdyaVZbdybdzbdybdybdAbdBbdBbdBbdBbdCbdDbdEaNrbdFaaaaaaaaaaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaaWfaWgaTfavubdGbaXbdHbaXbdIbdJbaXbaXbaXaNzbdKbdLbdLbdMaUTaWsbdNaYZbdOaUTbdPbdQbdRbdRbdSbdTbdUbdVbdWbdUbdXbdYbdZbeabdZbdZbebbecbedbeebefaZiaZibegbehbeibbnaFCbejbcLbekbelbembenbeobepbeqaWTaWTaWUberbesbetbeubevbewbexaWUbaGbeybezbeAbeBbeCbdaaYCbeDaWWaVJaFCbeEbdfbeFbeGbeHbeIbeJbeKbeLbeMbeMbeNbeObeObeMbePbeQbeRbeSbeTbdlbeUbeVbeWbeXbeYbeZbfabfbbfcbfbbfbbfbbfdbfebffbfgbffbfhbfhbdwbfibfjbfkbdwbflbfmbflbdwbdxbdybdAbdBbfnbfobfnbdBbfpbfqbdBbfrbdDaaaaafaaaaaaaaaaaaaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaavtarRavtauqbchbaXbcibcjbckbckbclbcmbcnbcobcobcobcobcpbcqbcrbcrbcsbctbcrbcubcubcvbcubcwbcxbcxbcybcxbczbcAbcBbcCbcDbcDbcEbcFbcBbcGbcHbcIaZiaZibblbcJbcKbbnaFCaVqbcLbcMbcNaZqaZqaZqaZqaZsbcOaWTaWUbcPbcQbcRbcSbcTbcQbcUaWUbaGbcVbcWbcXbcYbcZbdabdbbdcaWWbddbdebdebdfbdfbdfbdfbdfbdfbdfbLybdkbdkbdjbdhbdibLybdlbdlbdlbdlbdlbdlbdmbdmbdmbdnbdmbdmbdmbdobdpbbXbdqbdrbdsbdtbduaVZaVZbdvbdvbdwbdwbdwbdwbdwbdxbdybdybdzbdyaVZbdybdzbdybdybdAbdBbdBbdBbdBbdCbdDbdEaNrbdFaaaaaaaaaaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaaWfaWgaTfavubdGbaXbdHbaXbdIbdJbaXbaXbaXaNzbdKbdLbdLbdMaUTaWsbdNaYZbdOaUTbdPbdQbdRbdRbdSbdTbdUbdVbdWbdUbdXbdYbdZbeabdZbdZbebbecbedbeebefaZiaZibegbehbeibbnaFCbejbcLbekbelbembenbeobepbeqaWTaWTaWUberbesbetbeubevbewbexaWUbaGbeybezbeAbeBbeCbdaaYCbeDaWWaVJaFCbeEbdfbeFbeGbeHbeIbeJbeKbeLbeObeObeNbeMbeMbeMbePbeQbeRbeSbeTbdlbeUbeVbeWbeXbeYbeZbfabfbbfcbfbbfbbfbbfdbfebffbfgbffbfhbfhbdwbfibfjbfkbdwbflbfmbflbdwbdxbdybdAbdBbfnbfobfnbdBbfpbfqbdBbfrbdDaaaaafaaaaaaaaaaaaaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaaaaaaaaawsaXEaMcbfsbaXbdHbaXbftbfubfvbfwbaXbfxaNzbfyaNzbfzaUTaUTaUTaUTaUTaUTbfAbfBbfCaNzbfDaWFaWFaWFbfEaWFaWFaWFbfFaWFaWFaWFaWFbfGbfHbfIbfJaZiaZibblbfKbcKbbnaFCbfLbcLbfMbelaWTaWTaWTaWTbfNaWTbfObfPbfQbfRaYobfSaYobfTbfUbfVbfWbeybfXaYCbfYbfZbdabgaaYCbgbbgcbgdbgebdfbgfbggbghbgibgjbgkbglbgmbeObgnbeObeObgobgpbgqbgrbgsbgtbdlbgubgvbgwbgvbgxbgybdmbgzbgAbgBbgCbdrbgDbgEbgFbgGbgHbgIbgJbgKbgLbgMbgLbgNbgObgPbgQbdwbgRbgSbgTbdBbgUbgVbgWbgXbgYbgZbdBbfrbdDaaaaafaaaaaaaaaaaaaGuaGuaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawqaptaYVaxmaWgaQnaQnaQnaQnbhaavuauqauqbaXbhbbhcbhdbfvbhebhfbhgbhhbhhbhhbhhbhibhjbhjbhjbdUbdUbdUbhkbhlbhlbhlbhmaWFbhnbhobhpbhqbhrbhsbhtbhubhvbhwbhxbhybhzbhAbhBbhCbhDbhEbhFbhFbhGbgdbhHbhIbhJbhKbhLbhMbhNbhObhPbhQbhRbfVbfVbfVbfVbhSbfVbfVbfVbfVbhTbhUbhVbhWbhXbhYbhZbiabibbicbidaFCaFCbdfbiebifbigbgibihbiibglbijbikbilbikbikbimbinbiobipbiqbirbdlbisbgvbitbgvbgxbiubdmbivbiwbixbiybdrbgDbizbiAbiBbiBbiCbiDbiEbiFbiFbiFbiGbiHbiIbiJbiKbiLbiMbiNbiObiPbiQbgYbiRbiSbiTbdBbfrbiUaafaafaaaaaaaaaaaaaaaaGuaGuaGuaGuaGuaGuaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiVbiWarRavtatvatvaMcauqauqbaXbiXbiYbfvbiZbaXbaXbaXaMfbjabjbbjcbjdbjcbjcbjcbjdbjcaMfaMfaWFaWFaWFbjeaWFbhtbhtbjfbhtbhtbhtbhtbhtbjgbjhbjibjjbjkbjlbjlbjlbjmbjnbjobjpbjqbjrbjsbjtbjubjubjvbjwbjxbjybjzbjAbjBbjCbjDbjEbjFbjGbjHbjEbjIbjCbjJbeybjKbjLbjKaWWaWWaWWbjMbaGbjNaFCaFCbdfbjObjPbjQbgibjRbjSbglbgnbeObjTbjUbjVbjWbdlbjXbjYbjZbkabdlbisbkbbgvbgvbgxbgybdmbdrbdrbdrbdrbdrbgDbgEbkcbkdbkebkfbkgbkhbkibkjbkkbkkbklbgLbkmbdwbknbkobkpbdBbkqbkrbksbktbkubkvbdBbfrbkwaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaabiVarRarRavtaupaupbkxaupaupbaXbkybiYbfvbfvbaXaaaaaaaaaaafaafbkzbkzbkzbkzbkzbkzbkzaaaaaabkAbkBbkCbkDbkEbhtbhtbhtbhtbhtbhtbhtbhtbkFbfJaZibkGbkHbkIbkJbkKbkLbhzaWLaWLbkMbkNbkObkPbkQbkRbkRbkSbkRbkTbkUbkRabVbkVbkWbjEbkXbjGbkXbjEbkYbkVbjJbkZblabbDblbblcbldbleblfblgblhaFCblibljblkbllbjQbgiblmbeKblnbgnbeObjUblobeOblpbdlbgqblqblrblsbdlbltblublvblwblxblwblyblzblzblzblzblzblAbgEblBbgGbgGbkfblCblDblEblFblGblGblHblIblJbdwblKbkoblLbdBblMblNblObktbgYblPbdBbfrblQaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauoavtavtblRblSawqaptblTblSbaXblUblVblWbdJbaXaaaaaaaaaaaaaaabkzbkzbkzbkzbkzbkzbkzaaaaaablXblYbhtblZbmabmabmabmabmabmbbmabmabmabmcbmdbmebmfbmgbmhbmibmjbblbmkbmlbmmbbnbmnbmobkPbkPbkRbmpbmqbmrbmsbmtbkRbmubmvbmwbmxbmybmzbmybmAbmBbmCbmDbkZbmEbbDbmFaWWbmGbjKbmHbmIblhaFCaFCbdfbmJbmKbjQbmLbmMbeKbmNbmObmPbmQbmRbeObmSbmTbmUbmVbmWbmXbdlbdmbmYbdmbdmbmZbmZbmZbmZbmZbmZbmZbmZbgDbgEbkcbkdbkebnabnbbncbndbnebnebneblHbgLbnfbngbnhbgSbnibdBbnjbnkbnlbnmbgYbnnbdBbfrbdDaafaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkzbkzbkzbkzbkzbkzbkzbnpbnqbnrbnsbhtbhtbhtbntbntbntbntbkDbhtbhtbhtbjgbnuaZibnvbnwbnxbnybnzbblaZibnAbnBbbnbmnbnCbnDbnEbnFbnGbnHbnIbnJbnKbkRabVbnLbnMbjEbmybnNbmybjEbnObnPbjJbnQbnRbnSbnTaWWbnUbjKbnVbmIblhaFCaFCbdfbnWbnXbjQbnYbnZbeKboabgnbeObobbocbodboebdlbofbogbohboibdlbojbokbolbombonboobopboqborbosbotboubfdbfebovbowboxboybozbgKboAbnebnebneboBbgLboCbdwboDboDboEbdBboFboGboHboIbgYboJbdBbfrbdDbdDaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkzbkzbkzbkzbkzbkzbkzboKboLboKboMboNbhtbhtbhtbhtbhtbhtbkDbhtboOaWFaWFboPaZiaZiboQboRboSboTbblaZiaZiboUaFCbmnboVboWboXboYboZbpabpbbpcbpdbkRabVbnPbnPbpebpfbpgbjEbphbpibpjbpkbplbpmbpmbpmbpmbpmbpmbpnbpobppbdebdebpqbprbpsbptbpubeKbeKbpvbgnbeObeObeObeObpwbpxbeObpybeObpzbpAbpBbpCbeObpDbpEbpFbpGbpHbpIbpJbpKbmZbpLbpMbpNbpNbpObpPbpQbgKbpRbgLbgLbpSbpTbgLbpUbgKbpVbpWbpXbpYbpZbqabqbbqcbfnbdBbdBbfrbqdbdDaafaaaaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiVbiWarRavtatvatvaMcauqauqbaXbiXbiYbfvbiZbaXbaXbaXaMfbjabjbbjcbjdbjcbjcbjcbjdbjcaMfaMfaWFaWFaWFbjeaWFbhtbhtbjfbhtbhtbhtbhtbhtbjgbjhbjibjjbjkbjlbjlbjlbjmbjnbjobjpbjqbjrbjsbjtbjubjubjvbjwbjxbjybjzbjAbjBbjCbMubjEbjFbjGbjHbjEbMvbjCbjJbeybjKbjLbjKaWWaWWaWWbjMbaGbjNaFCaFCbdfbjObjPbjQbgibjRbjSbglbgnbeObjTbjUbjVbjWbdlbjXbjYbjZbkabdlbisbkbbgvbgvbgxbgybdmbdrbdrbdrbdrbdrbgDbgEbkcbkdbkebkfbkgbkhbkibkjbkkbkkbklbgLbkmbdwbknbkobkpbdBbkqbkrbksbktbkubkvbdBbfrbkwaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaabiVarRarRavtaupaupbkxaupaupbaXbMtbiYbfvbfvbaXaaaaaaaaaaafaafbkzbkzbkzbkzbkzbkzbkzaaaaaabkAbkBbkCbkDbkEbhtbhtbhtbhtbhtbhtbhtbhtbkFbfJaZibkGbkHbkIbkJbkKbkLbhzaWLaWLbkMbkNbkObkPbkQbkRbkRbkSbkRbkTbkUbkRabVbkVbkWbjEbkXbjGbkXbjEbkYbkVbjJbkZblabbDblbblcbldbleblfblgblhaFCblibljblkbllbjQbgiblmbeKblnbgnbeObjUblobeOblpbdlbgqblqblrblsbdlbltblublvblwblxblwblyblzblzblzblzblzblAbgEblBbgGbgGbkfblCblDblEblFblGblGblHblIblJbdwblKbkoblLbdBblMblNblObktbgYblPbdBbfrblQaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauoavtavtblRblSawqaptblTblSbaXblUblVblWbdJbaXaaaaaaaaaaaaaaabkzbkzbkzbkzbkzbkzbkzaaaaaablXblYbhtblZbmabmabmabmabmabmbbmabmabmabmcbmdbmebmfbmgbmhbmibmjbblbmkbmlbmmbbnbmnbmobkPbkPbkRbmpbmqbmrbmsbmtbkRbmubmvbMsbmxbmybmzbmybmAbmBbmCbmDbkZbmEbbDbmFaWWbmGbjKbmHbmIblhaFCaFCbdfbmJbmKbjQbmLbmMbeKbmNbmObmPbmQbmRbeObmSbmTbmUbmVbmWbmXbdlbdmbmYbdmbdmbmZbmZbmZbmZbmZbmZbmZbmZbgDbgEbkcbkdbkebnabnbbncbndbnebnebneblHbgLbnfbngbnhbgSbnibdBbnjbnkbnlbnmbgYbnnbdBbfrbdDaafaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkzbkzbkzbkzbkzbkzbkzbnpbnqbnrbnsbhtbhtbhtbntbntbntbntbkDbhtbhtbhtbjgbnuaZibnvbnwbnxbnybnzbblaZibnAbnBbbnbmnbnCbnDbnEbnFbnGbnHbnIbnJbnKbkRabVbnLbnMbjEbmybnNbmybjEbnObnPbjJbnQbnRbnSbnTaWWbnUbjKbnVbmIblhaFCaFCbdfbnWbnXbjQbnYbnZbeKboabgnbeObobbocbLwboebdlbofbogbohboibdlbojbokbolbombonboobopboqborbosbotboubfdbfebovbowboxboybozbgKboAbnebnebneboBbgLboCbdwboDboDboEbdBboFboGboHboIbgYboJbdBbfrbdDbdDaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkzbkzbkzbkzbkzbkzbkzboKboLboKboMboNbhtbhtbhtbhtbhtbhtbkDbhtboOaWFaWFboPaZiaZiboQboRboSboTbblaZiaZiboUaFCbmnboVboWboXboYboZbpabpbbpcbpdbkRabVbnPbnPbpebpfbpgbjEbphbpibpjbpkbplbpmbpmbpmbpmbpmbpmbpnbpobppbdebdebKrbprbpsbptbpubeKbeKbpvbgnbeObeObeObeObpwbpxbeObpybeObpzbpAbpBbpCbeObpDbpEbpFbpGbpHbpIbpJbpKbmZbpLbpMbpNbpNbpObpPbpQbgKbpRbgLbgLbpSbpTbgLbpUbgKbpVbpWbpXbpYbpZbqabqbbqcbfnbdBbdBbfrbqdbdDaafaaaaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaeaaaaaaaaabkzbkzbkzbkzbkzbkzbkzbqebqfbqebqgbhtbhtbhtbntbntbntbntbkDbhtbqhbqiaWFbqjaZiaZiboQbqkbmiboTbqlbqmbmebqnbqobqpblhaOkboXbqqbqrbqsbqtbqubqvbqwbqxbqybqzbqAbqBbnNbqBbpibqCbqDbqDbplbqEbqFbqGbqHbqIbqJbqKbqLbqMaUlaUlbqNbqObqPbqQbqRbqSbqTbqUbqVbqUbqWbqUbqUbqXbqYbqUbqYbqUbqUbqUbqZbrabrbbrcbpEbrdbpGbrebrebrfbrgbmZbgDbgEbrhbribrjbrkbrkbgKbrlbrmbrnbgKbrobgLbrpbrqbrrbrsbrtbrubrubrvbrwbrxbrybrzbrAbfrbrBbdDaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaabkzbkzbkzbkzbkzbkzbkzbrCbnqbrDbrEbhtbhtbhtbhtbhtbhtbhtbkDbhtbqhbrFaWFbrGbaqaZibrHbmebrIbmebrJaZibnAbmmbbnaFCblhaOkboXbkRbrKbrLbrMbrNbrObkSbrPbrQbrRbrSbpjbrTbrUbrVbrWbrXbrYbplbrZbsabsbbscbsdbsdbsebsfbsgaFCaFCbshbsibgnbeObsjbskbslbsmbsnbsmbsobsmbspbsqbpBbsrbpBbpBbssbstbsubsubsvbswbsxbsybpGbszbsAbpJbrgbmZbdsbgEbffbsBbsCbsBbsBbgKbgKbgKbgKbgKbsDbsEbsFbsGbsHbsIbsJbsKbsKbsLbsMbkobsNbnhbnhbfrbrBbiUaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaabkzbkzbkzbkzbkzbkzbkzbqebqfbqebsObsPbhtbhtbsQbsRbsSbsRbsTbsRbsUbsVbcBbsWbsXbhCbsYbhCbsZbhDbsXbtabtbbnBbbnaFCbtcbtdbtebkRbtfbtgbthbtibtjbkSbtkbtlbtmbtnbtobtpbtqbtrbtsbttbtubtvbtwbtxbtxbtybtzbtAbtBbpobtCaFCaOlbdgbmNbtDbeObtEbtFbtGbtHbtIbtJbtKbtLbtGbtHbtMbtMbtHbtGbtNbdkbsubtObrebrebtPbpEbpGbtQbtRbtSbtTbmZbtUbtVbtWbtXbtYbsKbsKbtZbuabsKbubbucbudbuebufbsKbugbuhbuibujbukbulbumbumbumbumbumbfrbrBbkwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaabkzbkzbkzbkzbkzbkzbkzbqebqfbqebsObsPbhtbhtbsQbsRbsSbsRbsTbsRbsUbsVbcBbsWbsXbhCbsYbhCbsZbhDbsXbtabtbbnBbbnaFCbtcbtdbtebkRbtfbtgbthbtibtjbkSbtkbtlbtmbtnbtobtpbtqbtrbtsbttbtubtvbtwbtxbtxbtybtzbtAbtBbpobtCaFCaOlbLybmNbtDbeObtEbtFbtGbtHbtIbtJbtKbtLbtGbtHbtMbtMbtHbtGbtNbdkbsubtObrebrebtPbpEbpGbtQbtRbtSbtTbmZbtUbtVbtWbtXbtYbsKbsKbtZbuabsKbubbucbudbuebufbsKbugbuhbuibujbukbulbumbumbumbumbumbfrbrBbkwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaabkzbkzbkzbkzbkzbkzbkzbunbuobunbupbuqburburburburburbusbutbhtbqhbuuaWFbuvbuwbuxbuybjhbkHbuzbuAbkKaWLaWLbuBaFCbuCbuDboXbkRbuEbuFbuGbrLbuHbkSbuIbuJbuKbuLbuMbuNbuObuPbuQbuRbuSbplbuTbuUbuVbuWbtzbtAbtBbpobuXaFCaFCbuYbuZbvabeObtEbvbbtGbvcbvdbvebvfbvgbtGbvhbvibvibvjbtGbvkbeObsubvlbrebvmbvnbvobvpbvqbvrbvrbvsbvtbvubvvbvwbvxbvybrubrubvzbrubvAbrubrvbrubrubrubrubvBbvCbvDbvEbvFbvGbvHbvIbvJbvKbumbfrbrBbkwaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkzbkzbkzbkzbkzbkzbkzbvLbvMbvNaWFaWFbvObnqbnqbnqbvPaWFaWFbvQbvRbvSaWFbvTbvTbvTbvUbvTbvVbvWbvXbvYbvZbvVbbnaFCbwabwbaQObkRbqwbwcbwdbwdbwebwfbwgbwhbwibwgbwjbwkbwlbwmbwnbwnbwnbwobpmbpmbpmbpmbpmbpmbpmbpobuXaFCbwpbtGbtGbwqbwrbwsbtGbtGbwtbwubwvbwwbwwbwxbwybwzbwAbwybwBbvkbeObsubwCbwDbwEbwFbwGbwHbwIbwFbwFbwJbwKbwLbwMbwNbwNbwNbwNbwNbwObwNbwNbwPbwQbwRbwSbwSbwTbwUbwVbwWbvEbwXbwYbwZbxabxbbxcbumbfrbrBblQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnoaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkzbkzbkzbkzbkzbkzbkzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxdaafaaaaaaaaaaaabvTbxebxfbxgbxhbvVbxibxjbxkbxlbvVbbnaFCbxmbxnbxobxnbxpbxqbxrbxsbxtbxuaUlbxvaUlbxwbxxbxybxzaIGbxAaFCaIVbxBaIWaFCbxCaFCaFCaFCbxDbxEbuXaFCbxFbtGbxGbxHbxIbxJbxKbxLbxMbxNbxObwwbwwbxPbwybxQbxRbxSbwBbvkbxTbsubxUbxVbxWbxXbxYbxZbyabybbycbmZbmZbdsbydbwNbyebyfbygbyhbyibyjbykbwPbylbymbynbwSbwSbyobwVbwWbypbyqbyrbysbytbyubyvbumbfrbrBbdDbdDbdDbdDbdDaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDeaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkzbkzbkzbkzbkzbkzbkzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvTbywbyxbyybyzbyAbyBbyCbyDbyEbvVbbnbyFbyGaFCaFCaFCaFCaFCbxraFCbyHaFCaFCbyIaFCaFCbyJbyKbyLaFCaFCaFCaFCbxBaFCaFCbxCaFCaFCaFCbyMbyNbuXbyObyPbyQbyRbySbyTbyUbyVbyWbyXbyYbyZbzabvgbtGbzbbzcbzdbzebtGbvkbeObsubsubsubsubsubmZbmZbmZbmZbmZbmZbzfbzgbzhbwNbzibzjbzkbzlbzmbznbzobwPbzpbzqbzrbzrbwSbzsbztbzubzvbzwbzxbyubzybzzbzAbumbfrbrBbdDbzBbzCbzCbdDaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbzDbzEbzEbzFbzGbzGbzHbzHbzHbzHbzIaafaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkzbkzbkzbkzbkzaaaaaaaaaaaaaaaaaaaaaaaabzJbzKbzLbzKbzMaaaaaaaaabvTbvTbzNbzObyybzObzPbzQbzRbzSbzTbvVbzUbbnbzVbzWbqobzXbqobzYbzZbqobqpaFCbAabAbbgdbgdbAcaUlaUlaUlaUlaUlaUlbAdbAeaUlbAfbAgaUlbAhbAibAjbAkaFCaFCbtGbAlbAmbAnbwsbtGbtGbtHbAobtHbtGbtGbtGbtGbtGbtGbtGbtGbvkbeObApbAqbArbvbbAsbmNbAtbAubAvbAwbAxbAybAzbAAbwNbABbACbygbADbAEbAFbAGbwPbAHbzqbzrbzrbwSbAIbAJbAKbALbAMbANbAObAPbAQbARbASbATbAUbAUbAUbAUbAVbdDaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbAWbAXbAYbAXbzGbzHbzHbAZbBabAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBbbBcbBdbBcbBbbBebBfbBgbvTbBhbzObBibBjbBkbBlbBmbBmbBnbBobvVbBpbBpbBqbBpaQOaQOaQOaQObBrbBrbBrbBrbBrbBrbBrbBrbBsbBtbBtbBubBubBubBubBvbBwbBubBubBubBubBxbBybBzaFHaHibBAbtGbBBbBCbBDbBEbBFbtGbBGbBHbBIbtHbBJbBJbBKbBLbBMbBNbtHbBObeObeObeObeObeObvkbmQbBPbBQbBRbBSbmNbBTbBUbBVbBVbBVbBVbBVbBVbBVbBVbBVbwPbBWbBXbBYbBYbwSbBZbCabCbbCcbCcbCcbCcbCdbCebCfbCgbCcbCcbCcbCcbrBbChbCiaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagbCjbAXbAXbCkbzHbzHbAZbAZbClbAZbAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzLbCmbCnbCmbzLbCobCpbCqbvTbCrbCsbzObCtbCubvVbCvbCwbCxbCybvVbCzbCzbCAbBpaaaaaaaaaaaabBrbCBbCCbCDbCEbCFbCGbBrbCHbCIbCJbBubCKbCLbCMbCNbCObCPbCQbCRbCSbCTbCUbCVbCWbCXbBxbtGbCYbBHbxObCZbDabtGbDbbBHbDcbDdbwwbwwbwwbwwbwwbDebDfbDgbpBbpBbpBbpBbssbvkbobbBPbBQbBRbDhbmNbBTbBUbBVbDibDjbDjbDkbDlbDmbDnbDobwPbDpbDqbDrbDrbwSbDsbDtbwWbDubDvbDwbDxbDybDzbDAbDBbDCbDDbDEbCcbrBbChbDFaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabDGbzHbCjbzHbzHbAZbAZbAZbAZbAZbAZbAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBbbCmbCmbCmbDHbDIbzObzObDJbDKbzObzObDLbDMbvVbvVbvVbDNbvVbvVbDObDPbDQbDRaaabDSbDTbDUbDVbDWbCGbDXbDYbDZbEabEbbEcbEdbEebEfbEgbEhbEibEjbEkbElbEmbBubBubEnbEobEpbEqbErbEsbEtbwwbBHbEubCZbwwbEvbEwbBHbExbtGbEybEzbwwbwwbEAbEBbmNbmNbmNbmNbmNbECbvkbvkbEDbBQbBQbBRbEEbEFbEGbBUbBVbEHbEIbDjbEJbDjbDjbDjbEKbwPbELbzqbEMbEMbwSbwUbENbEObEPbEQbEQbEQbEQbERbESbETbEUbEVbEWbCcbdDbEXbdDbEYbEYbEYbEYbEYaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbzGbzHbEZbFabFabAZbAZbAZbAZbAZbAZbAZbAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzLbCnbCnbCnbzLbFbbFcbFdbFebFfbzObFgbFhbFibFjbFkbFkbFlbFkbFkbFmbFnbFobFpaaabFqbFrbFsbFtbFubCGbFvbFwbFxbFybBrbFzbFAbFBbBubFCbFDbFEbFFbFGbFHbFIbFJbFKbFLbFMbFNbFObFPbFQbtMbFRbFSbFTbFUbFVbtGbFWbBHbFXbtGbFYbCZbwwbwwbFZbGabmNbGbbGcbGdbGebgnbvkbpzbGfbGgbGgbGgbGgbGhbGibGjbBVbDibGkbDjbDjbDjbDjbDjbGlbwPbGmbzqbGnbGnbwSbGobGpbwWbGqbGrbGrbGrbGrbGsbGtbGubGvbGrbGwbCcbGxbGybGzbGAbGBbGCbGDbGEaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabzHbzHbGFbAZbAZbAZbAZbAZbAZbAZbAZbAZbAZbAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaabBbbGGbGHbGIbBbbGJbBfbBgbvTbvTbGKbGKbGKbvTbvTbBpbBpbBpbBpbGLbBpbBpbGMbFpaaabFqbGNbGObGPbGQbGRbGSbGTbGQbGQbGUbGVbGWbCJbBubBubBubBubBubBubGXbBubBubGYbGZbHabHbbHcbHdbHcbtMbHebHfbHgbHhbHibtGbHjbHkbHlbtGbHmbHnbHobHpbHqbHrbmNbHsbeObgobHtbgnbHubpBbHvbHwbHxbHybHzbmNbBTbBUbBVbBVbHAbDjbDjbDjbHBbBVbBVbwPbHCbHDbGnbGnbwSbHEbGpbwWbDubHFbHGbHHbHIbHJbHKbHLbHMbHNbHObHPbHQbHRbHSbHTbHUbHVbGDbHWaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbzHbAZbAZbAZbAZbAZbAZbHXbAZbHYbAZbAZbAZbAZbAZbzHbzHaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHZbzKbIabzKbIbaaaaafaaaaaabvTbIcbIdbIebvTaaaaaaaaabBpbIfbIgbDObBpbGMbFpaaabFqbIhbIibIjbIkbCGbIlbImbInbIobBrbCHbIpbIqbIrbIsbIsbIsbIsbItbIubIubIubIvbIwbIxbIybIzbIAbIBbICbIDbIEbICbIFbIDbICbICbIEbIFbICbICbIFbICbICbIEbICbIGbIHbmNboebmNbIIbvkbIJbmNbmNbmNbmNbmNbmNbIKbBUbBVbILbIMbINbIObIPbIQbIRbILbwSbISbITbynbwSbwSbIUbGpbIVbEYbEYbCcbCcbCcbCcbCgbCcbIWbIXbIYbCcbIZbJabJbbEYbJcbJdbJebEYaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabzHbJfbJfbJfbJfbJfbJfbJgbAZbJhbJfbHYbAZbAZbAZbAZbzHaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaafaaaaaaaaabBpbJibJjbJkbBpbGMbJlaaabJmbDTbJnbJobJpbCGbCGbJqbJrbJsbJtbJubJvbJwbJxbJybJybJybJybJzbHbbJAbJBbJCbJDbJEbJFbJGbJHbJIbJJbJKbJLbJMbJMbJKbJMbJMbJLbJMbJMbJMbJMbJMbJMbJLbJNboebJObJPbJQbJRbgnbJSbJTbmNbJUbJVbJWbBxbJXbBTbBUbBVbJYbJZbKabKbbKcbKdbKebKfbwSbwSbKgbwSbwSbKhbKibGpbkobKjaafbKkbKlbKmbKnbKobKpbKqbKrbKsbCcbKtbEXbdDbEYbKubKvbKwbKxaagaagaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKybAXbAXbAXbAXbAXbAXbAXbKzbBabAZbAZbAZbAZbKAbBabzHaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafbBpbBpbBpbBpbBpbKBbBpaaaaaaaaaaaabBrbKCbKDbKEbKFbBrbKGbBrbKHbKIbKJbKKbKLbKMbKNbKNbKObKPbKQbKLbKLbKLbKRbKSbKLbKLbKTbKQbKUbKLbKLbKLbKRbKLbBxbBxbBxbBxbBxbBxbBxbBxbBxbBUboebKVbKWbKXbKYbKZbvkbLabmNbLbbLcbLdbBxbJXbBTbLebLfbLgbLhbLibLjbLkbLlbLlbLmbLnbLobLpbkobLqbkobKibGpbkobLraafbKkbLsbLsbLtbLubLvbLwbLxbLybCcbLzbChbLAbEYbEYbEYbEYbEYaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabzHbFabFabFabFabFabFabLBbAZbEZbFabLCbAZbAZbAZbAZbzHaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabLDbLEbGMbBpbBpbBpbBpbBpbBrbBrbBrbBrbBrbBrbBrbBrbLFbLGbKJbKKbKLbLHbLIbLIbLJbLKbLLbLMbLNbLObLPbLQbLRbLSbLTbLUbLVbLWbLXbLYbLZbMaaafaaaaaaaaaaaaaaaagSbLdbMbbBUboebIHbmNboebmNbIHbMcboebmNbBxbMdbBxbBxbLdbBTbMebBVbMfbMfbMgbMhbMibMjbMhbMkbMlbMmbMnbMobkobMpbKibGpbMqbMraafbKkbLsbMsbMtbMubKpbMvbMwbMxbCcbMybChbMzbMAagSaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbzHbAZbAZbAZbAZbAZbAZbHXbAZbLCbAZbAZbAZbAZbAZbzHbzHaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkzbkzbkzbkzbkzaaaaaaaaaaaaaaaaaaaaaaaabzJbzKbzLbzKbzMaaaaaaaaabvTbvTbzNbzObyybzObzPbzQbzRbzSbzTbvVbzUbbnbzVbzWbqobzXbqobzYbzZbqobqpaFCbAabAbbgdbgdbAcaUlaUlaUlaUlaUlaUlbAdbAeaUlbAfbAgaUlbAhbAibAjbAkaFCaFCbtGbAlbAmbAnbwsbtGbtGbtHbAobtHbtGbtGbtGbtGbtGbtGbtGbtGbvkbeObApbAqbArbvbbAsbmNbAtbAubAvbAwbAxbAybAzbAAbwNbABbACbygbADbAEbAFbAGbwPbAHbzqbzrbzrbwSbAIbAJbAKbALbAMbANbAObHGbAQbARbASbATbAUbAUbAUbAUbAVbdDaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbAWbAXbAYbAXbzGbzHbzHbAZbBabAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBbbBcbBdbBcbBbbBebBfbBgbvTbBhbzObBibBjbBkbBlbBmbBmbBnbBobvVbBpbBpbBqbBpaQOaQOaQOaQObBrbBrbBrbBrbBrbBrbBrbBrbBsbBtbBtbBubBubBubBubBvbBwbBubBubBubBubBxbBybBzaFHaHibBAbtGbBBbBCbBDbBEbBFbtGbBGbBHbBIbtHbBJbBJbBKbBLbBMbBNbtHbBObeObeObeObeObeObvkbmQbBPbBQbBRbBSbmNbBTbBUbBVbBVbBVbBVbBVbBVbBVbBVbBVbwPbBWbBXbBYbBYbwSbBZbCabCbbCcbCcbCcbCcbDEbCebCfbCgbCcbCcbCcbCcbrBbChbCiaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagbCjbAXbAXbCkbzHbzHbAZbAZbClbAZbAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzLbCmbCnbCmbzLbCobCpbCqbvTbCrbCsbzObCtbCubvVbCvbCwbCxbCybvVbCzbCzbCAbBpaaaaaaaaaaaabBrbCBbCCbCDbCEbCFbCGbBrbCHbCIbCJbBubCKbCLbCMbCNbCObCPbCQbCRbCSbCTbCUbCVbCWbCXbBxbtGbCYbBHbxObCZbDabtGbDbbBHbDcbESbwwbwwbwwbwwbwwbDebEUbDgbpBbpBbpBbpBbssbvkbobbBPbBQbBRbDhbmNbBTbBUbBVbDibDjbDjbDkbDlbDmbDnbDobwPbDpbDqbDrbDrbwSbDsbDtbwWbDubDvbDwbDxbGvbDzbEVbEWbGsbGtbGwbCcbrBbChbDFaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabDGbzHbCjbzHbzHbAZbAZbAZbAZbAZbAZbAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBbbCmbCmbCmbDHbDIbzObzObDJbDKbzObzObDLbDMbvVbvVbvVbDNbvVbvVbDObDPbDQbDRaaabDSbDTbDUbDVbDWbCGbDXbDYbDZbEabEbbEcbEdbEebEfbEgbEhbEibEjbEkbElbEmbBubBubEnbEobEpbEqbErbEsbEtbwwbBHbEubCZbwwbEvbEwbBHbExbtGbEybEzbwwbwwbEAbEBbmNbmNbmNbmNbmNbECbvkbvkbEDbBQbBQbBRbEEbEFbEGbBUbBVbEHbEIbDjbEJbDjbDjbDjbEKbwPbELbzqbEMbEMbwSbwUbENbEObEPbEQbEQbEQbEQbERbGrbETbKmbHMbJGbCcbdDbEXbdDbEYbEYbEYbEYbEYaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbzGbzHbEZbFabFabAZbAZbAZbAZbAZbAZbAZbAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzLbCnbCnbCnbzLbFbbFcbFdbFebFfbzObFgbFhbFibFjbFkbFkbFlbFkbFkbFmbFnbFobFpaaabFqbFrbFsbFtbFubCGbFvbFwbFxbFybBrbFzbFAbFBbBubFCbFDbFEbFFbFGbFHbFIbFJbFKbFLbFMbFNbFObFPbFQbtMbFRbFSbFTbFUbFVbtGbFWbBHbFXbtGbFYbCZbwwbwwbFZbGabmNbGbbGcbGdbGebgnbvkbpzbGfbGgbGgbGgbGgbGhbGibGjbBVbDibGkbDjbDjbDjbDjbDjbGlbwPbGmbzqbGnbGnbwSbGobGpbwWbGqbGrbGrbKnbKobKpbKqbGubGrbGrbGrbCcbGxbGybGzbGAbGBbGCbGDbGEaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabzHbzHbGFbAZbAZbAZbAZbAZbAZbAZbAZbAZbAZbAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnobnobnobnobnobnobnobnobnobnobnobnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaabBbbGGbGHbGIbBbbGJbBfbBgbvTbvTbGKbGKbGKbvTbvTbBpbBpbBpbBpbGLbBpbBpbGMbFpaaabFqbGNbGObGPbGQbGRbGSbGTbGQbGQbGUbGVbGWbCJbBubBubBubBubBubBubGXbBubBubGYbGZbHabHbbHcbHdbHcbtMbHebHfbHgbHhbHibtGbHjbHkbHlbtGbHmbHnbHobHpbHqbHrbmNbHsbeObgobHtbgnbHubpBbHvbHwbHxbHybHzbmNbBTbBUbBVbBVbHAbDjbDjbDjbHBbBVbBVbwPbHCbHDbGnbGnbwSbHEbGpbwWbDubHFbIXbHHbHIbHJbHQbIWbHObHPbHLbHKbHNbHRbHSbHTbHUbHVbGDbHWaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbzHbAZbAZbAZbAZbAZbAZbHXbAZbHYbAZbAZbAZbAZbAZbzHbzHaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHZbzKbIabzKbIbaaaaafaaaaaabvTbIcbIdbIebvTaaaaaaaaabBpbIfbIgbDObBpbGMbFpaaabFqbIhbIibIjbIkbCGbIlbImbInbIobBrbCHbIpbIqbIrbIsbIsbIsbIsbItbIubIubIubIvbIwbIxbIybIzbIAbIBbICbIDbIEbICbIFbIDbICbICbIEbIFbICbICbIFbICbICbIEbICbIGbIHbmNboebmNbIIbvkbIJbmNbmNbmNbmNbmNbmNbIKbBUbBVbILbIMbINbIObIPbIQbIRbILbwSbISbITbynbwSbwSbIUbGpbIVbEYbEYbCcbCcbCcbCcbCgbCcbJEbGrbIYbCcbIZbJabJbbEYbJcbJdbJebEYaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabzHbJfbJfbJfbJfbJfbJfbJgbAZbJhbJfbHYbAZbAZbAZbAZbzHaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaafaaaaaaaaabBpbJibJjbJkbBpbGMbJlaaabJmbDTbJnbJobJpbCGbCGbJqbJrbJsbJtbJubJvbJwbJxbJybJybJybJybJzbHbbJAbJBbJCbJDbCdbJFbAPbJHbJIbJJbJKbJLbJMbJMbJKbJMbJMbJLbJMbJMbJMbJMbJMbJMbJLbJNboebJObJPbJQbJRbgnbJSbJTbmNbJUbJVbJWbBxbJXbBTbBUbBVbJYbJZbKabKbbKcbKdbKebKfbwSbwSbKgbwSbwSbKhbKibGpbkobKjaafbKkbKlbmwbjIbpqbjIbodbLxbKsbCcbKtbEXbdDbEYbKubKvbKwbKxaagaagaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKybAXbAXbAXbAXbAXbAXbAXbKzbBabAZbAZbAZbAZbKAbBabzHaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafbBpbBpbBpbBpbBpbKBbBpaaaaaaaaaaaabBrbKCbKDbKEbKFbBrbKGbBrbKHbKIbKJbKKbKLbKMbKNbKNbKObKPbKQbKLbKLbKLbKRbKSbKLbKLbKTbKQbKUbKLbKLbKLbKRbKLbBxbBxbBxbBxbBxbBxbBxbBxbBxbBUboebKVbKWbKXbKYbKZbvkbLabmNbLbbLcbLdbBxbJXbBTbLebLfbLgbLhbLibLjbLkbLlbLlbLmbLnbLobLpbkobLqbkobKibGpbkobLraafbKkbLsbLsbLtbLubLvbDdbDfbDybCcbLzbChbLAbEYbEYbEYbEYbEYaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabzHbFabFabFabFabFabFabLBbAZbEZbFabLCbAZbAZbAZbAZbzHaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabLDbLEbGMbBpbBpbBpbBpbBpbBrbBrbBrbBrbBrbBrbBrbBrbLFbLGbKJbKKbKLbLHbLIbLIbLJbLKbLLbLMbLNbLObLPbLQbLRbLSbLTbLUbLVbLWbLXbLYbLZbMaaafaaaaaaaaaaaaaaaagSbLdbMbbBUboebIHbmNboebmNbIHbMcboebmNbBxbMdbBxbBxbLdbBTbMebBVbMfbMfbMgbMhbMibMjbMhbMkbMlbMmbMnbMobkobMpbKibGpbMqbMraafbKkbLsbkybjIbjDbjIaTHbdgbMxbCcbMybChbMzbMAagSaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbzHbAZbAZbAZbAZbAZbAZbHXbAZbLCbAZbAZbAZbAZbAZbzHbzHaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbMBbMCbMDbMEbMEbMFbMGbMHbMIbMJbMKbMLbMMbMLbMNbMIbMObMPbMQbMRbKLbMSbMTbMTbMUbMVbLLbMWbLNbLObMXbLQbMYbMZbNabNbbLIbNcbLIbNdbNebNfaafbNgbNgbNgbNgbNgagSbNhbNibNjbJKbJLbJMbJKbNkbNlbNmbNnbNkbJMbJMbJMbJMbJMbNobNpbBVbNqbNrbNsbNtbNubNvbNwbBVbBVbnhbNxbnhbnhbnhbNybGpbNzbnhbCcbCcbCcbCcbCcbNAbCcbCcbCcbCcbCcbMybChbNBbNCagSaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabzHbzHbGFbAZbAZbAZbAZbAZbAZbAZbAZbAZbAZbAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNDaaaaafaafbNEbNEbNEbNEbNEbNEbNEbNEbNFbNGbMIbNHbMJbMJbMLbNIbMNbMIbNJbKIbNKbNLbNMbNNbLIbNObLZbNPbNQbNRbNSbNTbLIbLQbNUbMZbNVbLIbNWbNXbNYbNZbOabObbOcbOdbOebOfbOgbNgagSbOhbOibBxbOjbOkbOlbOmbJxbOnbOobOpbJxbJxbOqbOrbJxbJxbOsbBUbBVbBVbBVbBVbBVbBVbOtbBVbBVbOubOvbOwbLdbOxbnhbNxbOybOzbnhbOAbOBbOCbODbOEbMybrBbrBbOFbrBbrBbMybChbOGbdDbdDbdDaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbzGbzHbJhbJfbJfbAZbAZbAZbAZbAZbAZbAZbAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabOHbOIbOJbOKbOKbOKbOLbOMbONbOObOPbOQbORbNEbOSbNGbMIbOTbMJbMKbMJbMLbOUbMIbOVbKIbOWbOXbOYbOZbLIbLIbLIbPabPbbPcbPdbLIbPebPfbLIbPgbPhbPibPjbPkbPlbPmbPnbPoaafbPpbPqbOgbPrbNgagSbPsbPtbBxaaaaaaaafaaabPubPvbPwbPxbPuaaaaafaaaaafbBxbPybPzbJMbJMbJMbJMbJMbJMbJKbJMbJMbJMbJMbJLbPAbJMbNkbPBbPCbPDbPEbPFbPFbPFbPFbPGbPHbPFbPFbPFbPFbPFbPIbPJbPKbPLbPMbdDbdDbdDbdDaaaaafaaaaaaaaaagSagSagSaafaaaaaaaafaaaaaaaafaaaaaabDGbzHbCjbzHbzHbAZbAZbAZbAZbAZbAZbAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPNbPNbPNbPNbPNbPObPPbPQbPRbPRbPSbNEbPTbPUbPVbPWbPXbPYbMJbMJbPZbMIbQabQbbQcbQdbQebQfbNRbLIbQgbQhbQibQjbQkbLIbLQbLIbQlbQmbQnbNWbQobQpbQqbQrbQsbQtbQubOdbQvbOgbOgbNgagSbLdbLdbBxaaaaaaaafaaaaafbQwbQxbQyaafaaaaafaaaaafbBxbQzbQAbQBbQCbQDbQDbFKbFKbQEbQFbQGbJxbJxbOqbOrbJxbJxbQHbQIbQJbQKbQKbQLbQMbQMbQNbQKbQKbQLbQMbQMbQNbQKbQObrBbQPbQQbQRbQSbQTbQUbQVbQWbQWbQWbQWbQWbQWbQWbQWbQWbQWbQWbQWbQWbQWbQWbQWbQXbQYbQYbQZbzHbzHbAZbAZbRabAZbAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaafaafbRbbRcbRdbRebRdbRfbRgbRhbRibRibRjbNEbRkbDObMIbRlbMJbRmbMJbMJbMJbRnbOVbKIbOWbRobOYbRpbRqbLIbLIbRrbLLbRsbRtbLIbLQbLIbNabMRbRubRvbRwbRxbRybRzbRybRAaafbNgbNgbNgbNgbNgagSbBxbRBbBxaafaafaafaafaafbRCbQxbRDaafaaaaaaaaaaafbBxbBxbBxbREbRFbRGbBxbBxbREbRFbRGbBxbBxaaaaaaaaaaaabRHbRIbRJbRKbRHaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabdDbRLbRMbRNbdDbdDbdDbdDaaaaafaaaaaaaaaagSagSagSaafaaaaaaaafaaaaaaaafaafaafbRObRPbRQbCkbzGbzHbzHbAZbBabAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbRbbRRbRSbRTbRUbPQbRVbPQbRWbPQbRXbRYbRZbSabMIbSbbMJbRmbMJbMJbScbMIbSdbSebOWbSfbKLbMRbMRbSgbShbSgbLLbSibQlbSjbSkbSlbSmbSnbSobSpbSqbSrbSsbStbSubSvbOcbOdbSwbSxbSxbNgaafbLdbSybLdaaaaaaaafaaaaafbSzbQxbSAaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaabSBbSCbSDaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabSEbSEbSFbSGbSEaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbSHbzEbzEbzFbzGbzGbzHbzHbzHbzHbzIaafaafaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbRbbSIbSJbSKbSJbSLbSMbSNbSObSPbSQbNEbGMbDObMIbSRbMJbSSbSTbSUbSVbMIbSWbKIbOWbSXbSYbSZbNebNebNebTabTbbNebTcbTdbTebNebTfbTgbThbTibTjbLIbTkbTlbTmbPoaafbPpbTnbTobTpbNgaafaaaaaaaaaaaaaaaaaaaaabTqbPubTrbTsbTqaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaabTtbSCbTuaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabSEbTvbTwbTxbSEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafbPNbPNbPNbPNbPNbNEbNEbNEbNEbNEbNEbNEbGMbDObMIbMIbMIbMIbMIbMIbMIbMIbSWbKIbOWbSXbTybTzbTAbQlbTBbTCbTDbTEbTFbLIbLQbLIbTGbTHbTIbTJbTKbLIbTkbTLbTMbTNbQubOdbTObSxbSxbNgaafaaaaaaaaaaafaafaafaaabPubTPbTQbTRbPubPubPubPubPubPubPuaafaafaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaabTSbSCbTTaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabSEbTUbTVbTWbSEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbDObBpbBpbBpbBpbTXbDObDObTYbTZbTZbTZbTZbUabUbbUbbUcbUdbUdbUdbUdbUdbUdbUdbMHbBpbUebKIbOWbUfbUgbUhbUibUjbUkbUlbUmbUlbUnbLIbLQbLIbNabLIbUobLIbUobLIbTkbTlbUpbPoaafbNgbNgbNgbNgbNgaafaaabUqbPubPubPubPubPubPubUrbUsbUtbUubUvbUwbUxbUybUvbPuaafaafaafaafaafaafaafbUzaafaafaafaafaafaafaafbUAbRHbUBbUCbUAaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaabSEbUDbUEbUFbSEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbUGbUHbUIbUJbUKbULbDObDObNFbUMbDObBpbBpbUNbUObBpbBpbUPbUQbUObBpbBpbURbDObNGbBpbSWbKIbOWbUSbUTbUUbUVbKLbKQbUWbUXbKLbKQbUYbLQbLIbNabUZbTIbRtbVabVbbVcbVdbVebSvbOcbOdbVfbVgbVhbNgaafaaabUqbVibVjbVkbVlbPubVmbVnbUsbVobUubVpbVqbVrbVsbVpbPuaaaaaaaaaaafaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaabRHbVtbVubVvbRHaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabVwbVxbVybVzbVAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaabDObBpbBpbBpbBpbVBbVCbVCbVDbVEbVFbVEaaabVGaaaaaaaaaaaaaaaaaaaaabBpbVHbDObNGbBpbVIbVJbVKbVLbVMbVNbVObVPbVQbVRbVSbVTbKQbVUbVVbLIbNabUZbVWbRtbVabVXbTkbTlbVYbPoaafbPpbVZbWabWbbNgaafaaabUqbWcbWdbWebUubPubWfbUubWgbWfbUubWhbWibWjbWkbWlbPuaaaaaaaaaaafaaaaaaaaabRHbRHbRHbRHbRHbRHbRHbRHbRHbWmbWnbWobRHaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaafbWpbWqbWpaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafbBpbWrbVEbVEbWsbVEbWtbVEbVEbWubWvbVEbVEbWwbWxbWvbVEbVEbVEbVEbWybWzbWAbWBbOWbWCbWDbWEbWFbWEbWEbWGbWEbWHbKQbWIbWJbLIbNabUZbTIbRtbWKbWLbWMbWNbWObTNbQubOdbWPbVgbVgbNgaafbWQbWRbWSbWTbWUbWVbWUbWWbWXbWYbWZbXabXbbXcbWUbXdbXebPuaaaaaaaaaaafaaaaaaaaabRHbXfbXgbXhbXibXjbXkbXlbXmbXnbXobXpbXqbXraaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafbXsbXtbXsaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqajqajqajpajpajqajpajpajpajXajpajpajpajqajqaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafbDRbWrbXubXvbXwbXxbXybXzbXAbXBbXCbXDbVEbXCbXEbXFbXGbXGbXHbVEbXIbXJbXKbXLbOWbWCbXMbWEbWFbWEbWEbWEbXNbXObXPbXQbXRbLIbNabLIbXSbLIbXTbXUbTkbTlbXVbPoaafbNgbNgbNgbNgbNgaafaaabUqbXWbXXbXYbXZbYabYbbYcbYdbYebXYbYfbYgbXYbYbbYhbPuaafaafaafaafaafaafaafbRHbYibYjbYibYkbYlbYmbYnbXmbYobYpbYobRHbRHaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafaaabYqaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaajqaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaabFpbWrbYrbYsbYtbYubYvbYvbYvbYvbYwbYxbYybXGbYzbXGbXGbYAbXGbYBbCIbYCbYDbXLbOWbWCbYEbYFbWFbWEbYGbWEbWFbWEbYHbYIbYJbLIbNabLIbPhbYKbYLbYMbYNbYObYPbSvbOcbOdbYQbYRbYRbNgaafaaabYSbYTbYUbYVbPubYWbYXbYgbYYbYZbZabZbbWkbZcbZdbZebPuaaaaaaaaaaafaaaaaaaaabRHbYibYibYibZfbZgbXkbZhbZibZjbZkbZlbZmbRHaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaabZnaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqaaabZobZpbZqaaabZobZpbZqaaabZobZpbZqaafbZraafaafaaaaaaaaaaaaaaaaaaaaaaaaaaabFpbWrbYrbZsbXGbYAbZtbXGbXGbXGbXGbXGbZsbZsbXGbXGbXGbXGbZubZvbCIbZwbCIbZxbZybYEbYEbZzbWFbZAbZBbZCbWFbWEbKQbZDbZEbZFbZGbSlbQnbZHbZIbSsbQobTlbZJbPoaafbPpbZKbZLbZMbNgaafaafaafaafaafaafbUqbZNbVpbZObZPbZQbRCbYcbZRbRCbZRbYcbPuaaaaaaaaaaafaaaaaaaaabRHbXmbXmbXmbXmbZSbYmbZTbZUbZVbZWbZXbZYbRHaaaaaaaaaaaaaaabZZbZZbZZcaaaafaafaafaafbZnaafaafaafaafaafajXbZZbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNDaaaaafaafbNEbNEbNEbNEbNEbNEbNEbNEbNFbNGbMIbNHbMJbMJbMLbNIbMNbMIbNJbKIbNKbNLbNMbNNbLIbNObLZbNPbNQbNRbNSbNTbLIbLQbNUbMZbNVbLIbNWbNXbNYbNZbOabObbOcbOdbOebOfbOgbNgagSbOhbOibBxbOjbOkbOlbOmbJxbOnbOobDCbJxbJxbOqbOrbJxbJxbOsbBUbBVbBVbBVbBVbBVbBVbOtbBVbBVbOubOvbOwbLdbOxbnhbNxbOybOzbnhbOAbOBbOCbODbOEbMybrBbrBbOFbrBbrBbMybChbOGbdDbdDbdDaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbzGbzHbJhbJfbJfbAZbAZbAZbAZbAZbAZbAZbAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabOHbOIbOJbOKbOKbOKbOLbOMbONbOObOPbOQbORbNEbOSbNGbMIbOTbMJbMKbMJbMLbOUbMIbOVbKIbOWbOXbOYbOZbLIbLIbLIbPabPbbPcbPdbLIbPebPfbLIbPgbPhbPibPjbPkbPlbPmbPnbPoaafbPpbPqbOgbPrbNgagSbPsbPtbBxaaaaaaaafaaabPubPvbPwbDDbPuaaaaafaaaaafbBxbPybPzbJMbJMbJMbJMbJMbJMbJKbJMbJMbJMbJMbJLbPAbJMbNkbPBbPCbPDbPEbPFbPFbPFbPFbPGbPHbPFbPFbPFbPFbPFbPIbPJbPKbPLbPMbdDbdDbdDbdDaaaaafaaaaaaaaaagSagSagSaafaaaaaaaafaaaaaaaafaaaaaabDGbzHbCjbzHbzHbAZbAZbAZbAZbAZbAZbAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPNbPNbPNbPNbPNbPObPPbPQbPRbPRbPSbNEbPTbPUbPVbPWbPXbPYbMJbMJbPZbMIbQabQbbQcbQdbQebQfbNRbLIbQgbQhbQibQjbQkbLIbLQbLIbQlbQmbQnbNWbQobQpbQqbQrbQsbQtbQubOdbQvbOgbOgbNgagSbLdbLdbBxaaaaaaaafaaaaafbQwbQxbQwaafaaaaafaaaaafbBxbQzbQAbQBbQCbQDbQDbFKbFKbQEbQFbQGbJxbJxbOqbOrbJxbJxbQHbQIbDAbQKbQKbQLbQMbQMbQNbQKbQKbQLbQMbQMbQNbQKbQObrBbQPbQQbQRbQSbQTbQUbQVbQWbQWbQWbQWbQWbQWbQWbQWbQWbQWbQWbQWbQWbQWbQWbQWbQXbQYbQYbQZbzHbzHbAZbAZbRabAZbAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaafaafbRbbRcbRdbRebRdbRfbRgbRhbRibRibRjbNEbRkbDObMIbRlbMJbRmbMJbMJbMJbRnbOVbKIbOWbRobOYbRpbRqbLIbLIbRrbLLbRsbRtbLIbLQbLIbNabMRbRubRvbRwbRxbRybRzbRybRAaafbNgbNgbNgbNgbNgagSbBxbRBbBxaafaafaafaafaafbRCbQxbRCaafaaaaaaaaaaafbBxbBxbBxbREbRFbRGbBxbBxbREbRFbRGbBxbBxaaaaaaaaaaaabRHbRIbRJbDBbRHaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabdDbRLbRMbRNbdDbdDbdDbdDaaaaafaaaaaaaaaagSagSagSaafaaaaaaaafaaaaaaaafaafaafbRObRPbRQbCkbzGbzHbzHbAZbBabAZbzHbzHaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbRbbRRbRSbRTbRUbPQbRVbPQbRWbPQbRXbRYbRZbSabMIbSbbMJbRmbMJbMJbScbMIbSdbSebOWbSfbKLbMRbMRbSgbShbSgbLLbSibQlbSjbSkbSlbSmbSnbSobSpbSqbSrbSsbStbSubSvbOcbOdbSwbSxbSxbNgaafbLdbSybLdaaaaaaaafaaaaafbSzbQxbSzaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaabSBbSCbSBaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabSEbSEbSFbSGbSEaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbSHbzEbzEbzFbzGbzGbzHbzHbzHbzHbzIaafaafaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbRbbSIbSJbSKbSJbSLbSMbSNbSObSPbSQbNEbGMbDObMIbSRbMJbSSbSTbSUbSVbMIbSWbKIbOWbSXbSYbSZbNebNebNebTabTsbNebTcbTdbTebNebTfbTgbThbTibTjbLIbTkbTlbTmbPoaafbPpbTnbTobTpbNgaafaaaaaaaaaaaaaaaaaaaaabTqbPubTrbPubTqaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaabTtbSCbTtaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabSEbTvbTwbTxbSEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafbPNbPNbPNbPNbPNbNEbNEbNEbNEbNEbNEbNEbGMbDObMIbMIbMIbMIbMIbMIbMIbMIbSWbKIbOWbSXbTybTzbTAbQlbTBbTCbTDbTEbTFbLIbLQbLIbTGbTHbTIbTJbTKbLIbTkbTLbTMbTNbQubOdbTObSxbSxbNgaafaaaaaaaaaaafaafaafaaabPubTPbTQbTRbPubPubPubPubPubPubPuaafaafaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaabTSbSCbTSaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabSEbTUbTVbTWbSEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbDObBpbBpbBpbBpbTXbDObDObTYbTZbTZbTZbTZbUabUbbUbbUcbUdbUdbUdbUdbUdbUdbUdbMHbBpbUebKIbOWbUfbUgbUhbUibUjbUkbUlbUmbUlbUnbLIbLQbLIbNabLIbUobLIbUobLIbTkbTlbUpbPoaafbNgbNgbNgbNgbNgaafaaabUqbPubPubPubPubPubPubUrbUsbTubUubUvbUwbUxbUybUvbPuaafaafaafaafaafaafaafbUzaafaafaafaafaafaafaafbUAbRHbUBbRHbUAaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaabSEbUDbUEbUFbSEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbUGbUHbUIbUJbUKbULbDObDObNFbUMbDObBpbBpbUNbUObBpbBpbUPbUQbUObBpbBpbURbDObNGbBpbSWbKIbOWbUSbUTbUUbUVbKLbKQbUWbUXbKLbKQbUYbLQbLIbNabUZbTIbRtbVabVbbVcbVdbVebSvbOcbOdbVfbVgbVhbNgaafaaabUqbVibVjbVobVlbPubVmbVnbUsbVkbUubVpbVqbVrbVsbVpbPuaaaaaaaaaaafaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaabRHbVtbVubVvbRHaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabVwbVxbVybVzbVAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaabDObBpbBpbBpbBpbVBbVCbVCbVDbVEbVFbVEaaabVGaaaaaaaaaaaaaaaaaaaaabBpbVHbDObNGbBpbVIbVJbVKbTTbVMbVNbVObVPbVQbVRbVSbVTbKQbVUbVVbLIbNabUZbVWbRtbVabVXbTkbTlbVYbPoaafbPpbVZbWabWbbNgaafaaabUqbWcbWdbUtbUubPubWfbUubWgbUubUubWhbWibWjbWkbWlbPuaaaaaaaaaaafaaaaaaaaabRHbRHbRHbRHbRHbRHbRHbRHbRHbWmbWnbUCbRHaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaafbWpbWqbWpaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafbBpbWrbVEbVEbWsbVEbWtbVEbVEbWubWvbVEbVEbWwbWxbWvbVEbVEbVEbVEbWybWzbWAbWBbOWbWCbWDbWEbWFbWEbWEbWGbWEbWHbKQbWIbWJbLIbNabUZbTIbRtbWKbWLbWMbWNbWObTNbQubOdbWPbVgbVgbNgaafbWQbWRbWSbWTbXpbWVbWUbWWbWXbWYbWZbXabXbbXcbWUbXdbXebPuaaaaaaaaaaafaaaaaaaaabRHbXfbXgbXhbXibXjbXkbXlbXmbXnbXobWobXqbXraaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafbXsbXtbXsaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqajqajqajpajpajqajpajpajpajXajpajpajpajqajqaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafbDRbWrbXubXvbXwbXxbXybXzbXAbXBbXCbXDbVEbXCbVLbXFbXGbXGbXHbVEbXIbXJbXKbXLbOWbWCbXMbWEbWFbWEbWEbWEbXNbXObXPbXQbXRbLIbNabLIbXSbLIbXTbXUbTkbTlbXVbPoaafbNgbNgbNgbNgbNgaafaaabUqbXWbXXbWebXZbYabYbbYcbYdbXYbXYbYfbYgbXYbYbbYhbPuaafaafaafaafaafaafaafbRHbYibYjbYibYkbYlbYmbYnbXmbYobYpbXmbRHbRHaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafaaabYqaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaajqaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaabFpbWrbYrbYsbYtbYubYvbYvbYvbYvbYwbYxbYybXGbYzbXGbXGbYAbXGbYBbCIbYCbYDbXLbOWbWCbYEbYFbWFbWEbYGbWEbWFbWEbYHbYIbYJbLIbNabLIbPhbYKbYLbYMbYNbYObYPbSvbOcbOdbYQbYRbYRbNgaafaaabYSbYTbYUbYVbPubYWbYXbYgbYYbYZbZabZbbWkbZcbZdbZebPuaaaaaaaaaaafaaaaaaaaabRHbYibYibYibZfbZgbXkbZhbZibZjbZkbQybZmbRHaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaabZnaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqaaabZobZpbZqaaabZobZpbZqaaabZobZpbZqaafbZraafaafaaaaaaaaaaaaaaaaaaaaaaaaaaabFpbWrbYrbZsbXGbYAbZtbXGbXGbXGbXGbXGbZsbZsbXGbXGbXGbXGbZubZvbCIbZwbCIbZxbZybYEbYEbZzbWFbZAbZBbZCbWFbWEbKQbZDbZEbZFbZGbSlbQnbZHbZIbSsbQobTlbZJbPoaafbPpbZKbZLbZMbNgaafaafaafaafaafaafbUqbZNbVpbZObZPbZQbRCbYcbZRbRCbZRbYcbPuaaaaaaaaaaafaaaaaaaaabRHbXmbXmbXmbXmbZSbYmbZTbZUbZVbZWccebZYbRHaaaaaaaaaaaaaaabZZbZZbZZcaaaafaafaafaafbZnaafaafaafaafaafajXbZZbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqaaabZocabbZqaaabZocabbZqaaabZocabbZqaafaafaafaafaaaaaaaaaaaaaaaaaaaafaafaafbFpbWrcacbZscadbXGcaecafcagcagbYzbXGbZscahbXGbXGbXGbXGcaicajcakcalbFAcamcancaocapcaqbWFbZAcarcasbWFbWEbKQbNabLIbLIbZHbNecatcaucavcawbLYcaxcaybTNbQubOdcazbYRbYRbNgaafaaaaaaaafaaaaaabUqcaAbVpbZObVpcaBbRCbVpbZObRCbZOcaCbPuaaaaaaaaaaafaaaaaaaaabRHbXfbXgbXhcaDcaEbXkcaFcaGcaHcaIbYmcaJbRHaaaaaaaaaaaaaaabZZaaaaafaaaaafaaaaaaaaacaKaaaaafaafaaaaaaaaaaaabZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaajpaafbZocabbZqaaabZocabbZqaafbZocabbZqaafaaaaaaaafaafaaaaaaaaaaaaaaaaafaaaaaabJlbWrbVEcaLbXGcaMcaNcaOcaPcaQcaPcaRcaPcaScaTbXCcaUbZsbZsbZvbCJcaVcaWcaXcaYcaZcbacbbcbccbdcbecbfcbgcbhbKQcbibLIbLIcbjbLIbLIbLIbNdbTgcbjbTlbUpbPoaafbNgbNgbNgbNgbNgaafaaaaaaaafaaaaaabUqcbkcblcbmcbncbocbpcbqcbrcbpcbrcbqbPuaafaafaafaafaafaafaafbRHbYibYibYicbsbYlbYmcbtcbucbvcbwbYmcbxbRHbRHbRHbRHaaaaaabZZaaacbycbycbycbycbyaafcbzaafcbycbycbycbycbyaaabZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaabZocabbZqaafbZocabbZqaaabZocabbZqaaaaaaaaaaaaaaaaafaaaaafaaaaafaafaaaaaabBpbWrbVEcbAcbBcbBcbCbVEbVEbVEbVEbVEbVEbVEbVEbVEbVEbVEbVEbVEbBpcbDbBpcbEcbFcbFcbFcbGcbHcbIcbJcbKcbLcbMbKQcbNcbOcbPcbQcbRcbScbRcbQcbTcbQcbUbZHcbVaafaafaafaafaafaafaafaaaaaaaaaaaaaaabUqbPubPucbWcbXbPubPucbYbPubPubPucbYbTqaaaaaaaaaaaaaaaaaaaaabRHbYibYibYicaDcbZbXkccaccbcccccdccecceccfccgcchbRHaafaafbZZaafcciccjccjccjccjcckcbzcclccmccmccmccmccnaafbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqajqajpaafaaabZocabbZqaafbZocabbZqaaabZocabbZqaafaaaaaaaaaaaaaafaafccoccpccpccpccpbBpbBpbWrbVEccqccrccrccscctccuccvccvccvccvccvccvccvccvccvccwccwccvccxccycczccAccBccCccDccEccFcbFccGccHccIccJbNRccKccLccMccNccOccPccQbLIccRccSccTbMZaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaabPubYTccUbPuaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaabRHbXmbXmbXmbXmccVbYmcbtccWccXccYbYmbYmccZbYmcdabRHaaaaaabZZaafcdbcdbcdbcdbcdbaaacbzaaacdbcdbcdbcdbcdbaafbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqaaaaafaaaaafaafcdcaafaafaafcdcaafaaaaafcdcaafaaaaaaaaaaaaaaacddcdecdfcdgcdhcdicdjcdkbVCcdlbVEbVEcdmcdnbVEbVEbKBcdocdocdocdocdocdocdocdocdocdocdocdocdpcdqcdrcdscdtcducdvcdwcdxcdyccGccHcdzcdAcdBcdCcdDcdEcdFcdGcdFcdEcdFcdHcdFcdHcdIaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaacdJaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabRHbXfbXgbXhcdKcaEbXkcdLcdMcdNcdOcdOcdPcdQcdRcdSbRHaaaaaabZZaaaaafaaaaafaafaafaaacbzaaaaafaaaaafaaaaafaaabZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajpaafcdTcdUcdUcdVcdWcdWcdWcdWcdWcdWcdWcdWcdWcdWcdWcdWcdWcdWcdXcdYcdZceacebceccedceebDObDObWrcefbVEbVEbVEbVEbDObKBcdocegcegcehcdoceicejcekcelcemcenceocepceqcercescetceucevcewcexceycezceAceBcdoaafceCaafceDaafceCaafceDaafceEaafceEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceFaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabRHbYibYjbYiceGbYlbYmbSCcdMceHbYmbYmceIbXmbXmbXmbRHaaaaaabZZaaacbycbycbycbycbyaafcbzaafcbycbycbycbycbyaafbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqaaaaafaaaaafaafceJaafaaaaafceJaafaaaaafceJaafaaaaaaaaaaaaaaacddcdeceKceLceMceNccpceObDOcePbVCbVCbVCbVCbVCbVCceQcdoceRceSceTceUceVceWceXceXceYceZcfacfbcfccfdcfecffcfgceucewcfhcbFcficficficdobNgcfjbPpcfjbNgcfjbPpcfjbNgcfkbPpcflbNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRHbYibYibYicdKcfmcfncfocfpcfqbYmbYmcfrbYmcfsbYmbSBaafaafbZZaafcciccjccjccjccjcckcbzcclccmccmccmccmccnaafbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqaaaaafaaaaafaafcdcaafaafaafcdcaafaaaaafcdcaafaaaaaaaaaaaaaaacddcdecdfcdgcdhcdicdjbTbbVCcdlbVEbVEcdmcdnbVEbVEbKBcdocdocdocdocdocdocdocdocdocdocdocdocdpcdqcdrcdscdtcducdvcdwcdxcdyccGccHcdzcdAcdBcdCcdDcdEcdFcdGcdFcdEcdFcdHcdFcdHcdIaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaacdJaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabRHbXfbXgbXhcdKcaEbXkcdLcdMcdNcdOcdOcdPcdQcdRcdSbRHaaaaaabZZaaaaafaaaaafaafaafaaacbzaaaaafaaaaafaaaaafaaabZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajpaafcdTcdUcdUcdVcdWcdWcdWcdWcdWcdWcdWcdWcdWcdWcdWcdWcdWcdWcdXcdYcdZceacebbRDbRKbSAbSDbDObWrcefbVEbVEbVEbVEbDObKBcdocegcegcehcdoceibQJcekcelcemcenceocepceqcercescetceucevcewcexceycezceAceBcdoaafceCaafceDaafceCaafceDaafceEaafceEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceFaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabRHbYibYjbYiceGbYlbYmbSCcdMceHbYmbYmceIbXmbXmbXmbRHaaaaaabZZaaacbycbycbycbycbyaafcbzaafcbycbycbycbycbyaafbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqaaaaafaaaaafaafceJaafaaaaafceJaafaaaaafceJaafaaaaaaaaaaaaaaacddcdeceKceLcedbOpccpceObDOcePbVCbVCbVCbVCbVCbVCceQcdoceRceSceTceUceVbMwceXceXceYceZcfacfbcfccfdcfecffcfgceucewcfhcbFcficficficdobNgcfjbPpcfjbNgcfjbPpcfjbNgcfkbPpcflbNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRHbYibYibYicdKcfmcfncfocfpcfqbYmbYmcfrbYmcfsbYmbSBaafaafbZZaafcciccjccjccjccjcckcbzcclccmccmccmccmccnaafbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajqajqajpaafaafbZocftbZqaaabZocftbZqaaabZocftbZqaafaaaaaaaaaaaaaafaafcfuccpccpccpccpbBpbURbVHbDOcfvbDObDObDObDObNGcdocfwceTceTceUcfxcfycfycfycfycfycfycfzccHcfAcfBcfCcfDcfEcfFcfGcbFcfHcfIcfJcdobNgcfKcfLcfMbNgcfNcfOcfPbNgcfQcfRcfSbNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUAbRHcfTcfUcfUcfVcfWcfXcfWcfYcfZcgacgbcgcbXkcgdcgeaaaaaabZZaafcdbcdbcdbcdbcdbaaacbzaafcdbcdbcdbcdbcdbaaabZZaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZocftbZqaafbZocftbZqaaabZocftbZqaaaaaaaaaaafaaaaafaafaafaaaaaaaaaaaabBpcgfcggcggcghbBpbBpbDOcgibNGcdocgjcgjcgkcdocglcgmcgncgocgpcgqcgrcgscgtcgtcgucbFcbFcgvcgwcgxcbJcgycgzcgAcdobNgcgBcgCcgBbNgcgDcgEcgDbNgcgFcgGcgHbNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdJaaabRHcgIcgJcgKcgLcgMcgJcgNcgOcgMcgJcgPbRHaaaaaacaaaaaaafaaaaafaaaaafaaacgQaaaaafaaaaafaafaafaafbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDeaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZocftbZqaafbZocftbZqaaabZocftbZqaaaaaaaaaaafaaaaafaafaafaaaaaaaaaaaabBpcgfcggcggcghbBpbBpbDOcgibNGcdocgjcgjcgkcdocglcgmcgncgocgpcgqcgrcgsbPxbPxcgucbFcbFcgvcgwcgxcbJcgycgzcgAcdobNgcgBcgCcgBbNgcgDcgEcgDbNgcgFcgGcgHbNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdJaaabRHcgIcgJcgKcgLcgMcgJcgNcgOcgMcgJcgPbRHaaaaaacaaaaaaafaaaaafaaaaafaaacgQaaaaafaaaaafaafaafaafbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDeaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajpaafbZocftbZqaaabZocftbZqaaabZocftbZqaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaabBpbDOcgRbNGcdocgjcgjcgkcdocgScgTcgUcgVcgWcgXcgYcgZcgXcgYchachbchcchdchechfchgchdccHchhcdobNgcgBchicgBbNgcgDchjcgDbNgcgHchkcgHbNgaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachlaafbRHchmchnchobXmchpchqchrbXmchschtchubRHaaaaaabZZaaacbycbycbycbycbyaafbZnaafcbycbycbycbycbyaafbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajpaafbZocftbZqaaabZocftbZqaafbZocftbZqaafaafaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacdochvcdochwcdocgjcgkcgkcdochxchychzchAchechfchBchCchDchDchEchdccHccHcheccHccHccHccHchFcdobNgbNgbNgbNgbNgbNgbNgbNgbNgbNgbNgbNgbNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaabRHchGbYibYibXmchGbYibYibXmchGbYibYibRHaafaafbZZaafcciccjccjccjccjchHchIchHccmccmccmccmccnaafbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXaafbZochJbZqaaabZochJbZqaaabZochJbZqaafajpaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacdochKcdochLcdocdocdocdochMchNcfacfacfachOchPchQchPchRchSchTcfacfacfachUcfacfacfachVchWcdoaafaaaaaaaaaaafaafaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRHchXbYibYibXmchXbYibYibXmchXbYibYibRHaaaaaabZZaafcdbcdbcdbcdbcdbaaabZnaaacdbcdbcdbcdbcdbaaabZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -9433,18 +9457,18 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacABcACcACcACcACcACcACcACcACcACcACcACcACcADcBjcAFcADcADcADcADcAGcBjcBkcAIcAJcBlcBmcBncBncBncBncBlcBocBpcBpcBpcBpcBpcBpcBpcBqcBpcBpcBpcBqczhczhczhcBrczhczhcBsczhcBsczhczhcBrczhczhczhcBtczmczmczmczmczmcBtczmczmczmczmczmczmczmcBtcARcARcARcARcARczUczVczVcyGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWczWczWczWczWczWczWczWczWcAdcAScAfcAmczWcBucAKcAKcAkcAlczWcBvcBwcBwcBxcBycBzcBAczWcBBcBBcBBczWczhczhczXcBCcBDcBbcBEczhcBFcBfcBGcBCczYczhczhcBtczmczmczmczmczmcBtczmczmczmczmczmczmczmcBtcARcARcARcARcARcyGczBczBcyGcyGcyGcyGcyGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacABcACcACcACcACcACcACcACcACcACcACcACcACcADcBHcAFcADcADcADcADcAGcBHcBIcAIcAJcAmczWcAhcAKcAKcAkcAlczWcBJcBJcBJcBKcAKcBKcBLczWczWczWczWczWczhczhcAqcAZcBMczhcBsczhcBsczhcBMcAZczgczhczhcyGcBNcBOcBOcBOcBPcyGcyGcBQcyGcyGcyGczBcyGcyGcyGcBRcBRcBRcyGcyGczmczmczmcBSczmcBTcyGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWczWczWczWczWczWczWczWczWcAdcAScAfcAmczWcBUcBVcBVcBWcAlczWczWcBXcBYcBZcCacCbcCccBXaaaaaaaaacyGczhczhcAqcyGcyGcCdcCeczhcCfcCgcyGcyGczgczhczhcyGaaaaaaaaaaaaaaacyGcChcCicyGczAcCjczAczAcCkcClcCmcCmcCmcCncyGczmczmczDczDczmczmcCoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacABcACcACcACcACcACcACcACcACcACcACcACcACcADcCpcAFcADcADcADcADcAGcCpcCqcCrcAJcAmczWczWcCscCsczWczWczWaaacBXcCtcCucCvcCwcCxcBXaaaaaaaaacyGczhczhcAqcyGcyGczKczLczLczLczNcyGcyGczgczhczhcyGaaaaaaaaaaaaaaacyGcCicCicyGcCycCycCyczAcCkcCmcCmcCmcCmcCzcyGczmcCAczCczCcCBczmcCCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWczWczWczWczWczWczWczWczWczWczWczWczWczWcCDcCEcCEcCDaaaaaaaaacBXcCFcCvcCvcCvcCvcBXaaaaaaaaacyGczhczhcAYcyYcyYcyYcyYcyYcyYcyYcyYcyYcBhczhczhcyGaaaaaaaaaaaaaaacyGcCGcCicyGcCycCHcCyczAcCkcCkcCkcCkcCkcCkcyGczmcCAczCczCcCBczmcCCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCIcCJcCJcCJcCJcCKcCKcCJcCJcCLaaacBXcCvcCvcCvcCvcCvcBXaaaaaaaaacyGcyGcyGcyGcyGcyGcyGcyGcCMcyGcyGcyGcyGcyGcyGcyGcyGaaaaaaaaaaaaaaacyGcCNcCicyGcAaczAczAczAcCkaaaaaaaaaaaaaaacyGczmcCAczCczCcCBczmcCCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCOcCPcCQcCRcCScCRcCRcCTcCUcCJcCLcBXcCvcCVcCWcCXcCYcBXaaaaaaaaaaaaaaaaaaaaaaaaaaacyGcCZcCZcCZcyGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyGcyGcyGcyGcyGcyGcyGcyGcCkaaaaaaaaaaaaaaacDaczmcCAczCczCcCBczmcCCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCOcCPcCQcCRcCRcCRcCRcCRcCRcDbcDccBXcCvcDdcDecDfcDecBXaaaaaaaaaaaaaaaaaaaaaaaacyGcyGcyGcDgcyGcyGcyGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDhczmczmcDicDiczmczmcDhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCOcCPcCQcDjcDjcDjcDjcDjcDjcCJcDkcBXcCvcCvcCvcCvcCvcBXaaaaaaaaaaaaaaaaaaaaaaaacyGcyXcBhczhcAYcyZcyGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyGcDlczmczmczmczmcDmcyGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDncCJcCJcCJcCJcCJcCJcCJcCJcDkaaacBXcBXcBXcBXcBXcBXcBXaaaaaaaaaaaaaaaaaaaaaaaacyGcDocDpcDqcDpcDrcyGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyGcyGcyGcyGcyGcyGcyGcyGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDsczgcDtczhcDucAqcCkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDvcDwcDxcDxcDxcDycDzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDsczrcBCcBscBCcDAcCkaaaaaaaaaaaaaaaaaaaaaaaaaaacDvcDBcDCcDDcDEcDDcDFcDGcDzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDscDHcDIcDJcDIcDKcCkaaaaaaaaaaaaaaaaaaaaaaaaaaacDLcDMcDNcDOcDOcDOcDPcDQcDLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDscDscDscDscDscDscDscDscDscDscDscDscDscDscDscDscDscDscDscDscDsczgczhcDRczhcAqcCkcCkcCkaaaaaaaaaaaaaaaaaaaaacDLcDScDNcDOcDOcDTcDPcDUcDLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWczWczWczWczWczWczWczWczWcAdcAScAfcAmczWcBUcBVcBVcBWcAlczWczWcBXcBYcBZcCacCbcCccBXbYeczmbXEcyGczhczhcAqcyGcyGcCdcCeczhcCfcCgcyGcyGczgczhczhcyGaaaaaaaaaaaaaaacyGcChcCicyGczAcCjczAczAcCkcClcCmcCmcCmcCncyGczmczmczDczDczmczmcCoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacABcACcACcACcACcACcACcACcACcACcACcACcACcADcCpcAFcADcADcADcADcAGcCpcCqcCrcAJcAmczWczWcCscCsczWczWczWaaacBXcCtcCucCvcCwcCxcBXbYeczmbXEcyGczhczhcAqcyGcyGczKczLczLczLczNcyGcyGczgczhczhcyGaaaaaaaaaaaaaaacyGcCicCicyGcCycCycCyczAcCkcCmcCmcCmcCmcCzcyGczmcCAczCczCcCBczmcCCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWcnWczWczWczWczWczWczWczWczWczWczWczWczWczWcCDcCEcCEcCDaaaaaaaaacBXcCFcCvcCvcCvcCvcBXbYeczmbXEcyGczhczhcAYcyYcyYcyYcyYcyYcyYcyYcyYcyYcBhczhczhcyGaaaaaaaaaaaaaaacyGcCGcCicyGcCycCHcCyczAcCkcCkcCkcCkcCkcCkcyGczmcCAczCczCcCBczmcCCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCIcCJcCJcCJcCJcCKcCKcCJcCJcCLaaacBXcCvcCvcCvcCvcCvcBXdpJczmdqgcyGcyGcyGcyGcyGcyGcyGcyGcCMcyGcyGcyGcyGcyGcyGcyGcyGaaaaaaaaaaaaaaacyGcCNcCicyGcAaczAczAczAcCkaaaaaaaaaaaaaaacyGczmcCAczCczCcCBczmcCCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCOcCPcCQcCRcCScCRcCRcCTcCUcCJcCLcBXcCvcCVcCWcCXcCYcBXczmczmczmczmczmczmczmczmcyGcyGcCZcCZcCZcyGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyGcyGcyGcyGcyGcyGcyGcyGcCkaaaaaaaaaaaaaaacDaczmcCAczCczCcCBczmcCCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCOcCPcCQcCRcCRcCRcCRcCRcCRcDbcDccBXcCvcDdcDecDfcDecBXczmczmdrOdqHdqOdrNczmczmcyGcyGcyGcDgcyGcyGcyGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDhczmczmcDicDiczmczmcDhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCOcCPcCQcDjcDjcDjcDjcDjcDjcCJcDkcBXcCvcCvcCvcCvcCvcBXczmczmdrSdrQdrRdrPczmczmcyGcyXcBhczhcAYcyZcyGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyGcDlczmczmczmczmcDmcyGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDncCJcCJcCJcCJcCJcCJcCJcCJcDkaaacBXcBXcBXcBXcBXcBXcBXczmczmbZXcdkcecceeczmczmcyGcDocDpcDqcDpcDrcyGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyGcyGcyGcyGcyGcyGcyGcyGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyGczmczmcejceWcgtceNczmceMcDsczgcDtczhcDucAqcCkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDvcDwcDxcDxcDxcDycDzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyGczmczmczmczmczmczmczmdnIcDsczrcBCcBscBCcDAcCkaaaaaaaaaaaaaaaaaaaaaaaaaaacDvcDBcDCcDDcDEcDDcDFcDGcDzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyGdordnKdnLdoWczmdoudoVdpicDscDHcDIcDJcDIcDKcCkaaaaaaaaaaaaaaaaaaaaaaaaaaacDLcDMcDNcDOcDOcDOcDPcDQcDLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDscDscDscDscDscDscDscDscDscDscDscDscDscDscDscDsbZlcDscDscDscDsczgczhcDRczhcAqcCkcCkcCkaaaaaaaaaaaaaaaaaaaaacDLcDScDNcDOcDOcDTcDPcDUcDLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDVcDWcDXcDXcDXcDXcDXcDXcDXcDXcDXcDXcDXcDXcDYcDWcDXcDXcDscDZcBCcEaczhcEbczhcEccBCcDZcCkaaaaaaaaaaaaaaaaaaaaacEdcEecEfcEecEgcEecEfcEecEhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDVcDWcDXcEicEjcEkcEicEjcEjcEjcElcEjcEjcEmcEncDWcDXcDXcDscDZcAMcEaczhczhczhcEccAMcDZcCkcCkcCkcCkcCkcCkaaaaaacDLcEocEpcEpcDOcEpcEpcEocDLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDVcDWcEicEqcErcEscEtcEucEucEucEucEucEucEvcEncDWcDXcDXcDscDZcAMcEwczhczhczhcExcAMcDZcCkcEycEycEycEycCkaaaaaacDLcEzcDOcDOcDOcDOcDOcEAcDLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10244,16 +10268,16 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkmdk
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkmdkmdkFdkFdkFdkFdkFdkFdkmdkmdkmdkmdkmdkmdkmdkFdkFdkFdkFdkFdkFdkmdkmdkmdkmdildildlXdlXdlXdlXdlXdlXdlYdlZdlZdmadlXdlXdlXdlXdkQdildildhRddXddXddXddXddXddXddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddXddXddXddXdhRdhRdildildildildildhRdhRdhRdhRdhRddXddXddXddXddXddXddXddZddZddZddZdlydlydlydlydmbdmcdmddlydlCdmedlydlKdlydlydlydmfdmgdmhdlydildildildildildilaaaaaaaaaaaaaaaaaaaaaaaaaaaddXddXddXdhRdhRdildildildildildildktdkzdkvdildildildildildildildildildhRdhRddXddXddXddZddZddZddZddZddZddZddZddZddZddZddXddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkmdkmdkFdkFdkFdkFdkFdkFdkmdkmdkmdkmdkmdkmdkmdkFdkFdkFdkFdkFdkmdkmdhRdildildildlXdmidmjdmkdmldmmdmndmodmpdmpdmqdmjdmrdmsdkydildildhRdhRdhRdhRddXddXddXddXddXddXddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddXddXddXdhRdhRdildildildildildildildildildildhRdhRdhRdhRdhRddXddXddXddXddZddZddZdlydmtdmudmvdmwdmudmudlydlGdlHdmxdlEdlydmydmzdmAdmAdmAdlNdildildildildildildilaaaaaaaaaaaaaaaaaaaaaaaaaaadhRdhRdhRdildildildildildildildildmBdmCdmDdmEdmCdmCdildildildildildildhRddXddXddXddZddZddZddZddZddZddZddZddZddZddZddXddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkmdkmdkmdkFdkFdkFdkmdkmdkmdkmdkmdkmdkmdkmdkFdkFdkFdkmdkmddXdhRdildildildlXdmFdmjdmGdmHdmjdmjdmjdmjdmjdmIdmjdmrdmJdmKdildildildildildhRdhRdhRddXddXddXddXddXddXddXddZddZddZddZddZddZddZddZddZddZddZddZddXddXdhRdhRdjfdildildildildildildildildildildildildildildildhRdhRddXddXddXddXddXddXdlydmLdmudmMdmNdmOdmPdlydlydlydlydlEdlydmydmQdmQdmQdmRdlRdildildildildildildilaaaaaaaaaaaaaaaaaaaaaaaaaaadildildildildildildildildildildildmBdmSdmSdmSdmTdmCdildmUdildildildjxdjfdhRddXddXddZddZddZddZddZddZddZddZddZddZddXddXddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkmdkmdkFdkFdkFdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmddXdhRdildildildlXdmVdmjdmjdmWdmjdmjdmjdmjdmjdmqdmXdmYdmqdkvdildildildildildildildhRdhRdhRdhRddXddXddXddXddXddXddZddZddZddZddZddZddZddZddZddXddXdhRdhRdildlOdildildildildildildildildildildildildildildildildhRdhRdhRdhRddXddXddXdlydmZdmudnadmudnbdmudncdmRdnddnednfdlydmydmQdngdmQdnhdlWdildildildildildilaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadildildildildildnidnidnjdnkdmBdnldnmdnmdnndmCdmCdmCdmCdildildildildhRdhRddXddXddZddZddZddZddZddZddZddZddZddXddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkmdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmddZddZdhRdhRdildildlXdnodmjdnpdnqdnrdnsdntdmjdnudlXdlXdlXdlXdlXdkOdkydildildildildildildildildhRdhRdhRddXddXddXddXddXddZddZddZddZddZddZddZddXddXddXdhRdildildildildildildildildildildildkOdkydildildildildildildildildildhRdhRddXddXdlydlydlydlydlydlydlydnvdnwdnxdnvdnwdlydlydlydlydlydnydlydlydnzdnAdildilaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadildildnBdnkdnCdnDdnEdnFdnGdnHdnHdnIdnJdnKdnLdnMdkydildildildjgdhRddXddXddZddZddZddZddZddZddZddXddXddXddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkmdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmddZddZddXdhRdildildlXdnNdmjdnOdmHdnPdnQdnRdmjdnSdnTdnUdnVdnWdnXdkUdkVdkMdkMdkMdkMdkMdkLdildildildildhRdhRdhRddXddXddXddXddXddZddZddZddXddXddXddXdhRdhRdildildkRdkMdkMdkMdkMdkMdkMdkMdkMdkUdkVdkMdkMdkMdkMdkLdildildildildildhRddXddXddXddXddXdlydnYdnZdoadmQdnhdobdmRdnhdncdocdoddoedmRdnhdmQdmQdofdogdmgdmhdohdoidoidoidoidoidoidoidojdojdojdojdojdojdojdnjdokdoldomdnDdondoodopdoqdnHdnHdnHdordosdotdoudmKdildildildjgdhRddXddXddZddZddZddZddZddZddXddXddXddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkmdkmdkmdkmddZddZddXdhRdildildlXdlXdlXdlXdlXdovdowdoxdlXdlXdoydlXdlXdlXdlXdktdkvdildildildildildkCdildildildildhRdildhRdhRddXddXddXddXddXddXddXddXddXddXdhRdhRdildildildkCdildildildildildildildildktdkvdildildildildkCdildildildildildhRdhRdjfdhRdhRddXdlydlydlydlydozdnhdoAdoBdoCdnedoDdoEdoEdoFdoFdoGdoEdoHdoIdoEdoIdoJdoJdoJdoJdoJdoJdoJdoJdoKdoKdoKdoKdoKdoKdoKdoLdoMdoLdoNdoMdoOdoPdoQdoRdoSdoTdoUdnJdoVdoWdnMdkvdildildildildhRdhRddXddXddZddZddZddZddZddXddXddXddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkmdkmddZddZddXdhRdhRdildildildildildlXdoXdoYdoZdpadlXdjodpbdlvdildildildildildkEdildildildkKdkMdkMdkLdildildildildhRddXddXddXddXddXddXddXddXddXddXdhRdildildkRdkMdkSdildildildildhRdildildkEdildildildildildildkCdildildildildildildildlOdildhRdhRdhRdhRdhRdlydmQdpcdpddpedpedpddpfdpgdphdpedpedpidpddpjdpkdpldpmdpndpndpndpndpndpndpndpndpodpodpodpodpodpodppdpqdprdpsdptdpudpvdpwdpxdnidnidnidnidnidnidnidnidpydkudpzdkudlvdjgdhRddXddXddZddZddZddZddXddXddXddXddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddZddZddXdhRdhRdildildildildlXdpAdpBdpCdpDdlXdildildildildildildhRdhRdjfdhRdildildildildildkCdildildildildildhRddXddXddXddXddXdhRdhRdhRdhRdhRdildkRdkSdildildildhRdhRdhRdhRdhRdhRdjfdildildildildildildkCdildildildildildildildildildildildhRdhRdlydlydpEdpFdpEdlydlydpGdpHdpIdlydlydpEdpJdpEdlydpKdildildilaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaadpLdnkdnDdpMdpNdpOdpPdpQdpQdpRdnidpSdpTdpUdpVdpVdpVdpVdlvdildhRddXddXddZddZddZddZddXddXddXddZddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddZddZddZddXdhRdhRdildildildlXdlXdlXdlXdlXdlXdildildhRdhRdhRdhRdhRddXddXdhRdhRdildildildildkCdildildildildildildhRdhRdhRdhRdhRdhRdildildildildildkCdildildhRdhRdhRddXddXddXddXddXdhRdildildildildildildkCdildildildkOdkydildildildildildildildhRdlydpWdpXdpYdpXdlydpZdqadqbdqcdqddlydqedqfdqgdlydildildildildildilaaaaaaaafaaaaaaaaaaafaafaafaafaafaafaafaafaafdnidqhdqidoPdnidnidnidnidqjdnidqkdnidnidqldlvdlvdlvdlvdildhRddXddXddZddZddZddXddXddZddZddZddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkmdkmdkFdkFdkFdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmddXdhRdildildildlXdmVdmjdmjdmWdmjdmjdmjdmjdmjdmqdmXdmYdmqdkvdildildildildildildildhRdhRdhRdhRddXddXddXddXddXddXddZddZddZddZddZddZddZddZddZddXddXdhRdhRdildlOdildildildildildildildildildildildildildildildildhRdhRdhRdhRddXddXddXdlydmZdmudnadmudnbdmudncdmRdnddnednfdlydmydmQdngdmQdnhdlWdildildildildildilaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadildildildildildnidnidnjdnkdmBdnldnmdrTdnndmCdmCdmCdmCdildildildildhRdhRddXddXddZddZddZddZddZddZddZddZddZddXddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkmdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmddZddZdhRdhRdildildlXdnodmjdnpdnqdnrdnsdntdmjdnudlXdlXdlXdlXdlXdkOdkydildildildildildildildildhRdhRdhRddXddXddXddXddXddZddZddZddZddZddZddZddXddXddXdhRdildildildildildildildildildildildkOdkydildildildildildildildildildhRdhRddXddXdlydlydlydlydlydlydlydnvdnwdnxdnvdnwdlydlydlydlydlydnydlydlydnzdnAdildilaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadildildnBdnkdnCdnDdnEdnFdnGdnHdrWdrVdrUdrXdrYdnMdkydildildildjgdhRddXddXddZddZddZddZddZddZddZddXddXddXddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkmdkmdkmdkmdkmdkmdkmdkmdkmdkmdkmddZddZddXdhRdildildlXdnNdmjdnOdmHdnPdnQdnRdmjdnSdnTdnUdnVdnWdnXdkUdkVdkMdkMdkMdkMdkMdkLdildildildildhRdhRdhRddXddXddXddXddXddZddZddZddXddXddXddXdhRdhRdildildkRdkMdkMdkMdkMdkMdkMdkMdkMdkUdkVdkMdkMdkMdkMdkLdildildildildildhRddXddXddXddXddXdlydnYdnZdoadmQdnhdobdmRdnhdncdocdoddoedmRdnhdmQdmQdofdogdmgdmhdohdoidoidoidoidoidoidoidojdojdojdojdojdojdojdnjdokdoldomdnDdondoodopdoqdnHdnHdscdsbdosdotdrZdsadildildildjgdhRddXddXddZddZddZddZddZddZddXddXddXddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkmdkmdkmdkmddZddZddXdhRdildildlXdlXdlXdlXdlXdovdowdoxdlXdlXdoydlXdlXdlXdlXdktdkvdildildildildildkCdildildildildhRdildhRdhRddXddXddXddXddXddXddXddXddXddXdhRdhRdildildildkCdildildildildildildildildktdkvdildildildildkCdildildildildildhRdhRdjfdhRdhRddXdlydlydlydlydozdnhdoAdoBdoCdnedoDdoEdoEdoFdoFdoGdoEdoHdoIdoEdoIdoJdoJdoJdoJdoJdoJdoJdoJdoKdoKdoKdoKdoKdoKdoKdoLdoMdoLdoNdoMdoOdoPdoQdoRdoSdoTdoUdnJdsddsednMdkvdildildildildhRdhRddXddXddZddZddZddZddZddXddXddXddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkmdkmddZddZddXdhRdhRdildildildildildlXdoXdoYdoZdpadlXdjodpbdlvdildildildildildkEdildildildkKdkMdkMdkLdildildildildhRddXddXddXddXddXddXddXddXddXddXdhRdildildkRdkMdkSdildildildildhRdildildkEdildildildildildildkCdildildildildildildildlOdildhRdhRdhRdhRdhRdlydmQdpcdpddpedpedpddpfdpgdphdpedpedsfdpgdpjdpkdpldpmdpndpndpndpndpndpndpndpndpodpodpodpodpodpodppdpqdprdpsdptdpudpvdpwdpxdnidnidnidnidnidnidnidnidpydkudpzdkudlvdjgdhRddXddXddZddZddZddZddXddXddXddXddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddZddZddXdhRdhRdildildildildlXdpAdpBdpCdpDdlXdildildildildildildhRdhRdjfdhRdildildildildildkCdildildildildildhRddXddXddXddXddXdhRdhRdhRdhRdhRdildkRdkSdildildildhRdhRdhRdhRdhRdhRdjfdildildildildildildkCdildildildildildildildildildildildhRdhRdlydlydpEdpFdpEdlydlydpGdpHdpIdlydlydpEdshdsgdlydpKdildildilaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaadpLdnkdnDdpMdpNdpOdpPdpQdpQdpRdnidpSdpTdpUdpVdpVdpVdpVdlvdildhRddXddXddZddZddZddZddXddXddXddZddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddZddZddZddXdhRdhRdildildildlXdlXdlXdlXdlXdlXdildildhRdhRdhRdhRdhRddXddXdhRdhRdildildildildkCdildildildildildildhRdhRdhRdhRdhRdhRdildildildildildkCdildildhRdhRdhRddXddXddXddXddXdhRdildildildildildildkCdildildildkOdkydildildildildildildildhRdlydpWdpXdpYdpXdlydpZdqadqbdqcdqddlydqedqfdsidlydildildildildildilaaaaaaaafaaaaaaaaaaafaafaafaafaafaafaafaafaafdnidqhdqidoPdnidnidnidnidqjdnidqkdnidnidqldlvdlvdlvdlvdildhRddXddXddZddZddZddXddXddZddZddZddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddZddZddXddXdhRdildildildildildildildildildildildhRddXddXddXddXddXddXddXdhRdhRdildildildkKdkMdkMdkMdkLdildildildildildildildildildildildildildkCdildhRdhRddXddXddXddXddXddXddXdhRdhRdildildildildildkKdkMdkMdkMdkUdkVdkMdkMdkMdkLdildildildildlydqmdqndqodqpdlydqqdqddqddqrdqsdlydqtdqudqvdlydildildildildildilaafaafaafaafaafaafaafdqwdqwdqwdqwdqwaafaaaaaadnidqxdqydoPdqzdqAdqBdpQdpQdqCdpQdpRdnidildildildildildhRdhRddXddXddZddZddXddXddXddZddZddZddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddZddZddZddXdhRdildildildildildildildildildhRdhRdhRddXddXddXddXddXddXddXddXdhRdhRdhRdildildildildildkKdkLdildildkOdkydildildkRdkMdkMdkMdkMdkMdkSdildhRddXddXddXddXddZddZddZddXddXdhRdhRdhRdildildildildildildildktdkvdildildildkCdildildildildlydlydlydlydlydlydqDdqEdqFdqGdqsdlydpEdqHdpEdlydildildildildildilaaaaaaaafaaaaaaaaaaafdqwdqwdqwdqwdqwaafaaadnBdnkdqIdqJdqKdnidnidnidnidnidnidqLdqMdnidildildildildildhRddXddXddZddZddZddXddXddXddXddZddZddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddZddZddZddZdhRdhRdhRdhRdildildildildhRdhRdhRddXddXddXddXddXddXddXddXddXddXddXddXdhRdhRdhRdildkEdildildkKdkMdkMdkUdkVdkMdkMdkSdildildildildildildildhRddXddXddXddZddZddZddZddZddXddXddXdhRdhRdhRdhRdildildildildildildildildildkKdkMdkMdkLdildildildildildildlydlydlydlydlydlydlydqNdqOdmKdqPdildildildildilaaaaaaaaaaafaaaaaaaaaaafdqwdqwdqwdqwdqwdqQdokdqRdqSdnDdqTdoPdqUdqUdqVdqWdqXdqYdqZdqMdnidildildildildhRdhRddXddXddZddZddXddXddXddXddZddZddZddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddZddZddZddXdhRdildildildildildildildildildhRdhRdhRddXddXddXddXddXddXddXddXdhRdhRdhRdildildildildildkKdkLdildildkOdkydildildkRdkMdkMdkMdkMdkMdkSdildhRddXddXddXddXddZddZddZddXddXdhRdhRdhRdildildildildildildildktdkvdildildildkCdildildildildlydlydlydlydlydlydqDdqEdqFdqGdqsdlydpEdsjdpEdlydildildildildildilaaaaaaaafaaaaaaaaaaafdqwdqwdqwdqwdqwaafaaadnBdnkdqIdqJdqKdnidnidnidnidnidnidqLdqMdnidildildildildildhRddXddXddZddZddZddXddXddXddXddZddZddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddZddZddZddZdhRdhRdhRdhRdildildildildhRdhRdhRddXddXddXddXddXddXddXddXddXddXddXddXdhRdhRdhRdildkEdildildkKdkMdkMdkUdkVdkMdkMdkSdildildildildildildildhRddXddXddXddZddZddZddZddZddXddXddXdhRdhRdhRdhRdildildildildildildildildildkKdkMdkMdkLdildildildildildildlydlydlydlydlydlydlydqNdskdmKdqPdildildildildilaaaaaaaaaaafaaaaaaaaaaafdqwdqwdqwdqwdqwdqQdokdqRdqSdnDdqTdoPdqUdqUdqVdqWdqXdqYdqZdqMdnidildildildildhRdhRddXddXddZddZddXddXddXddXddZddZddZddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddZddZddZddZddZddXdhRdhRdhRdhRdhRdhRddXddXddXddXddXddXddXddZddZddZddZddXddXddXddXddXdhRdhRdjfdhRdildildildildktdkvdildildildildkEdildhRdhRdhRdhRdhRddXddXddZddZddZddZddZddZddZddXddXddXddXddXdhRdhRdhRdhRdhRdhRdhRdhRdildildildildildkCdildildildildildildildildktdradrbdrbdrbdrbdrcdkvdildildildildildilaafaafaafaafaafaafaafaafdqwdqwdqwdqwdqwdrddnDdrddnDdnDdqTdoPdnDdnDdrednDdnDdrfdrgdrhdnidildildildildhRddXddXddXddZddZddXddXddXddZddZddZddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddZddZddZddZddZddZddXddXddXddXddXddXddXddXddXddZddZddZddZddZddZddZddZddZddXddXddXddXddXddXdhRdhRdildildildildildildildildildjfdhRdhRddXddXddXddXddXddZddZddZddZddZddZddZddZddXddXddXddXddXddXddXddXddXddXddXddXdhRdhRdildildildildkCdildildildildildildildildildildildildildildildildildildildildildildilaaaaaaaaaaaaaaaaaaaafdqwdqwdqwdqwdqwdnjdokdridrjdnDdqTdrkdpudpudrldpudpudrmdrndrodnidildildildkNdjfddXddXddXddZddXddXddXddXddZddZddZddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddZddZddZddZddXddZddZddXddXddXddXddZddZddZddZddZddZddZddZddZddZddZddZddZddZddXddXddXddXddXddXdhRdhRdhRdildildildhRdhRdhRdhRdhRddXddXddXddXddXddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddXddXddXddXddXdhRdildildildildkKdkMdkMdkMdkMdkMdkMdkMdkMdkMdkMdkMdkMdkMdkMdkMdkMdkMdkLdildildildildildilaaaaaaaaaaaaaaaaafdqwdqwdqwdqwdqwaafaaadpLdnkdrpdqTdoPdnDdnDdrqdqUdnDdnDdqLdrrdnidildildildildhRddXddXddXddXddXddXddXddZddZddZddZddZddZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10581,3 +10605,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}
+
diff --git a/maptools/clean_map.bat b/maptools/clean_map.bat
index 8ce90510b2e..804c8a41f46 100644
--- a/maptools/clean_map.bat
+++ b/maptools/clean_map.bat
@@ -1,2 +1 @@
-java -jar MapPatcher.jar -clean ../maps/tgstation.2.0.9.1.dmm.backup ../maps/tgstation.2.0.9.1.dmm ../maps/tgstation.2.0.9.1.dmm
-del ../maps/tgstation.2.0.9.1.dmm.backup
+java -jar MapPatcher.jar -clean ../maps/tgstation.2.1.0.0.1.dmm.backup ../maps/tgstation.2.1.0.0.1.dmm ../maps/tgstation.2.1.0.0.1.dmm
\ No newline at end of file
diff --git a/maptools/prepare_map.bat b/maptools/prepare_map.bat
index 92a1aa44f7e..dec9fa9ecbc 100644
--- a/maptools/prepare_map.bat
+++ b/maptools/prepare_map.bat
@@ -1,2 +1,2 @@
cd ../maps
-copy tgstation.2.0.9.1.dmm tgstation.2.0.9.1.dmm.backup
+copy tgstation.2.1.0.0.1.dmm tgstation.2.1.0.0.1.dmm.backup