Conflict Resolution

# Conflicts:
#	interface/skin.dmf
This commit is contained in:
skull132
2016-05-18 17:26:08 +03:00
38 changed files with 1488 additions and 127 deletions

View File

@@ -0,0 +1,246 @@
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
CREATE TABLE `characters_data` (
`Id` int(11) NOT NULL,
`char_id` int(11) NOT NULL,
`OOC` varchar(512) DEFAULT NULL,
`name` varchar(128) NOT NULL,
`isRandom` tinyint(1) DEFAULT NULL,
`gender` varchar(32) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`species` varchar(32) DEFAULT NULL,
`language` varchar(128) DEFAULT NULL,
`hair_R` int(11) DEFAULT NULL,
`hair_G` int(11) DEFAULT NULL,
`hair_B` int(11) DEFAULT NULL,
`facial_R` int(11) DEFAULT NULL,
`facial_G` int(11) DEFAULT NULL,
`facial_B` int(11) DEFAULT NULL,
`skin_tone` int(11) DEFAULT NULL,
`skin_R` int(11) DEFAULT NULL,
`skin_G` int(11) DEFAULT NULL,
`skin_B` int(11) DEFAULT NULL,
`hair_style` varchar(32) DEFAULT NULL,
`facial_style` varchar(32) DEFAULT NULL,
`eyes_R` int(11) DEFAULT NULL,
`eyes_G` int(11) DEFAULT NULL,
`eyes_B` int(11) DEFAULT NULL,
`underwear` varchar(32) DEFAULT NULL,
`undershirt` varchar(32) DEFAULT NULL,
`backbag` int(11) DEFAULT NULL,
`b_type` varchar(32) DEFAULT NULL,
`spawnpoint` varchar(32) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `characters_flavour` (
`id` int(11) NOT NULL,
`char_id` int(11) NOT NULL,
`generals` text NOT NULL,
`head` text NOT NULL,
`face` text NOT NULL,
`eyes` text NOT NULL,
`torso` text NOT NULL,
`arms` text NOT NULL,
`hands` text NOT NULL,
`legs` text NOT NULL,
`feet` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
CREATE TABLE `characters_gear` (
`id` int(11) NOT NULL,
`char_id` int(11) NOT NULL,
`gear` mediumtext
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `characters_jobs` (
`id` int(11) NOT NULL,
`char_id` int(11) NOT NULL,
`Alternate` int(11) NOT NULL,
`civ_high` int(11) NOT NULL,
`civ_med` int(11) NOT NULL,
`civ_low` int(11) NOT NULL,
`medsci_high` int(11) NOT NULL,
`medsci_med` int(11) NOT NULL,
`medsci_low` int(11) NOT NULL,
`engsec_high` int(11) NOT NULL,
`engsec_med` int(11) NOT NULL,
`engsec_low` int(11) NOT NULL,
`alt_titles` mediumtext NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
CREATE TABLE `characters_misc` (
`id` int(11) NOT NULL,
`char_id` int(11) NOT NULL,
`med_rec` text NOT NULL,
`sec_rec` text NOT NULL,
`gen_rec` text NOT NULL,
`disab` text NOT NULL,
`used_skill` int(11) NOT NULL,
`skills_spec` text NOT NULL,
`home_sys` text NOT NULL,
`citizen` text NOT NULL,
`faction` text NOT NULL,
`religion` text NOT NULL,
`NT_relation` text NOT NULL,
`uplink_loc` text NOT NULL,
`exploit_rec` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `characters_organs` (
`id` int(11) NOT NULL,
`char_id` int(11) NOT NULL,
`l_leg` text,
`r_leg` text,
`l_arm` text,
`r_arm` text,
`l_foot` text,
`r_foot` text,
`l_hand` text,
`r_hand` text,
`heart` text,
`eyes` text
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `characters_rlimb` (
`id` int(11) NOT NULL,
`char_id` int(11) NOT NULL,
`l_leg` text,
`r_leg` text,
`l_arm` text,
`r_arm` text,
`l_foot` text,
`r_foot` text,
`l_hand` text,
`r_hand` text
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `characters_robot_flavour` (
`id` int(11) NOT NULL,
`char_id` int(11) DEFAULT NULL,
`Default_Robot` text,
`Standard` text,
`Engineering` text,
`Construction` text,
`Surgeon` text,
`Crisis` text,
`Miner` text,
`Janitor` text,
`Service` text,
`Clerical` text,
`Security` text,
`Research` text
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `characters_skills` (
`id` int(11) NOT NULL,
`char_id` int(11) NOT NULL,
`Command` int(11) DEFAULT NULL,
`Botany` int(11) DEFAULT NULL,
`Cooking` int(11) DEFAULT NULL,
`Close_Combat` int(11) DEFAULT NULL,
`Weapons_Expertise` int(11) DEFAULT NULL,
`Forensics` int(11) DEFAULT NULL,
`NanoTrasen_Law` int(11) DEFAULT NULL,
`EVA` int(11) DEFAULT NULL,
`Construction` int(11) DEFAULT NULL,
`Electrical` int(11) DEFAULT NULL,
`Atmos` int(11) DEFAULT NULL,
`Engines` int(11) DEFAULT NULL,
`Heavy_Mach` int(11) DEFAULT NULL,
`Complex_Devices` int(11) DEFAULT NULL,
`Information_Tech` int(11) DEFAULT NULL,
`Genetics` int(11) DEFAULT NULL,
`Chemistry` int(11) DEFAULT NULL,
`Science` int(11) DEFAULT NULL,
`Medicine` int(11) DEFAULT NULL,
`Anatomy` int(11) DEFAULT NULL,
`Virology` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `player_preferences` (
`id` int(11) NOT NULL,
`ckey` text NOT NULL,
`ooccolor` text NOT NULL,
`lastchangelog` text NOT NULL,
`UI_style` text NOT NULL,
`default_slot` int(11) NOT NULL,
`toggles` int(11) NOT NULL,
`UI_style_color` text NOT NULL,
`UI_style_alpha` int(11) NOT NULL,
`be_special` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `ss13_characters` (
`id` int(11) NOT NULL,
`ckey` varchar(32) DEFAULT NULL,
`slot` int(11) DEFAULT '0',
`Character_Name` text
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
ALTER TABLE `characters_data`
ADD PRIMARY KEY (`Id`);
ALTER TABLE `characters_flavour`
ADD PRIMARY KEY (`id`);
ALTER TABLE `characters_gear`
ADD PRIMARY KEY (`id`);
ALTER TABLE `characters_jobs`
ADD PRIMARY KEY (`id`);
ALTER TABLE `characters_misc`
ADD PRIMARY KEY (`id`);
ALTER TABLE `characters_organs`
ADD PRIMARY KEY (`id`);
ALTER TABLE `characters_rlimb`
ADD PRIMARY KEY (`id`);
ALTER TABLE `characters_robot_flavour`
ADD PRIMARY KEY (`id`);
ALTER TABLE `characters_skills`
ADD PRIMARY KEY (`id`);
ALTER TABLE `player_preferences`
ADD PRIMARY KEY (`id`);
ALTER TABLE `ss13_characters`
ADD PRIMARY KEY (`id`);
ALTER TABLE `characters_data`
MODIFY `Id` int(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `characters_flavour`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `characters_gear`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `characters_jobs`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `characters_misc`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `characters_organs`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `characters_rlimb`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `characters_robot_flavour`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `characters_skills`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `player_preferences`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `ss13_characters`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

View File

@@ -889,6 +889,7 @@
#include "code\modules\cciaa\cciaa_items.dm"
#include "code\modules\client\client defines.dm"
#include "code\modules\client\client procs.dm"
#include "code\modules\client\client_saveSQL.dm"
#include "code\modules\client\preferences.dm"
#include "code\modules\client\preferences_ambience.dm"
#include "code\modules\client\preferences_factions.dm"

View File

@@ -116,18 +116,18 @@ obj/var/contaminated = 0
/mob/living/carbon/human/proc/burn_eyes()
//The proc that handles eye burning.
if(!species.has_organ["eyes"])
return
//The proc that handles eye burning.
if(!species.has_organ["eyes"] || get_species() == "Vaurca")
return
var/obj/item/organ/eyes/E = internal_organs_by_name["eyes"]
if(E)
if(prob(20)) src << "\red Your eyes burn!"
E.damage += 2.5
eye_blurry = min(eye_blurry+1.5,50)
if (prob(max(0,E.damage - 15) + 1) &&!eye_blind)
src << "\red You are blinded!"
eye_blind += 20
var/obj/item/organ/eyes/E = internal_organs_by_name["eyes"]
if(E)
if(prob(20)) src << "\red Your eyes burn!"
E.damage += 2.5
eye_blurry = min(eye_blurry+1.5,50)
if (prob(max(0,E.damage - 15) + 1) &&!eye_blind)
src << "\red You are blinded!"
eye_blind += 20
/mob/living/carbon/human/proc/pl_head_protected()
//Checks if the head is adequately sealed.

View File

@@ -31,6 +31,8 @@
diary << "\[[time_stamp()]]DEBUG: [text][log_end]"
for(var/client/C in admins)
if(!C.prefs) //This is to avoid null.toggles runtime error while still initialyzing players preferences
return
if(C.prefs.toggles & CHAT_DEBUGLOGS)
C << "DEBUG: [text]"
@@ -91,7 +93,7 @@
if(dir & WEST) comps += "WEST"
if(dir & UP) comps += "UP"
if(dir & DOWN) comps += "DOWN"
return english_list(comps, nothing_text="0", and_text="|", comma_text="|")
//more or less a logging utility

View File

@@ -147,11 +147,12 @@
for(var/area/A in areas_added) //Checks if there are fire alarms in any areas associated with that firedoor
if(A.fire || A.air_doors_activated)
alarmed = 1
/*
var/answer = alert(user, "Would you like to [density ? "open" : "close"] this [src.name]?[ alarmed && density ? "\nNote that by doing so, you acknowledge any damages from opening this\n[src.name] as being your own fault, and you will be held accountable under the law." : ""]",\
"\The [src]", "Yes, [density ? "open" : "close"]", "No")
if(answer == "No")
return
*/
if(user.stat || user.stunned || user.weakened || user.paralysis || (!user.canmove && !user.isSilicon()) || (get_dist(src, user) > 1 && !isAI(user)))
user << "Sorry, you must remain able bodied and close to \the [src] in order to use it."
return

View File

@@ -863,7 +863,7 @@
/obj/item/seeds/sunflowerseed = 3,/obj/item/seeds/tomatoseed = 3,/obj/item/seeds/towermycelium = 3,/obj/item/seeds/wheatseed = 3,/obj/item/seeds/appleseed = 3,
/obj/item/seeds/poppyseed = 3,/obj/item/seeds/sugarcaneseed = 3,/obj/item/seeds/ambrosiavulgarisseed = 3,/obj/item/seeds/peanutseed = 3,/obj/item/seeds/whitebeetseed = 3,/obj/item/seeds/watermelonseed = 3,/obj/item/seeds/limeseed = 3,
/obj/item/seeds/lemonseed = 3,/obj/item/seeds/orangeseed = 3,/obj/item/seeds/grassseed = 3,/obj/item/seeds/cocoapodseed = 3,/obj/item/seeds/plumpmycelium = 2,
/obj/item/seeds/cabbageseed = 3,/obj/item/seeds/grapeseed = 3,/obj/item/seeds/pumpkinseed = 3,/obj/item/seeds/cherryseed = 3,/obj/item/seeds/plastiseed = 3,/obj/item/seeds/riceseed = 3)
/obj/item/seeds/cabbageseed = 3,/obj/item/seeds/grapeseed = 3,/obj/item/seeds/pumpkinseed = 3,/obj/item/seeds/cherryseed = 3,/obj/item/seeds/plastiseed = 3,/obj/item/seeds/riceseed = 3,/obj/item/seeds/koisspore = 3)
contraband = list(/obj/item/seeds/amanitamycelium = 2,/obj/item/seeds/glowshroom = 2,/obj/item/seeds/libertymycelium = 2,/obj/item/seeds/mtearseed = 2,
/obj/item/seeds/nettleseed = 2,/obj/item/seeds/reishimycelium = 2,/obj/item/seeds/reishimycelium = 2,/obj/item/seeds/shandseed = 2,)
premium = list(/obj/item/toy/waterflower = 1)

View File

@@ -7,6 +7,10 @@
w_class = 2.0
desc = "This is rubbish."
/obj/item/trash/koisbar
name = "K'ois Bar Wrapper"
icon_state = "koisbar"
/obj/item/trash/raisins
name = "\improper 4no raisins"
icon_state= "4no_raisins"

View File

@@ -68,7 +68,7 @@
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.species.flags & IS_SYNTHETIC || (H.species.siemens_coefficient<0.5)) //Thick skin.
if(H.species.flags & IS_SYNTHETIC || (H.species.siemens_coefficient<0.5) || (H.species.name == "Vaurca")) //Thick skin.
return
if( !H.shoes && ( !H.wear_suit || !(H.wear_suit.body_parts_covered & FEET) ) )

View File

@@ -0,0 +1,732 @@
//handles saving to SQL Format
//MAKE SURE YOU KEEP THIS UP TO DATE!
//if the db can't be updated, return 0
//if the db was updated, return 1
/datum/preferences/proc/SQLsave_character(var/cslot)
char_slot = cslot
if(!cslot)
log_debug("invalid slot")
return 0
for(var/ckey in preferences_datums)
var/datum/preferences/D = preferences_datums[ckey]
if(D == src)
log_debug("Ckey is [ckey]")
establish_db_connection(dbcon)
if(!dbcon.IsConnected())
return 0
else
log_debug("db connected, real name is [real_name]")
if(!getCharId(ckey))
log_debug("New Character")
query = dbcon.NewQuery("INSERT INTO ss13_characters (ckey, slot) VALUES ('[ckey]', '[cslot]')")
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
getCharId(ckey)
InsertCharData()
InsertJobsData()
InsertFlavourData()
InsertRobotFlavourData()
InsertMiscData()
InsertSkillsData()
InsertGearData()
InsertOrgansData()
else
log_debug("ID = [char_id]")
log_debug("Update entry")
UpdateCharData()
UpdateJobsData()
UpdateFlavourData()
UpdateRobotFlavourData()
UpdateMiscData()
UpdateSkillsData()
UpdateGearData()
UpdateOrgansData()
TextQuery = "UPDATE SS13_characters SET Character_Name = (SELECT name FROM characters_data WHERE char_id = '[char_id]') WHERE id = '[char_id]'"
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
log_debug("Save query executed")
return 1
log_debug("No ckey in datums")
return 0
/datum/preferences/proc/SQLload_character(var/slot, var/pckey)
establish_db_connection(dbcon)
if(!dbcon.IsConnected())
return 0
char_slot = slot
if(!getCharId(pckey))
return 0
log_debug("Loading character ID [char_id] from slot [char_slot]")
if(LoadCharData())
if(LoadJobsData())
if(LoadFlavourData())
if(LoadRobotFlavourData())
if(LoadMiscData())
if(LoadSkillsData())
if(LoadGearData())
if(LoadOrgansData())
SanitizeCharacter()
return 1
return 0
/datum/preferences/proc/getCharId(var/ckey)
TextQuery = "SELECT id FROM ss13_characters WHERE ckey='[ckey]' AND slot = '[char_slot]'"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
log_debug("Query ready")
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
var/rowDebug = query.RowCount()
log_debug("Query executed, [rowDebug] rows")
if(!query.RowCount())
return 0
query.NextRow()
char_id = query.item[1]
log_debug("GetCharId : [char_id]")
return char_id
/datum/preferences/proc/InsertCharData()
log_debug("Insert Char Data")
TextQuery = "INSERT INTO characters_data (age, backbag, b_type, char_id, eyes_B, eyes_G, eyes_R, facial_B, facial_G, facial_R, facial_style, "
TextQuery += "gender, hair_B, hair_G, hair_R, hair_style, isRandom, language, name, OOC,skin_B, skin_G, skin_R, skin_tone, spawnpoint, species, undershirt, underwear) VALUES "
TextQuery += "('[age]', '[backbag]', '[b_type]', '[char_id]', '[b_eyes]', '[g_eyes]', '[r_eyes]', '[b_facial]', '[g_facial]', '[r_facial]', '[f_style]', "
TextQuery += "'[gender]', '[b_hair]', '[g_hair]', '[r_hair]', '[h_style]', '[be_random_name]', '[language]', '[real_name]', "
TextQuery += "'[metadata]', '[b_skin]', '[g_skin]', '[r_skin]', '[s_tone]', '[spawnpoint]', '[species]', '[undershirt]', '[underwear]')"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
return 1
/datum/preferences/proc/UpdateCharData()
log_debug("Update Char Data")
query = dbcon.NewQuery("SELECT id FROM characters_data WHERE char_id = '[char_id]'")
query.Execute()
if(!query.RowCount())
InsertCharData()
TextQuery = "UPDATE characters_data SET age = '[age]', backbag='[backbag]', b_type='[b_type]', eyes_B = '[b_eyes]', eyes_G='[g_eyes]', eyes_R='[r_eyes]',"
TextQuery += "facial_B='[b_facial]', facial_G='[g_facial]', facial_R='[r_facial]', facial_style='[f_style]', gender = '[gender]', hair_B='[b_hair]', hair_G='[g_hair]',"
TextQuery += "hair_R='[r_hair]', hair_style='[h_style]', isRandom='[be_random_name]', language='[language]', name='[real_name]', OOC='[metadata]',skin_B='[b_skin]', skin_G='[g_skin]',"
TextQuery += "skin_R='[r_skin]', skin_tone='[s_tone]', spawnpoint='[spawnpoint]', species='[species]', undershirt='[undershirt]', underwear='[underwear]'"
TextQuery += "WHERE char_id = '[char_id]'"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
return 1
/datum/preferences/proc/LoadCharData()
log_debug("Load char data")
TextQuery = "SELECT age, backbag, b_type, eyes_B, eyes_G, eyes_R, facial_B, facial_G, facial_R, facial_style, gender, "
TextQuery += "hair_B, hair_G, hair_R, hair_style, isRandom, language, name, OOC, skin_B, skin_G, skin_R, skin_tone, spawnpoint, species, undershirt, underwear "
TextQuery += "FROM characters_data WHERE char_id = [char_id]"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
if(!query.RowCount())
return 0
log_debug("Load query executed successfully")
query.NextRow()
age = text2num(query.item[1])
backbag = text2num(query.item[2])
b_type = text2num(query.item[3])
b_eyes = text2num(query.item[4])
g_eyes = text2num(query.item[5])
r_eyes = text2num(query.item[6])
b_facial = text2num(query.item[7])
g_facial = text2num(query.item[8])
r_facial = text2num(query.item[9])
f_style = query.item[10]
gender = query.item[11]
b_hair = text2num(query.item[12])
g_hair = text2num(query.item[13])
r_hair = text2num(query.item[14])
h_style = query.item[15]
be_random_name = text2num(query.item[16])
language = query.item[17]
real_name = query.item[18]
metadata = query.item[19]
b_skin = text2num(query.item[20])
g_skin = text2num(query.item[21])
r_skin = text2num(query.item[22])
s_tone = text2num(query.item[23])
spawnpoint = query.item[24]
species = query.item[25]
undershirt = query.item[26]
underwear = query.item[27]
return 1
/datum/preferences/proc/InsertJobsData()
log_debug("Insert jobs")
var/alt_titles_list = list2params(player_alt_titles)
TextQuery = "INSERT INTO characters_jobs (char_id, Alternate, civ_high, civ_med, civ_low, medsci_high, medsci_med, medsci_low, engsec_high, engsec_med, engsec_low, alt_titles) "
TextQuery += " VALUES ('[char_id]','[alternate_option]', '[job_civilian_high]', '[job_civilian_med]', '[job_civilian_low]', '[job_medsci_high]', '[job_medsci_med]', '[job_medsci_low]', "
TextQuery += "'[job_engsec_high]', '[job_engsec_med]', '[job_engsec_low]', '[alt_titles_list]')"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
return 1
/datum/preferences/proc/UpdateJobsData()
log_debug("update jobs")
query = dbcon.NewQuery("SELECT id FROM characters_jobs WHERE char_id = '[char_id]'")
query.Execute()
if(!query.RowCount())
InsertJobsData()
var/alt_titles_list = list2params(player_alt_titles)
TextQuery = "UPDATE characters_jobs SET Alternate='[alternate_option]', civ_high='[job_civilian_high]', civ_med='[job_civilian_med]', civ_low='[job_civilian_low]', "
TextQuery += "medsci_high='[job_medsci_high]', medsci_med='[job_medsci_med]', medsci_low='[job_medsci_low]', "
TextQuery += "engsec_high='[job_engsec_high]', engsec_med='[job_engsec_med]', engsec_low='[job_engsec_low]', alt_titles = '[alt_titles_list]' WHERE char_id = [char_id] "
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
return 1
/datum/preferences/proc/LoadJobsData()
log_debug("load_jobs")
TextQuery = "SELECT * FROM characters_jobs WHERE char_id = [char_id]"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
if(!query.RowCount())
return 0
log_debug("Load query executed successfully")
query.NextRow()
alternate_option = text2num(query.item[3])
job_civilian_high = text2num(query.item[4])
job_civilian_med = text2num(query.item[5])
job_civilian_low = text2num(query.item[6])
job_medsci_high = text2num(query.item[7])
job_medsci_med = text2num(query.item[8])
job_medsci_low = text2num(query.item[9])
job_engsec_high = text2num(query.item[10])
job_engsec_med = text2num(query.item[11])
job_engsec_low = text2num(query.item[12])
player_alt_titles = params2list(query.item[13])
return 1
/datum/preferences/proc/InsertFlavourData()
log_debug("insert flavour")
TextQuery = "INSERT INTO characters_flavour (char_id, generals, head, face, eyes, torso, arms, hands, legs, feet) "
TextQuery += " VALUES ('[char_id]','[flavor_texts["general"]]', '[flavor_texts["head"]]', '[flavor_texts["face"]]', '[flavor_texts["eyes"]]', '[flavor_texts["torso"]]', "
TextQuery += "'[flavor_texts["arms"]]', '[flavor_texts["hands"]]', '[flavor_texts["legs"]]', '[flavor_texts["feet"]]')"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
return 1
/datum/preferences/proc/UpdateFlavourData()
log_debug("update flavour")
query = dbcon.NewQuery("SELECT id FROM characters_data WHERE char_id = '[char_id]'")
query.Execute()
if(!query.RowCount())
InsertFlavourData()
TextQuery = "UPDATE characters_flavour SET generals='[flavor_texts["general"]]', head='[flavor_texts["head"]]', face='[flavor_texts["face"]]', eyes='[flavor_texts["eyes"]]', "
TextQuery += "torso='[flavor_texts["torso"]]', arms='[flavor_texts["arms"]]', hands='[flavor_texts["hands"]]', legs='[flavor_texts["legs"]]', feet='[flavor_texts["feet"]]' "
TextQuery += "WHERE char_id = [char_id]"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
return 1
/datum/preferences/proc/LoadFlavourData()
log_debug("load flavour")
TextQuery = "SELECT * FROM characters_flavour WHERE char_id = [char_id]"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
if(!query.RowCount())
return 0
log_debug("Load query executed successfully")
query.NextRow()
flavor_texts["general"] = query.item[3]
flavor_texts["head"] = query.item[4]
flavor_texts["face"] = query.item[5]
flavor_texts["eyes"] = query.item[6]
flavor_texts["torso"] = query.item[7]
flavor_texts["arms"] = query.item[8]
flavor_texts["hands"]= query.item[9]
flavor_texts["legs"] = query.item[10]
flavor_texts["feet"] = query.item[11]
return 1
/datum/preferences/proc/InsertRobotFlavourData()
log_debug("insert robot")
TextQuery = "INSERT INTO characters_robot_flavour (char_id, Default_Robot, Standard, Engineering, Construction, Surgeon, Crisis, Miner, Janitor, Service, Clerical, Security, Research) "
TextQuery += " VALUES ('[char_id]','[flavour_texts_robot["Default"]]', '[flavour_texts_robot["Standard"]]', '[flavour_texts_robot["Engineering"]]', '[flavour_texts_robot["Construction"]]', "
TextQuery += "'[flavour_texts_robot["Surgeon"]]', '[flavour_texts_robot["Crisis"]]', '[flavour_texts_robot["Miner"]]', '[flavour_texts_robot["Janitor"]]', '[flavour_texts_robot["Service"]]', "
TextQuery += "'[flavour_texts_robot["Clerical"]]', '[flavour_texts_robot["Security"]]','[flavour_texts_robot["Research"]]')"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
return 1
/datum/preferences/proc/UpdateRobotFlavourData()
log_debug("update robot")
query = dbcon.NewQuery("SELECT id FROM characters_robot_flavour WHERE char_id = '[char_id]'")
query.Execute()
if(!query.RowCount())
InsertRobotFlavourData()
TextQuery = "UPDATE characters_robot_flavour SET Default_Robot='[flavour_texts_robot["Default"]]', Standard='[flavour_texts_robot["Standard"]]', Engineering='[flavour_texts_robot["Engineering"]]', "
TextQuery += "Construction='[flavour_texts_robot["Construction"]]', Surgeon='[flavour_texts_robot["Surgeon"]]', Crisis='[flavour_texts_robot["Crisis"]]', Miner='[flavour_texts_robot["Miner"]]', "
TextQuery += "Janitor='[flavour_texts_robot["Janitor"]]', Service='[flavour_texts_robot["Service"]]', Clerical='[flavour_texts_robot["Clerical"]]', "
TextQuery += "Security='[flavour_texts_robot["Security"]]', Research='[flavour_texts_robot["Research"]]' WHERE char_id = [char_id]"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
return 1
/datum/preferences/proc/LoadRobotFlavourData()
log_debug("load robot")
TextQuery = "SELECT * FROM characters_robot_flavour WHERE char_id = [char_id]"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
if(!query.RowCount())
return 0
log_debug("Load query executed successfully")
query.NextRow()
flavour_texts_robot["Default"] = query.item[3]
flavour_texts_robot["Standard"] = query.item[4]
flavour_texts_robot["Engineering"] = query.item[5]
flavour_texts_robot["Construction"] = query.item[6]
flavour_texts_robot["Surgeon"] = query.item[7]
flavour_texts_robot["Crisis"] = query.item[8]
flavour_texts_robot["Miner"] = query.item[9]
flavour_texts_robot["Janitor"] = query.item[10]
flavour_texts_robot["Service"] = query.item[11]
flavour_texts_robot["Clerical"] = query.item[12]
flavour_texts_robot["Security"] = query.item[13]
flavour_texts_robot["Research"] = query.item[14]
return 1
/datum/preferences/proc/InsertMiscData()
log_debug("insert misc")
sanitizePrefs()
TextQuery = "INSERT INTO characters_misc (char_id, med_rec, sec_rec, gen_rec, disab, used_skill, skills_spec, "
TextQuery += "home_sys, citizen, faction, religion, NT_relation, uplink_loc, exploit_rec) VALUES ("
TextQuery += "'[char_id]', '[med_record]', '[sec_record]', '[gen_record]', '[disabilities]', '[used_skillpoints]', "
TextQuery += "'[skill_specialization]', '[home_system]', '[citizenship]', '[faction]', '[religion]', '[nanotrasen_relation]', "
TextQuery += "'[uplinklocation]', '[exploit_record]')"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
return 1
/datum/preferences/proc/UpdateMiscData()
log_debug("update misc")
query = dbcon.NewQuery("SELECT id FROM characters_misc WHERE char_id = '[char_id]'")
query.Execute()
if(!query.RowCount())
InsertMiscData()
TextQuery = "UPDATE characters_misc SET med_rec='[med_record]', sec_rec='[sec_record]', gen_rec='[gen_record]', disab='[disabilities]', "
TextQuery += "used_skill='[used_skillpoints]', skills_spec='[skill_specialization]', "
TextQuery += "home_sys='[home_system]', citizen='[citizenship]', faction='[faction]', religion='[religion]', NT_relation='[nanotrasen_relation]', uplink_loc='[uplinklocation]', "
TextQuery += "exploit_rec='[exploit_record]' WHERE char_id = [char_id]"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
return 1
/datum/preferences/proc/LoadMiscData()
log_debug("load_misc")
TextQuery = "SELECT * FROM characters_misc WHERE char_id = [char_id]"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
if(!query.RowCount())
return 0
log_debug("Load query executed successfully")
query.NextRow()
med_record = query.item[3]
sec_record = query.item[4]
gen_record = query.item[5]
disabilities = text2num(query.item[6])
used_skillpoints = text2num(query.item[7])
skill_specialization = query.item[8]
home_system = query.item[9]
citizenship = query.item[10]
faction = query.item[11]
religion = query.item[12]
nanotrasen_relation = query.item[13]
uplinklocation = query.item[14]
exploit_record = query.item[15]
return 1
/datum/preferences/proc/InsertSkillsData()
log_debug("insert skills")
TextQuery = "INSERT INTO characters_skills (char_id, Command, Botany, Cooking, Close_Combat, Weapons_Expertise, Forensics, NanoTrasen_Law, EVA, "
TextQuery += "Construction, Electrical, Atmos, Engines, Heavy_Mach, Complex_Devices, Information_Tech, Genetics, Chemistry, Science, Medicine, Anatomy, Virology) VALUES "
TextQuery += "('[char_id]', '[skills["management"]]', '[skills["botany"]]', '[skills["cooking"]]', '[skills["combat"]]', '[skills["weapons"]]', '[skills["forensics"]]', '[skills["law"]]', '[skills["EVA"]]',"
TextQuery += " '[skills["construction"]]', '[skills["electrical"]]', '[skills["atmos"]]', '[skills["engines"]]', '[skills["pilot"]]', '[skills["devices"]]', '[skills["computer"]]', '[skills["genetics"]]',"
TextQuery += " '[skills["chemistry"]]', '[skills["science"]]', '[skills["medical"]]', '[skills["anatomy"]]', '[skills["virology"]]')"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
return 1
/datum/preferences/proc/UpdateSkillsData()
log_debug("update skills")
query = dbcon.NewQuery("SELECT id FROM characters_skills WHERE char_id = '[char_id]'")
query.Execute()
if(!query.RowCount())
InsertSkillsData()
TextQuery = "UPDATE characters_skills SET Command='[skills["management"]]', Botany='[skills["botany"]]', Cooking='[skills["cooking"]]', Close_Combat='[skills["combat"]]', "
TextQuery += "Weapons_Expertise='[skills["weapons"]]', Forensics='[skills["forensics"]]', NanoTrasen_Law='[skills["law"]]', EVA='[skills["EVA"]]', "
TextQuery += "Construction='[skills["construction"]]', Electrical='[skills["electrical"]]', Atmos='[skills["atmos"]]', Engines='[skills["engines"]]', Heavy_Mach='[skills["pilot"]]', Complex_Devices='[skills["devices"]]', "
TextQuery += "Information_Tech='[skills["computer"]]', Genetics='[skills["genetics"]]', Chemistry='[skills["chemistry"]]', Science='[skills["science"]]', Medicine='[skills["medical"]]', "
TextQuery += "Anatomy='[skills["anatomy"]]', Virology='[skills["virology"]]' WHERE char_id = '[char_id]'"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
return 1
/datum/preferences/proc/LoadSkillsData()
log_debug("load skills")
TextQuery = "SELECT * FROM characters_skills WHERE char_id = '[char_id]'"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
if(!query.RowCount())
return 0
log_debug("Load query executed successfully")
query.NextRow()
skills["management"] = text2num(query.item[3])
skills["botany"] = text2num(query.item[4])
skills["cooking"] = text2num(query.item[5])
skills["combat"] = text2num(query.item[6])
skills["weapons"] = text2num(query.item[7])
skills["forensics"] = text2num(query.item[8])
skills["law"] = text2num(query.item[9])
skills["EVA"] = text2num(query.item[10])
skills["construction"] = text2num(query.item[11])
skills["electrical"] = text2num(query.item[12])
skills["atmos"] = text2num(query.item[13])
skills["engines"] = text2num(query.item[14])
skills["pilot"] = text2num(query.item[15])
skills["devices"] = text2num(query.item[16])
skills["computer"] = text2num(query.item[17])
skills["genetics"] = text2num(query.item[18])
skills["chemistry"] = text2num(query.item[19])
skills["science"] = text2num(query.item[20])
skills["medical"] = text2num(query.item[21])
skills["anatomy"] = text2num(query.item[22])
skills["virology"] = text2num(query.item[23])
return 1
/datum/preferences/proc/InsertGearData()
log_debug("insert gear")
//var/loop_id = 0
var/gear_list = list2params(gear)
//test
TextQuery = "INSERT INTO characters_gear (char_id, gear) VALUES ('[char_id]', '[gear_list]')"
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
return 1
/datum/preferences/proc/UpdateGearData()
log_debug("update gear")
query = dbcon.NewQuery("SELECT id FROM characters_gear WHERE char_id = '[char_id]'")
query.Execute()
if(!query.RowCount())
InsertGearData()
//var/loop_id = 0
var/gear_list = list2params(gear)
TextQuery = "UPDATE characters_gear SET gear='[gear_list]' WHERE char_id = '[char_id]'"
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
return 1
/datum/preferences/proc/LoadGearData()
log_debug("load gear")
TextQuery = "SELECT * FROM characters_gear WHERE char_id = '[char_id]'"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
if(!query.RowCount())
return 0
log_debug("Load query executed successfully")
query.NextRow()
gear = params2list(query.item[3])
return 1
/datum/preferences/proc/InsertOrgansData()
log_debug("insert organs")
TextQuery = "INSERT INTO characters_organs (char_id, l_leg, r_leg, l_arm, r_arm, l_foot, r_foot, l_hand, r_hand, heart, eyes) VALUES ("
TextQuery += "'[char_id]', '[organ_data["l_leg"]]', '[organ_data["r_leg"]]', '[organ_data["l_arm"]]', '[organ_data["r_arm"]]', '[organ_data["l_foot"]]', '[organ_data["r_foot"]]', "
TextQuery += "'[organ_data["l_hand"]]', '[organ_data["r_hand"]]', '[organ_data["heart"]]', '[organ_data["eyes"]]')"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
InsertRorgansData()
return 1
/datum/preferences/proc/UpdateOrgansData()
log_debug("update organs")
query = dbcon.NewQuery("SELECT id FROM characters_organs WHERE char_id = '[char_id]'")
query.Execute()
if(!query.RowCount())
InsertOrgansData()
TextQuery = "UPDATE characters_organs SET char_id='[char_id]', l_leg='[organ_data["l_leg"]]', r_leg='[organ_data["r_leg"]]', l_arm='[organ_data["l_arm"]]', r_arm='[organ_data["r_arm"]]', "
TextQuery += "l_foot='[organ_data["l_foot"]]', r_foot='[organ_data["r_foot"]]', l_hand='[organ_data["l_hand"]]', r_hand='[organ_data["r_hand"]]', heart='[organ_data["heart"]]', eyes='[organ_data["eyes"]]'"
TextQuery += " WHERE char_id='[char_id]'"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
UpdateRorgansData()
return 1
/datum/preferences/proc/LoadOrgansData()
log_debug("load organs")
TextQuery = "SELECT * FROM characters_organs WHERE char_id = '[char_id]'"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
if(!query.RowCount())
return 0
log_debug("Load query executed successfully")
query.NextRow()
organ_data["l_leg"] = query.item[3]
organ_data["r_leg"] = query.item[4]
organ_data["l_arm"] = query.item[5]
organ_data["r_arm"] = query.item[6]
organ_data["l_foot"] = query.item[7]
organ_data["r_foot"] = query.item[8]
organ_data["l_hand"] = query.item[9]
organ_data["r_hand"] = query.item[10]
organ_data["heart"] = query.item[11]
organ_data["eyes"] = query.item[12]
LoadRorgansData()
return 1
/datum/preferences/proc/InsertRorgansData()
log_debug("insert robotics organs")
TextQuery = "INSERT INTO characters_rlimb (char_id, l_leg, r_leg, l_arm, r_arm, l_foot, r_foot, l_hand, r_hand) VALUES ("
TextQuery += "'[char_id]', '[rlimb_data["l_leg"]]', '[rlimb_data["r_leg"]]', '[rlimb_data["l_arm"]]', '[rlimb_data["r_arm"]]', '[rlimb_data["l_foot"]]', '[rlimb_data["r_foot"]]', "
TextQuery += "'[rlimb_data["l_hand"]]', '[rlimb_data["r_hand"]]')"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
return 1
/datum/preferences/proc/UpdateRorgansData()
log_debug("update robotics organs")
TextQuery = "UPDATE characters_rlimb SET char_id='[char_id]', l_leg='[rlimb_data["l_leg"]]', r_leg='[rlimb_data["r_leg"]]', l_arm='[rlimb_data["l_arm"]]', r_arm='[rlimb_data["r_arm"]]', "
TextQuery += "l_foot='[rlimb_data["l_foot"]]', r_foot='[rlimb_data["r_foot"]]', l_hand='[rlimb_data["l_hand"]]', r_hand='[rlimb_data["r_hand"]]'"
TextQuery += " WHERE char_id = '[char_id]'"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
return 1
/datum/preferences/proc/LoadRorgansData()
log_debug("load robotics organs")
TextQuery = "SELECT * FROM characters_rlimb WHERE char_id = '[char_id]'"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
if(!query.RowCount())
return 0
log_debug("Load query executed successfully")
query.NextRow()
rlimb_data["l_leg"] = query.item[3]
rlimb_data["r_leg"] = query.item[4]
rlimb_data["l_arm"] = query.item[5]
rlimb_data["r_arm"] = query.item[6]
rlimb_data["l_foot"] = query.item[7]
rlimb_data["r_foot"] = query.item[8]
rlimb_data["l_hand"] = query.item[9]
rlimb_data["r_hand"] = query.item[10]
return 1
/datum/preferences/proc/SavePrefData(var/ckey)
log_debug("Save pref data")
TextQuery = "SELECT * FROM player_preferences WHERE ckey = '[ckey]'"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(!query.RowCount())
sanitizePrefs()
TextQuery = "INSERT INTO player_preferences (ckey, ooccolor, lastchangelog, UI_style, default_slot, toggles, UI_style_color, UI_style_alpha, be_special) "
TextQuery += "VALUES ('[ckey]', '[ooccolor]','[lastchangelog]', '[UI_style]', '[default_slot]', '[toggles]', '[UI_style_color]', '[UI_style_alpha]','[be_special]')"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
return 1
else
return UpdatePrefData(ckey)
/datum/preferences/proc/UpdatePrefData(var/ckey)
log_debug("Update pref data")
sanitizePrefs()
TextQuery = "UPDATE player_preferences SET ooccolor='[ooccolor]', lastchangelog='[lastchangelog]', UI_style='[UI_style]', default_slot='[default_slot]', toggles='[toggles]', "
TextQuery += "UI_style_color='[UI_style_color]', UI_style_alpha='[UI_style_alpha]', be_special='[be_special]' WHERE ckey = '[ckey]'"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
return 1
/datum/preferences/proc/LoadPrefData(var/ckey)
log_debug("load pref data")
establish_db_connection(dbcon)
if(!dbcon.IsConnected())
return 0
TextQuery = "SELECT * FROM player_preferences WHERE ckey = '[ckey]'"
log_debug(TextQuery)
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(dbcon.ErrorMsg())
log_debug(dbcon.ErrorMsg())
if(!query.RowCount())
return 0
log_debug("Load query executed successfully")
query.NextRow()
ooccolor = query.item[3]
lastchangelog = text2num(query.item[4])
UI_style = query.item[5]
default_slot = text2num(query.item[6])
toggles = text2num(query.item[7])
UI_style_color = query.item[8]
UI_style_alpha = text2num(query.item[9])
be_special = text2num(query.item[10])
sanitizePrefs()
return 1
/datum/preferences/proc/sanitizePrefs()
ooccolor = sanitize_hexcolor(ooccolor, initial(ooccolor))
lastchangelog = sanitize_text(lastchangelog, initial(lastchangelog))
UI_style = sanitize_inlist(UI_style, list("White", "Midnight","Orange","old"), initial(UI_style))
be_special = sanitize_integer(be_special, 0, 65535, initial(be_special))
default_slot = sanitize_integer(default_slot, 1, config.character_slots, initial(default_slot))
toggles = sanitize_integer(toggles, 0, 65535, initial(toggles))
UI_style_color = sanitize_hexcolor(UI_style_color, initial(UI_style_color))
UI_style_alpha = sanitize_integer(UI_style_alpha, 0, 255, initial(UI_style_alpha))
return 1
/datum/preferences/proc/SanitizeCharacter()
metadata = sanitize_text(metadata, initial(metadata))
real_name = sanitizeName(real_name)
if(isnull(species) || !(species in playable_species))
species = "Human"
if(isnum(underwear))
var/list/undies = gender == MALE ? underwear_m : underwear_f
underwear = undies[undies[underwear]]
if(isnum(undershirt))
undershirt = undershirt_t[undershirt_t[undershirt]]
if(isnull(language)) language = "None"
if(isnull(spawnpoint)) spawnpoint = "Arrivals Shuttle"
if(isnull(nanotrasen_relation)) nanotrasen_relation = initial(nanotrasen_relation)
if(!real_name) real_name = random_name(gender)
be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name))
gender = sanitize_gender(gender)
age = sanitize_integer(age, AGE_MIN, AGE_MAX, initial(age))
r_hair = sanitize_integer(r_hair, 0, 255, initial(r_hair))
g_hair = sanitize_integer(g_hair, 0, 255, initial(g_hair))
b_hair = sanitize_integer(b_hair, 0, 255, initial(b_hair))
r_facial = sanitize_integer(r_facial, 0, 255, initial(r_facial))
g_facial = sanitize_integer(g_facial, 0, 255, initial(g_facial))
b_facial = sanitize_integer(b_facial, 0, 255, initial(b_facial))
s_tone = sanitize_integer(s_tone, -185, 34, initial(s_tone))
r_skin = sanitize_integer(r_skin, 0, 255, initial(r_skin))
g_skin = sanitize_integer(g_skin, 0, 255, initial(g_skin))
b_skin = sanitize_integer(b_skin, 0, 255, initial(b_skin))
h_style = sanitize_inlist(h_style, hair_styles_list, initial(h_style))
f_style = sanitize_inlist(f_style, facial_hair_styles_list, initial(f_style))
r_eyes = sanitize_integer(r_eyes, 0, 255, initial(r_eyes))
g_eyes = sanitize_integer(g_eyes, 0, 255, initial(g_eyes))
b_eyes = sanitize_integer(b_eyes, 0, 255, initial(b_eyes))
backbag = sanitize_integer(backbag, 1, backbaglist.len, initial(backbag))
b_type = sanitize_text(b_type, initial(b_type))
alternate_option = sanitize_integer(alternate_option, 0, 2, initial(alternate_option))
job_civilian_high = sanitize_integer(job_civilian_high, 0, 65535, initial(job_civilian_high))
job_civilian_med = sanitize_integer(job_civilian_med, 0, 65535, initial(job_civilian_med))
job_civilian_low = sanitize_integer(job_civilian_low, 0, 65535, initial(job_civilian_low))
job_medsci_high = sanitize_integer(job_medsci_high, 0, 65535, initial(job_medsci_high))
job_medsci_med = sanitize_integer(job_medsci_med, 0, 65535, initial(job_medsci_med))
job_medsci_low = sanitize_integer(job_medsci_low, 0, 65535, initial(job_medsci_low))
job_engsec_high = sanitize_integer(job_engsec_high, 0, 65535, initial(job_engsec_high))
job_engsec_med = sanitize_integer(job_engsec_med, 0, 65535, initial(job_engsec_med))
job_engsec_low = sanitize_integer(job_engsec_low, 0, 65535, initial(job_engsec_low))
if(!skills) skills = list()
if(!used_skillpoints) used_skillpoints= 0
if(isnull(disabilities)) disabilities = 0
if(!player_alt_titles) player_alt_titles = new()
if(!organ_data) src.organ_data = list()
if(!rlimb_data) src.rlimb_data = list()
if(!gear) src.gear = list()
if(!home_system) home_system = "Unset"
if(!citizenship) citizenship = "None"
if(!faction) faction = "None"
if(!religion) religion = "None"
return 1

View File

@@ -32,6 +32,7 @@ datum/preferences
//doohickeys for savefiles
var/path
var/default_slot = 1 //Holder so it doesn't default to slot 1, rather the last one used
var/current_slot = 1
var/savefile_version = 0
//non-preference stuff
@@ -134,17 +135,35 @@ datum/preferences
var/metadata = ""
var/slot_name = ""
//SQL Save system vars
var/chardata[]
var/jobsdata[]
var/flavourdata[]
var/miscdata[]
var/DBQuery/query
var/TextQuery
var/char_id
var/char_slot
/datum/preferences/New(client/C)
b_type = pick(4;"O-", 36;"O+", 3;"A-", 28;"A+", 1;"B-", 20;"B+", 1;"AB-", 5;"AB+")
if(istype(C))
if(!IsGuestKey(C.key))
load_path(C.ckey)
if(load_preferences())
if(load_character())
log_debug("loading data for [C.ckey]")
if(LoadPrefData(C.ckey))
log_debug("Default slot loaded : [default_slot]")
if(SQLload_character(default_slot, C.ckey))
current_slot = default_slot
log_debug("Character [real_name] loaded, slot is [current_slot]")
return
if(load_preferences())
if(load_character(default_slot))
current_slot = getCharSlot_File()
return
//this ensure that if db fail the file system is used to load an initial character
gender = pick(MALE, FEMALE)
real_name = random_name(gender,species)
gear = list()
/datum/preferences/proc/ZeroSkills(var/forced = 0)
@@ -1363,7 +1382,7 @@ datum/preferences
s_tone = 35 - max(min( round(new_s_tone), 220),1)
if("skin")
if(species == "Unathi" || species == "Tajara" || species == "Skrell" || species == "Machine")
if(species == "Unathi" || species == "Tajara" || species == "Skrell" || species == "Machine" || species == "Vaurca")
var/new_skin = input(user, "Choose your character's skin colour: ", "Character Preference", rgb(r_skin, g_skin, b_skin)) as color|null
if(new_skin)
r_skin = hex2num(copytext(new_skin, 2, 4))
@@ -1597,22 +1616,48 @@ datum/preferences
toggles ^= CHAT_GHOSTRADIO
if("save")
save_preferences()
save_character()
for(var/ckey in preferences_datums)
var/datum/preferences/D = preferences_datums[ckey]
if(D == src)
//switch comment to switch to file save system
default_slot = current_slot
SavePrefData(ckey)
SQLsave_character(current_slot, ckey)
//save_preferences()
//save_character()
if("reload")
load_preferences()
load_character()
for(var/ckey in preferences_datums)
var/datum/preferences/D = preferences_datums[ckey]
if(D == src)
//switch comment to switch to file save system
LoadPrefData(ckey)
SQLload_character(current_slot, ckey)
//load_preferences()
//load_character()
if("open_load_dialog")
if(!IsGuestKey(user.key))
//file system preferences
//open_load_dialog_file(user)
open_load_dialog(user)
if("close_load_dialog")
close_load_dialog(user)
if("changeslot")
load_character(text2num(href_list["num"]))
for(var/ckey in preferences_datums)
var/datum/preferences/D = preferences_datums[ckey]
if(D == src)
current_slot = text2num(href_list["num"])
if(!SQLload_character(current_slot, ckey))
gender = pick(MALE, FEMALE)
real_name = random_name(gender,species)
gear.Cut()
ZeroSkills(1)
ResetJobs()
//file system load
//load_character()
close_load_dialog(user)
ShowChoices(user)
@@ -1730,6 +1775,44 @@ datum/preferences
var/dat = "<body>"
dat += "<tt><center>"
for(var/ckey in preferences_datums)
var/datum/preferences/D = preferences_datums[ckey]
if(D == src)
var/TextQuery = "SELECT Character_Name FROM SS13_characters WHERE ckey = '[ckey]' ORDER BY slot"
var/DBQuery/query
establish_db_connection(dbcon)
if(!dbcon.IsConnected())
open_load_dialog_file(user)
query = dbcon.NewQuery(TextQuery)
query.Execute()
var/rows
if(!query.RowCount())
rows = 0
else
rows = query.RowCount()
dat += "<b>Select a character slot to load (SQL Edition !)</b><hr>"
var/name
for(var/i=1, i<= config.character_slots, i++)
log_debug("[rows] rows queried, i = [i]")
if(i<=rows)
query.NextRow()
name = query.item[1]
log_debug("adding [query.item[1]] to list")
else name = "Character[i]"
if(i==default_slot)
name = "<b>[name]</b>"
dat += "<a href='?_src_=prefs;preference=changeslot;num=[i];'>[name]</a><br>"
dat += "<hr>"
dat += "<a href='byond://?src=\ref[user];preference=close_load_dialog'>Close</a><br>"
dat += "</center></tt>"
user << browse(dat, "window=saves;size=300x390")
/datum/preferences/proc/open_load_dialog_file(mob/user)
var/dat = "<body>"
dat += "<tt><center>"
var/savefile/S = new /savefile(path)
if(S)
dat += "<b>Select a character slot to load</b><hr>"
@@ -1741,11 +1824,39 @@ datum/preferences
if(i==default_slot)
name = "<b>[name]</b>"
dat += "<a href='?_src_=prefs;preference=changeslot;num=[i];'>[name]</a><br>"
dat += "<hr>"
dat += "<a href='byond://?src=\ref[user];preference=close_load_dialog'>Close</a><br>"
dat += "</center></tt>"
user << browse(dat, "window=saves;size=300x390")
/datum/preferences/proc/getCharSlot()
for(var/ckey in preferences_datums)
var/datum/preferences/D = preferences_datums[ckey]
if(D == src)
var/TextQuery = "SELECT slot FROM SS13_characters WHERE ckey = '[ckey]' AND Character_Name = '[real_name]'"
var/DBQuery/query
establish_db_connection(dbcon)
if(!dbcon.IsConnected())
getCharSlot_File()
query = dbcon.NewQuery(TextQuery)
query.Execute()
if(!query.RowCount())
return 1
query.NextRow()
return text2num(query.item[1])
return 1
/datum/preferences/proc/getCharSlot_File() //get character slot from savefile
var/savefile/S = new /savefile(path)
if(S)
var/name
for(var/i=1, i<= config.character_slots, i++)
S.cd = "/character[i]"
S["real_name"] >> name
if(name == real_name)
return i
return 1
/datum/preferences/proc/close_load_dialog(mob/user)
user << browse(null, "window=saves")

View File

@@ -205,7 +205,7 @@ BLIND // can't see anything
body_parts_covered = HANDS
slot_flags = SLOT_GLOVES
attack_verb = list("challenged")
species_restricted = list("exclude","Unathi","Tajara")
species_restricted = list("exclude","Unathi","Tajara","Vaurca")
sprite_sheets = list("Vox" = 'icons/mob/species/vox/gloves.dmi')
/obj/item/clothing/gloves/update_clothing_icon()
@@ -243,6 +243,7 @@ BLIND // can't see anything
if("exclude" in species_restricted)
species_restricted -= "Unathi"
species_restricted -= "Tajara"
species_restricted -= "Vaurca"
return
///////////////////////////////////////////////////////////////////////
@@ -335,7 +336,7 @@ BLIND // can't see anything
slowdown = SHOES_SLOWDOWN
force = 2
var/overshoes = 0
species_restricted = list("exclude","Unathi","Tajara")
species_restricted = list("exclude","Unathi","Tajara","Vaurca")
sprite_sheets = list("Vox" = 'icons/mob/species/vox/shoes.dmi')
var/silent = 0

View File

@@ -74,6 +74,7 @@
if("exclude" in species_restricted)
species_restricted -= "Unathi"
species_restricted -= "Tajara"
species_restricted -= "Vaurca"
return
else
user << "<span class='notice'>The [src] have already been clipped!</span>"

View File

@@ -249,7 +249,7 @@
M.lastattacker = user
user.attack_log += "\[[time_stamp()]\]<font color='red'> Attacked [M.name] ([M.ckey]) with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])</font>"
M.attack_log += "\[[time_stamp()]\]<font color='orange'> Attacked by [user.name] ([user.ckey]) with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])</font>"
msg_admin_attack("[key_name(user)] attacked [key_name(M)] with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)]) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)" )
msg_admin_attack("[key_name(user)] attacked [key_name(M)] with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)]) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)" )
if(istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/H = M

View File

@@ -322,6 +322,30 @@
set_trait(TRAIT_PLANT_COLOUR,"#D9C94E")
set_trait(TRAIT_PLANT_ICON,"mushroom")
/datum/seed/koisspore
name = "koisspore"
seed_name = "kois"
seed_noun = "spires"
display_name = "k'ois spores"
mutants = null
chems = list("koispaste" = list(25))
splat_type = /obj/effect/plant
kitchen_tag = "koisspore"
/datum/seed/koisspore/New()
..()
set_trait(TRAIT_MATURATION,5)
set_trait(TRAIT_PRODUCTION,1)
set_trait(TRAIT_YIELD,8)
set_trait(TRAIT_POTENCY,60)
set_trait(TRAIT_BIOLUM,1)
set_trait(TRAIT_CARNIVOROUS,1)
set_trait(TRAIT_BIOLUM_COLOUR,"#94b21c")
set_trait(TRAIT_PRODUCT_ICON,"mushroom11")
set_trait(TRAIT_PRODUCT_COLOUR,"#94b21c")
set_trait(TRAIT_PLANT_COLOUR,"#94b21c")
set_trait(TRAIT_PLANT_ICON,"mushroom6")
/datum/seed/mushroom/mold
name = "mold"
seed_name = "brown mold"

View File

@@ -280,3 +280,6 @@ var/global/list/plant_seed_sprites = list()
/obj/item/seeds/thaadra
seed_type = "thaadra"
/obj/item/seeds/koisspore
seed_type = "koisspore"

View File

@@ -292,5 +292,5 @@
var/mob/living/M = G.affecting
if(!istype(M)) return //wut
M.apply_damage(30,BRUTE)
if(M.stat == 2)
M.gib()
// if(M.stat == 2)
// M.gib()

View File

@@ -260,7 +260,7 @@
proc/handle_mutations_and_radiation()
if(species.flags & IS_SYNTHETIC || species.name == "Vaurca") //Robots/bugs don't suffer from mutations or radloss.
if(species.flags & IS_SYNTHETIC || species.name == "Vaurca") //Robots & bugs don't suffer from mutations or radloss.
return
if(getFireLoss())
@@ -439,6 +439,13 @@
var/failed_inhale = 0
var/failed_exhale = 0
if(species.has_organ["breathing apparatus"])
var/obj/item/organ/vaurca/breathingapparatus/L = internal_organs_by_name["breathing apparatus"]
if(isnull(L))
poison_type = null
else if(L.is_broken())
poison_type = "oxygen" //if Vaurca breathing apparatus breaks, oxygen becomes poisonous.
if(species.breath_type)
breath_type = species.breath_type
else
@@ -1636,7 +1643,7 @@
else if(foundVirus)
holder.icon_state = "hudill"
/* else if(has_brain_worms())
var/mob/living/simple_animal/borer/B = has_brain_worms() //Cotrical borer disable
var/mob/living/simple_animal/borer/B = has_brain_worms()
if(B.controlling)
holder.icon_state = "hudbrainworm"
else

View File

@@ -269,20 +269,29 @@
/datum/species/bug
name = "Vaurca"
name_plural = "varucae"
name_plural = "Vaurcae"
icobase = 'icons/mob/human_races/r_vaurca.dmi'
deform = 'icons/mob/human_races/r_vaurca.dmi'
language = "Vaurcese"
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp)
rarity_value = 2
slowdown = 1
darksight = 5 //USELESS
eyes = "blank_eyes"
slowdown = 0 //may become a bonus if vaurca gain more legs.
darksight = 8 //USELESS
eyes = "vaurca_eyes" //makes it so that eye colour is not changed when skin colour is.
brute_mod = 0.5 //note to self: remove is_synthetic checks for brmod and burnmod
burn_mod = 2
burn_mod = 1.5 //2x was a bit too much. we'll see how this goes.
warning_low_pressure = 50
hazard_low_pressure = 0
siemens_coefficient = 0 //attempting to mimic the old insulation feature.
breath_type = "oxygen"
poison_type = "null" //a species that breathes plasma shouldn't be poisoned by it.
blurb = "Vaurca are a bipedal insectoid species from the first moon of Sedantis I. \
They have a complex caste system consisting of the lower slave caste called The Bound and the higher, free-thinking caste of the Unbound. \
The majority of Vaurca present in human-space belong to the former caste of Bound, and almost all Vaurca working on NanoTrasen Stations are similarly Bound. \
Although tolerated on Nanotrasen stations and in Tau Ceti, they are often discriminated against and are unwelcome in most human-owned \
sectors in the Sol Alliance. All Vaurca present in human space are colonists at the end of a 2,000 year journey, and all contact with \
their homeworld has been lost. All Vaurca legally present in Tau Ceti belong either to the Zo'ra hive, or the K'lax hive."
cold_level_1 = 50
cold_level_2 = -1
@@ -291,9 +300,10 @@
heat_level_1 = 330 //Default 360
heat_level_2 = 380 //Default 400
heat_level_3 = 600 //Default 1000
flags = CAN_JOIN | IS_WHITELISTED | NO_SLIP | NO_SCAN
flags = CAN_JOIN | NO_SLIP | NO_SCAN | HAS_SKIN_COLOR | IS_WHITELISTED
blood_color = "#E6E600" // dark yellow
flesh_color = "#575757"
flesh_color = "#E6E600"
base_color = "#575757"
inherent_verbs = list(
/mob/living/carbon/human/proc/bugbite //weaker version of gut.
@@ -310,3 +320,7 @@
"brain" = /obj/item/organ/brain,
"eyes" = /obj/item/organ/eyes,
)
/datum/species/unathi/equip_survival_gear(var/mob/living/carbon/human/H)
..()
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(H),slot_shoes)

View File

@@ -127,14 +127,14 @@ var/const/MAX_ACTIVE_TIME = 400
L.visible_message("\red \b [src] leaps at [L]'s face!")
/* Tentatively removed since huggers can't be thrown anymore
if(ishuman(L))
var/mob/living/carbon/human/H = L
if(H.head && H.head.flags & HEADCOVERSMOUTH)
H.visible_message("\red \b [src] smashes against [H]'s [H.head]!")
Die()
return
*/
if(iscarbon(M))
var/mob/living/carbon/target = L

View File

@@ -54,11 +54,6 @@ datum/skill/construction
desc = "Your ability to construct various buildings, such as walls, floors, tables and so on. Note that constructing devices such as APCs additionally requires the Electronics skill. A low level of this skill is typical for janitors, a high level of this skill is typical for engineers."
field = "Engineering"
datum/skill/management
ID = "management"
name = "Command"
desc = "Your ability to manage and commandeer other crew members."
datum/skill/knowledge/law
ID = "law"
name = "NanoTrasen Law"

View File

@@ -1,4 +1,22 @@
/* Food */
/datum/reagent/kois
name = "K'ois"
id = "koispaste"
description = "A thick goopy substance, rich in K'ois nutrients."
metabolism = REM * 4
var/nutriment_factor = 40
var/injectable = 0
color = "#dcd9cd"
/datum/reagent/kois/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
if(M.get_species() == "Vaurca")
M.heal_organ_damage(0.8 * removed, 0)
M.nutrition += nutriment_factor * removed // For hunger and fatness
M.add_chemical_effect(CE_BLOODRESTORE, 6 * removed)
else
M.adjustToxLoss(1.5 * removed)
return
..()
/datum/reagent/nutriment
name = "Nutriment"
@@ -17,10 +35,14 @@
affect_ingest(M, alien, removed)
/datum/reagent/nutriment/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
M.heal_organ_damage(0.5 * removed, 0)
M.nutrition += nutriment_factor * removed // For hunger and fatness
M.add_chemical_effect(CE_BLOODRESTORE, 4 * removed)
if(M.get_species() == "Vaurca")
M.adjustToxLoss(1.5 * removed)
else
M.heal_organ_damage(0.8 * removed, 0)
M.nutrition += nutriment_factor * removed // For hunger and fatness
M.add_chemical_effect(CE_BLOODRESTORE, 6 * removed)
return
..()
/datum/reagent/nutriment/protein // Bad for Skrell!
name = "animal protein"
id = "protein"
@@ -299,7 +321,7 @@
M.eye_blind = max(M.eye_blind, 10)
if(mouth_covered)
if(!message)
if(!message)
message = "<span class='warning'>Your [face_protection] protects you from the pepperspray!</span>"
else if(!no_pain)
message = "<span class='danger'>Your face and throat burn!</span>"

View File

@@ -245,6 +245,17 @@
/obj/item/weapon/reagent_containers/food/snacks/koisbar
name = "K'ois Bar"
desc = "Bland NanoTrasen produced K'ois bars, rich in syrup."
icon_state = "koisbar"
trash = /obj/item/trash/koisbar
filling_color = "#dcd9cd"
New()
..()
reagents.add_reagent("kois", 20)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/aesirsalad
name = "Aesir salad"

View File

@@ -654,11 +654,17 @@ var/world_topic_spam_protect_time = world.timeofday
/proc/initialize_database_object(var/filename)
if (!filename)
return 0
// The code is written in a manner that is spasses out whenever dbcon = null, so we just make a dummy DB object.
return new/DBConnection()
var/list/data = list("address", "port", "database", "login", "password")
var/list/Lines = file2list(filename)
if (!Lines)
// Return dummy object for safety.
return new/DBConnection()
for (var/t in Lines)
if (!t)
continue
@@ -684,11 +690,6 @@ var/world_topic_spam_protect_time = world.timeofday
else
log_misc("Unknown setting while setting up database connection. Filename: '[filename]', value: '[value]'.")
//Validate the data before proceeding.
for (var/d in data)
if (!data[d] || data[d] == null)
return 0
return new/DBConnection(data["address"], data["port"], data["database"], data["login"], data["password"])
/proc/setup_database_connection(var/DBConnection/con)

View File

@@ -0,0 +1,45 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: LordFowl
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "Added the option for Vaurca to have unique skin colours."
- rscadd: "Vaurca selection screen has a blurb + preview image."
- rscadd: "Added K'ois paste and fungi"
- rscadd: "Phoron no longer poisons Vaurca nor damages their eyes."
- rscadd: "Vaurca will recieve toxin damage if they breathe oxygen with broken lungs."
- rscadd: "Vaurca can no longer wear normal gloves or shoes."
- rscdel: "Vaurca can no longer gib lesser mobs via bite."
- rscdel: "Vaurca no longer have a slowness debuff."
- bugfix: "Vaurca are fully insulated again."
- bugfix: "Vaurca sprites have been fixed."

View File

@@ -0,0 +1,37 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: LordFowl
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- maptweak: "Added various atmospheric substations throughout the station."

View File

@@ -0,0 +1,37 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: LordFowl
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- maptweak: "Added employment records console, security records console, and request console to the IAA Office."

View File

@@ -0,0 +1,8 @@
author: Lord Lag
delete-after: True
changes:
- tweak: "Emergency Shutters no longer have alert pop-ups."
- bugfix: "Xenomorph facehuggers now react to protection properly."
- bugfix: "Vaurca Insulation fixed."

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -23,6 +23,18 @@
src << "\red The forum URL is not set in the server configuration."
return
/client/verb/reportbug()
set name = "reportbug"
set desc = "Report a bug."
set hidden = 1
if( config.githuburl )
if(alert("This will open the issue tracker in your browser. Are you sure?",,"Yes","No")=="No")
return
src << link(config.githuburl + "/issues")
else
src << "\red The issue tracker URL is not set in the server configuration."
return
#define RULES_FILE "config/rules.html"
/client/verb/rules()
set name = "Rules"

View File

@@ -2049,6 +2049,34 @@ window "rpane"
is-checked = false
group = "rpanemode"
button-type = pushbutton
elem "reportbugb"
type = BUTTON
pos = 410,0
size = 67x16
anchor1 = none
anchor2 = none
font-family = ""
font-size = 0
font-style = ""
text-color = #000000
background-color = none
is-visible = true
is-disabled = false
is-transparent = false
is-default = false
border = none
drop-zone = false
right-click = false
saved-params = "is-checked"
on-size = ""
text = "Report Bug"
image = ""
command = "reportbug"
is-flat = false
stretch = false
is-checked = false
group = "rpanemode"
button-type = pushbutton
elem "forumb"
type = BUTTON
pos = 215,0
@@ -2163,7 +2191,7 @@ window "rpane"
button-type = pushbox
elem "browseb"
type = BUTTON
pos = 552,0
pos = 560
size = 60x16
anchor1 = none
anchor2 = none

View File

@@ -394,7 +394,7 @@
"ahD" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/heads/hos)
"ahE" = (/obj/structure/table/woodentable,/obj/machinery/keycard_auth{pixel_x = 30},/obj/machinery/photocopier/faxmachine{department = "Head of Security"},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/heads/hos)
"ahF" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/security_starboard)
"ahG" = (/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/maintenance/security_starboard)
"ahG" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{tag = "icon-map (NORTH)"; icon_state = "map"; dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/maintenance/research_starboard)
"ahH" = (/turf/space,/area/skipjack_station/northeast_solars)
"ahI" = (/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/security_port)
"ahJ" = (/obj/machinery/space_heater,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/security_port)
@@ -452,7 +452,7 @@
"aiJ" = (/obj/structure/bed/chair/comfy/black{dir = 1},/obj/effect/landmark/start{name = "Head of Security"},/obj/machinery/button/remote/airlock{id = "HoSdoor"; name = "Office Door"; pixel_x = -36; pixel_y = 29},/obj/machinery/button/windowtint{pixel_x = -26; pixel_y = 30},/obj/machinery/button/remote/blast_door{id = "Secure Gate"; name = "Brig Lockdown"; pixel_x = -36; pixel_y = 39; req_access = list(2)},/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/heads/hos)
"aiK" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/folder/red,/turf/simulated/floor{icon_state = "dark"},/area/crew_quarters/heads/hos)
"aiL" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/maintenance/security_starboard)
"aiM" = (/obj/structure/closet,/obj/item/clothing/glasses/welding,/obj/item/weapon/weldingtool,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/security_starboard)
"aiM" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 6; icon_state = "intact"; tag = "icon-intact-f (SOUTHEAST)"},/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/maintenance/security_starboard)
"aiN" = (/turf/simulated/floor/plating,/area/maintenance/security_port)
"aiO" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/security_port)
"aiP" = (/obj/item/device/radio/intercom{frequency = 1449; pixel_x = 0; pixel_y = -27},/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/brig)
@@ -550,7 +550,7 @@
"akD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/security_starboard)
"akE" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access = list(12)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/security_starboard)
"akF" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/maintenance/security_starboard)
"akG" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/security_starboard)
"akG" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{tag = "icon-map (NORTH)"; icon_state = "map"; dir = 1},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/research_starboard)
"akH" = (/turf/space,/area/shuttle/syndicate_elite/station)
"akI" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating/airless,/area/solar/auxstarboard)
"akJ" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/brig)
@@ -586,7 +586,7 @@
"aln" = (/obj/structure/table/woodentable,/obj/machinery/button/remote/airlock{id = "detdoor"; name = "Office Door"},/obj/item/weapon/handcuffs,/obj/item/device/flash,/turf/simulated/floor/carpet,/area/security/detectives_office)
"alo" = (/obj/structure/bed/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Detective"},/turf/simulated/floor/carpet,/area/security/detectives_office)
"alp" = (/obj/structure/closet/secure_closet/detective,/obj/item/weapon/reagent_containers/food/drinks/flask/detflask,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office)
"alq" = (/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/security_starboard)
"alq" = (/obj/machinery/atmospherics/binary/passive_gate{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/research_starboard)
"alr" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/security_starboard)
"als" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/security_starboard)
"alt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/solar/auxstarboard)
@@ -687,7 +687,7 @@
"ank" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/door/window/eastright{req_access = list(63)},/obj/structure/table/steel_reinforced,/turf/simulated/floor,/area/security/lobby)
"anl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/lobby)
"anm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "lawyer_blast"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/lawoffice)
"ann" = (/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/item/weapon/folder/yellow,/obj/item/weapon/stamp/internalaffairs,/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
"ann" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/maintenance/research_starboard)
"ano" = (/obj/structure/bed/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Internal Affairs Agent"},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
"anp" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
"anq" = (/obj/structure/extinguisher_cabinet{pixel_x = 25; pixel_y = 0},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
@@ -721,9 +721,9 @@
"anS" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/security/lobby)
"anT" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor,/area/security/lobby)
"anU" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/lobby)
"anV" = (/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/weapon/material/ashtray/plastic{pixel_x = 4; pixel_y = 6},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
"anV" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 10},/area/maintenance/research_starboard)
"anW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
"anX" = (/obj/structure/table/reinforced,/obj/machinery/photocopier/faxmachine{anchored = 0; department = "Internal Affairs"},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
"anX" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating,/area/maintenance/security_starboard)
"anY" = (/turf/simulated/wall/r_wall,/area/security/detectives_office)
"anZ" = (/obj/structure/flora/pottedplant{tag = "icon-plant-10"; icon_state = "plant-10"},/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office)
"aoa" = (/obj/structure/disposalpipe/segment,/obj/structure/closet/secure_closet/detective,/obj/item/weapon/reagent_containers/food/drinks/flask/detflask,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office)
@@ -851,7 +851,7 @@
"aqs" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
"aqt" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
"aqu" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
"aqv" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/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/weapon/material/ashtray/plastic{pixel_x = 4; pixel_y = 6},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
"aqv" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan,/obj/machinery/meter,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/research_starboard)
"aqw" = (/obj/machinery/computer/med_data,/turf/simulated/floor{icon_state = "white"},/area/security/detectives_office)
"aqx" = (/obj/structure/disposalpipe/segment,/obj/structure/bed/chair/office/light{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/security/detectives_office)
"aqy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor{icon_state = "white"},/area/security/detectives_office)
@@ -1485,7 +1485,7 @@
"aCC" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry/port)
"aCD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/power/apc/high{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry/port)
"aCE" = (/turf/simulated/wall,/area/security/checkpoint2)
"aCF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/machinery/meter,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 10},/area/maintenance/arrivals)
"aCF" = (/obj/machinery/atmospherics/binary/pump/high_power/on{dir = 4; icon_state = "map_on"; tag = "icon-map_on (EAST)"; target_pressure = 15000},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/research_starboard)
"aCG" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/arrivals)
"aCH" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/camera/network/engineering{c_tag = "Solar Maintenance Fore Port"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/auxsolarport)
"aCI" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating,/area/maintenance/auxsolarport)
@@ -1551,7 +1551,7 @@
"aDQ" = (/obj/machinery/computer/card,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint2)
"aDR" = (/obj/machinery/computer/secure_data,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint2)
"aDS" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor{icon_state = "red"; dir = 5},/area/security/checkpoint2)
"aDT" = (/obj/machinery/atmospherics/valve,/turf/simulated/floor/plating,/area/maintenance/arrivals)
"aDT" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/maintenance/research_starboard)
"aDU" = (/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Fore Port Solar Access"; req_access = list(11)},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/auxsolarport)
"aDV" = (/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/auxsolarport)
"aDW" = (/obj/machinery/vending/assist,/turf/simulated/floor,/area/storage/primary)
@@ -1629,9 +1629,9 @@
"aFq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/checkpoint2)
"aFr" = (/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access = list(1)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/security/checkpoint2)
"aFs" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating,/area/maintenance/arrivals)
"aFt" = (/obj/effect/decal/cleanable/blood/oil,/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/turf/simulated/floor/plating,/area/maintenance/arrivals)
"aFt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/security_starboard)
"aFu" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/arrivals)
"aFv" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/camera/network/engineering{c_tag = "Solar Maintenance Fore Port Access"},/turf/simulated/floor/plating,/area/maintenance/arrivals)
"aFv" = (/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/item/weapon/folder/yellow,/obj/item/weapon/stamp/internalaffairs,/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/item/weapon/pen/red,/obj/item/weapon/pen/blue{pixel_x = -5; pixel_y = -1},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
"aFw" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/arrivals)
"aFx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/arrivals)
"aFy" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/storage/primary)
@@ -1832,8 +1832,8 @@
"aJl" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/bar)
"aJm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/effect/decal/cleanable/blood/oil/streak{amount = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/bar)
"aJn" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = "Hydroponics"; name = "Hydroponics"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/bar)
"aJo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/bar)
"aJp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plating,/area/maintenance/bar)
"aJo" = (/obj/item/weapon/material/ashtray/plastic{pixel_x = 4; pixel_y = 6},/obj/machinery/computer/secure_data,/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
"aJp" = (/obj/structure/table/reinforced,/obj/machinery/photocopier/faxmachine{anchored = 0; department = "Internal Affairs"},/obj/machinery/requests_console{department = "Tech storage"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
"aJq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Bar\\Library Maintenance"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/bar)
"aJr" = (/obj/structure/disposalpipe/sortjunction/flipped{dir = 4; sortType = "Chapel"; name = "Chapel"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/library)
"aJs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/library)
@@ -2647,9 +2647,9 @@
"aYU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/button/remote/blast_door{id = "office_shutter"; name = "Office Shutters"; pixel_x = -8; pixel_y = 22},/obj/machinery/light_switch{pixel_x = -8; pixel_y = 32},/turf/simulated/floor,/area/security/vacantoffice)
"aYV" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/hand_labeler,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor,/area/security/vacantoffice)
"aYW" = (/turf/simulated/wall,/area/security/vacantoffice)
"aYX" = (/obj/structure/closet/crate,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/locker)
"aYY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/maintenance/locker)
"aYZ" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/maintenance/locker)
"aYX" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/table/reinforced,/obj/item/weapon/material/ashtray/plastic{pixel_x = 4; pixel_y = 6},/obj/machinery/computer/skills{icon_state = "medlaptop"},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
"aYY" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 6; icon_state = "intact"; tag = "icon-intact-f (SOUTHEAST)"},/turf/simulated/floor/plating,/area/maintenance/arrivals)
"aYZ" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold4w/hidden/cyan,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 10},/area/maintenance/arrivals)
"aZa" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/maintenance/locker)
"aZb" = (/obj/structure/closet/wardrobe/grey,/obj/machinery/requests_console{department = "Locker Room"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor,/area/crew_quarters/locker)
"aZc" = (/obj/item/clothing/head/soft/grey{pixel_x = -2; pixel_y = 3},/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor,/area/crew_quarters/locker)
@@ -2726,8 +2726,8 @@
"bav" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/security/vacantoffice)
"baw" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/security/vacantoffice)
"bax" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/table/standard,/obj/item/weapon/stamp,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/item/weapon/pen,/turf/simulated/floor,/area/security/vacantoffice)
"bay" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/locker)
"baz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/floor/plating,/area/maintenance/locker)
"bay" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 6; icon_state = "intact"; tag = "icon-intact-f (SOUTHEAST)"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/maintenance/bar)
"baz" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{tag = "icon-map (NORTH)"; icon_state = "map"; dir = 1},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/bar)
"baA" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/locker)
"baB" = (/turf/simulated/wall,/area/maintenance/locker)
"baC" = (/obj/structure/closet/wardrobe/black,/turf/simulated/floor,/area/crew_quarters/locker)
@@ -2812,8 +2812,8 @@
"bcd" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/secondary/entry/aft)
"bce" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/security/vacantoffice)
"bcf" = (/obj/structure/table/standard,/obj/machinery/photocopier/faxmachine{anchored = 1; department = "Vacant Office"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/status_display{pixel_x = 32},/turf/simulated/floor,/area/security/vacantoffice)
"bcg" = (/obj/structure/table/rack{dir = 4},/obj/item/clothing/mask/gas,/turf/simulated/floor/plating,/area/maintenance/locker)
"bch" = (/obj/machinery/atmospherics/valve,/turf/simulated/floor/plating,/area/maintenance/locker)
"bcg" = (/obj/machinery/atmospherics/binary/passive_gate{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/bar)
"bch" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/maintenance/bar)
"bci" = (/turf/simulated/wall,/area/crew_quarters/locker/locker_toilet)
"bcj" = (/obj/machinery/door/airlock{name = "Unisex Restrooms"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet)
"bck" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/crew_quarters/locker)
@@ -2891,8 +2891,8 @@
"bdE" = (/obj/structure/bed/chair/office/dark{dir = 8},/turf/simulated/floor,/area/security/vacantoffice)
"bdF" = (/obj/structure/window/basic{dir = 4},/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor,/area/security/vacantoffice)
"bdG" = (/obj/machinery/photocopier,/turf/simulated/floor,/area/security/vacantoffice)
"bdH" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/tank/air{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/locker)
"bdI" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/maintenance/locker)
"bdH" = (/obj/machinery/atmospherics/binary/passive_gate,/turf/simulated/floor/plating,/area/maintenance/arrivals)
"bdI" = (/obj/machinery/atmospherics/binary/pump/high_power/on{tag = "icon-map_on (NORTH)"; icon_state = "map_on"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/arrivals)
"bdJ" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet)
"bdK" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet)
"bdL" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet)
@@ -2965,7 +2965,7 @@
"bfa" = (/obj/machinery/newscaster{pixel_y = -32},/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor,/area/security/vacantoffice)
"bfb" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/camera/network/civilian_west{c_tag = "Vacant Office"; dir = 1},/turf/simulated/floor,/area/security/vacantoffice)
"bfc" = (/obj/structure/filingcabinet,/turf/simulated/floor,/area/security/vacantoffice)
"bfd" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 4},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/locker)
"bfd" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/machinery/meter,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 10},/area/maintenance/bar)
"bfe" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/maintenance/locker)
"bff" = (/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet)
"bfg" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet)
@@ -3273,7 +3273,7 @@
"bkW" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_dock_inner"; locked = 1; name = "Docking Port Airlock"; req_access = list(13)},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/entry/aft)
"bkX" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "specops_dock_airlock"; name = "interior access button"; pixel_x = -28; pixel_y = 26; req_one_access = list(13)},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor,/area/hallway/secondary/entry/aft)
"bkY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/power/apc/high{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green,/turf/simulated/floor,/area/hallway/secondary/entry/aft)
"bkZ" = (/obj/machinery/conveyor{dir = 5; id = "garbage"},/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/maintenance/disposal)
"bkZ" = (/obj/effect/decal/cleanable/cobweb,/obj/machinery/conveyor,/turf/simulated/floor/plating,/area/maintenance/disposal)
"bla" = (/obj/machinery/conveyor{dir = 4; id = "garbage"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/disposal)
"blb" = (/obj/machinery/conveyor{dir = 4; id = "garbage"},/turf/simulated/floor/plating,/area/maintenance/disposal)
"blc" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plating,/area/maintenance/disposal)
@@ -5365,7 +5365,7 @@
"bZi" = (/obj/machinery/light,/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -29},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/meter,/turf/simulated/floor{dir = 4; icon_state = "warnwhite"},/area/rnd/mixing)
"bZj" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/rnd/mixing)
"bZk" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 6; icon_state = "intact"; tag = "icon-intact-f (SOUTHEAST)"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/maintenance/research_starboard)
"bZl" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/research_starboard)
"bZl" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan,/obj/machinery/meter,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/bar)
"bZm" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/escape_pod5/station)
"bZn" = (/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/cargo)
"bZo" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/wall,/area/maintenance/cargo)
@@ -5432,7 +5432,7 @@
"cax" = (/obj/machinery/light,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{dir = 2; icon_state = "whitegreencorner"},/area/rnd/research)
"cay" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/research_starboard)
"caz" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/machinery/meter,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 10},/area/maintenance/research_starboard)
"caA" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/research_starboard)
"caA" = (/obj/machinery/atmospherics/binary/pump/high_power/on{dir = 4; icon_state = "map_on"; tag = "icon-map_on (EAST)"; target_pressure = 15000},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/bar)
"caB" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/space,/area/space)
"caC" = (/turf/simulated/wall/r_wall,/area/maintenance/atmos_control)
"caD" = (/turf/simulated/wall,/area/maintenance/atmos_control)
@@ -6920,9 +6920,9 @@
"cDd" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/engi_shuttle)
"cDe" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplatecorner"},/area/maintenance/engi_shuttle)
"cDf" = (/obj/machinery/computer/shuttle_control/engineering,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/network/engineering{c_tag = "Engineering Shuttle Access"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle)
"cDg" = (/obj/machinery/atmospherics/valve,/turf/simulated/floor/plating,/area/maintenance/engineering)
"cDh" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 6; icon_state = "intact"; tag = "icon-intact-f (SOUTHEAST)"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/engineering)
"cDi" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/maintenance/engineering)
"cDg" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/maintenance/bar)
"cDh" = (/obj/effect/decal/cleanable/blood/oil,/obj/machinery/atmospherics/valve{dir = 4},/turf/simulated/floor/plating,/area/maintenance/arrivals)
"cDi" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan,/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/arrivals)
"cDj" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; layer = 3.1; master_tag = "incinerator_access_control"; name = "Incinerator airlock control"; pixel_x = 10; pixel_y = -22},/obj/structure/sign/fire{pixel_x = -32; pixel_y = 0},/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/binary/pump,/turf/simulated/floor/plating,/area/maintenance/incinerator)
"cDk" = (/turf/simulated/floor/plating,/area/maintenance/incinerator)
"cDl" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "incinerator_access_control"; name = "Incinerator airlock control"; pixel_x = -8; pixel_y = 24},/obj/structure/sign/fire{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/binary/pump{dir = 1},/turf/simulated/floor/plating,/area/maintenance/incinerator)
@@ -6977,9 +6977,9 @@
"cEi" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "engineering_dock_inner"; locked = 1; name = "Engineering Dock Airlock"; req_access = list(13)},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle)
"cEj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle)
"cEk" = (/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/engi_shuttle)
"cEl" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating,/area/maintenance/engineering)
"cEm" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/hidden/cyan,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 10},/area/maintenance/engineering)
"cEn" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/engineering)
"cEl" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/camera/network/engineering{c_tag = "Solar Maintenance Fore Port Access"},/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/turf/simulated/floor/plating,/area/maintenance/arrivals)
"cEm" = (/obj/effect/decal/cleanable/spiderling_remains,/obj/machinery/atmospherics/valve,/turf/simulated/floor/plating,/area/maintenance/bar)
"cEn" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/floor/plating,/area/maintenance/bar)
"cEo" = (/obj/machinery/door/airlock/glass{autoclose = 0; frequency = 1379; heat_proof = 1; icon_state = "door_locked"; id_tag = "incinerator_airlock_exterior"; locked = 1; name = "Mixing Room Exterior Airlock"; req_access = list(12)},/turf/simulated/floor/plating,/area/maintenance/incinerator)
"cEp" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HOT EXHAUST'."; name = "\improper HOT EXHAUST"; pixel_x = -32},/turf/simulated/floor/plating/airless,/area/space)
"cEq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 140; external_pressure_bound_default = 140; icon_state = "map_vent_out"; pressure_checks = 1; pressure_checks_default = 1; use_power = 1},/turf/simulated/floor/plating/airless,/area/maintenance/incinerator)
@@ -7088,10 +7088,10 @@
"cGp" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "engineering_dock_outer"; locked = 1; name = "Engineering Dock Airlock"; req_access = list(13)},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle)
"cGq" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "engineering_dock_outer"; locked = 1; name = "Engineering Dock Airlock"; req_access = list(13)},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle)
"cGr" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "engineering_dock_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -8; req_one_access = list(13,11,24)},/turf/space,/area/space)
"cGs" = (/obj/effect/decal/cleanable/generic,/turf/simulated/floor/plating,/area/maintenance/engineering)
"cGt" = (/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/maintenance/engineering)
"cGu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/engineering)
"cGv" = (/obj/structure/sign/fire{pixel_y = 32},/obj/structure/lattice,/turf/space,/area/space)
"cGs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/library)
"cGt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/bar)
"cGu" = (/obj/structure/closet/crate,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/plating,/area/maintenance/locker)
"cGv" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/turf/simulated/floor/plating,/area/maintenance/locker)
"cGw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/virology)
"cGx" = (/obj/machinery/vending/coffee,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"cGy" = (/obj/machinery/vending/snack,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
@@ -7121,9 +7121,9 @@
"cGW" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "engineering_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/shuttle/constructionsite/station)
"cGX" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "engineering_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/floor/plating,/area/shuttle/constructionsite/station)
"cGY" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/constructionsite/station)
"cGZ" = (/obj/structure/table/rack{dir = 1},/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/engineering)
"cHa" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/maintenance/engineering)
"cHb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/engineering)
"cGZ" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/turf/simulated/floor/plating,/area/maintenance/locker)
"cHa" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/binary/passive_gate{tag = "icon-map (NORTH)"; icon_state = "map"; dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/maintenance/locker)
"cHb" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/valve,/turf/simulated/floor/plating,/area/maintenance/locker)
"cHc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/virology)
"cHd" = (/obj/machinery/light/small,/obj/machinery/camera/network/engineering{c_tag = "Atmospherics Tank - Carbon Dioxide"; dir = 1},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/engineering/atmos)
"cHe" = (/obj/machinery/light/small,/obj/machinery/camera/network/engineering{c_tag = "Atmospherics Tank - Phoron"; dir = 1},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "phoron floor"; nitrogen = 0; oxygen = 0; phoron = 70000},/area/engineering/atmos)
@@ -7155,7 +7155,7 @@
"cHE" = (/obj/machinery/computer/station_alert,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/station)
"cHF" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/shuttle/constructionsite/station)
"cHG" = (/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/wall,/area/maintenance/engineering)
"cHH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/engineering)
"cHH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/binary/pump/high_power/on,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/maintenance/locker)
"cHI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/engineering)
"cHJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/medical/virology)
"cHK" = (/obj/structure/grille,/obj/structure/grille,/turf/simulated/wall/r_wall,/area/engineering/atmos)
@@ -7397,6 +7397,24 @@
"cMm" = (/turf/space,/area/syndicate_station/south)
"cMn" = (/turf/space,/area/skipjack_station/southwest_solars)
"cMo" = (/obj/machinery/hologram/holopad,/obj/effect/landmark/start{name = "Engineering Apprentice"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/engineering/break_room)
"cMp" = (/obj/structure/table/rack{dir = 4},/obj/item/clothing/mask/gas,/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/locker)
"cMq" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/floor/plating,/area/maintenance/locker)
"cMr" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/locker)
"cMs" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/tank/air{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/locker)
"cMt" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/locker)
"cMu" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 10},/area/maintenance/locker)
"cMv" = (/obj/machinery/atmospherics/pipe/tank/air,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/maintenance/engineering)
"cMw" = (/obj/machinery/atmospherics/pipe/tank/air,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/maintenance/engineering)
"cMx" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/floor/plating{dir = 4; icon_state = "warnplatecorner"},/area/maintenance/engineering)
"cMy" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/maintenance/engineering)
"cMz" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 4},/obj/machinery/light/small{dir = 4},/mob/living/simple_animal/mouse,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/engineering)
"cMA" = (/obj/machinery/atmospherics/binary/pump/high_power/on{tag = "icon-map_on (NORTH)"; icon_state = "map_on"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/engineering)
"cMB" = (/obj/machinery/atmospherics/valve,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/engineering)
"cMC" = (/obj/machinery/atmospherics/binary/passive_gate,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/engineering)
"cMD" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/atmospherics/pipe/manifold/hidden/cyan,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/engineering)
"cME" = (/obj/structure/table/rack{dir = 1},/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/device/flashlight,/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 10},/area/maintenance/engineering)
"cMF" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/machinery/meter,/obj/machinery/space_heater,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/maintenance/engineering)
"cMG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/engineering)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -7477,21 +7495,21 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaacaaaaaaaaaaaaaauaauaauaauaauaauaauaauaauaauaauaauaauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhabhabhabhabhabhabhabhabhabhabhabhadIafxafyafzaeGafAafBafCafDafEafFafGafHafIafHafJafKadzafLafMacSafoacSafNafOafPafQafRafSadEafTafUafVafWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaauaauaauaauaauaauaauaauaauaauaauaauaauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhafXafYafZabhagaagbagcagdageagfaggaggaggaggaggaggaghagiagjagkaeGaglagmagnagoagpaeMagqagragsagtaguagvagwagxagyagzagAagBagCagxagDagEagFabdadEagGafvafvagHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauaauaauaauaauaauaauaauaauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaabhagIagJaggaggaggagfagfaggagKagLagLagLagLagLagLagLagLagLagLagMaeGagNagOagPagQagRaeMagSagTagTagTadfagUagVagWagXagYagZagYagXahaagDahbadEabdabdaeZaeZaeZaeZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaaeaaeaaeaaeaaeaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauaauaauaauaauaauaauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhahcahdaheaheaheaheaheaheaheagLahfahgahhaheahiahjahkahlahmahnahoahpahqahrahsahtahuahvahvahvahvadfahwahxahyahzahAahBahCahDahEagDahFahGadEadEadEadEabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahHaaaaaaahHaaaaaaaaaahHaaaaaaaaaaaaaaaahHaaaaaaaaaahHaaaaaaahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaaeaaeaaeaaeaaeaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhafXafYahIabhahJahKaheahLahMahNahOahPahQagLahhahRahOahSahTahUahUahVahWahXahYahZahZaiaahZaibaicaidacSacSaefadfaieaifaigaihaiiaijaikailaimagDaiLakDakDakDakDakFabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahHahHahHahHaaaaaaaaaahHahHahHahHahHahHahHaaaaaaaaaahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHainaioaipabhaiqahKaheairaisaitaiuaivaiwagLahhahRaixaheaiyahUaizaiAahTahXaiBaiCahZaiDahZahZaiEaiFaidacSacSadfaiGaiHaiIagXagXaiJagXagXaiKagDakGaiMadEalqadEadDabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahHahHahHahHaaaaaaahHahHahHahHahHahHahHahHahHaaaaaaahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaaeaaeaaeaaeaaeaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauaauaauaauaauaauaauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhahcahdaheaheaheaheaheaheaheagLahfahgahhaheahiahjahkahlahmahnahoahpahqahrahsahtahuahvahvahvahvadfahwahxahyahzahAahBahCahDahEagDahFaiMahGalqakGannabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahHaaaaaaahHaaaaaaaaaahHaaaaaaaaaaaaaaaahHaaaaaaaaaahHaaaaaaahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaaeaaeaaeaaeaaeaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhafXafYahIabhahJahKaheahLahMahNahOahPahQagLahhahRahOahSahTahUahUahVahWahXahYahZahZaiaahZaibaicaidacSacSaefadfaieaifaigaihaiiaijaikailaimagDahFanXanVaCFaqvaDTabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahHahHahHahHaaaaaaaaaahHahHahHahHahHahHahHaaaaaaaaaahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHainaioaipabhaiqahKaheairaisaitaiuaivaiwagLahhahRaixaheaiyahUaizaiAahTahXaiBaiCahZaiDahZahZaiEaiFaidacSacSadfaiGaiHaiIagXagXaiJagXagXaiKagDaiLaFtakDakDakDakFabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahHahHahHahHaaaaaaahHahHahHahHahHahHahHahHahHaaaaaaahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCaiNaiNaiOabhaiNahKaheaiPaiQaiRaiSaiTahOagLaiUaiVaiWaheaiXaiYaiZajaajbajcajdajeajfaiaajgajhaeMajiajjajkajlajmajnajoajpajqajrajsajtagXajuagDalrabdabdabdabdadDabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaJaaJaamaamaaaaaaaaaaaaaaaaaaaaaaaaahHahHahHahHaaaaaaahHahHahHahHahHahHahHahHahHaaaaaaahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhabhajvabhabhajwajxaheaheajyaheaheajzaheaheaheajAaheaheajBajCajDajEajFajGaheajHajIajJajKajLaheaheajMajNajOaheaheaheagxajPagxagxagxagxagxagDalrabdajQajRabdadDabdaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaaaafaaaaaqaaaaaaaaaaaaaaaaaaaaaaaaahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhagJagfajSagfajTajUajVajWajXajYajZakaakbakcakdakeakfakgakhakiakjakkakhaklakjakjakmaknaknakoakpakqakraksaktakuajMakvakwakxakyakzakAakBakCalsakEamaamMabdadDabdaaaaaaaaaaaaaaaaaaaaaaaaaaaakHakHakHakHakHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaafakIaafaaJaaaaaaaaaaaaaaaaaaaaaaaaahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaamaamaaJaamaamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhahKaheaheaheaheaheaheakJakKakLakMakNakOakPakQakRakSakTakUakVakWakNakXakNakNakYakZalaalbalcaldalealfalgalaalhalialjalkallalmalnaloalpakCamNabdamOanuabdanwabdaaaaafaaaaaaaaaaaaaaaaaaaaaakHakHakHakHakHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaaJaaJaaJaaJaaaaaaaaaaltaaaaaaaaaaaJaaJaamaamaamaaaaaaahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaaaaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhahKahealualvalwalxahealyalzahUalAalBahealCalDalCahealEalFalGahealHalIalJalKagLalLalMalNalOalPahealQalRalRalSahealTalUalValWalXalYalZakCadEambambamcambadDabdanxaafaaaaaaaaaaaaaaaaaaaaaakHakHakHakHakHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaaaaaaaafaafaafaaaaaaamdaafaafaaaaafaafaaaaaaaamaaaaaaahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaafameaafaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafabhahKamfamgamgamhamiamjamkamlahTammalBaheamnamoampamqamramsamtamuahTamvahTamwamxamyamyamzamAamBamCamDamEamFamGakCamHamIamJamKalValVamLakCadEambanyaogambadDabdanxaaaaaaaaaaafaaaaaaaaaaaaakHakHakHakHakHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaafamPamPamPamPamPaafamQaafamPamPamPamPamPaafaaJaaaaaaahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamaamaaJaaJaaaaaaaaaamRaaaaaaaaaaaJaaJaamaamaamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhahKaheamSamTamUamVaheamWamlalBamXamYaheamZanaanbamqancandaneanfanganhanianjankamAamAamzamAanlanmannanoanpanqakCanransalVamKalValVantakCadEambaohaoianvaokabdabdabdaaMaafaafaafaaaaaaaaaakHakHakHakHakHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaafanzanAanAanAanAanBamQanCanDanDanDanDanEaafaaJaaaaaaahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafaafaaaaaaaaaanFaafaafaaaaafaafaaaaaaaamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhanGaheaheaheaheaheaheanHanIaheaheaheaheanJanKanJamqanLanManNamqanOanPanQanRanSamAamAamzanTanUamCanVanWanpanXanYanZaoaaobaocaodaoeaofanYadEambaojaoZaoYapMapaapOabdaafaaMaafaacaaaaaaaaaakHakHakHakHakHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaafaolaolaolaolaolaafamQaafaolaolaolaolaolaafaaJaaaahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamaamaaJaaJaaaaaaaaaamRaaaaaaaaaaaJaaJaamaamaamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhahKaheamSamTamUamVaheamWamlalBamXamYaheamZanaanbamqancandaneanfanganhanianjankamAamAamzamAanlanmaFvanoanpanqakCanransalVamKalValVantakCadEambaohaoianvaokabdabdabdaaMaafaafaafaaaaaaaaaakHakHakHakHakHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaafanzanAanAanAanAanBamQanCanDanDanDanDanEaafaaJaaaaaaahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafaafaaaaaaaaaanFaafaafaaaaafaafaaaaaaaamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhanGaheaheaheaheaheaheanHanIaheaheaheaheanJanKanJamqanLanManNamqanOanPanQanRanSamAamAamzanTanUamCaJoanWanpaJpanYanZaoaaobaocaodaoeaofanYadEambaojaoZaoYapMapaapOabdaafaaMaafaacaaaaaaaaaakHakHakHakHakHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaafaolaolaolaolaolaafamQaafaolaolaolaolaolaafaaJaaaahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaafaomaomaomaomaomaafaonaafaomaomaomaomaomaafaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaooaopaoqaoragLaosaotaheaouaovaowaoxaoyaozaoAaoBaoCaoDaoDaoEaoDaoFaoGaoHaoIaoJaoKamAamAaoLaoMaoNamCaoOaoPanpaoQanYaoRaoSaoTaoUaoVaoWaoXanYanYanYanYanYanYanYanYapPabdapbapcapdaaaaafaaaaaaakHakHakHakHakHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaafaaaaaaaafamQaaaaaaaaaaafaaaaaaaaaaamaaaahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaJaafapeapfapfapfapfapgaonaphapiapiapiapiapjaafaaJaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaooaooapkaplagLamgapmapnapoappapqaprapsaptapuapuapvapwaoDapxapyapzaoDapAaoDapBapCapDamAamzamAanlapEapFanWanpapGanYapHapIapJapKapHapLapHapHapHapRapQapSapHapHanYapNattapbapbapTapbapbaaaaaaakHakHakHakHakHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaafamPamPamPamPamPaafamQaafamPamPamPamPamPaafaaJaaaaaaahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaafapUapUapUapUapUaafaonaafapUapUapUapUapUaafaaJaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaapVapkaplagLapWapXahealyapYaowapZaqaaqbaqcaoBaqdaqeaqfaqgaqhaqiaqjaqkaqlaqmaqnaqoaoMaqpaoMaqqaqraqsaqtaquaqvanYaqwaqxapHaqyaqzaqAaqzaqBaqBaqBaqBaqBaqBaqBaqCaqEattapbaqHaqIaqJapbaaaaaaakHakHakHakHakHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaafanzanAanAanAanAanBamQanCanDanDanDanDanEaafaaJaaaaaaaaaaaaaaaaaaahHahHahHahHahHahHahHahHahHahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaafaaaaaaaafaonaaaaaaaaaaafaaaaaaaaaaaqaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaqKaqLaqMagLaheaheaheaqNamlaheamqamqamqaqOaqPaqQaqRaqSaqTaoDaqUaqVaqWaqXaqYaqZaraarbarcardarearfargarhariannanYarjarkarlarmarnaroarpapHaqFarqaqGarraqFapHanYapNattapbartaruarvapbaaaaaaakHakHakHakHakHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaafaolaolaolaolaolaafamQaafaolaolaolaolaolaafaaJaaaaaaaaaaaaaaaaaaahHahHahHahHahHahHahHahHahHahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaafapUapUapUapUapUaafaonaafapUapUapUapUapUaafaaJaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaapVapkaplagLapWapXahealyapYaowapZaqaaqbaqcaoBaqdaqeaqfaqgaqhaqiaqjaqkaqlaqmaqnaqoaoMaqpaoMaqqaqraqsaqtaquaYXanYaqwaqxapHaqyaqzaqAaqzaqBaqBaqBaqBaqBaqBaqBaqCaqEattapbaqHaqIaqJapbaaaaaaakHakHakHakHakHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaafanzanAanAanAanAanBamQanCanDanDanDanDanEaafaaJaaaaaaaaaaaaaaaaaaahHahHahHahHahHahHahHahHahHahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaafaaaaaaaafaonaaaaaaaaaaafaaaaaaaaaaaqaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaqKaqLaqMagLaheaheaheaqNamlaheamqamqamqaqOaqPaqQaqRaqSaqTaoDaqUaqVaqWaqXaqYaqZaraarbarcardarearfargarhariaFvanYarjarkarlarmarnaroarpapHaqFarqaqGarraqFapHanYapNattapbartaruarvapbaaaaaaakHakHakHakHakHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaafaolaolaolaolaolaafamQaafaolaolaolaolaolaafaaJaaaaaaaaaaaaaaaaaaahHahHahHahHahHahHahHahHahHahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJaafaomaomaomaomaomaafaonaafaomaomaomaomaomaafaaJaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaqKarwaqMagLaosarxahearyarzaowaoxarAaozaoBarBarCarDarEarFaoDarGamqarHarIarJarKarLarMarNarOarParQarRarSarTamDanYanYarUanYanYanYanYanYanYanYanYanYanYanYanYanYapNattapbapbasaapbapbaaaaaaaaaakHakHakHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaafaaaaaaaaaamQaaaaaaaaaaafaaaaaaaaaaamaaaaaaaaaaaaaaaaaaahHahHahHahHahHahHahHahHahHahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMasbaaMaaaaaaaaaaaaaaaaaaaaaaaJaafapeapfapfapfapfapgaonaphapiapiapiapiapjaafaaJaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaqKascaqMagLasdapmaseasfasgashasiasjaskaoDaoDaslasmasnasoaoDaspamqasqasrassastasuarMasvaswasxarQapbapbapbapbapbasyaszasAasBarsasCasCasDarVarWarVarVarXarYarYasEarZasFasKasLasMaqDaafaafaaaaaaaafaafaafaafaaaaaaaafaafaafaaaaaaaaaaaaaaJaafamPamPamPamPamPaafamQaafamPamPamPamPamPaafaaJaaaaaaaaaaaaaaaaaaahHahHahHahHahHahHahHahHahHahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafasNasOasNaaaaaaaaaaaaaaaaaaaaaaaJaafapUapUapUapUapUaafaonaafapUapUapUapUapUaafaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasPasQaplagLapWapXaheasRasSaowapZasTaozasUasUasVasWaoDasXaoDasYamqasZataatbatcatdarMateatfatgarQathatiatiatjatkatjatlatmatnatnatnatoatnatnatnatnatnatpattattatqatratsattatuatvatwatxatyatzatzatzatzatAatzatzatzatzatBaafaaaaaaaaaaaaaamaafanzanAanAanAanAanBamQanCanDanDanDanDanEaafaaJaaaaaaaaaaaaaaaaaaaaaaaaahHahHahHahHahHahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -7504,12 +7522,12 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaytayuayvayuaywayuayxayuayyayzayAayAayAayAayBavfayCatIaaaaafaafaaaaaaaaaaaaaafaaaayDayEayDaafaaaaafaaaaaaaaaaaaaaaaooayFayGayHayGayGayGayGayIayGayGayJayKayHayLayMaxUaxUaxUaxUaxUaxUayNayOayPayPayPayPayQayPayPayRayPayQayPayPayParMaySayTayUarQayVatnaydayWayXatUayYayZazaazbazcazdazcazeayZazfazgazhaziazjaziaziazkazlazmaznazoazpauhauhauhauhauhauhauhauhauhauhavdaafaaaaaaaaaaaaaaaaaaaaaaaaaafaafazqazrazsaztazuaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazvazwazxazyazzazAazBazCazDazBazEazFazBazBazGavfavZavjaafaafaaaaaaaaaaaaaaaaafazHazIazJazKazLaaaaafaaaaaaaaaaaaaaaaooazMaooazNazOazPazPazPazQazPazPazPazRazNazSazTazTazTazTazTazTazTazUazVayPazWazXazYazZaAaaAbaAcaAdaAeaAfazXaAgarMaAhayTayUarQayVatnaAiaAjauLatUaAkayfayfayfayfaygaAlaAmaAnaAoaxvaApaAqaAraAraAraAsaAtatxaAuatxatxauhauhauhauhauhauhauhauhauhauhavdaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaAvaAwaAxaAyaAvaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafavfaAzaAAaAzaABazxazxaACaAzaAAaAzaADaAEaAFaAGavfavZaviaviaAHavmavmavmavmavnaviaAIaAJaAKaALaAIaooaooaxPaAMaxQaooaooaooazMaANazNaaaaafaaaaafaaaaafaaaaafaaaazNazSazTaAOaAPaAQaARaASazTazUauqayPaATaATaAUaAVaAWaAXaAYaAWaAZaBaazXaAgarMaAhayTaBbarQayVatnawGaBcaBdaBeaBfaBgaBhaBiaBjaBkaBlaBmaBmaBnaBmatxaBoaBpaBqaBraBsaBtazpaBuaBvaBwauhauhauhauhauhauhauhauhauhauhavdaafaaaaaaaaaaaaaaaaacaaaaaaaafaaaaAvaBxaByaBzaAvaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaBAaujaBBawVaBCaBDaBEaBFaBGaBCawVaBHaBIaBJaBKaBLaBMavZavZavZavZavZavZavZavZaBNaBOaAIaBPaBQaBRaAIaBSaBTayGayGayGayGayGaBUaBVaBWazNaafaBXaBXaBXaBXaBXaBXaBXaafazNazSazTaBYaBZaCaaCbaBYazTazUaCcayPayPayPayPaCdaCeaCfaCgaCeaChaCiazXaCjarMaAhayTaCkarQaClatnaCmaCnaCoatUaAkavIatWaBmaBmaBmaBmaBmaCpaCqaCraBmatxatxatxatxaCsatxatxaCtaCuaCvauhauhauhauhauhauhauhauhauhauhauiaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaAvaCwaCxaCyaAvaaaaaaaaaaafaafaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazvaAAaCzaCAaCAaCAaCAaCBaAAazvaaaaBJaCCaCDaBMaCEaCEaCEaCEaCEaCEaCEavZaCFaCGaAIaCHaCIaCJaAIaCKaCLaCKaCKaCKaCKaCKaCKaCKaCKaCMaaaaBXaCNaCOaCPaCQaCRaBXaaaazNazSazTaBYaCSaCTaCUaBYazTazUaooayPaCVaCWaAUaCXaCYaCZaDaaDbaDcayPayPayParMaAhayTayUarQayVatnaDdaDeauLatUaDfavIatWaDgaDhaDiaDjaBmaCpaDkaCraBmaDlaDmaDnaDoaDpaDqaDratxatxatxaDsatzatzatzatzaDtatzatzatzatzaDuaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaAvaAvaDvaDwaAvaDxaDyaDzaDxaDxaDxaDxaDxaDxaDxaDAaDBaDBaDBaDCaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaaaaaaaaaaaaaaaaaaaaaaaaaaaaDEaDFaDGaDFaDFaDHaDIaDFaDFaDGaDJaDKaBJaDLaDMaBMaDNaDOaDPaDQaDRaDSaCEavZaDTaviaAIaAIaDUaDVaCMaDWaDXaDYaDZaEaaEbaEcaEdaEeaEfaCMaafaBXaEgaEhaEiaEjaEkaBXaafazNazSazTaElaEmaEnaEoaEpazTazUaEqayPazWazXaEraEsaCeaEtaEuaAWaEvaEwasJasJarMaAhayTayUarQayVaEyaEyaEyaEyaEyaEzaEAatWaEBaECaECaEDaEEaECaEFaEGaBmaEHaEIaEJaEKaELaEMaDraaaaafaafaafaaaaaaaafaafaafaafaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaDxaENaEOaDxaEPaEQaERaESaESaESaESaETaEUaEVaEVaEVaEVaEVaEVaEVaEWaEXaEYaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaaaaaaaaaaDEaDJaDFaEZaFaaFbaFcaFdaFeaFfaFgaFbaFhaFiaFjaFkaDLaFlaBMaFmaFnaFoaFpaFoaFqaFravZaFsaFtaFuaFvaFwaFxaFyaFzaFAaFBaFBaFBaFCaFBaFBaFDaFEaCMaaaaBXaFFaEhaFGaEjaFHaBXaaaazNazSazTaFIaFJaFKaFJaFLazTazUaFMayPayPayPayPaFNaCeaCfazXaCeaFOaFPazXaFQarMaFRaFSaFTarQayVaFUaFVaFWaFXaFUaFYaFZaGaaGbaGcaBmaBmaBmaBmaBmaBmaGdaGeaGfaGgaDoaGhaGiaDraDraDraDraDraDraDraDraDraGjaGkaDraDraGjaGlaDraDraaaaaaaDraDxaDxaDxaDxaGmaGnaESaGoaGpaDxaDxaDxaDxaDxaGqaGraGsaGsaGsaGsaGsaGsaGtaGtaGuaGtaGtaGtaGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaaaaaaaaaaFiaGvaGwaGxaFbaGyaFbaGyaFbaGyaFbaGyaFbaGzaGAaGBaDLaFlaBMaGCaGDaGEaGFaGGaGHaCEaGIaGJaGKaGKaGKaGLaGMaGKaGNaFBaFBaFBaFBaFBaFBaFBaFDaGOaCMaafaBXaGPaGQaGRaGSaGTaBXaafazNazSazTaGUaGVaFKaGWaGXazTaGYaGZayPaHaazXaAUaHbaAWaHcazXaCeaFOaHdazXaHearMaHfaHgaHharQaHiaHjaHkaHlaHmaHnaHoaHpatWaHqaHraBmaHsaBmaHtaBmaHuaBmaHvaGfaHwaDoaHxaHyaHzaHAaHAaHBaHCaHDaHDaHDaHDaHDaHEaHDaHDaHDaHFaHGaDraDraDraDraHHaHIaHJaHJaHKaHLaDxaDxaHMaDxaHNaHOaHPaHQaGsaHRaGsaHSaHTaHUaHVaHWaHXaHYaHZaIaaIbaIcaIdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIfaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaaaaaaaaaaIgaFbaFbaDGaFbaGyaFbaGyaIhaGyaIiaGyaFbaGzaGAaGBaDLaIjaIkaIkaIlaImaInaImaIkaIkaIoaIpaGKaIqaIraIsaItaGKaIuaIvaIwaFBaFBaIxaFBaIyaIzaIuaCMaaaaBXaBXaIAaIBaIAaBXaBXaaaazNazSazTaICaIDaIEaFJaFJaIFaIGaIHayPaIIazXaIJaEsaCeaIKaEuaAWaILaIMazXaINaIOaIPaIQaIRaISaITaIUaIUaIUaIUaIUaIVaIWaIXaIYaIZaBmaJaaBmaJbaBmaJcaBmaJdaGfaJeaJfaJgaJgaDpaJhaDraDraJiaDraDraJjaDraJgaJkaJgaJgaJgaJlaJmaJnaJoaJpaJqaJraJsaJsaJsaJtaJuaHQaJvaJwaJxaJyaJzaJAaHQaJBaJCaGsaJDaJEaJFaJGaHWaJHaHYaJIaJJaGtaGtaGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaBAaujaBBawVaBCaBDaBEaBFaBGaBCawVaBHaBIaBJaBKaBLaBMavZavZavZavZavZavZavZavZaBNaBOaAIaBPaBQaBRaAIaBSaBTayGayGayGayGayGaBUaBVaBWazNaafaBXaBXaBXaBXaBXaBXaBXaafazNazSazTaBYaBZaCaaCbaBYazTazUaCcayPayPayPayPaCdaCeaCfaCgaCeaChaCiazXaCjarMaAhayTaCkarQaClatnaCmaCnaCoatUaAkavIatWaBmaBmaBmaBmaBmaCpaCqaCraBmatxatxatxatxaCsatxatxaCtaCuaCvauhauhauhauhauhauhauhauhauhauhauiaafaDraDraDraDraDraDraaaaaaaafaaaaAvaCwaCxaCyaAvaaaaaaaaaaafaafaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazvaAAaCzaCAaCAaCAaCAaCBaAAazvaaaaBJaCCaCDaBMaCEaCEaCEaCEaCEaCEaCEaYYaYZaCGaAIaCHaCIaCJaAIaCKaCLaCKaCKaCKaCKaCKaCKaCKaCKaCMaaaaBXaCNaCOaCPaCQaCRaBXaaaazNazSazTaBYaCSaCTaCUaBYazTazUaooayPaCVaCWaAUaCXaCYaCZaDaaDbaDcayPayPayParMaAhayTayUarQayVatnaDdaDeauLatUaDfavIatWaDgaDhaDiaDjaBmaCpaDkaCraBmaDlaDmaDnaDoaDpaDqaDratxatxatxaDsatzatzatzatzaDtatzatzatzatzaDuaafaDrbaybcgbazbchaDraaaaaaaafaaaaAvaAvaDvaDwaAvaDxaDyaDzaDxaDxaDxaDxaDxaDxaDxaDAaDBaDBaDBaDCaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaaaaaaaaaaaaaaaaaaaaaaaaaaaaDEaDFaDGaDFaDFaDHaDIaDFaDFaDGaDJaDKaBJaDLaDMaBMaDNaDOaDPaDQaDRaDSaCEbdHbdIaviaAIaAIaDUaDVaCMaDWaDXaDYaDZaEaaEbaEcaEdaEeaEfaCMaafaBXaEgaEhaEiaEjaEkaBXaafazNazSazTaElaEmaEnaEoaEpazTazUaEqayPazWazXaEraEsaCeaEtaEuaAWaEvaEwasJasJarMaAhayTayUarQayVaEyaEyaEyaEyaEyaEzaEAatWaEBaECaECaEDaEEaECaEFaEGaBmaEHaEIaEJaEKaELaEMaDraaaaafaafaafaaaaaaaafaafaafaafaaaaaaaafaafaafaDrbfdcaAbZlcDgaDraaaaDxaENaEOaDxaEPaEQaERaESaESaESaESaETaEUaEVaEVaEVaEVaEVaEVaEVaEWaEXaEYaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaaaaaaaaaaDEaDJaDFaEZaFaaFbaFcaFdaFeaFfaFgaFbaFhaFiaFjaFkaDLaFlaBMaFmaFnaFoaFpaFoaFqaFraFscDicDhcElaFuaFwaFxaFyaFzaFAaFBaFBaFBaFCaFBaFBaFDaFEaCMaaaaBXaFFaEhaFGaEjaFHaBXaaaazNazSazTaFIaFJaFKaFJaFLazTazUaFMayPayPayPayPaFNaCeaCfazXaCeaFOaFPazXaFQarMaFRaFSaFTarQayVaFUaFVaFWaFXaFUaFYaFZaGaaGbaGcaBmaBmaBmaBmaBmaBmaGdaGeaGfaGgaDoaGhaGiaDraDraDraDraDraDraDraDraDraGjaGkaDraDraGjaGlaDraDrcEmaDraDxaDxaDxaDxaDxaGmaGnaESaGoaGpaDxaDxaDxaDxaDxaGqaGraGsaGsaGsaGsaGsaGsaGtaGtaGuaGtaGtaGtaGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaaaaaaaaaaFiaGvaGwaGxaFbaGyaFbaGyaFbaGyaFbaGyaFbaGzaGAaGBaDLaFlaBMaGCaGDaGEaGFaGGaGHaCEaGIaGJaGKaGKaGKaGLaGMaGKaGNaFBaFBaFBaFBaFBaFBaFBaFDaGOaCMaafaBXaGPaGQaGRaGSaGTaBXaafazNazSazTaGUaGVaFKaGWaGXazTaGYaGZayPaHaazXaAUaHbaAWaHcazXaCeaFOaHdazXaHearMaHfaHgaHharQaHiaHjaHkaHlaHmaHnaHoaHpatWaHqaHraBmaHsaBmaHtaBmaHuaBmaHvaGfaHwaDoaHxaHyaHzaHAaHAaHBaHCaHDaHDaHDaHDaHDaHEaHDaHDaHDaHFaHGaDrcEnaDraHHaHIcGsaHJaHJaHKaHLaDxaDxaHMaDxaHNaHOaHPaHQaGsaHRaGsaHSaHTaHUaHVaHWaHXaHYaHZaIaaIbaIcaIdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIfaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaaaaaaaaaaIgaFbaFbaDGaFbaGyaFbaGyaIhaGyaIiaGyaFbaGzaGAaGBaDLaIjaIkaIkaIlaImaInaImaIkaIkaIoaIpaGKaIqaIraIsaItaGKaIuaIvaIwaFBaFBaIxaFBaIyaIzaIuaCMaaaaBXaBXaIAaIBaIAaBXaBXaaaazNazSazTaICaIDaIEaFJaFJaIFaIGaIHayPaIIazXaIJaEsaCeaIKaEuaAWaILaIMazXaINaIOaIPaIQaIRaISaITaIUaIUaIUaIUaIUaIVaIWaIXaIYaIZaBmaJaaBmaJbaBmaJcaBmaJdaGfaJeaJfaJgaJgaDpaJhaDraDraJiaDraDraJjaDraJgaJkaJgaJgaJgaJlaJmaJncGtaJqaJraJsaJsaJsaJsaJtaJuaHQaJvaJwaJxaJyaJzaJAaHQaJBaJCaGsaJDaJEaJFaJGaHWaJHaHYaJIaJJaGtaGtaGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaaaaaaaaaaFiaJKaGwaGxaFbaGyaFbaGyaFbaGyaFbaGyaFbaGzaGAaGBaDLaJLaJMaJNaJOaJPaJPaJQaJRaJSaJTaJUaJVaJWaJXaJYaJZaGKaIuaKaaKbaKcaKdaIuaKeaKfaKgaKhaKiaaaaafaaaaKjaKkaKjaaaaafaaaaKiazSazTaKlaKmaKnaKoaKpazTaKqaKrayPaKsazXaAUaKtaKuaHcazXaKvaKwaKxaKyaKzaIOaKAaKBaKCaKDaKEaKFaaaaaaaIXaKGaKHaKIaIXaKJaIZaIZaIZaKKaIZaIZaIZaBmaDoaKLaDoaDoaDoaDoaKMaDoaKNaKOaKPaKQaKRaKSaKTaKUaKVaKTaKTaKTaKTaKTaKWaKTaKTaKTaKTaKTaKTaKTaKTaKXaHQaKYaKZaLaaLbaLcaLdaHQaLeaLfaGsaLgaLhaLiaJGaLjaJHaHYaJIaHYaLkaLlaLmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaaaaaaaaaaLnaLoaDFaEZaFaaFbaFbaLpaFbaFbaLqaFbaFhaFiaLraLsaDLaLtaLuaLvaLwaLvaLvaLvaLvaLvaLxaLyaGKaGKaGKaGKaGKaGKaLzaLAaLBaLCaLCaLCaLCaLDaLEaLFaKiaLGaLHaLHaLIaLJaLKaLHaLHaLLaKiaLMaKiaKiaLNaLOaLNaIOaIOaISaLPaIOaIOaIOaIOaLQaLRaLSaLTaLUaLVaIOaIOaIOaIOaLWaKBaLXaLXaLYaLZaMaaMbaIXaMcaMdaMeaIXaIXaIXaIXaIXaIXaIXaIXaBmaBmaMfaMgaMhaMiaMjaMkaMlaMmaKNaMnaMoaMpaMpaMqaKTaMraMsaMtaMuaMvaMwaMxaMyaMzaMAaMuaMwaMvaMuaMBaKTaKXaHQaMCaMDaMEaMFaMGaMHaHQaMIaMJaMKaMLaMMaMNaMOaGsaGtaMPaJIaHYaMQaMRaMSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaaaaaaaaaaaaaaaaaaaaaaaaaaaaLnaDFaDGaDFaDFaDHaDIaDFaDFaDGaLoaMTaBJaMUaLtaMVaMWaMWaMXaMWaMYaIkaMZaNaaLyaNbaNcaNdaNeaNfaNgaNeaNhaNeaNeaNeaNiaNeaNeaNjaNkaNlaNmaNmaNnaNoaNpaNmaNmaNmaNmaNqaNraNsaNtaNeaNuaNvaNwaNxaNyaNzaNyaNAaNBaNCaNDaNDaNEaNFaNGaNFaNHaNIaNJaNKaNLaNMaNNaNOaNPaLXaLXaLXaNQaNRaNSaNTaNUaNVaNWaNXaNYaNZaOaaIXaObaOcaOdaOeaOfaOfaOgaOhaOiaOjaKNaOkaOlaOmaOmaOnaKTaOoaOpaOqaOqaOqaOqaOraOsaOtaOuaOvaOwaOwaOxaOyaKTaKXaHQaOzaOAaOBaOCaOzaOzaHQaODaOEaGsaOFaOGaOHaOIaGsaHYaHYaJIaHYaGtaGtaGtaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -7519,11 +7537,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaD
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaTqaTraTsaTtaTuaTvaTwaTxaTyaTzaTxaTAaTBaTCaTDaTEaTFaTDaTGaTHaTIaTJaTKaTLaTLaTLaTMaTLaTNaTOaIkaTPaTQaTRaTSaTTaTUaTVaTWaTXaTUaTYaTZaUaaUbaUcaUdaUeaUfaUgaUhaUeaUiaSfaSfaUjaSfaSfaSfaSfaUkaUlaSfaUmaISaUnaSraKCaUoaaaaaaaaaaaaaaaaaaaaaaUpaUqaUraUsaUtaUuaUvaUwaUxaUyaUzaUAaUpaaaaaaaaaaaaaaaaaaaaaaUBaSFaRdaUCaUDaUEaUFaUGaUGaUGaUGaUHaUIaUJaUGaUGaUGaUKaULaUMaUNaUOaUPaUQaURaUSaUTaUUaSXaUVaUWaUXaUYaUZaVaaVbaVcaSWaKXaHQaVdaVdaRyaRzaVeaVeaVfaHQaHQaVgaHQaGtaVhaViaVjaVjaVjaVkaVlaGtaGtaGtaVmaVnaVoaVpaVqaVraafaafaaaaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaVsaVtaVuaVvaDLaVwaVwaVxaVwaVwaVwaVyaVwaVwaVxaVwaVwaVzaVAaVBaVCaVDaVDaVDaVDaVDaVEaVFaVGaVHaIkaTQaTQaVIaTSaVJaTUaTUaTUaTUaTUaTYaVKaTUaTUaTUaUdaUeaVLaVMaVNaUeaUiaVOaVPaVQaVRaVSaUmaVTaVUaVVaVWaVXaVYaLXaSraKCaUoaaaaaaaaaaaaaUpaUpaUpaUpaVZaWaaWbaWcaWdaWeaWfaWgaWhaWiaWjaUpaUpaUpaUpaaaaaaaaaaaaaUBaSFaRdaRcaWkaSKaWlaWmaWnaSKaWoaWpaWqaWraWsaWtaWuaWvaPNaWwaWxaWyaWzaWAaWBaWBaWCaWDaWEaWFaWGaWHaWIaWJaWKaWLaWMaSWaKXaHQaSZaOzaRyaRzaOzaOzaOzaWNaWOaOzaWPaGtaWQaWRaTgaTgaTgaTiaHYaWSaGtaWTaVpaWUaWVaVpaWWaWXaWYaWYaWZaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaXaaRRaXbaRSaBJaBJaBJaXcaXdaXdaXdaXdaXdaXdaXdaXeaBJaBMaXfaXgaIkaXhaXiaXiaXiaXjaXkaIkaIkaIkaIkaTQaXlaXmaTSaXnaTUaTUaXoaXpaXqaXraXsaTUaTUaTUaXtaUeaXuaXvaXwaUeaUiaVOaXxaXyaXzaXAaUmaXBaVXaXCaXDaXEaXFaLXaSraKCaLZaSuaISaXGaUpaUpaXHaXIaXJaXKaXLaXLaWcaWgaXMaWcaWgaXLaXLaXNaXOaXPaXQaUpaUpaXGaIXaXRaXSaSFaRdaRcaIXaXTaWlaXUaWnaSKaXVaXWaSKaXXaXYaWnaSKaXZaOfaYaaYbaURaYcaYdaYeaYfaYgaYhaYiaYjaUWaYkaYlaWJaYmaWLaYnaSWaKXaHQaYoaYoaRyaRzaYpaOzaOzaYqaOzaYraYsaGtaHYaYtaYuaTgaYvaYwaYxaYyaYzaYAaYBaYCaVpaYDaYEaYFaYGaYHaYIaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaaaaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaafaYKaYLaYMaYNaYOaYPaYPaYQaYRaYSaYTaYUaYVaYWaYXaYYaYZaZaaTSaZbaTUaTUaXoaXqaZcaZdaXoaTUaTUaZeaUdaUeaUeaUeaUeaUeaUiaVOaVOaVOaVOaVOaUmaZfaXDaZgaXDaXDaXFaLXaSraKCaNFaNFaZhaZiaZjaUpaZkaZlaZmaZnaZoaZpaZqaZraZsaZtaZuaZvaZwaZxaZmaZyaZzaUpaZAaZiaZBaZCaZDaSFaRdaRcaWkaSKaSKaSKaSKaSKaXVaZEaSKaXXaZFaWnaSKaXZaOfaZGaYbaURaZHaZIaZJaZKaYgaZLaZMaYjaUWaYkaYlaWJaYmaZNaZOaZPaZQaZPaZPaZPaZRaZSaZTaZUaOAaZVaZWaZXaZYaGtaZZbaababaTgbacbabaHYaHYbadbaeaVpbafaVpbagbahbaibajaWYbakaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJbalbambanbaobapbaqaYPbarbasbatbaubavbawbaxaYWbaybazbaAbaBaTSbaCbaDbaEbaFbaGbaHbaIbaJbaJbaJbaKbaLaTSbaMbaNbaObaPbaQbaBbaRbaSbaBbaTaUmbaUbaVbaWbaXbaYbaZaLXbbabbbaLXbbcbbdbbebbfbbgbbhbbibbjbbkaUpaUpaUpaUpaUpbblaUpaUpaUpbbmbbjbbnbbobbpbbqbbrbbsbbtbbubbvbbwbbxaIXaUEaWlbbyaWnaSKbbzbbAbbBbbCaXUaWnaSKaXZbbDaUMaYbbbEbbFbbGaURaURaYgbbHbbIbbJbbKbbLaYlaWJbbMaWLbbNaZPbbObbPbbPbbQbbRbbSaRyaRyaRyaRyaRyaRyaRyaGtbbTaYtaYuaTgaYvaYuaHYbbUaGtbbVaVpbafaVpbagbbWbbXbbYaafaafaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJbbZbcabcbbccbcdbaqbasbasbasbasbasbcebasbcfaYWbcgbchbaAbcibcibcibcibcjbcibckaTUbclbcmbcnbcnbcobcpaTSaXlbcqbcrbcsbctbcubcvbcwbcxbcxbcybcybcybcybcybczaISbcAbcBbcCbcDbcEbcFbcGbcHaUpbcIbcJbcKaUpaUpaaaaaaaafaafbcLaaaaaaaUpaUpbcMbcNbcIaUpbcHbcGbcObcPbcQbcRbcSaRcaWkaSKaSKaSKaSKaSKaGfbcTaSKbcUaSKaSKaSKaSKaSKbcVbcWbcXbcYaURaURaURbcZbdaaSWbdbbdcbddaYlaWJaYmaWLbdeaZPbdfbdgbdhbdibdjbdkbdjbdjbdjbdjbdjbdlbdmbdnbdobdpbdqbdrbdsbdtbdubdvbdwbdxaVpbafbdybagaVpbdzbbYaafaaaaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJbdAbdBbanbdCbdDbaqaYPbdEbasbatbdFbcebasbdGaYWbdHbdIbaAbcibdJbdKbdLbdMbcibdNbdObdPaTSbdQbdRbdSbdTaTSaXlbdUbdVbdVbdWbdVbdVbdVbdVbdXbdYbdYbdYbdZbdYbeaaISbebbecbedbeebeebeebeebeebeebefbegbefbeebehbehbehbehbehbeibehbehbehbejbejbekbejaUpaUpaUpbelbelbelbcRbcSaRcaIXbembenaDlbeoaSKbepbcTbeqberbesaSKaSKbetbeuaZPaZPaZPbevbewbewbewaZPaZPaZPbexbeybezbeAaWJaYmaYmbeBaZPbeCbeDbeEaZPbeFbeGbeHaZUbeIbeJbeKbeLaOzaGtaHYbeMbeNbeObeMbePaHYaHYaGtbeQaVpbafaVpbagbeRbeSbbYaafaafaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaafbeTbeUbeVbeWbeXaYPbeYbeZbfabdFbcebfbbfcaYWbfdbfebaAbcibcibcibffbfgbcibfhbdObfiaTSbdQbdRbdSbfjaTSaXlbdUbdVbfkbflbfmbfmbfnbdVbfobfpbfqbfrbfsbfsbfsaISaLXbcBbcCbeebftbfubfvbfwbfxbfybfzbfAbeebehbfBbfCbfBbfDbfEbfBbfFbehbejbfGbfHbfIbfJbfKbfLbfMbfNbelbfObfPbfQaIXaZPaZPaZPaZPbfRbfSbfTbfUaZPaZPbfVaZPaZPaZPaZPbfWbfXbfYbfZbfZbfZbgabgbaZPbgcbgdbgebgfbggbggbggbghaZPbeCbeDbgiaZPaZPaZPaZPaZPaZPaZPaZPaZPaZPaZPbgjbgkbglbgmbgnbgjbgkaZPaRMbgoaVpbafaVpbagbahbgpbgqaWYbakaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaaaaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaafaYKaYLaYMaYNaYOaYPaYPaYQaYRaYSaYTaYUaYVaYWcGucGZcGvaZaaTSaZbaTUaTUaXoaXqaZcaZdaXoaTUaTUaZeaUdaUeaUeaUeaUeaUeaUiaVOaVOaVOaVOaVOaUmaZfaXDaZgaXDaXDaXFaLXaSraKCaNFaNFaZhaZiaZjaUpaZkaZlaZmaZnaZoaZpaZqaZraZsaZtaZuaZvaZwaZxaZmaZyaZzaUpaZAaZiaZBaZCaZDaSFaRdaRcaWkaSKaSKaSKaSKaSKaXVaZEaSKaXXaZFaWnaSKaXZaOfaZGaYbaURaZHaZIaZJaZKaYgaZLaZMaYjaUWaYkaYlaWJaYmaZNaZOaZPaZQaZPaZPaZPaZRaZSaZTaZUaOAaZVaZWaZXaZYaGtaZZbaababaTgbacbabaHYaHYbadbaeaVpbafaVpbagbahbaibajaWYbakaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJbalbambanbaobapbaqaYPbarbasbatbaubavbawbaxaYWcHacHHcHbbaBaTSbaCbaDbaEbaFbaGbaHbaIbaJbaJbaJbaKbaLaTSbaMbaNbaObaPbaQbaBbaRbaSbaBbaTaUmbaUbaVbaWbaXbaYbaZaLXbbabbbaLXbbcbbdbbebbfbbgbbhbbibbjbbkaUpaUpaUpaUpaUpbblaUpaUpaUpbbmbbjbbnbbobbpbbqbbrbbsbbtbbubbvbbwbbxaIXaUEaWlbbyaWnaSKbbzbbAbbBbbCaXUaWnaSKaXZbbDaUMaYbbbEbbFbbGaURaURaYgbbHbbIbbJbbKbbLaYlaWJbbMaWLbbNaZPbbObbPbbPbbQbbRbbSaRyaRyaRyaRyaRyaRyaRyaGtbbTaYtaYuaTgaYvaYuaHYbbUaGtbbVaVpbafaVpbagbbWbbXbbYaafaafaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJbbZbcabcbbccbcdbaqbasbasbasbasbasbcebasbcfaYWcMpcMrcMqbcibcibcibcibcjbcibckaTUbclbcmbcnbcnbcobcpaTSaXlbcqbcrbcsbctbcubcvbcwbcxbcxbcybcybcybcybcybczaISbcAbcBbcCbcDbcEbcFbcGbcHaUpbcIbcJbcKaUpaUpaaaaaaaafaafbcLaaaaaaaUpaUpbcMbcNbcIaUpbcHbcGbcObcPbcQbcRbcSaRcaWkaSKaSKaSKaSKaSKaGfbcTaSKbcUaSKaSKaSKaSKaSKbcVbcWbcXbcYaURaURaURbcZbdaaSWbdbbdcbddaYlaWJaYmaWLbdeaZPbdfbdgbdhbdibdjbdkbdjbdjbdjbdjbdjbdlbdmbdnbdobdpbdqbdrbdsbdtbdubdvbdwbdxaVpbafbdybagaVpbdzbbYaafaaaaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJbdAbdBbanbdCbdDbaqaYPbdEbasbatbdFbcebasbdGaYWcMscMtbaAbcibdJbdKbdLbdMbcibdNbdObdPaTSbdQbdRbdSbdTaTSaXlbdUbdVbdVbdWbdVbdVbdVbdVbdXbdYbdYbdYbdZbdYbeaaISbebbecbedbeebeebeebeebeebeebefbegbefbeebehbehbehbehbehbeibehbehbehbejbejbekbejaUpaUpaUpbelbelbelbcRbcSaRcaIXbembenaDlbeoaSKbepbcTbeqberbesaSKaSKbetbeuaZPaZPaZPbevbewbewbewaZPaZPaZPbexbeybezbeAaWJaYmaYmbeBaZPbeCbeDbeEaZPbeFbeGbeHaZUbeIbeJbeKbeLaOzaGtaHYbeMbeNbeObeMbePaHYaHYaGtbeQaVpbafaVpbagbeRbeSbbYaafaafaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaYJaafbeTbeUbeVbeWbeXaYPbeYbeZbfabdFbcebfbbfcaYWcMubfebaAbcibcibcibffbfgbcibfhbdObfiaTSbdQbdRbdSbfjaTSaXlbdUbdVbfkbflbfmbfmbfnbdVbfobfpbfqbfrbfsbfsbfsaISaLXbcBbcCbeebftbfubfvbfwbfxbfybfzbfAbeebehbfBbfCbfBbfDbfEbfBbfFbehbejbfGbfHbfIbfJbfKbfLbfMbfNbelbfObfPbfQaIXaZPaZPaZPaZPbfRbfSbfTbfUaZPaZPbfVaZPaZPaZPaZPbfWbfXbfYbfZbfZbfZbgabgbaZPbgcbgdbgebgfbggbggbggbghaZPbeCbeDbgiaZPaZPaZPaZPaZPaZPaZPaZPaZPaZPaZPbgjbgkbglbgmbgnbgjbgkaZPaRMbgoaVpbafaVpbagbahbgpbgqaWYbakaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaaaaaaaaaaaabgrbgsbgtbgubanbgvbgvbgvbgvbgvbgvbgwbgxbgvaYWaYWaYWaYWaYWbgyaYWaYWaYWbgzbgzbgAbcibdJbgBbffbgCbcibgDbgEbgDaTSbdQbdRbdSbfjaTSaXlbdUbdVbgFbgGbfmbfmbgHbdVbfobgIbgJbgKbgLbgMbgNaISbgObgPbcCbgQbgRbgSbgTbgUbgUbgVbgWbgXbeebehbgYbgZbhabhbbhcbhdbhebehbejbhfbhgbhhbhibhjbhkbhlbhmbelbhnbhoaRcbhpbhqbhrbeDbeDbhsbeDbhtbeDbeDbeDbeDbhubeDbeDbeDbeDbhvbeDbeDbeDbeDbeDbeDbhrbeDbeDbhwbhxbhxbhybhxbhxbhzbhAbeDbhvbhBbhCbhubeDbhDbeDbeDbhEbhFbhGbhHbhIbeDbhJbeDbhKbeDbeDbhLbhMbhNaVpbafaVpbhObhPbhQbhRbhSbhTaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaaabhUbhUbhUbhUbhUbhUbhUbhUbhUbhUaaaaafbhVaYLbhWbhXbhYbhZbiabibbicbhZbidbiebifbigbihbiibgAbcibcibcibijbfgbciaTSaTSaTSaTSbdQbikbilbimaTSbinbiobdVbipbiqbirbgHbisbdVbfobitbgJbgKbgKbgKbiuaISbivaSrbcCbiwbixbiybizbiAbiBbiCbiDbiEbeebehbiFbiGbiHbiIbiHbhdbiJbehbejbiKbiLbiMbiNbiObiPbiQbiRbelbiSbiTbiUbiVbiWbiXbiYbiYbiZbjabjbbjcbjcbjcbjdbjcbjcbjcbjcbjcbjebjfbjfbjfbjgbiYbiYbiXbiYbiYbjhbjfbjfbjibjcbjjbjkbjlbjcbjmbiYbiYbiYbiYbiYbiYbiYbiYbiYbiYbiYbiYbiYbjnbjdbjobjcbjpbjqbjrbjsbjsbjtbjubagaWWbjvaWYaWYaWZaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaDDaaaaaaaaabhUbhUbhUbhUbhUbhUbhUbhUbhUbhUbhUbalbambjwbaobjxbgvbjybjybjzbjybjybjybjAbjBbjCbjDaXlbaAbcibdJbjEbjFbgCbcibaTbaTbaTaTSaTSaTSaTSbjGaTSbjHbdUbdVbjIbjJbgHbfmbjKbdVbjLbfsbjMbgKbgKbgKbjNaISbjOaSrbcCbjPbjQbgSbjRbjSbjTbjUbjVbjWbeebjXbjYbjZbiHbkabiHbgZbkbbkcbejbkdbkebkfbkgbkgbkgbkhbkibelbkjbkkbklbkmbknbkobbPbkpbkqbkrbksbktbkubkvbkwbkxbkxbkybeDbeDbeDbeDbeDbkzbkAbkBbeDbkCbkDbkEbkFbeDbkzbkGbkHbkIbhLbeDbeDbkJbeDbeDbkKbkLbeDbkzbeDbeDbeDbeDbeDbeDbeDbeDbeDbhvbeDbeDbhLbkMbkNbkObkPbkQbkRbkSbkTaafaaaaafaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaIeaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -7552,9 +7570,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTEbKWbTFbKWbTGbTHaafaaaaaabGDbTIbTJbTKbGDaaabNVbTLbTMbTNbTObTObTObTPbQVaaabQWbTQbTRbTSbTTbPCbTUbTVbTWbTXbOdbTYbTZbUabUbbUcbUcbUcbUdbUdbUebUfbUgbPUbPUbUhbOsbOsbOsbOsbDHbDHbUibUjbUkbDHbUlbUmbUnbUobUpbUlbOwbUqbUrbUsbUtbUlbNjbNjbNjbNjbNjbNjbUubUvbUwbRHbUxbUybUzbRLbBjbNnbUAbUBbUCbUDbUEbUFbUGbUAbUHbUIbUJbJbbJcbzHbJdbMfbUKbwCbNubNubULbUMbNubNubNubNubUNbUObPibNubUPbUQbPkbURbUSbUTbPkaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKTbUUbUUbUUbUUbUUbUUbUVbMtbUWbUUbTDbMtbMtbMtbMtbKTaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabJoaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbUXbNVbNVbNVbNVbSsbUYbNUbUZaaabVabPzbPzbVbbVcbPCbPCbVdbPCbVebOdbVfbVgbVhbOdbVibVibVibVibVibVibVibVibVjbVkbVlbVmbVmbVnbOsbDHbVobVpbVqbVrbVsbVtbVubVvbVwbVxbVybVubVzbVAbVBbVCbVDbVEbVFbVGbVHbVIbVJbVKbVLbVMbRHbVNbVObVNbRLbBjbNnbVPbVQbVRbVSbVTcfmbVVbVWbUHbzHbVXbzHbzHbVYbCNbMfbCNbVZaafbWabWbbWcbWdbWebWfbWgbWhbWibWjbNubWkbWlbPkbWmbWnbWobWpaaMaaMaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWqbMrbMrbMrbMrbMrbMrbMrbWrbMubMtbMtbMtbMtbWsbMubKUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWtbWubWubWvbWwbNVbWxbSsbWybNVaaaaaaaaaaaabNWbWzbWAbWBbWCbWDbPCbOdbWEbWFbOgbOdbVibWGbWHbWIbWJbWKbWLbVibWMbWMbWMbWMbWMbUhbWNbWObWPbWQbWRbWSbWTbWUbWVbWWbWXbWYbWXbWZbWXbXabXbbXcbXdbXebXfbXebXgbXhbXibXjbXkbXlbXmbXnbXobXpbXqbXrbNnbXsbXtbXubXvbXwbXxbXvbXvbXybXzbCKbXAbXBbCNbCNbMfbCNbXCaafbWabXDbXDbXEbXFbXGbXHbXIbXJbXKbNubWkbXLbPkbPkbPkbPkbPkaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKTbQJbQJbQJbQJbQJbQJbXMbMtbQIbQJbXNbMtbMtbMtbMtbKTaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXObXPbXQbXRbSsbXSbXTbXUbXVbNVaaLaaaaaaaaabNWbNWbNWbNWbNWbNWbNWbOdbXWbXXbXYbOdbVibXZbYabYbbYbbYabYcbVibYdbYebYebYfbWMbYgbDHbDHbYhbYibYjbYkbYlbYmbYnbYobYpbYqbYrbYsbYtbYubYvbYwbYxbYybYzbYAbYBbYCbYDbYEbYFbYGbYHbYIbYJbYKbnFbYLbIPbYMbYNbYObYPbYQbYRbYSbYTbYUbYVbYWbBzbYXbYYbBzbYZbZabZbaafbWabZcbZdbZebWebZfbZgbZhbZibZjbNubWkbZkbZlbUQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKTbMtbMtbMtbMtbMtbMtbTCbMtbXNbMtbMtbMtbMtbMtbKTbKTaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZmbWubWubWvbZnbZobZpbNVbZqbNVbZrbZsbZtbZrbZrbZubZvbZwbZxbZybZzbZAbZBbZCbZDbZEbZFbYabZGbZHbZIbZJbZKbZLbZMbZNbZObZPbWMbZQbOqbZRbZSbZTbZUbZUbZVbZWbZXbZYbUlbUlbZZcaabUlbUlcabcaccadcaecafcagcahcaicajcaicakcalcamcalcakcanbnFbNmbIPcaocapcaqcarcascatcaubNnbNnbwCbwCbwCbwCbwCcavcawcaxbwCbNubNubNubNubNubNubNubNubNubNubNubNucaycazcaAbUQaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKTbKTbSlbMtbMtbMtbMtbMtbMtbMtbMtbMtbMtbMtbKTbKTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamcaBaamaamaamaamaamaaaaaaaaaaaaaaaaaaaafaafaaacaCcaDcaDcaDcaEcaDcaDcaFcaGbZrcaHcaIbZrcaJcaKcaLcaMcaNcaOcaPcaQcaRcaScaTcaUcaVbYabZGcaWcaXbZJcaYbVibWMbWMbWMbWMbWMcaZbOqbDHcbacbbcbccbdcbecbfcbgcbhbUlcbicbjcbkcblcbmcbncbocbpcaecahcagcbqcaicbrcbscakcbtcbucbvcakcbwbnFbBjbIPcbxcbycbzcbxcbxbIPbIPbIPcbAcbBcbCcbDcbEbwCbwCcbFbwCbwCcbGcbHcbIcbJcbKcbLcbMcbNcbOcbPcbQcbRcbScbTbUQbUQbUQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKSbKTbUWbUUbUUbMtbMtbMtbMtbMtbMtbMtbMtbKTbKTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXObXPbXQbXRbSsbXSbXTbXUbXVbNVaaLaaaaaaaaabNWbNWbNWbNWbNWbNWbNWbOdbXWbXXbXYbOdbVibXZbYabYbbYbbYabYcbVibYdbYebYebYfbWMbYgbDHbDHbYhbYibYjbYkbYlbYmbYnbYobYpbYqbYrbYsbYtbYubYvbYwbYxbYybYzbYAbYBbYCbYDbYEbYFbYGbYHbYIbYJbYKbnFbYLbIPbYMbYNbYObYPbYQbYRbYSbYTbYUbYVbYWbBzbYXbYYbBzbYZbZabZbaafbWabZcbZdbZebWebZfbZgbZhbZibZjbNubWkbZkalqakGannbUQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKTbMtbMtbMtbMtbMtbMtbTCbMtbXNbMtbMtbMtbMtbMtbKTbKTaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZmbWubWubWvbZnbZobZpbNVbZqbNVbZrbZsbZtbZrbZrbZubZvbZwbZxbZybZzbZAbZBbZCbZDbZEbZFbYabZGbZHbZIbZJbZKbZLbZMbZNbZObZPbWMbZQbOqbZRbZSbZTbZUbZUbZVbZWbZXbZYbUlbUlbZZcaabUlbUlcabcaccadcaecafcagcahcaicajcaicakcalcamcalcakcanbnFbNmbIPcaocapcaqcarcascatcaubNnbNnbwCbwCbwCbwCbwCcavcawcaxbwCbNubNubNubNubNubNubNubNubNubNubNubNucaycazaCFaqvaDTbUQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKTbKTbSlbMtbMtbMtbMtbMtbMtbMtbMtbMtbMtbMtbKTbKTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamcaBaamaamaamaamaamaaaaaaaaaaaaaaaaaaaafaafaaacaCcaDcaDcaDcaEcaDcaDcaFcaGbZrcaHcaIbZrcaJcaKcaLcaMcaNcaOcaPcaQcaRcaScaTcaUcaVbYabZGcaWcaXbZJcaYbVibWMbWMbWMbWMbWMcaZbOqbDHcbacbbcbccbdcbecbfcbgcbhbUlcbicbjcbkcblcbmcbncbocbpcaecahcagcbqcaicbrcbscakcbtcbucbvcakcbwbnFbBjbIPcbxcbycbzcbxcbxbIPbIPbIPcbAcbBcbCcbDcbEbwCbwCcbFbwCbwCcbGcbHcbIcbJcbKcbLcbMcbNcbOcbPcbQcbRcbScbTbUQbUQbUQbUQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKSbKTbUWbUUbUUbMtbMtbMtbMtbMtbMtbMtbMtbKTbKTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcbUcbVcbWcbXcbYcbZccaccbcccbZrccdccebZrbZrccfccgcchcciccjcckcclbZBbZCbZDccmccnbYabYaccoccpbYaccqbViccrccsbWMcctbWMbUhccuccuccuccuccuccuccubUlccvccwbUlccxccycczccAcbmccBccCccDcaecahcagccEcaiccFccGcakccHccIccJcakccKbnFccLccMccNccOccPccQccNccRccSccTccUccVccWccXccUccYccZcdacdbcdccddcdecdfcdgcdhcdicdjcdhcdkcdlcdmcdncdocdpcdqcdrbUQbUQbUQbUQaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaaaaaabPlbKTbNBbKTbKTbMtbMtbMtbMtbMtbMtbMtbKTbKTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcdscdscbWcdtcducbZcdvcdwcdxbZrcdycdzcdAcdBcdCcdDcdEcdFcdGcdHcdIcdJcdKcdLcdMcdNcdOcdPcdQcdRcdScdTcdUcdVcdWcdXcdYbWMbUhccucdZceacebceccedceecefcegcehceicejcekcelcemcbmcenceocepcaecahcagceqcaicercescakcetceucevcakcewbnFbnFcexccNceycezceAccNceBceCceDceEceEceFceGceEceHceIceJceKceHceLceMceNceOceLceLceLceLcePceNceOceLceLceQceRceSceTceUceVceWceXceYceYceYceYceYceYceYceYceYceYceYceYceYceYceYceYceZcfacfacfbbKTbKTbMtbMtcfcbMtbMtbKTbKTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfdcfdcfdcfdcfdcfdcfdcfecffbZrbZrbZrbZrbZrcfgcfhcficficficfjcfkbZBbZCbZDcflbZFcfpcfncfocMocfqcfrbVicfscftcfucftbWMbUhccucfvcfwcfwcfwcfxcfybUlcfzcfAbUlccxcczcfBccAcbmcfCcfDcfEcaecahcagcfFcaicfGcfHcakcakcakcakcakcfIcfJbnFcexccNcfKcfLccNccNceBcfMceDceEcfNcfOcfOcfPceHcfQcfRcfSceHcfTcfUcfUcfUcfVcfWcfXcfYcfZcgacgbcgcceLcgdcgecgfbUQbUQbUQbUQaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaafaafcggcghcgibNCbKSbKTbKTbMtbMubMtbKTbKTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -7578,13 +7596,13 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaacqdcqicrzcqicqicqicxLcqicqicqicxLcqicqicqiczwcqicrAcqicqicqiczxcwMcqicqiczycxQczzczAcwQczBcwQcwQcyWczCczDczEcyZcpycxZcpycotczFczGczHczIczJcpFcotczKczLczLczMczNczOczPczQcwnczRczSczTcyjczUczVczWcwnczXczYcsnaaaaaaaaaaaaaaaaaacrgczZcAacAbcutcAccAdcAecumcAfcAgcAhczpczZcAicAjcrgaaaaaaaaaaaacljceHcAkcAlcAlcAmcAncAocApcAqcArcAscAtcAucAvcoQcAwaaaaaacswaafcwKcwKcwKcwKcwKaaactwaafcwKcwKcwKcwKcwKaaacswaaacyFcyFcyFcyFaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaacyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaJaaaaaacAxcqicrzcqicAycszcsAcszcAzcszcsAcszcAzcszcAAcszcABcACcADcxPcAEczzcAFcAGcAHcAIcAJcAKcwQcALcAMcwQcwQcwQcwQcwQcANcopcAOcopcotcotcotcotcotcotcotcotcAPczLczLcAQcARcASbPUcATcwncAUcAVcAWcAXcAYcAZcBacwncBbcBccsnaaaaaaaaaaaaaaaaaacrgcvwcBdcAjcumcBecBfcBgcumcBhcBicBjcBkcBlcBicBmcrgaafaafaaaaaaaaaaaacBnaaaceHcBocBpcBqcBrcBscBpcBtcBucBscBpcBvceHaaaaaacaBaaaaafaaaaafaaaaafaaactwaaaaafaaaaafaafaafaafcswaaacyFcyFcyFcyFaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaacyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIfaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaBaaaaaaaaaaaJaaaaaacBwcqicrzcqicBxcyQcrzcqicBycyQcrzcqicBzcyQcqicqicBAcqicBBcyQcBCcBDcBEcBFcBGcBHcBIcBJcwQcBKcBLcBMcBNcBOcuScBPcBQcuScBRcuScBScuUcBTcBUcBVcBVcBWcBXcBYcBYcBYcBZcCacASbPUcCbcwncwncCccCdcCecCdcCccCfcwncsncCgcsnaaaaaaaaaaaaaaaaaacrgcumcChcutcumcCicCjcCkcumcClcCmcrjcCncCocCmcCpcsoaaaaaaaaaaaaaaaaaacCqaafceHcCrcCscCtcoScCucCvcCwcoScCxcCycCzceHaaaaaacswaaacuEcuEcuEcuEcuEaafctwaafcuEcuEcuEcuEcuEaafcswaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswaafaafaafaaJaafaafcBwcqicCAcCBcCCcCDcCEcCFcCGcCHcCIcCJcCKcCLcqicvQcCMcCNcCOcCPcCQcogcogcogcogcogcogcogcogcCRcCScANcCTcCUcpycCVcpycpycxZcpycpycCWcpycCUcCXcCYcCZcDacDbcDccDdcDecDfcASbPTcDgcDhcDicCccDjcDkcDlcCccDmcDncDocDpcDqaaaaaaaaaaaaaaaaaacrgcDrctrcvwcDscDtcvwcDucDvcDwaafaaacDxcDycDzcDAaaaaaaaaaaacaaaaaaaaaaaaaaaceHcDBcpVcpVcoScDCcpVcpVcoScDCcpVcpVceHaafaafcswaafcvKcvLcvLcvLcvLcvMctwcvNcvOcvOcvOcvOcvPaafcswaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswcDDaaaaaaaaJaaaaaacDEcDFcDGcDHcDIcDJcDKcDLcDIcDJcDKcDLcDIcDJcDMcDMcDNcDLcDIcDJcDOcogaaacDPcDQcDRcDScDTcDUcDVcDWcDXcDXcDYcDZcEacEbcEccEdcEbcEccEacEecEfcEgcEecANcANcAScEhcEicEjcEkcASbOscElcEmcEncCccCdcEocCdcCccEpcEqcEraafaaaaaaaaaaaaaaaaaaaaacrgcDrcEscEtcEucEucEtcAhcEvcrgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceHcEwcpVcpVcoScExcpVcpVcoScExcpVcpVceHaaaaaacswaafcwKcwKcwKcwKcwKaaactwaaacwKcwKcwKcwKcwKaaacswaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswcEycEzcEzcEAcEzcEzcEzcEzcEBcEzcECcEzcEBcEzcECcEzcEBcEzcECcEzcEzcEzcECcEzcECcEzcEDaafaaacEEcEFcEGcEHcEIcEJcDVcEKcDXcELcEMcENcEOcEPcEQcERcEScETcEOcEUcEVcEWcEeaaaaafcAScEXcEYcEZaafaaabOsbPUbPUbSKcCccFacFbcFccCcaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrgcFdcvAcFecFfcFfcFecvwcFgcrgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceHcpVcpVcpVcoScFhcpVcpVcoScFhcpVcpVceHaacaaacswaaaaaaaafaafaafaaaaaacFiaafaaaaaaaafaafaaaaaacswaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswaafaafaaaaaqaaaaaaaafchCcmVcmTcmWchCcmVcmTcmWchCcmVcmTcFjchCaaachCcmWcmTcFjchCaaaaafaaacEEcFkcFlcFmcFncFocFpcFqcDXcFrcFscFtcEOcFucFvcFwcFxcFycEOcFzcFAcFBcEeaaaaaacAScFCcFDcFEaaaaaabOsbPUbPUbOscCccFFcFFcFFcCcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrgcFGcFHcvwcvwcvwcvwcvwcFIcrgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacljceHceHceHceHceHceHceHceHcFJcFJcFJcljaaaaaacswcswcswcswcswaaaaaaaaacrtaaaaaaaaacswcswcswcaBcswaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswaaaaafaafaaJaaaaaaaafchCcFKcFLcFMchCcFNcFOcFPchCcFQcFRcFSchCaafchCcFTcFUcFVchCaaaaafaaacEEcFWcEGcFncFncFXcFYcFZcGacGbcGccGdcGecGfcGgcGhcGicGjcGkcGlcGmcGncEeaafaaacGocGpcGqcAScGraaabOscGscGtcGucGvaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsocrgcrgcGwcGxcFecFecFecGycGwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGzcGzcGzaaaaaaaaaaaaaaaaaaaaaaaaaaacswaafcGAaafcswaaaaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaJaaaaafaafchCcGBcGCcGBchCcGDcGEcGDchCcGFcGGcGFchCaaachCcGFcGFcGHchCaaaaafaaacEEcDQcGIcFmcFncEJcGJcEKcDXcGKcGLcGMcEOcGNcGOcGPcGOcGQcEOcGRcGScGTcEeaaMcGUcGVcGWcGXcGVcGVcGYbOscGZcHacHbaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHccFfcFfcFfcFfcFfcHcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswaaaaafaaacswaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaJaafaafaaachCcGBcHdcGBchCcGDcHecGDchCcGFcHfcGFchCaafchCcGFcHgcGFchCaafaafaafcHhcHicHjcHkcHlcHmcHncEKcDXcHocHpcHqcEOcHrcHscHtcHucHvcEOcHwcHxcHycEeaaacHzcHAcHBcHCcHDcHEcHFcHGcHHcHIbOsaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrgcHJcricricricCpcrgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswcswcswcswcswaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswaafaafaafaaJaafaafcBwcqicCAcCBcCCcCDcCEcCFcCGcCHcCIcCJcCKcCLcqicvQcCMcCNcCOcCPcCQcogcogcogcogcogcogcogcogcCRcCScANcCTcCUcpycCVcpycpycxZcpycpycCWcpycCUcCXcCYcCZcDacDbcDccDdcDecDfcASbPTcATcwnaaacCccDjcDkcDlcCccDmcDncDocDpcDqaaaaaaaaaaaaaaaaaacrgcDrctrcvwcDscDtcvwcDucDvcDwaafaaacDxcDycDzcDAaaaaaaaaaaacaaaaaaaaaaaaaaaceHcDBcpVcpVcoScDCcpVcpVcoScDCcpVcpVceHaafaafcswaafcvKcvLcvLcvLcvLcvMctwcvNcvOcvOcvOcvOcvPaafcswaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswcDDaaaaaaaaJaaaaaacDEcDFcDGcDHcDIcDJcDKcDLcDIcDJcDKcDLcDIcDJcDMcDMcDNcDLcDIcDJcDOcogaaacDPcDQcDRcDScDTcDUcDVcDWcDXcDXcDYcDZcEacEbcEccEdcEbcEccEacEecEfcEgcEecANcANcAScEhcEicEjcEkcASbOscATcwncwncCccCdcEocCdcCccEpcEqcEraafaaaaaaaaaaaaaaaaaaaaacrgcDrcEscEtcEucEucEtcAhcEvcrgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceHcEwcpVcpVcoScExcpVcpVcoScExcpVcpVceHaaaaaacswaafcwKcwKcwKcwKcwKaaactwaaacwKcwKcwKcwKcwKaaacswaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswcEycEzcEzcEAcEzcEzcEzcEzcEBcEzcECcEzcEBcEzcECcEzcEBcEzcECcEzcEzcEzcECcEzcECcEzcEDaafaaacEEcEFcEGcEHcEIcEJcDVcEKcDXcELcEMcENcEOcEPcEQcERcEScETcEOcEUcEVcEWcEeaaaaafcAScEXcEYcEZaafaaabOscATcMvcMwcCccFacFbcFccCcaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrgcFdcvAcFecFfcFfcFecvwcFgcrgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceHcpVcpVcpVcoScFhcpVcpVcoScFhcpVcpVceHaacaaacswaaaaaaaafaafaafaaaaaacFiaafaaaaaaaafaafaaaaaacswaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswaafaafaaaaaqaaaaaaaafchCcmVcmTcmWchCcmVcmTcmWchCcmVcmTcFjchCaaachCcmWcmTcFjchCaaaaafaaacEEcFkcFlcFmcFncFocFpcFqcDXcFrcFscFtcEOcFucFvcFwcFxcFycEOcFzcFAcFBcEeaaaaaacAScFCcFDcFEaaaaaabOscMycMxcMzcCccFFcFFcFFcCcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrgcFGcFHcvwcvwcvwcvwcvwcFIcrgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacljceHceHceHceHceHceHceHceHcFJcFJcFJcljaaaaaacswcswcswcswcswaaaaaaaaacrtaaaaaaaaacswcswcswcaBcswaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswaaaaafaafaaJaaaaaaaafchCcFKcFLcFMchCcFNcFOcFPchCcFQcFRcFSchCaafchCcFTcFUcFVchCaaaaafaaacEEcFWcEGcFncFncFXcFYcFZcGacGbcGccGdcGecGfcGgcGhcGicGjcGkcGlcGmcGncEeaafaaacGocGpcGqcAScGraaabOscMBcMAcMCcCcaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsocrgcrgcGwcGxcFecFecFecGycGwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGzcGzcGzaaaaaaaaaaaaaaaaaaaaaaaaaaacswaafcGAaafcswaaaaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaJaaaaafaafchCcGBcGCcGBchCcGDcGEcGDchCcGFcGGcGFchCaaachCcGFcGFcGHchCaaaaafaaacEEcDQcGIcFmcFncEJcGJcEKcDXcGKcGLcGMcEOcGNcGOcGPcGOcGQcEOcGRcGScGTcEeaaMcGUcGVcGWcGXcGVcGVcGYbOscMEcMDcMFcCcaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHccFfcFfcFfcFfcFfcHcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswaaaaafaaacswaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaJaafaafaaachCcGBcHdcGBchCcGDcHecGDchCcGFcHfcGFchCaafchCcGFcHgcGFchCaafaafaafcHhcHicHjcHkcHlcHmcHncEKcDXcHocHpcHqcEOcHrcHscHtcHucHvcEOcHwcHxcHycEeaaacHzcHAcHBcHCcHDcHEcHFcHGcMGcHIbOsbOsaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrgcHJcricricricCpcrgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswcswcswcswcswaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaBaaaaaachCchCchCchCchCchCchCchCchCchCchCchCchCaaacHKchCchCchCchCaaaaaaaaaaaacCScCScCScCScCScHLcHMcHMcHMcHMcHNcHMcHOcHPcHQcHPcHRcHMcHMcHScHMcHMcHMcHzcHAcHTcHUcHVcHWcHXaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacswaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaafaaacHYcHZcHZcHZcIacIbcIccIdcIecIfcIgcIhcIicIjcIkcIlcImcIncIocIpcIqcIrcIscItcIucIvcItcHMcHzcHAcIwcIxcIycIzcIAaafaaacHYcIBcHYcIBcHYcIBaafcICaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFcuFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafcIDcIEcIFaaacIDcIEcIFaaacIDcIEcIFaafaafaaaaafaafaafaafaafcIGcHZcHZcHZcIacIbcIHcIIcIJcIKcILcIMcINcIOcIPcIQcIRcIScITcIUcITcITcITcIVcITcIWcIXcHMcIYcGVcGVcGVcGVcGVcIZaafaafcJacJacJacJacJacJaaafcICaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaacyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFcyFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa