diff --git a/baystation12.dme b/baystation12.dme
index df67636edd9..06f7a43463f 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -5,6 +5,77 @@
// END_INTERNALS
// BEGIN_FILE_DIR
#define FILE_DIR .
+#define FILE_DIR "code"
+#define FILE_DIR "code/TriDimension"
+#define FILE_DIR "code/unused"
+#define FILE_DIR "code/unused/goonheist"
+#define FILE_DIR "code/WorkInProgress"
+#define FILE_DIR "code/WorkInProgress/Cael_Aislinn"
+#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Jungle"
+#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Rust"
+#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/ShieldGen"
+#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter"
+#define FILE_DIR "code/WorkInProgress/Susan"
+#define FILE_DIR "html"
+#define FILE_DIR "icons"
+#define FILE_DIR "icons/48x48"
+#define FILE_DIR "icons/ass"
+#define FILE_DIR "icons/effects"
+#define FILE_DIR "icons/mecha"
+#define FILE_DIR "icons/misc"
+#define FILE_DIR "icons/mob"
+#define FILE_DIR "icons/mob/human_races"
+#define FILE_DIR "icons/mob/in-hand"
+#define FILE_DIR "icons/mob/in-hand/left"
+#define FILE_DIR "icons/mob/in-hand/right"
+#define FILE_DIR "icons/mob/otherHuman"
+#define FILE_DIR "icons/mob/species"
+#define FILE_DIR "icons/mob/species/armalis"
+#define FILE_DIR "icons/mob/species/skrell"
+#define FILE_DIR "icons/mob/species/tajaran"
+#define FILE_DIR "icons/mob/species/unathi"
+#define FILE_DIR "icons/mob/species/vox"
+#define FILE_DIR "icons/mob/spirits"
+#define FILE_DIR "icons/NTOS"
+#define FILE_DIR "icons/obj"
+#define FILE_DIR "icons/obj/assemblies"
+#define FILE_DIR "icons/obj/atmospherics"
+#define FILE_DIR "icons/obj/clothing"
+#define FILE_DIR "icons/obj/doors"
+#define FILE_DIR "icons/obj/flora"
+#define FILE_DIR "icons/obj/machines"
+#define FILE_DIR "icons/obj/pipes"
+#define FILE_DIR "icons/obj/power_cond"
+#define FILE_DIR "icons/pda_icons"
+#define FILE_DIR "icons/pods"
+#define FILE_DIR "icons/spideros_icons"
+#define FILE_DIR "icons/stamp_icons"
+#define FILE_DIR "icons/Testing"
+#define FILE_DIR "icons/turf"
+#define FILE_DIR "icons/vending_icons"
+#define FILE_DIR "nano"
+#define FILE_DIR "nano/images"
+#define FILE_DIR "sound"
+#define FILE_DIR "sound/AI"
+#define FILE_DIR "sound/ambience"
+#define FILE_DIR "sound/effects"
+#define FILE_DIR "sound/effects/turret"
+#define FILE_DIR "sound/effects/wind"
+#define FILE_DIR "sound/hallucinations"
+#define FILE_DIR "sound/items"
+#define FILE_DIR "sound/machines"
+#define FILE_DIR "sound/mecha"
+#define FILE_DIR "sound/misc"
+#define FILE_DIR "sound/music"
+#define FILE_DIR "sound/piano"
+#define FILE_DIR "sound/turntable"
+#define FILE_DIR "sound/violin"
+#define FILE_DIR "sound/voice"
+#define FILE_DIR "sound/voice/complionator"
+#define FILE_DIR "sound/voice/Serithi"
+#define FILE_DIR "sound/vox"
+#define FILE_DIR "sound/vox_fem"
+#define FILE_DIR "sound/weapons"
// END_FILE_DIR
// BEGIN_PREFERENCES
#define DEBUG
@@ -336,6 +407,7 @@
#include "code\game\jobs\job_objectives\science.dm"
#include "code\game\machinery\adv_med.dm"
#include "code\game\machinery\ai_slipper.dm"
+#include "code\game\machinery\airlock_control.dm"
#include "code\game\machinery\alarm.dm"
#include "code\game\machinery\atmo_control.dm"
#include "code\game\machinery\autolathe.dm"
@@ -442,11 +514,12 @@
#include "code\game\machinery\computer\specops_shuttle.dm"
#include "code\game\machinery\computer\station_alert.dm"
#include "code\game\machinery\computer\store.dm"
+#include "code\game\machinery\computer\syndicate_shuttle.dm"
#include "code\game\machinery\computer\syndicate_specops_shuttle.dm"
#include "code\game\machinery\computer\telescience.dm"
+#include "code\game\machinery\computer\vox_shuttle.dm"
#include "code\game\machinery\computer\xenos_shuttle.dm"
#include "code\game\machinery\doors\airlock.dm"
-#include "code\game\machinery\doors\airlock_control.dm"
#include "code\game\machinery\doors\airlock_electronics.dm"
#include "code\game\machinery\doors\alarmlock.dm"
#include "code\game\machinery\doors\brigdoors.dm"
@@ -459,13 +532,11 @@
#include "code\game\machinery\doors\spacepod.dm"
#include "code\game\machinery\doors\unpowered.dm"
#include "code\game\machinery\doors\windowdoor.dm"
-#include "code\game\machinery\embedded_controller\airlock_controllers.dm"
-#include "code\game\machinery\embedded_controller\airlock_docking_controller.dm"
-#include "code\game\machinery\embedded_controller\airlock_program.dm"
-#include "code\game\machinery\embedded_controller\docking_program.dm"
+#include "code\game\machinery\embedded_controller\access_controller.dm"
+#include "code\game\machinery\embedded_controller\airlock_controller.dm"
#include "code\game\machinery\embedded_controller\embedded_controller_base.dm"
-#include "code\game\machinery\embedded_controller\embedded_program_base.dm"
-#include "code\game\machinery\embedded_controller\simple_docking_controller.dm"
+#include "code\game\machinery\embedded_controller\simple_vent_controller.dm"
+#include "code\game\machinery\embedded_controller\smart_airlock_controller.dm"
#include "code\game\machinery\kitchen\gibber.dm"
#include "code\game\machinery\kitchen\icecream_vat.dm"
#include "code\game\machinery\kitchen\juicer.dm"
@@ -893,10 +964,10 @@
#include "code\modules\customitems\item_spawning.dm"
#include "code\modules\customitems\definitions\base.dm"
#include "code\modules\destilery\main.dm"
-#include "code\modules\detectivework\detective_work.dm"
-#include "code\modules\detectivework\evidence.dm"
-#include "code\modules\detectivework\footprints_and_rag.dm"
-#include "code\modules\detectivework\scanner.dm"
+#include "code\modules\DetectiveWork\detective_work.dm"
+#include "code\modules\DetectiveWork\evidence.dm"
+#include "code\modules\DetectiveWork\footprints_and_rag.dm"
+#include "code\modules\DetectiveWork\scanner.dm"
#include "code\modules\economy\Accounts.dm"
#include "code\modules\economy\Accounts_DB.dm"
#include "code\modules\economy\ATM.dm"
@@ -979,8 +1050,6 @@
#include "code\modules\media\machinery.dm"
#include "code\modules\media\mediamanager.dm"
#include "code\modules\mining\abandonedcrates.dm"
-#include "code\modules\mining\alloys.dm"
-#include "code\modules\mining\coins.dm"
#include "code\modules\mining\equipment_locker.dm"
#include "code\modules\mining\machine_input_output_plates.dm"
#include "code\modules\mining\machine_processing.dm"
@@ -993,12 +1062,9 @@
#include "code\modules\mining\minerals.dm"
#include "code\modules\mining\mint.dm"
#include "code\modules\mining\money_bag.dm"
-#include "code\modules\mining\ore.dm"
-#include "code\modules\mining\ore_datum.dm"
+#include "code\modules\mining\ores_coins.dm"
#include "code\modules\mining\satchel_ore_boxdm.dm"
#include "code\modules\mining\surprise.dm"
-#include "code\modules\mining\drilling\distribution.dm"
-#include "code\modules\mining\drilling\drill.dm"
#include "code\modules\mining\laborcamp\laborminerals.dm"
#include "code\modules\mining\laborcamp\laborshuttle.dm"
#include "code\modules\mining\laborcamp\laborstacker.dm"
@@ -1356,6 +1422,7 @@
#include "code\modules\research\rdconsole.dm"
#include "code\modules\research\rdmachines.dm"
#include "code\modules\research\research.dm"
+#include "code\modules\research\research_shuttle.dm"
#include "code\modules\research\server.dm"
#include "code\modules\research\xenoarchaeology\areas.dm"
#include "code\modules\research\xenoarchaeology\chemistry.dm"
@@ -1439,12 +1506,7 @@
#include "code\modules\scripting\Scanner\Tokens.dm"
#include "code\modules\security levels\keycard authentication.dm"
#include "code\modules\security levels\security levels.dm"
-#include "code\modules\shuttles\antagonist.dm"
-#include "code\modules\shuttles\departmental.dm"
-#include "code\modules\shuttles\shuttle.dm"
-#include "code\modules\shuttles\shuttle_console.dm"
-#include "code\modules\shuttles\shuttle_specops.dm"
-#include "code\modules\shuttles\shuttles_multi.dm"
+#include "code\modules\shuttles\engineering.dm"
#include "code\modules\store\items.dm"
#include "code\modules\store\store.dm"
#include "code\modules\supermatter\supermatter.dm"
@@ -1460,9 +1522,6 @@
#include "code\modules\surgery\ribcage.dm"
#include "code\modules\surgery\robolimbs.dm"
#include "code\modules\surgery\surgery.dm"
-#include "code\modules\vehicles\cargo_train.dm"
-#include "code\modules\vehicles\train.dm"
-#include "code\modules\vehicles\vehicle.dm"
#include "code\modules\virus2\analyser.dm"
#include "code\modules\virus2\antibodies.dm"
#include "code\modules\virus2\centrifuge.dm"
diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index f19b2b9121b..386fad10098 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -149,7 +149,7 @@ var/list/uplink_items = list()
/datum/uplink_item/jobspecific/pickpocketgloves
name = "Pickpocket's Gloves"
- desc = "A pair of sleek gloves to aid in pickpocketing, while wearing these you can see inside the pockets of any unsuspecting mark, loot the ID, belt, or pockets without them knowing, and pickpocketing puts the item directly into your hand."
+ desc = "A pair of sleek gloves to aid in pickpocketing, while wearing these you can see inside the pockets of any unsuspecting mark, loot the ID or pockets without them knowing, and pickpocketing puts the item directly into your hand."
item = /obj/item/clothing/gloves/black/thief
cost = 3
job = list("Assistant")
diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm
index faf62f0788c..700c91e140a 100644
--- a/code/game/gamemodes/changeling/changeling_powers.dm
+++ b/code/game/gamemodes/changeling/changeling_powers.dm
@@ -530,7 +530,7 @@
C.update_canmove()
C.remove_changeling_powers()
- C.emote("gasp")
+ C.emote("deathgasp")
C.tod = worldtime2text()
spawn(rand(800,1200))
diff --git a/code/modules/mob/language.dm b/code/modules/mob/language.dm
index 37ab5b27a14..b33fa78c4ec 100644
--- a/code/modules/mob/language.dm
+++ b/code/modules/mob/language.dm
@@ -56,7 +56,7 @@
desc = "The noise made by rubbing it's antennae together is actually a complex form of communication for Kidan."
speech_verb = "rubs it's antenna together"
colour = "tajaran"
- key = "l"
+ key = "4"
flags = RESTRICTED
/datum/language/slime
@@ -76,7 +76,7 @@
/datum/language/trinary
name = "Trinary"
desc = "A modification of binary to allow fuzzy logic. 0 is no, 1 maybe, 2 yes. Credited with giving Machine People the ability to think creatively."
- key = "l"
+ key = "t"
flags = RESTRICTED
diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm
index 67e3134fdb9..88c7c9d4dca 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/life.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm
@@ -385,13 +385,13 @@
sight |= SEE_MOBS
sight |= SEE_OBJS
see_in_dark = 8
- see_invisible = SEE_INVISIBLE_LEVEL_TWO
+ see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING
else if (stat != 2)
sight |= SEE_MOBS
sight &= ~SEE_TURFS
sight &= ~SEE_OBJS
see_in_dark = 4
- see_invisible = SEE_INVISIBLE_LEVEL_TWO
+ see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING
if (healths)
if (stat != 2)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 387688a8aa1..3cacd168704 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -565,7 +565,10 @@
/mob/living/carbon/human/Topic(href, href_list)
var/pickpocket = 0
+
if(!usr.stat && usr.canmove && !usr.restrained() && in_range(src, usr))
+
+ // if looting pockets with gloves, do it quietly
if(href_list["pockets"])
if(usr:gloves)
var/obj/item/clothing/gloves/G = usr:gloves
@@ -601,6 +604,47 @@
// Display a warning if the user mocks up
src << "You feel your [pocket_side] pocket being fumbled with!"
+
+ // if looting id with gloves, do it quietly - this allows pickpocket gloves to take/place id stealthily - Bone White
+ if(href_list["item"])
+ var/itemTarget = href_list["item"]
+ if(itemTarget == "id")
+ if(usr:gloves)
+ var/obj/item/clothing/gloves/G = usr:gloves
+ pickpocket = G.pickpocket
+ if(pickpocket)
+ var/obj/item/worn_id = src.wear_id
+ var/obj/item/place_item = usr.get_active_hand() // Item to place in the pocket, if it's empty
+
+ if(worn_id)
+ usr << "You try to remove [src]'s ID."
+ else if(place_item && place_item.mob_can_equip(src, slot_wear_id, 1))
+ usr << "You try to place [place_item] onto [src]."
+ else
+ return
+
+ if(do_mob(usr, src, STRIP_DELAY))
+ if(worn_id)
+ u_equip(worn_id)
+ usr.put_in_hands(worn_id)
+ else
+ if(place_item)
+ usr.u_equip(place_item)
+ equip_to_slot_if_possible(place_item, slot_wear_id, 0, 1)
+
+ // Update strip window
+ if(usr.machine == src && in_range(src, usr))
+ show_inv(usr)
+
+
+
+ else if(!pickpocket)
+ // Display a warning if the user mocks up
+ src << "You feel your ID slot being fumbled with!"
+
+
+
+
if (href_list["refresh"])
if((machine)&&(in_range(src, usr)))
show_inv(machine)
@@ -615,17 +659,18 @@
if(ishuman(usr) && usr:gloves)
var/obj/item/clothing/gloves/G = usr:gloves
pickpocket = G.pickpocket
- O.source = usr
- O.target = src
- O.item = usr.get_active_hand()
- O.s_loc = usr.loc
- O.t_loc = loc
- O.place = href_list["item"]
- O.pickpocket = pickpocket //Stealthy
- requests += O
- spawn( 0 )
- O.process()
- return
+ if(!pickpocket || href_list["item"] != "id") // Stop the non-stealthy verbose strip if pickpocketing id.
+ O.source = usr
+ O.target = src
+ O.item = usr.get_active_hand()
+ O.s_loc = usr.loc
+ O.t_loc = loc
+ O.place = href_list["item"]
+ O.pickpocket = pickpocket //Stealthy
+ requests += O
+ spawn( 0 )
+ O.process()
+ return
if (href_list["criminal"])
if(hasHUD(usr,"security"))
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 785f3c933d5..9c68a5baa50 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -1472,7 +1472,7 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc
see_invisible = SEE_INVISIBLE_LEVEL_ONE
if("shadow")
see_in_dark = 8
- see_invisible = SEE_INVISIBLE_LEVEL_ONE
+ see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING
if(mind && mind.vampire)
if((VAMP_VISION in mind.vampire.powers) && !(VAMP_FULL in mind.vampire.powers))
diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm
index 250be806cc9..0e12657218f 100644
--- a/code/modules/organs/organ_external.dm
+++ b/code/modules/organs/organ_external.dm
@@ -393,8 +393,7 @@ This function completely restores a damaged organ to perfect condition.
// Internal wounds get worse over time. Low temperatures (cryo) stop them.
if(W.internal && !W.is_treated() && owner.bodytemperature >= 170)
var/bicardose = owner.reagents.get_reagent_amount("bicaridine")
- var/inaprovaline = owner.reagents.get_reagent_amount("inaprovaline")
- if(!bicardose || !inaprovaline) //bicaridine and inaprovaline stop internal wounds from growing bigger with time, and also stop bleeding
+ if(!bicardose) //bicaridine stop internal wounds from growing bigger with time, and also stop bleeding, inaprovaline only helps against the oxyloss from bloodloss, and does no direct healing
W.open_wound(0.1 * wound_update_accuracy)
owner.vessel.remove_reagent("blood",0.05 * W.damage * wound_update_accuracy)
diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm
index 58f68be30d2..d0fa37158db 100644
--- a/code/modules/projectiles/guns/energy/laser.dm
+++ b/code/modules/projectiles/guns/energy/laser.dm
@@ -56,8 +56,9 @@ obj/item/weapon/gun/energy/laser/retro
if(isrobot(src.loc))
var/mob/living/silicon/robot/R = src.loc
if(R && R.cell)
- R.cell.use(100)
+ R.cell.use(500)
in_chamber = new/obj/item/projectile/beam(src)
+ fire_delay = 12
return 1
return 0
diff --git a/maps/cyberiad.dmm b/maps/cyberiad.dmm
index c5d856b7bf4..53f5c35b396 100644
--- a/maps/cyberiad.dmm
+++ b/maps/cyberiad.dmm
@@ -11976,11 +11976,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAIaAIaAIaAIaAIaAIaAIaAIaAIaBraBsaBtaBuazKazKazKazLaBvaaiaaiaaiaaiaaiaaiaaiaaaaaaaabaaaaBwaBxaBwaabaabaabaabajAajAajAaabaaaaaaaaaaaaaaaaaaaaaazMawcaaqaByaBzaBAaBBaBCaaqaANawcaaiaBDaBEaBFaBGaBHaBIaBIaBIaBJaBKaBIaBLaBMaBNaBIaBIaBOaBOaBPaBQaBRaBSabPaBTamBaATaATaATaaqazrazsaAnaAUaBUaBVaAnazsazsaBWaBXaAXaBYaBZazsazsaCaaCbaCcaCcaCcaCcaCdaCeaCfaCgaCcaChaCiaxtaxtaxtaxtaxtaCiaCjaBmaBnaaaaCkaaaaaaaaiaClayIaCmayGayIayJayJayJayJayJayJayIaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAIaAIaAIaAIaAIaAIaAIaAIaAIaCnaCoaCpaCqazKazKazKazLaBvaaiaCraCsaCtaCuaCvaaiaaaaaaaabaaaaAFaCwaCxaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazMawcaaqaCyaCzaCAaCyaBCaaqaCBaCCaCCaCCaCCaCDaCEaaiaaiaaiaaiaeOabnaaiaCFaCGaeNaeOaaiaaiaaiaaiaCHaCIaCJaCKaCLaAkaCMaATaATaCNazrazsaAnaCOaAUaAUaAnazsazsazsaCPaCQaCRaCSazsazsaCaaCTaCUaCVaCVaCVaCWaCcaCcaCXaCcaCYaCZaxtaxtaxtaxtaxtaDaaDbaDcaCiaDdaDeaDdaaaaaiaDfayIayGayGayIayJayJayJayJayJayJaDgaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAIaAIaAIaAIaAIaAIaAIaAIaAIaDhaDiaBtaBuazKazKazKazLaBvaaiaDjaDkaDlaDmaDnaaiaaaaaaaabaDoaDpaDqaDraDsaaiaaiamPamQamRaaiaaiaaiaaiaaiaaiamPamQamQaDtawcaaqaDuaDvaDwaDxaDyaaqawcawcawcawcawcawcazSaaiaDzaDAaDBaDCaDDaDEaDFaDGaDHaDIaDJaDAaDKaaiaDLatNaDMaaqaDNamBaATaATaATaaqazraDOaDPaDQaDQaDRaDSaBbaDTaDSaDSaDUaDVaDWazsazsaDXaDYaDZaEaaEaaEaaEbaCeaCfaCXaCcaEcaEdaxtaxtaxtaxtaxtaEeaaiaaiaaiaAFaEfaAFaaaaaiaEgaEhayGaEiayIayJayJayJayJayJayJayIaxvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAIaAIaAIaAIaAIaAIaAIaAIaAIaEjaEkaElaEmazKazKazKazLaBvaaiaEnaEoaEpaEqaEraaiaaaaaaaaaaaiaEsaEtaEuaaiawcawcawcawcawcawcawcawcawcawcawcawcawcawcawcawcaaqaCyaCzaEvaCyaEwaaqaExawcawcawcawcawcazSaaiaEyaEyaEzaEAaEBaECaEDaECaEEaEFaEGaEHaEHaaiaDLatNaEIaaqaDNamBaATayaaybaaqazraEJaEKaELaEMaENaENaEOaEPaENaEPaEQaERaESaETaEUaEVaEWaEXaEYaEZaFaaFbaaqaFcaFdaFcaaqaFeaxtaxtaxtaxtaxtaFfaaiaabaaaaDpaFgaFhaDsaaiaFiaFjaFkayIayIayIayIayIayIayIayIayIaAFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawNaaiaaiaaiaaiaaiaaiaaiamPamQamRaaiamPamQamRaaiaaiaaiaaiaFlazKazKazKazKazLaBvaaiaFmaFnaFoaFpaFqaaiaaaaaaaaaaaiaFraFsaFtaaiaFuawcawcawcawcawcawcawcawcawcawcawcawcawcaFvaFwaaqaCyaCzaFxaCyaEwaaqawcawcawcawcawcawcazSaaiaaiaaiaaiaFyaFzaDAaFAaDAaFzaFBaaiaaiaaiaaiaDLatNaFCaaqaDNamBaAlayaaybaaqaAmaFDaaqaaqaaqaaqaaqaaqaaqaFEaaqaaqaaqaaqaaqaaqaFFaaqaFGaFHaFHaFHaFIaaqaFJaFKaFLaaqaFeaxtaxtaxtaxtaxtaFfaaiaaaaaaaFMaFNaFOaaiaaiaFPaFQaFRayIayIayIayIayIayIaFSayIayIaBoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaFTaFUaFVaxDaxDaxDaxDaxDaxDaFWaFXaFYaaiaxvaFZaAKazKazKazKazLaBvaaiaaqaaqamBaGaabPapBaaaaaaaaaaaiaGbaGcaGdaaiaaqaGeaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqamBaGfaaqakHaaqaaqaaqaaqaaqaaqaGgazSaaiaGhaGhaEzaGiaGjaECaEDaECaGjaGkaGlaGmaGnaaiaDLatNaDMaaqaGoaxiaxZayaaybaaqazraFDaaqaGpaGqaGraGraaqaGsaGqaGtaaqaGuaGvaGwaaqaGxaaqaFGaFHaFHaFHaFIaaqaGyaGzaGAaaqaGBaGCaGCaGCaGCaGCaGDaaaaaaaaaaGEaGFaGGaaiaaiaGHaGIaGJaaqaaqaaqaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGKaGLaGMazKazKazKazKazKazKazKazKazKazKaGNaGOaGPaGQaGRayWayWayWayXaBvaaiaGSaGTaGUaGVaaqaaJaaiaaiaaiaaiaaiaGWaamaaiaGXaGYaGZaHaaHbaHcaHdaHeaHfaHgaaqaHhaHiaHjaHiaHkaaqaHlaHmaHnaHoaHpaaqaHqaHqaHraHqaHsaGgazSaaiaDzaDAaHtaHuaFzaDAaHvaDAaFzaHwaHxaDAaDKaaiaDLatNaDMaaqaDNazpazqayaaybaaqaHyaHzaaqaHAaGqaGqaGqaFEaHBaHCaHDaaqaHEaHFaHGaHHaHIaaqaHJaHKaHLaHKaHMaaqaHNaHOaHPaaqaaaaaaaaaaaaaabaaaaaaaaaaaaaaiaHQaHRaHSaaiaaiaHTaHUaHVaaqaHWaHXaHYaHYaHYaHYaHYaHZaIaaIbaIbaIcaIbaIbaIbaIbaIdaIeaIfaaiaIgaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaIhaIiaIiaIiaIiaIiaIiaIiaIiaIiaIjaIkaIlaImaIlaInaIoaIoaIoaIpaIqaaiaIraIsaItaIuaIvaIwaIxaIyaIzaIAaIBaICaIDaIEaIFaIGaIHaIHaIHaIIaIHaIHaIJaGYaaqaIKaHkaHkaHkaHkaaqaILaIMaINaIOaIPaceaIQaIQaIRaIQaISaGgazSaaiaGhaGhaEzaITaGjaECaIUaECaGjaIVaEGaIWaIXaaiaIYavIaIZaaqaDNazpaceaceaceaceaJaaJbaJcaJdaJeaceaceaceaaEaceabtaJfaJgaJhaJiaceaJjaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqamPamRaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaJkaamaaiaaiaJlaJmaJnaJoaJpaJqaceaceaceaceaceaJraJsaceaceaJtaceaJuaceaceaaEaJvaaqaaqaJwaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJxaJxaJxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAIaAIaAIaAIaAIaAIaAIaAIaAIaEjaEkaElaEmazKazKazKazLaBvaaiaEnaEoaEpaEqaEraaiaaaaaaaaaaaiaEsaEtaEuaaiawcawcawcawcawcawcawcawcawcawcawcawcawcawcawcawcaaqaCyaCzaEvaCyaEwaaqaExawcawcawcawcawcazSaaiaEyaEyaEzaEAaEBaECaEDaECaEEaEFaEGaEHaEHaaiaDLatNaEIaaqaDNamBaATayaaybaaqazraEJaEKaELaEMaENaENaEOaEPaENaEPaEQaERaESaETaEUaEVaEWaEXaEYaEZaFaaFbaaqaFcaFdaFcaaqaFeaxtaxtaxtaxtaxtaFfaaiaabamPaDpaFgaFhaDsaaiaFiaFjaFkayIayIayIayIayIayIayIayIayIaAFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawNaaiaaiaaiaaiaaiaaiaaiamPamQamRaaiamPamQamRaaiaaiaaiaaiaFlazKazKazKazKazLaBvaaiaFmaFnaFoaFpaFqaaiaaaaaaaaaaaiaFraFsaFtaaiaFuawcawcawcawcawcawcawcawcawcawcawcawcawcaFvaFwaaqaCyaCzaFxaCyaEwaaqawcawcawcawcawcawcazSaaiaaiaaiaaiaFyaFzaDAaFAaDAaFzaFBaaiaaiaaiaaiaDLatNaFCaaqaDNamBaAlayaaybaaqaAmaFDaaqaaqaaqaaqaaqaaqaaqaFEaaqaaqaaqaaqaaqaaqaFFaaqaFGaFHaFHaFHaFIaaqaFJaFKaFLaaqaFeaxtaxtaxtaxtaxtaFfaaiaaaaaiaFMaFNaFOaaiaaiaFPaFQaFRayIayIayIayIayIayIaFSayIayIaBoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaFTaFUaFVaxDaxDaxDaxDaxDaxDaFWaFXaFYaaiaxvaFZaAKazKazKazKazLaBvaaiaaqaaqamBaGaabPapBaaaaaaaaaaaiaGbaGcaGdaaiaaqaGeaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqamBaGfaaqakHaaqaaqaaqaaqaaqaaqaGgazSaaiaGhaGhaEzaGiaGjaECaEDaECaGjaGkaGlaGmaGnaaiaDLatNaDMaaqaGoaxiaxZayaaybaaqazraFDaaqaGpaGqaGraGraaqaGsaGqaGtaaqaGuaGvaGwaaqaGxaaqaFGaFHaFHaFHaFIaaqaGyaGzaGAaaqaGBaGCaGCaGCaGCaGCaGDaaaaaaaaiaGEaGFaGGaaiaaiaGHaGIaGJaaqaaqaaqaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGKaGLaGMazKazKazKazKazKazKazKazKazKazKaGNaGOaGPaGQaGRayWayWayWayXaBvaaiaGSaGTaGUaGVaaqaaJaaiaaiaaiaaiaaiaGWaamaaiaGXaGYaGZaHaaHbaHcaHdaHeaHfaHgaaqaHhaHiaHjaHiaHkaaqaHlaHmaHnaHoaHpaaqaHqaHqaHraHqaHsaGgazSaaiaDzaDAaHtaHuaFzaDAaHvaDAaFzaHwaHxaDAaDKaaiaDLatNaDMaaqaDNazpazqayaaybaaqaHyaHzaaqaHAaGqaGqaGqaFEaHBaHCaHDaaqaHEaHFaHGaHHaHIaaqaHJaHKaHLaHKaHMaaqaHNaHOaHPaaiaaaaaaaaaaaaaabaaaaaaaaaaaaaaiaHQaHRaHSaaiaaiaHTaHUaHVaaqaHWaHXaHYaHYaHYaHYaHYaHZaIaaIbaIbaIcaIbaIbaIbaIbaIdaIeaIfaaiaIgaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaIhaIiaIiaIiaIiaIiaIiaIiaIiaIiaIjaIkaIlaImaIlaInaIoaIoaIoaIpaIqaaiaIraIsaItaIuaIvaIwaIxaIyaIzaIAaIBaICaIDaIEaIFaIGaIHaIHaIHaIIaIHaIHaIJaGYaaqaIKaHkaHkaHkaHkaaqaILaIMaINaIOaIPaceaIQaIQaIRaIQaISaGgazSaaiaGhaGhaEzaITaGjaECaIUaECaGjaIVaEGaIWaIXaaiaIYavIaIZaaqaDNazpaceaceaceaceaJaaJbaJcaJdaJeaceaceaceaaEaceabtaJfaJgaJhaJiaceaJjaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiamPamRaaiaaiaaiaaiaaiaaiaJkaamaaiaaiaJlaJmaJnaJoaJpaJqaceaceaceaceaceaJraJsaceaceaJtaceaJuaceaceaaEaJvaaqaaqaJwaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJxaJxaJxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJyaJzaJzaJAaJzaJzaJBaJCaJzaJzaJAaJDaBuaJEaJFaJGaJHaJIaJJaJJaJJaJKaJLaaiaJMaJNaJOaJPaJQaJRaIDaJSaIDaJTaIDaJUaIxaaqaJVaIJaIHaIHaIHaIHaIHaIHaJWaJXaxpaJYaJZaKaaKbaKcaKdaKeaKfaKgaKhaKiaKdaKjaKkaKlaKmaKnaKoaKpaaiaaiaaiaaiaKqaFzaDAaFAaDAaFzaKraaiaaiaaiaaiaKsaKtaKuaaqaGoaKvaqPaqPaqPaKwaKxaAuabPaKyaKzabPaKAabPaKBabPaKCaxpaKDaKEaKFaaqaKGaKHaKIaKJaKJaKHaKKaKLaKLaKLaKLaKLaKMaKNaKLaKOaKPaKQaKRaKSaKTaKTaKUaKVaKWaKXaKYaKZaHUaLaaLbaLcaLdaaqaLeaLfaLgaaqaLhaLiaaqaLjaLkaLlaLmaLnaLoaLpaLqaLraLsaLtaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJxaJxaJxaJxaJxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaLuaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJyaLvaLwaLwaLwaLxaLyaLzaLAaLBaLxaLwaLCaLDaLEaaiaBoaFTaLFazKazKazKaLGaLHaaiaLIaLJaLKaLLaLMaLNaLOaLPaIxaIxaLQaLRaLRaceaLSaLTaLUaLUaLUaLVaLUaLUaLWaLXaaJaLYaLZaMaaMbaMcaceaMdaMeaMfaMgaMhaaqaMiaMjaMkaHqaMlaGgawcaaiaDzaDAaMmaHuaFzaDAaFAaDAaFzaHwaMnaaiaaiaaiaMoaMpaMqaMraMsabnaaiaaiaaiaaqaMtaMuaaqaMvaGqaaqaMwaaqaMxaaqaMyaMzaMAaMBaMCaMDaMEaMFaMGaMHaMIaxkaMJaMIaMIaMKaMIaMFaMLaMFaMMaMFaMFaMNaMOaMPaMQaMQaMRaMSaMTaMUaMVaMWaMXaMXaIwaMYaMZaNaaNbaNcaNdaaqaNeaNfaaqaNgaNhaNiaNjaLnaNkaLpaLqaLraNlaNmaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJxaJxaJxaJxaJxaJxaJxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNnaLCaLwaNoaNpaLwaNpaLwaNpaLwaNpaNoaNqaJzaJDaaiaaiaNrazKazKazKazKaNsaNtaaiaNuaNvaNwaNxaNyaceaNzaaEaceaNAaNBaNCaNCaaqaNDaNEaGYaNFaNGaLXaNHaNIaNJaNKaaJaHkaNLaHkaHkaHkaaqaNMaMeaMfaMgaNNaaqaNOaMjaHqaNPaHqaGgawcaaiaNQaNRaEzaNSaNTaECaNUaECaNVaNWaNXaaiaNYaNZaOaaObaOcaOdaOeaOfaaaaaaaaiaOgaOhaOiaaqaOjaGqaGqaGqaOkaGqaGqaGqaaJaOlaOmaaqaLhamBaaqaOnaaqaaqaOoaOpaOqaOraOsaaqaOtaOuaaqaLhaaqaaqaaqaaqaOvaaqaaqamBaaqaaqaaqaaqaOwaOxaOxaaJaMZaOyaOzaOAaOBaOCaaqaODaOEaaqaOFaOGaOHaNjaOIaNkaLpaLqaLraOJaOKaxvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJxaJxaJxaJxaJxaJxaJxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa